[
  {
    "path": ".gitattributes",
    "content": "* text eol=lf\n*.lay binary\n*.dll* binary\n*.pdb binary\n*.hsl binary\n*.hsi binary\n*.hs_ binary\n*.sub binary\n*.smt binary\n*.stp binary\n*.chm binary\n*.chw binary\n*.ico binary\n*.med binary\n*.res binary\n*.png binary\n*.bmp binary\n*.exe filter=lfs diff=lfs merge=lfs -text\n*.zip filter=lfs diff=lfs merge=lfs -text\n"
  },
  {
    "path": ".gitignore",
    "content": "*.pyc\n*__pycache__\n*.DS_store\n*.swp\npyhamilton/LAY-BACKUP\ndist\n*.egg-info\n.ipynb_checkpoints\nbuild/\ndist/\n*.egg-info/\n**/tadm_report_*.html\n"
  },
  {
    "path": ".pylintrc",
    "content": "# This Pylint rcfile contains a best-effort configuration to uphold the\n# best-practices and style described in the Google Python style guide:\n#   https://google.github.io/styleguide/pyguide.html\n#\n# Its canonical open-source location is:\n#   https://google.github.io/styleguide/pylintrc\n\n[MASTER]\n\n# Files or directories to be skipped. They should be base names, not paths.\nignore=third_party\n\n# Files or directories matching the regex patterns are skipped. The regex\n# matches against base names, not paths.\nignore-patterns=\n\n# Pickle collected data for later comparisons.\npersistent=no\n\n# List of plugins (as comma separated values of python modules names) to load,\n# usually to register additional checkers.\nload-plugins=\n\n# Use multiple processes to speed up Pylint.\njobs=4\n\n# Allow loading of arbitrary C extensions. Extensions are imported into the\n# active Python interpreter and may run arbitrary code.\nunsafe-load-any-extension=no\n\n\n[MESSAGES CONTROL]\n\n# Only show warnings with the listed confidence levels. Leave empty to show\n# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED\nconfidence=\n\n# Enable the message, report, category or checker with the given id(s). You can\n# either give multiple identifier separated by comma (,) or put this option\n# multiple time (only on the command line, not in the configuration file where\n# it should appear only once). See also the \"--disable\" option for examples.\n#enable=\n\n# Disable the message, report, category or checker with the given id(s). You\n# can either give multiple identifiers separated by comma (,) or put this\n# option multiple times (only on the command line, not in the configuration\n# file where it should appear only once).You can also use \"--disable=all\" to\n# disable everything first and then reenable specific checks. For example, if\n# you want to run only the similarities checker, you can use \"--disable=all\n# --enable=similarities\". If you want to run only the classes checker, but have\n# no Warning level messages displayed, use\"--disable=all --enable=classes\n# --disable=W\"\ndisable=abstract-method,\n        apply-builtin,\n        arguments-differ,\n        attribute-defined-outside-init,\n        backtick,\n        bad-option-value,\n        basestring-builtin,\n        buffer-builtin,\n        c-extension-no-member,\n        consider-using-enumerate,\n        cmp-builtin,\n        cmp-method,\n        coerce-builtin,\n        coerce-method,\n        delslice-method,\n        div-method,\n        duplicate-code,\n        eq-without-hash,\n        execfile-builtin,\n        file-builtin,\n        filter-builtin-not-iterating,\n        fixme,\n        getslice-method,\n        global-statement,\n        hex-method,\n        idiv-method,\n        implicit-str-concat-in-sequence,\n        import-error,\n        import-self,\n        import-star-module-level,\n        inconsistent-return-statements,\n        input-builtin,\n        intern-builtin,\n        invalid-str-codec,\n        locally-disabled,\n        long-builtin,\n        long-suffix,\n        map-builtin-not-iterating,\n        misplaced-comparison-constant,\n        missing-function-docstring,\n        metaclass-assignment,\n        next-method-called,\n        next-method-defined,\n        no-absolute-import,\n        no-else-break,\n        no-else-continue,\n        no-else-raise,\n        no-else-return,\n        no-init,  # added\n        no-member,\n        no-name-in-module,\n        no-self-use,\n        nonzero-method,\n        oct-method,\n        old-division,\n        old-ne-operator,\n        old-octal-literal,\n        old-raise-syntax,\n        parameter-unpacking,\n        print-statement,\n        raising-string,\n        range-builtin-not-iterating,\n        raw_input-builtin,\n        rdiv-method,\n        reduce-builtin,\n        relative-import,\n        reload-builtin,\n        round-builtin,\n        setslice-method,\n        signature-differs,\n        standarderror-builtin,\n        suppressed-message,\n        sys-max-int,\n        too-few-public-methods,\n        too-many-ancestors,\n        too-many-arguments,\n        too-many-boolean-expressions,\n        too-many-branches,\n        too-many-instance-attributes,\n        too-many-locals,\n        too-many-nested-blocks,\n        too-many-public-methods,\n        too-many-return-statements,\n        too-many-statements,\n        trailing-newlines,\n        unichr-builtin,\n        unicode-builtin,\n        unidiomatic-typecheck,\n        unnecessary-pass,\n        unpacking-in-except,\n        useless-else-on-loop,\n        useless-object-inheritance,\n        useless-suppression,\n        using-cmp-argument,\n        wrong-import-order,\n        xrange-builtin,\n        zip-builtin-not-iterating,\n\n\n[REPORTS]\n\n# Set the output format. Available formats are text, parseable, colorized, msvs\n# (visual studio) and html. You can also give a reporter class, eg\n# mypackage.mymodule.MyReporterClass.\noutput-format=text\n\n# Put messages in a separate file for each module / package specified on the\n# command line instead of printing them on stdout. Reports (if any) will be\n# written in a file name \"pylint_global.[txt|html]\". This option is deprecated\n# and it will be removed in Pylint 2.0.\n#files-output=no\n\n# Tells whether to display a full report or only the messages\nreports=no\n\n# Python expression which should return a note less than 10 (10 is the highest\n# note). You have access to the variables errors warning, statement which\n# respectively contain the number of errors / warnings messages and the total\n# number of statements analyzed. This is used by the global evaluation report\n# (RP0004).\nevaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)\n\n# Template used to display messages. This is a python new-style format string\n# used to format the message information. See doc for all details\n#msg-template=\n\n\n[BASIC]\n\n# Good variable names which should always be accepted, separated by a comma\ngood-names=main,_\n\n# Bad variable names which should always be refused, separated by a comma\nbad-names=\n\n# Colon-delimited sets of names that determine each other's naming style when\n# the name regexes allow several styles.\nname-group=\n\n# Include a hint for the correct naming format with invalid-name\ninclude-naming-hint=no\n\n# List of decorators that produce properties, such as abc.abstractproperty. Add\n# to this list to register other decorators that produce valid properties.\nproperty-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\n\n# Regular expression matching correct function names\nfunction-rgx=^(?:(?P<exempt>setUp|tearDown|setUpModule|tearDownModule)|(?P<camel_case>_?[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_?[a-z][a-z0-9_]*))$\n\n# Regular expression matching correct variable names\nvariable-rgx=^[a-z][a-z0-9_]*$\n\n# Regular expression matching correct constant names\nconst-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$\n\n# Regular expression matching correct attribute names\nattr-rgx=^_{0,2}[a-z][a-z0-9_]*$\n\n# Regular expression matching correct argument names\nargument-rgx=^[a-z][a-z0-9_]*$\n\n# Regular expression matching correct class attribute names\nclass-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$\n\n# Regular expression matching correct inline iteration names\ninlinevar-rgx=^[a-z][a-z0-9_]*$\n\n# Regular expression matching correct class names\nclass-rgx=^_?[A-Z][a-zA-Z0-9]*$\n\n# Regular expression matching correct module names\nmodule-rgx=^(_?[a-z][a-z0-9_]*|__init__)$\n\n# Regular expression matching correct method names\nmethod-rgx=(?x)^(?:(?P<exempt>_[a-z0-9_]+__|runTest|setUp|tearDown|setUpTestCase|tearDownTestCase|setupSelf|tearDownClass|setUpClass|(test|assert)_*[A-Z0-9][a-zA-Z0-9_]*|next)|(?P<camel_case>_{0,2}[A-Z][a-zA-Z0-9_]*)|(?P<snake_case>_{0,2}[a-z][a-z0-9_]*))$\n\n# Regular expression which should only match function or class names that do\n# not require a docstring.\nno-docstring-rgx=(__.*__|main|test.*|.*test|.*Test)$\n\n# Minimum line length for functions/classes that require docstrings, shorter\n# ones are exempt.\ndocstring-min-length=10\n\n\n[TYPECHECK]\n\n# List of decorators that produce context managers, such as\n# contextlib.contextmanager. Add to this list to register other decorators that\n# produce valid context managers.\ncontextmanager-decorators=contextlib.contextmanager,contextlib2.contextmanager\n\n# Tells whether missing members accessed in mixin class should be ignored. A\n# mixin class is detected if its name ends with \"mixin\" (case insensitive).\nignore-mixin-members=yes\n\n# List of module names for which member attributes should not be checked\n# (useful for modules/projects where namespaces are manipulated during runtime\n# and thus existing member attributes cannot be deduced by static analysis. It\n# supports qualified module names, as well as Unix pattern matching.\nignored-modules=\n\n# List of class names for which member attributes should not be checked (useful\n# for classes with dynamically set attributes). This supports the use of\n# qualified names.\nignored-classes=optparse.Values,thread._local,_thread._local\n\n# List of members which are set dynamically and missed by pylint inference\n# system, and so shouldn't trigger E1101 when accessed. Python regular\n# expressions are accepted.\ngenerated-members=\n\n\n[FORMAT]\n\n# Maximum number of characters on a single line.\n#max-line-length=80\n\n# TODO(https://github.com/PyCQA/pylint/issues/3352): Direct pylint to exempt\n# lines made too long by directives to pytype.\n\n# Regexp for a line that is allowed to be longer than the limit.\nignore-long-lines=(?x)(\n  ^\\s*(\\#\\ )?<?https?://\\S+>?$|\n  ^\\s*(from\\s+\\S+\\s+)?import\\s+.+$)\n\n# Allow the body of an if to be on the same line as the test if there is no\n# else.\nsingle-line-if-stmt=yes\n\n# List of optional constructs for which whitespace checking is disabled. `dict-\n# separator` is used to allow tabulation in dicts, etc.: {1  : 1,\\n222: 2}.\n# `trailing-comma` allows a space between comma and closing bracket: (a, ).\n# `empty-line` allows space-only lines.\n#no-space-check=\n\n# Maximum number of lines in a module\nmax-module-lines=99999\n\n# String used as indentation unit.  The internal Google style guide mandates 2\n# spaces.  Google's externaly-published style guide says 4, consistent with\n# PEP 8.  Here, we use 2 spaces, for conformity with many open-sourced Google\n# projects (like TensorFlow).\nindent-string='  '\n\n# Number of spaces of indent required inside a hanging  or continued line.\nindent-after-paren=4\n\n# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.\nexpected-line-ending-format=\n\n\n[MISCELLANEOUS]\n\n# List of note tags to take in consideration, separated by a comma.\nnotes=TODO\n\n\n[STRING]\n\n# This flag controls whether inconsistent-quotes generates a warning when the\n# character used as a quote delimiter is used inconsistently within a module.\ncheck-quote-consistency=yes\n\n\n[VARIABLES]\n\n# Tells whether we should check for unused import in __init__ files.\ninit-import=no\n\n# A regular expression matching the name of dummy variables (i.e. expectedly\n# not used).\ndummy-variables-rgx=^\\*{0,2}(_$|unused_|dummy_)\n\n# List of additional names supposed to be defined in builtins. Remember that\n# you should avoid to define new builtins when possible.\nadditional-builtins=\n\n# List of strings which can identify a callback function by name. A callback\n# name must start or end with one of those strings.\ncallbacks=cb_,_cb\n\n# List of qualified module names which can have objects that can redefine\n# builtins.\nredefining-builtins-modules=six,six.moves,past.builtins,future.builtins,functools\n\n\n[LOGGING]\n\n# Logging modules to check that the string format arguments are in logging\n# function parameter format\nlogging-modules=logging,absl.logging,tensorflow.io.logging\n\n\n[SIMILARITIES]\n\n# Minimum lines number of a similarity.\nmin-similarity-lines=4\n\n# Ignore comments when computing similarities.\nignore-comments=yes\n\n# Ignore docstrings when computing similarities.\nignore-docstrings=yes\n\n# Ignore imports when computing similarities.\nignore-imports=no\n\n\n[SPELLING]\n\n# Spelling dictionary name. Available dictionaries: none. To make it working\n# install python-enchant package.\nspelling-dict=\n\n# List of comma separated words that should not be checked.\nspelling-ignore-words=\n\n# A path to a file that contains private dictionary; one word per line.\nspelling-private-dict-file=\n\n# Tells whether to store unknown words to indicated private dictionary in\n# --spelling-private-dict-file option instead of raising a message.\nspelling-store-unknown-words=no\n\n\n[IMPORTS]\n\n# Deprecated modules which should not be used, separated by a comma\ndeprecated-modules=regsub,\n                   TERMIOS,\n                   Bastion,\n                   rexec,\n                   sets\n\n# Create a graph of every (i.e. internal and external) dependencies in the\n# given file (report RP0402 must not be disabled)\nimport-graph=\n\n# Create a graph of external dependencies in the given file (report RP0402 must\n# not be disabled)\next-import-graph=\n\n# Create a graph of internal dependencies in the given file (report RP0402 must\n# not be disabled)\nint-import-graph=\n\n# Force import order to recognize a module as part of the standard\n# compatibility libraries.\nknown-standard-library=\n\n# Force import order to recognize a module as part of a third party library.\nknown-third-party=enchant, absl\n\n# Analyse import fallback blocks. This can be used to support both Python 2 and\n# 3 compatible code, which means that the block might have code that exists\n# only in one or another interpreter, leading to false positives when analysed.\nanalyse-fallback-blocks=no\n\n\n[CLASSES]\n\n# List of method names used to declare (i.e. assign) instance attributes.\ndefining-attr-methods=__init__,\n                      __new__,\n                      setUp\n\n# List of member names, which should be excluded from the protected access\n# warning.\nexclude-protected=_asdict,\n                  _fields,\n                  _replace,\n                  _source,\n                  _make\n\n# List of valid names for the first argument in a class method.\nvalid-classmethod-first-arg=cls,\n                            class_\n\n# List of valid names for the first argument in a metaclass class method.\nvalid-metaclass-classmethod-first-arg=mcs\n\n\n[EXCEPTIONS]\n\n# Exceptions that will emit a warning when being caught. Defaults to\n# \"Exception\"\novergeneral-exceptions=StandardError,\n                       Exception,\n                       BaseException\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n  \"editor.tabSize\": 2,\n  \"files.trimTrailingWhitespace\": true,\n  \"cSpell.words\": [\"iswap\", \"pyhamilton\", \"subresource\"],\n  \"python.linting.pylintEnabled\": true,\n  \"python.testing.pytestArgs\": [\"pyhamilton\"],\n  \"python.testing.unittestEnabled\": false,\n  \"python.testing.pytestEnabled\": true,\n  \"python.testing.autoTestDiscoverOnSaveEnabled\": true,\n  \"editor.rulers\": [100],\n  \"editor.formatOnSave\": true,\n  \"files.exclude\": {\n    \"**/__pycache__\": true\n  }\n}\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 dgretton\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "PKG-INFO",
    "content": "Metadata-Version: 2.1\nName: pyhamilton\nVersion: 1.48\nSummary: Python for Hamilton liquid handling robots\nHome-page: https://github.com/dgretton/pyhamilton.git\nAuthor: Dana Gretton\nAuthor-email: dgretton@mit.edu\nLicense: MIT\nLicense-File: LICENSE\n\nForthcoming due to markdown incompatibility\n"
  },
  {
    "path": "README.md",
    "content": "# PyHamilton\n\n**Python for Hamilton liquid handling robots**\n\nHamilton software only works on Windows, so the same goes for PyHamilton.\n\nDeveloped 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.\n\nPlease 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.\n\n\n**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. \n\n## Example usage\n```python\nif __name__ == \"__main__\":\n\n    from pyhamilton import HamiltonInterface, INITIALIZE\n    with HamiltonInterface() as ham_int:\n    \n        ham_int.wait_on_response(ham_int.send_command(INITIALIZE))\n```\n\n## Guides\n\nHere 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.\n\n[NGS Protocol Library](https://github.com/stefangolas/ngs-protocols)\n\n## Documentation\n\n[Available online](https://dgretton.github.io/pyhamilton-docs/).\n\n## Tutorial Video\nhttps://www.youtube.com/watch?v=G92neaVfvyw\n\n## Installation\n\n1. **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\n2. **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.\n3. **Make sure git is installed.** https://git-scm.com/download/win\n4. **Make sure you have .NET framework 4.0 or higher installed.** https://www.microsoft.com/en-us/download/details.aspx?id=17851\n5. [**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.\n6. **Update your pip and setuptools.**\n    ```\n    > python -m pip install --upgrade pip\n    > pip install --upgrade setuptools\n    ```\n7. **Install pyhamilton.**\n   \n   ```\n   git clone https://github.com/dgretton/pyhamilton\n   cd pyhamilton\n   pip install -e .\n   ```\n   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. \n    \n8. **Run the pyhamilton autoconfig tool from the command line.** \nThis 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.\n\n    ```\n    pyhamilton-configure\n    ``` \n\n    Press accept to proceed with the bundled installers.\n    \n9. **Test your PyHamilton installation** </br>\nThe easiest way to test your PyHamilton installation is by running the following in your terminal\n\n    ```\n    mkdir new-project\n    cd new-project\n    pyhamilton-new-project\n    py robot_method.py\n    ```\n\n10. **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`\n\n\n\n## Installation Troubleshooting\n1. 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.\n\n2. 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. \n\n3. If your initialization hangs (such as on initial_error_example.py), try these steps:\n    </br>a. Make sure you don't have any other program running which is communicating with the robot e.g. Venus run control\n    </br>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.\n\n4. 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.\n\n## Applications\n\n- [A high-throughput platform for feedback-controlled directed evolution](https://www.biorxiv.org/content/10.1101/2020.04.01.021022v1), _preprint_\n\n- [Flexible open-source automation for robotic bioengineering](https://www.biorxiv.org/content/10.1101/2020.04.14.041368v1), _preprint_\n\n\n_Developed for the Sculpting Evolution Group at the MIT Media Lab_\n"
  },
  {
    "path": "imgs/README.md",
    "content": "# PyHamilton Reference Guide\nAuthor: Stefan Golas _(Contact stefanmgolas@gmail.com)_\n\n## Contents\n- Intro\n- Installation\n- Your First PyHamilton Method\n- Breaking it Down\n- How PyHamilton Works\n- Expanding The API\n## Intro\nPyHamilton 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.\n\n ## Installation\n\n1. **Install and test the standard Hamilton software suite for your system.**\n2. **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.\n3. **Make sure git is installed.** https://git-scm.com/download/win\n4. **Make sure you have .NET framework 4.0 or higher installed.** https://www.microsoft.com/en-us/download/details.aspx?id=17851\n5. **Update your pip and setuptools.**\n    ```\n    > python -m pip install --upgrade pip\n    > pip install --upgrade setuptools\n    ```\n6. **Install pyhamilton.**\n   \n    ```\n    pip install pyhamilton\n    ```\n    \n7. **Run the pyhamilton autoconfig tool from the command line.** \n\n    ```\n    pyhamilton-config\n    ``` \n\n    Press accept to proceed with the bundled installers.\n\n## Your First PyHamilton Method\n\nHere is how to write your first PyHamilton method.\n\nFirst, 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. <br>\n![Deck layout](https://raw.githubusercontent.com/dgretton/pyhamilton/master/imgs/decklay.png) \n_deck.lay_\n\nNext, create a file named `robot_method.py` in your preferred text editor. Inside this file, type \n\n``` \nfrom 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)\n ```\n\n\n```\nmy-project\n│   deck.lay\n│   robot_method.py \n```\n_Project directory structure_ \n\nIn `robot_method.py`, \n\n<br>\n<br>\n<br>\n\n```\nmy-project\n│   README.md\n│   file001.txt    \n│\n└───folder1\n│   │   file011.txt\n```\n"
  },
  {
    "path": "imgs/text",
    "content": "\n"
  },
  {
    "path": "pandoc_pdf.sh",
    "content": " pandoc --from=markdown+abbreviations+tex_math_single_backslash  \\\n           --pdf-engine=xelatex --variable=mainfont:\"DejaVu Sans\"   \\\n           --toc --toc-depth=4 --output=../pyhamilton-docs/pyhamilton-doc.pdf  \\\n           build/pdf-intermediate.md\n\n"
  },
  {
    "path": "pyhamilton/__init__.py",
    "content": "\"\"\"\nPyhamilton\n\"\"\"\nimport os\nimport shutil\nfrom os.path import dirname, join, abspath\nPACKAGE_PATH = abspath(dirname(__file__))\nLAY_BACKUP_DIR = join(PACKAGE_PATH, 'LAY-BACKUP')\nif not os.path.exists(LAY_BACKUP_DIR):\n    os.mkdir(LAY_BACKUP_DIR)\nOEM_STAR_PATH = join(PACKAGE_PATH, 'star-oem')\nif not (os.path.exists(OEM_STAR_PATH)\n\t\tand os.path.exists(os.path.join(OEM_STAR_PATH, 'RunHSLExecutor.dll'))\n\t\tand os.path.exists(os.path.join(OEM_STAR_PATH, 'HSLHttp.dll'))):\n    raise FileNotFoundError('pyhamilton requires .../site-packages/pyhamilton/STAR-OEM, distributed separately.')\nOEM_LAY_PATH = join(OEM_STAR_PATH, 'VENUS_Method', 'STAR_OEM_Test.lay')\nOEM_HSL_PATH = join(OEM_STAR_PATH, 'VENUS_Method', 'STAR_OEM_noFan.hsl')\nOEM_RUN_EXE_PATH = 'C:\\\\Program Files (x86)\\\\HAMILTON\\\\Bin\\\\HxRun.exe'\n\nfrom .interface import *\nfrom .oemerr import *\nfrom .liquid_handling_wrappers import *\nfrom .devices import *\nfrom .resources import *\nfrom .liquid_class_db import *\nfrom .consumables import *\nfrom .ngs import *\nfrom .liquid_classes import *\n\n\n\nthis_file_dir = os.path.dirname(os.path.abspath(__file__))\nPACKAGE_DIR = os.path.abspath(os.path.join(this_file_dir))\nLIBRARY_DIR = os.path.join(PACKAGE_DIR, 'library')\nTEMPLATE_DIR = os.path.join(PACKAGE_DIR, 'templates/basic_template')\nAI_TEMPLATE_DIR = os.path.join(PACKAGE_DIR, 'templates/ai_template')\nEXE_DIR = os.path.join(PACKAGE_DIR, 'bin')\n\nexe_http = os.path.join(PACKAGE_DIR, 'bin', 'Hamilton HSLHttp Library Installer Version 2.7.exe')\nexe_json = os.path.join(PACKAGE_DIR, 'bin', 'HSLJson Library v2.0.1 Installer.exe')\nexe_pH = os.path.join(PACKAGE_DIR, 'bin', 'Hamilton pH Module v2.2.exe')\nexe_mpe = os.path.join(PACKAGE_DIR, 'bin', 'Hamilton MPE HSL Driver.msi')\n\n\n\ndef full_paths_list(directory_abs_path):\n    list_files = os.listdir(directory_abs_path)\n    list_file_paths = [directory_abs_path + '\\\\' + file for file in list_files]\n    return list_file_paths\n\ndef recursive_copy(source_dir, target_dir):\n    source_list = full_paths_list(source_dir)\n    for file in source_list:\n        if os.path.isfile(file):\n            target_file = os.path.join(target_dir, os.path.basename(file))\n            if not os.path.exists(target_file):\n                shutil.copy(file, target_file)\n        if os.path.isdir(file):\n            target_subdir = os.path.join(target_dir, os.path.basename(file))\n            if not os.path.exists(target_subdir):\n                os.mkdir(target_subdir)\n            recursive_copy(file, target_subdir)\n\n\ndef autoconfig():\n    input(\"\"\"\\n This tool automatically configures your PyHamilton installation by copying library files from pyhamilton/library\ninto C:/Program Files (x86)/HAMILTON/Library. It is recommended you back up your Hamilton installation\nfolder in the rare event of  a file overwrite. Press enter to continue, or press ctrl+c to cancel the\ninstallation process.\"\"\")\n    for filename in os.listdir(EXE_DIR):\n        file_path = os.path.join(EXE_DIR, filename)\n        os.startfile(file_path)\n    \n    hamilton_lib_dir = os.path.abspath('C:/Program Files (x86)/HAMILTON/Library')\n    print(\"Copying files to Hamilton library\")\n    print(LIBRARY_DIR)\n    \n    recursive_copy(LIBRARY_DIR, hamilton_lib_dir)        \n    print(\"Configuration completed\")\n\n    user_home = os.path.expanduser(\"~\")\n    config_dir = os.path.join(user_home, \".pyhamilton\")\n    os.makedirs(config_dir, exist_ok=True)\n\n    source_defaults_path = os.path.join(PACKAGE_DIR, \"defaults\", \"defaults.json\")\n    target_defaults_path = os.path.join(config_dir, \"defaults.json\")\n\n    if not os.path.exists(source_defaults_path):\n        print(f\"ERROR: Could not find source defaults file at: {source_defaults_path}\")\n    else:\n        shutil.copyfile(source_defaults_path, target_defaults_path)\n        print(f\"Copied default config to: {target_defaults_path}\")\n\n    print(\"Configuration completed\")\n\n\n\n\ndef create_project():\n    current_dir = os.path.abspath(os.getcwd())\n    print(\"Creating project template\")\n    recursive_copy(TEMPLATE_DIR, current_dir)\n\ndef create_ai_project():\n    current_dir = os.path.abspath(os.getcwd())\n    print(\"Creating AI assistant project template\")\n    recursive_copy(AI_TEMPLATE_DIR, current_dir)"
  },
  {
    "path": "pyhamilton/consumables/__init__.py",
    "content": "from .consumables import (ReagentTrackedFalconCarrier24, ReagentTrackedPlate96, ReagentTrackedReservoir60mL, \n                          ReagentTrackedEppiCarrier32, ReagentTrackedBulkPlate, ReagentTrackedPlate24, tracked_volume_aspirate_96,\n                          tracked_volume_aspirate, generate_reagent_summary, generate_tip_use_summary)"
  },
  {
    "path": "pyhamilton/consumables/consumables.py",
    "content": "from ..interface import HamiltonInterface\nfrom ..resources import DeckResource, ResourceType,layout_item, LayoutManager\nfrom ..resources import BulkReagentPlate, FalconCarrier24, EppiCarrier32, Reservoir60mL, Plate24, Plate96\nfrom pathlib import Path\nimport json\n\nclass VolumeConsumptionTracker:\n    def __init__(self, num_positions):\n        self.initial_volumes = {k:v for k,v in [(idx, 0) for idx in range(num_positions)]}\n        self.volumes = self.initial_volumes.copy()\n\n    def aspirate_volume(self, well_index, volume):\n        self.volumes[well_index] += volume\n\nclass TrackedContainer:\n    \"\"\"Base class for any tracked container type with volume bookkeeping.\"\"\"\n\n    def __init__(self):\n        pass\n\n    def aspirate_volume(self, well_index, volume):\n        \"\"\"Subtract volume from one or more wells. \n        Must be overridden in subclasses.\"\"\"\n        raise NotImplementedError(\n            f\"{self.__class__.__name__} must implement aspirate_volume()\"\n        )\n\nclass TrackedReagentVessel(TrackedContainer):\n    def __init__(self, *args, **kwargs):\n        self.reagent_map = {}\n   \n    def assign_reagent_map(self, reagent_name: str, positions: list[int]) -> list[tuple[TrackedContainer, int]]:\n        '''\n        Assigns reagent positions for a specific reagent and returns the tuple of (container, position) for each position\n        so we can pass the output to aspirate functions.\n        '''\n        self.reagent_map[reagent_name] = positions\n        return self.reagent_positions(reagent_name)\n    \n\n    \n    def reset_volumes(self):\n        \"\"\"\n        Resets all volume trackers in the container to 0.\n        \"\"\"\n        self.volumes = {pos: 0 for pos in self.volumes}\n\n    def calculate_required_reagent_volume(self, reagent_name: str):\n        # Use the negative volume from the tracker to determine reagent consumption for this tracked resource\n        # return -self.volumes[self.reagent_map[reagent_name]]\n        # Above won't work because self.reagent_map[reagent_name] is a list of positions, we want to do a list comprehension\n\n        # Right now this only handles single-well reagents but should be extended to handle reagents distributed across\n        # Multiple wells\n        return -sum(self.volumes[pos] for pos in self.reagent_map[reagent_name]) + self.dead_volume\n\n    def all_required_reagent_volumes(self):\n        return {self.layout_name(): {reagent: self.calculate_required_reagent_volume(reagent) for reagent in self.reagent_map}}\n\n    def reagent_positions(self, reagent_name):\n        # List comprehension of form [(self, pos) for pos in self.reagent_map[reagent_name]]\n        return [(self, pos) for pos in self.reagent_map[reagent_name]]\n    \n\nclass ReagentTrackedPlate96(Plate96, TrackedReagentVessel):\n    def __init__(self, *args, **kwargs):\n        Plate96.__init__(self, *args, **kwargs)\n        TrackedReagentVessel.__init__(self)\n        self.volumes = {k:v for k,v in [(idx, 0) for idx in range(96)]}\n        self.dead_volume = kwargs.get('dead_volume', 10) # uL\n\n\n    def aspirate_volume(self, well_index, volume):\n        self.volumes[well_index] -= volume\n    \nclass ReagentTrackedBulkPlate(BulkReagentPlate, TrackedReagentVessel):\n    def __init__(self, *args, **kwargs):\n        Plate96.__init__(self, *args, **kwargs)\n        TrackedReagentVessel.__init__(self)\n        self.volumes = {0: 0}\n        self.dead_volume = 100\n\n    # The plate is a single container, so we subtract all volumes from one element in the tracker. This overrides the base method.\n    def aspirate_volume(self, well_index, volume):\n        self.volumes[0] -= volume\n    \n    # We return the plate object itself so we can pass it to 96 channel commands. This overrides the base method\n    def assign_reagent_map(self, reagent_name, positions):\n        self.reagent_map[reagent_name] = positions\n        return self\n    \n    def calculate_required_reagent_volume(self, reagent_name):\n        # Use the negative volume from the tracker to determine reagent consumption for this tracked resource\n        return -self.volumes[0] + self.dead_volume\n\nclass ReagentTrackedPlate24(Plate24, TrackedReagentVessel):\n    def __init__(self, *args, **kwargs):\n        Plate24.__init__(self, *args, **kwargs)\n        TrackedReagentVessel.__init__(self)\n        self.volumes = {k:v for k,v in [(idx, 0) for idx in range(24)]}\n        self.dead_volume = kwargs.get('dead_volume', 20) # uL\n\n\n    def aspirate_volume(self, well_index, volume):\n        self.volumes[well_index] -= volume\n\nclass ReagentTrackedReservoir60mL(Reservoir60mL, TrackedReagentVessel):\n    def __init__(self, *args, **kwargs):\n        Reservoir60mL.__init__(self, *args, **kwargs)\n        TrackedReagentVessel.__init__(self)\n        self.volumes = {0: 0}\n        self.dead_volume = kwargs.get('dead_volume', 200) # uL\n\n    # The 60mL trough is a single well, so we subtract all volumes from one element in the tracker. This overrides the base method.\n    def aspirate_volume(self, well_index, volume):\n        self.volumes[0] -= volume\n\n    def calculate_required_reagent_volume(self, reagent_name):\n        # Use the negative volume from the tracker to determine reagent consumption for this tracked resource\n        return -self.volumes[0] + self.dead_volume\n\n\n    def height_to_volume(self, height):\n        pass\n\nclass ReagentTrackedFalconCarrier24(FalconCarrier24, TrackedReagentVessel):\n    def __init__(self, *args, **kwargs):\n        FalconCarrier24.__init__(self, *args, **kwargs)\n        TrackedReagentVessel.__init__(self)\n        self.volumes = {k:v for k,v in [(idx, 0) for idx in range(24)]}\n        self.dead_volume = kwargs.get('dead_volume', 10) # uL\n\n\n    def aspirate_volume(self, well_index, volume):\n        self.volumes[well_index] -= volume\n\nclass ReagentTrackedEppiCarrier32(EppiCarrier32, TrackedReagentVessel):\n    def __init__(self, *args, **kwargs):\n        EppiCarrier32.__init__(self, *args, **kwargs)\n        TrackedReagentVessel.__init__(self)\n        self.volumes = {k:v for k,v in [(idx, 0) for idx in range(32)]}\n        self.dead_volume = kwargs.get('dead_volume', 10) # uL\n\n\n    def aspirate_volume(self, well_index, volume):\n        self.volumes[well_index] -= volume\n\n\n# Helper function to get the class name of an object\ndef get_class_name(obj):\n    \"\"\"Returns the name of the object's class as a string.\"\"\"\n    return type(obj).__name__\n\ndef generate_reagent_summary(tracked_vessels: list, units_default: str = \"uL\", output_file: str = None):\n    \"\"\"\n    Generates a summary of reagent consumption from a list of tracked vessels.\n    Now also includes vessels with custom labels even if they have no reagent consumption.\n    \"\"\"\n    summary = {\"units_default\": units_default}\n    \n    for vessel in tracked_vessels:\n        vessel_name = vessel.layout_name()\n\n        if isinstance(vessel, TrackedReagentVessel):\n            vessel_data = vessel.all_required_reagent_volumes()[vessel_name]\n        else:\n            vessel_data = {}\n\n        # Check if vessel has a custom label\n        has_custom_label = hasattr(vessel, 'custom_label') and vessel.custom_label is not None\n        \n        # Skip vessels with no reagents AND no custom label\n        if not has_custom_label and (not vessel_data or all(vol <= 0 for vol in vessel_data.values())):\n            continue\n        \n        summary[vessel_name] = {\n            \"class_name\": get_class_name(vessel),\n            \"positions\": {}\n        }\n        \n        # Add custom label if present\n        if has_custom_label:\n            summary[vessel_name][\"custom_label\"] = vessel.custom_label\n        \n        # For each reagent in this vessel, find which positions it occupies\n        for reagent_name, total_volume in vessel_data.items():\n            if total_volume <= 0:\n                continue\n                \n            # Get the positions where this reagent is located\n            reagent_positions = vessel.reagent_map.get(reagent_name, [])\n            \n            for pos in reagent_positions:\n                # Get the volume consumed from this specific position\n                pos_volume = -vessel.volumes.get(pos, 0) if vessel.volumes.get(pos, 0) < 0 else 0\n                \n                if pos_volume > 0:\n                    summary[vessel_name][\"positions\"][pos] = {\n                        \"reagent\": reagent_name,\n                        \"volume\": pos_volume,\n                        \"unit\": \"uL\"\n                    }\n    \n    # Write to JSON file if output_file is specified\n    if output_file:\n        Path(output_file).parent.mkdir(parents=True, exist_ok=True)\n        with open(output_file, 'w', encoding='utf-8') as f:\n            json.dump(summary, f, indent=2, ensure_ascii=False)\n        print(f\"Reagent summary written to {output_file}\")\n    \n    return summary\n\n\ndef generate_tip_use_summary(tracked_tips_list, output_file=None):\n    \"\"\"\n    Generate tip consumption summary data from TrackedTips objects.\n    \n    Parameters\n    ----------\n    tracked_tips_list : list[TrackedTips]\n        List of TrackedTips objects to analyze\n        \n    Returns\n    -------\n    dict\n        Summary data structure with consumption details for LoadingVis\n    \"\"\"\n    from datetime import datetime\n    \n    report_data = {\n        \"report_generated\": datetime.now().isoformat(),\n        \"tip_trackers\": {},\n        \"summary\": {\n            \"total_trackers\": len(tracked_tips_list),\n            \"total_tips_available\": 0,\n            \"total_tips_consumed\": 0,\n            \"total_tips_capacity\": 0,\n            \"overall_consumption_rate\": 0.0\n        }\n    }\n    \n    for i, tracker in enumerate(tracked_tips_list, 1):\n        # Calculate consumption metrics for this tracker\n        total_tips = tracker.total_tips()\n        remaining_tips = tracker.count_remaining()\n        consumed_tips = total_tips - remaining_tips\n        consumption_rate = (consumed_tips / total_tips * 100) if total_tips > 0 else 0\n        \n        # Update summary totals\n        report_data[\"summary\"][\"total_tips_capacity\"] += total_tips\n        report_data[\"summary\"][\"total_tips_available\"] += remaining_tips\n        report_data[\"summary\"][\"total_tips_consumed\"] += consumed_tips\n        \n        # Analyze by rack\n        rack_details = []\n        rack_start_idx = 0\n        \n        for rack in tracker.tip_racks:\n            rack_total = rack._num_items\n            rack_occupied = sum(1 for j in range(rack_total) \n                              if tracker.is_occupied(rack_start_idx + j))\n            rack_consumed = rack_total - rack_occupied\n            rack_consumption_rate = (rack_consumed / rack_total * 100) if rack_total > 0 else 0\n            \n            rack_info = {\n                \"name\": rack.layout_name(),\n                \"total_tips\": rack_total,\n                \"tips_consumed\": rack_consumed,\n                \"tips_remaining\": rack_occupied,\n                \"consumption_rate\": round(rack_consumption_rate, 1)\n            }\n            rack_details.append(rack_info)\n            rack_start_idx += rack_total\n        \n        # Store tracker data\n        tracker_data = {\n            \"tracker_id\": tracker.tracker_id,\n            \"volume_capacity\": tracker.volume_capacity,\n            \"total_tips\": total_tips,\n            \"tips_consumed\": consumed_tips,\n            \"tips_remaining\": remaining_tips,\n            \"consumption_rate\": round(consumption_rate, 1),\n            \"num_racks\": len(tracker.tip_racks),\n            \"racks\": rack_details\n        }\n        report_data[\"tip_trackers\"][f\"tracker_{i}\"] = tracker_data\n    \n    # Calculate overall summary\n    total_capacity = report_data[\"summary\"][\"total_tips_capacity\"]\n    total_consumed = report_data[\"summary\"][\"total_tips_consumed\"]\n    if total_capacity > 0:\n        overall_rate = (total_consumed / total_capacity * 100)\n        report_data[\"summary\"][\"overall_consumption_rate\"] = round(overall_rate, 1)\n\n    if output_file:\n        with open(output_file, \"w\") as f:\n            json.dump(report_data, f)\n\n    return report_data\n\n\ndef tracked_volume_aspirate(ham_int: HamiltonInterface, plate_poss: list[tuple[TrackedContainer, int]], vols: list, **kwargs):\n    response = ham_int.aspirate(plate_poss, vols, **kwargs)\n    filtered_pairs = [(pos, vol) for pos, vol in zip(plate_poss, vols) if pos is not None]\n    plate_poss, vols = zip(*filtered_pairs) if filtered_pairs else ([], [])\n    \n    try:\n        for (plate, well_index), vol in zip(plate_poss, vols):\n            plate.aspirate_volume(well_index, vol)\n    except AttributeError:\n        return response\n    \n    return response\n\ndef tracked_volume_aspirate_96(ham_int: HamiltonInterface, plate: TrackedContainer, vol: int, **kwargs):\n    ham_int.aspirate_96(plate, vol, **kwargs)\n    \n    try: # In case the plate doesn't implement aspirate_volume, we just skip it\n        for well_idx in range(96):\n            plate.aspirate_volume(well_idx, vol)\n    except AttributeError:\n        return"
  },
  {
    "path": "pyhamilton/defaultcmds.py",
    "content": "\"\"\"\nBuilt-in commands, definitions of their parameters, and defaults.\n\"\"\"\n\n_channel_patt_16 = '1'*8 + '0'*8\n_channel_patt_96 = '1'*96\n\n_fan_port = 6\n# on module load, scan COM ports to see if the usual fan COM number (6) has been reassigned by the OS\ntry:\n    import serial.tools.list_ports\n    for port in serial.tools.list_ports.comports():\n        port_parse = str(port).split(' ')\n        if 'Isolated' in port_parse and 'RS-485' in port_parse:\n            _fan_port = int(port_parse[0][-1])\nexcept Exception:\n    pass\n\nfrom .defaults import defaults\n\ncfg = defaults()\n\n\ndefaults_by_cmd = { # 'field':None indicates field is required when assembling command\n\n    'initialize':('INITIALIZE', {\n        'initializeAlways':0\n    }),\n\n    'channelTipPickUp':('PICKUP', {\n        'tipSequence':'', # (string) leave empty if you are going to provide specific labwarePositions below\n        'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above.'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n        'channelVariable':_channel_patt_16, # (string)  channel pattern e.g. '11110000'\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement,  1=Autoincrement\n        'channelUse':1 # (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern\n    }),\n\n    'channelTipEject':('EJECT', {\n        'wasteSequence':'', # (string) leave empty if you are going to provide specific labware-positions below or ejecting to default waste\n        'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above.'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n        'channelVariable':_channel_patt_16, # (string) channel pattern e.g. \"11110000\"\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement,  1=Autoincrement.  Value omitted if ejecting to default waste\n        'channelUse':1, # (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern\n        'useDefaultWaste':0, # (integer) 0=eject to custom waste sequence,  1=Use default waste\n        'xDisplacement':0.0,\n        'yDisplacement':0.0,\n        'zDisplacement':0.0\n    }),\n\n    'channelAspirate':('ASPIRATE', {\n        'aspirateSequence':'', # (string) leave empty if you are going to provide specific labware-positions below\n        'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n        '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]\n        'channelVariable':_channel_patt_16, # (string) channel pattern e.g. \"11110000\"\n        'liquidClass':None, # (string)\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement,  1=Autoincrement\n        'channelUse':1, # (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern\n        'aspirateMode':0, # (integer) 0=Normal Aspiration, 1=Consecutive (don´t aspirate blowout), 2=Aspirate all \n        'capacitiveLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition\n        'pressureLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From liquid class definition\n        'liquidFollowing':0, # (integer) 0=Off , 1=On\n        'submergeDepth':2.0, # (float) mm of immersion below liquid´s surface to start aspiration when using LLD\n        'liquidHeight':1.0, # (float) mm above container´s bottom to start aspiration when not using LLD\n        'maxLLdDifference':0.0, # (float) max mm height different between cLLD and pLLD detected liquid levels\n        'mixCycles':0, # (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp)\n        'mixPosition':0.0, # (float) additional immersion mm below aspiration position to start mixing\n        'mixVolume':0.0, # (float) mix volume\n        'xDisplacement':0.0,\n        'yDisplacement':0.0,\n        'zDisplacement':0.0,\n        'airTransportRetractDist':10.0, # (float) mm to move up in Z after finishing the aspiration at a fixed height before aspirating 'transport air'\n        'touchOff':0, # (integer) 0=Off , 1=On\n        'aspPosAboveTouch':0.0 # (float)  mm to move up in Z after touch off detects the bottom before aspirating liquid\n    }),\n\n    'channelDispense':('DISPENSE', {\n        'dispenseSequence':'', # (string) leave empty if you are going to provide specific labware-positions below\n        'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n        '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]\n        'channelVariable':_channel_patt_16, # (string) channel pattern e.g. \"11110000\"\n        'liquidClass':None, # (string)\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement,  1=Autoincrement\n        'channelUse':1, # (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern\n        '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\n        'capacitiveLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition\n        'liquidFollowing':0, # (integer) 0=Off , 1=On\n        'submergeDepth':2.0, # (float) mm of immersion below liquid´s surface to start dispense when using LLD\n        'liquidHeight':1.0, # (float) mm above container´s bottom to start dispense when not using LLD\n        'mixCycles':0, # (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp)\n        'mixPosition':0.0, # (float) additional immersion mm below dispense position to start mixing\n        'mixVolume':0.0, # (float) mix volume\n        'xDisplacement':0.0,\n        'yDisplacement':0.0,\n        'zDisplacement':0.0,\n        'airTransportRetractDist':10.0, # (float) mm to move up in Z after finishing the dispense at a fixed height before aspirating 'transport air'\n        'touchOff':0, # (integer) 0=Off , 1=On\n        'dispPositionAboveTouch':0.0, # (float) mm to move up in Z after touch off detects the bottom, before dispense\n        'zMoveAfterStep':0, # (integer) 0=normal, 1=Minimized (Attention!!! this depends on labware clearance height, can crash). \n        'sideTouch':0 # (integer) 0=Off , 1=On\n    }),\n\n    'mph96TipPickUp':('PICKUP96', {\n        'tipSequence':'', # (string) leave empty if you are going to provide specific labware-positions below\n        'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' Must contain 96 values\n        'channelVariable':_channel_patt_96, # (string) channel Variable e.g. \"11110000....\" . Must contain 96 values\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement,  1=Autoincrement\n        'reducedPatternMode':0 # (integer) 0=All (not reduced), 1=One channel, 2=One row  3=One column\n    }),\n\n    'mph96TipEject':('EJECT96', {\n        'wasteSequence':'', # (string) leave empty if you are going to provide specific labware-positions below or ejecting to default waste\n        'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n        'channelVariable':_channel_patt_96, # (string) channel Variable e.g. \"11110000....\" . Must contain 96 values\n        'sequenceCounting':0, # (integer)  0=don´t autoincrement,  1=Autoincrement.  Value omitted if ejecting to default waste\n        'tipEjectToKnownPosition':0 # (integer) 0=Eject to specified sequence position,  1=Eject on tip pick up position, 2=Eject on default waste\n    }),\n\n    'mph96Aspirate':('ASPIRATE96', {\n        'aspirateSequence':'', # (string) leave empty if you are going to provide specific labware-positions below\n        'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. LabwareId1, positionId1; LabwareId2,positionId2; ....\n        '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.\n        'channelVariable':_channel_patt_96, # (string) channel Variable e.g. \"11110000....\" . Must contain 96 values\n        'liquidClass':None, # (string)\n        'sequenceCounting':0, # (integer)  0=don´t autoincrement,  1=Autoincrement\n        'aspirateMode':0, # (integer) 0=Normal Aspiration, 1=Consecutive (don´t aspirate blowout), 2=Aspirate all \n        'capacitiveLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition\n        'liquidFollowing':0, # (integer) 0=Off , 1=On\n        'submergeDepth':2.0, # (float) mm of immersion below liquid´s surface to start aspiration when using LLD\n        'liquidHeight':1.0, # (float) mm above container´s bottom to start aspiration when not using LLD\n        'mixCycles':0, # (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp)\n        'mixPosition':0.0, # (float) additional immersion mm below aspiration position to start mixing\n        'mixVolume':0.0, # (float) mix volume\n        'airTransportRetractDist':10.0 # (float) mm to move up in Z after finishing the aspiration at a fixed height before aspirating 'transport air'\n    }),\n\n    'mph96Dispense':('DISPENSE96', {\n        'dispenseSequence':'', # (string) leave empty if you are going to provide specific labware-positions below\n        'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. LabwareId1, positionId1; LabwareId2,positionId2; ....\n        '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.\n        'channelVariable':_channel_patt_96, # (string) channel Variable e.g. \"11110000....\" . Must contain 96 values\n        'liquidClass':None, # (string) \n        'sequenceCounting':0, # (integer)  0=don´t autoincrement,  1=Autoincrement\n        '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\n        'capacitiveLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition\n        'liquidFollowing':0, # (integer)  0=Off , 1=On\n        'submergeDepth':2.0, # (float) mm of immersion below liquid´s surface to start dispense when using LLD\n        'liquidHeight':1.0, # (float) mm above container´s bottom to start dispense when not using LLD\n        'mixCycles':0, # (integer)  number of mixing cycles (1 cycle = 1 asp + 1 disp)\n        'mixPosition':0.0, # (float)  additional immersion mm below dispense position to start mixing\n        'mixVolume':0.0, # (float)  mix volume\n        'airTransportRetractDist':10.0, # (float) mm to move up in Z after finishing the dispense at a fixed height before aspirating 'transport air'\n        'zMoveAfterStep':0, # (integer) 0=normal, 1=Minimized (Attention!!! this depends on labware clearance height, can crash). \n        'sideTouch':0 # (integer) 0=Off , 1=On\n    }),\n\n    'iSwapGet':('ISWAP_GET', {\n        'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below\n        'plateLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n        '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\n        'lidLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n        'toolSequence':'', # sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1;\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement plate sequence,  1=Autoincrement\n        'movementType':0, # (integer) 0=To carrier, 1=Complex movement\n        'transportMode':0, # (integer) 0=Plate only, 1=Lid only ,2=Plate with lid\n        'gripForce':4, # (integer) 2 (minimum) ... 9 (maximum)\n        'inverseGrip':0, # (integer) 0=Off, 1=On\n        'collisionControl':0, # (integer) 0=Off, 1=On\n        'gripMode':1, # (integer) 0=Small side, 1=Large side\n        'retractDistance':0.0, # (float) retract distance [mm] (only used if 'movement type' is set to 'complex movement')\n        'liftUpHeight':20.0, # (float) lift-up distance [mm] (only used if 'movement type' is set to 'complex movement')\n        'gripWidth':123.7, # (float) grip width when closed [mm]\n        'tolerance':2.0, # (float) tolerance [mm]\n        'gripHeight':3.0, # (float) height to grip above bottom of labware [mm]\n        'widthBefore':130.0, # (float) grip width when opened before grip [mm]\n        'labwareOrientation':1\n    }),\n\n    'iSwapPlace':('ISWAP_PLACE', {\n        'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below\n        'plateLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n        '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\n        'lidLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n        'toolSequence':'', # sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1;\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement plate sequence,  1=Autoincrement\n        'movementType':0, # (integer) 0=To carrier, 1=Complex movement\n        'transportMode':0, # (integer) 0=Plate only, 1=Lid only ,2=Plate with lid\n        'collisionControl':0, # (integer) 0=Off, 1=On\n        'retractDistance':0.0, # (float) retract distance [mm] (only used if 'movement type' is set to 'complex movement')\n        'liftUpHeight':20.0, # (float) lift-up distance [mm] (only used if 'movement type' is set to 'complex movement')\n        'labwareOrientation':1\n    }),\n    'iSwapMove':('ISWAP_MOVE',{\n        'plateSequence':'',\n        'plateLabwarePositions':'',\n        'collisionControl':0,\n        'gripMode':1\n    }),\n\n    'HxFanSet':('HEPA', {\n        'deviceNumber':_fan_port, # (integer) COM port number of fan\n        'persistant':1, # (integer) 0=don´t keep fan running after method exits, 1=keep settings after method exits\n        'fanSpeed':None, # (float) set percent of maximum fan speed\n        'simulate':0 #(integer) 0=normal mode, 1=use HxFan simulation mode\n    }),\n\n    'CORE96WashEmpty':('WASH96_EMPTY', {\n        'refillAfterEmpty':0, # (integer) 0=Don't refill, 1=Refill both chambers, 2=Refill chamber 1 only, 3=Refill chamber 2 only\n        'chamber1WashLiquid':0, # (integer) 0=Liquid 1 (red container), 1=liquid 2 (blue container)\n        'chamber1LiquidChange':0, # (integer) 0=No, 1=Yes TODO: What does this mean?\n        'chamber2WashLiquid':0, # (integer) 0=Liquid 1 (red container), 1=liquid 2 (blue container)\n        'chamber2LiquidChange':0, # (integer) 0=No, 1=Yes TODO: What does this mean?\n    }),\n\n    'gripGet':('GRIP_GET', {\n        'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below\n        'plateLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n        '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\n        'lidLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n        'toolSequence': cfg.core_gripper_sequence, # sequence name of the CO-RE Gripper\n        'gripForce':3, # (integer) 0-9, from lowest to highest\n        'gripperToolChannel':8, # specifies the higher of two consecutive integers representing the CO-RE gripper channels.\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement plate sequence,  1=Autoincrement\n        'gripWidth':75, # (float) mm\n        'gripHeight':3.0, # (float) mm\n        'widthBefore':90, # (float) mm width before gripping\n        'gripSpeed':5.0, # (float) mm/s. Must be supplied\n        'zSpeed':50.0, # (float) mm/s. Must be supplied\n        'transportMode':0, # (integer) 0=Plate only, 1=Lid only ,2=Plate with lid\n        'checkPlate':0 # (integer) \n    }),\n\n    'gripMove':('GRIP_MOVE', {\n        'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below\n        'xAcceleration':4, # (integer) 1-5 from slowest to fastest, where 4 is default\n        '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\n        'xDisplacement':0.0,\n        'yDisplacement':0.0,\n        'zDisplacement':0.0,\n\n    }),\n\n    'gripPlace':('GRIP_PLACE', {\n        'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below\n        'plateLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n        '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\n        'lidLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n        '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;\n        'sequenceCounting':0, # (integer) 0=don´t autoincrement plate sequence,  1=Autoincrement\n        'movementType':0, # (integer) 0=To carrier, 1=Complex movement\n        'transportMode':0, # (integer) 0=Plate only, 1=Lid only ,2=Plate with lid\n        'ejectToolWhenFinish':1, # (integer) 0=Off, 1=On\n        'zSpeed':100.0, # (float) mm/s\n        'platePressOnDistance':0.0, # (float) lift-up distance [mm] (only used if 'movement type' is set to 'complex movement'),\n        'xAcceleration':4  # (integer) 1-5 from slowest to fastest, where 4 is default\n    }),\n    'moveSequence':('MOVE_SEQ',{\n\n        'inputSequence':'',\n        'xDisplacement':'',\n        'yDisplacement':'',\n        'zDisplacement':'',\n    }),\n    'copyLiquidClass':('COPY_LIQ_CLASS',{\n        'TemplateLiquidClass':'',\n        'NewLiquidClass':'',\n    }),\n    'setAspirateParam':('SET_ASP_PARAM',{\n        'LiquidClass':'',\n        'Parameter':'',\n        'Value':'',\n    }),\n    'setDispenseParam':('SET_DISP_PARAM',{\n        'LiquidClass':'',\n        'Parameter':'',\n        'Value':'',\n    }),\n    'setTipType':('SET_TIP_TYPE',{\n        'LiquidClass':'',\n        'TipType':'', # int from the TipType enum\n    }),\n    'setCorrectionCurve':('SET_CORR_CURVE',{\n        'LiquidClass':'',\n        'NominalArray':'',\n        'CorrectedArray':'',\n    }),\n    'setDispenseMode':('SET_DISP_MODE',{\n        'LiquidClass':'',\n        'DispenseMode':'', # int from the DispenseMode enum\n    }),\n    'setLabwareProperty':('SET_LABWARE_PROPERTY',{\n        'LabwareID':'',\n        'PropertyName':'',\n        'PropertyValue':'',\n    }),\n    'TEC_Initialize':('TEC_INIT', {\n\n        'ControllerID':'', # (integer)\n        'SimulationMode':'', # 0=False, 1=True; \n    }),\n    'TEC_StartTempControl':('TEC_START', {\n\n        'ControllerID':'', # (integer)\n        'DeviceID':'', # (integer); \n    }),\n\n    'TEC_SetTarget':('TEC_SET_TARGET', {\n        'ControllerID':'', # (integer)\n        'DeviceID':'', # (integer); \n        'TargetTemperature':'', # (float); \n    }),\n    \n    'TEC_GetTemperature':('TEC_GET_TEMPERATURE', {\n\n        'ControllerID':'', # (integer)\n        'DeviceID':'', # (integer); \n        'Selector':'', # (integer); \n    }),\n    'TEC_StopTemperatureControl':('TEC_STOP', {\n        'ControllerID':'', # (integer)\n        'DeviceID':'', # (integer); \n    }),\n    'TEC_Terminate':('TEC_TERMINATE', {\n\n        'StopAllDevices':'', # 0=False, 1=True\n    }),\n    'TiltModule_Initialize':('TILT_INIT', {\n\n        'ModuleName':'', # (string)\n        'Comport':'', # (integer)\n        'TraceLevel':'', # (integer)\n        'Simulate': '' # 0=False, 1=True\n    }),\n    'TiltModule_MoveToPosition':('TILT_MOVE', {\n\n        'ModuleName':'', # (string)\n        'Angle':'' # (integer)\n    }),\n    'FirmwareCommand':('FIRMWARECOMMAND', {\n\n        'FirmwareCommandList':[], # list elements as {FirmwareCommand:'', FirmwareParameter:''} \n    }),\n    'BarcodeReader_Initialize':('BC_INITIALIZE',{\n\n        'ComPort':'' # (string)\n    }),\n    'BarcodeReader_Read':('BC_READ',{\n\n    }),\n\n    'loadCarrier':('LOAD_CARRIER', {\n        'carrierName': '', # (string) name of the carrier to load\n        'barcodeFileName': '', # (string) name of the barcode file to load\n        'barcodeReadPositions': '', # (string) path to the barcode file\n    }),\n    'unloadCarrier':('UNLOAD_CARRIER', {\n        'carrierName': '', # (string) name of the carrier to unload\n    }), \n    'pH_Initialize':('PH_INIT',{\n        'Comport' : '' , # (int)\n        'SimulationMode' : '' # (boolean)\n    }),\n    'pH_Request_Battery':('PH_REQ_BTRY',{\n        'ModuleID' : '' , # (int)\n    }),\n    'pH_measure':('PH_MEASURE',{\n        'ModuleID' : '' , # (int)\n        'Temperature' : '' , # (float)\n        'probePattern' : '' , # (string)\n    }),\n    'pH_Measure_Dynamically':('PH_MEASURE_DYN',{\n        'ModuleID' : '' , # (int)\n        'Temperature' : '' , # (float)\n        'Precision' : '' , # (float)\n        'Timeout' : '' , # (int)\n        'probePattern' : '' , # (string)\n    }),\n    'pH_Request_Calibration':('PH_REQ_CALIBRATION',{\n        'ModuleID' : '' , # (int)\n        'ProbeNumber' : '' , # (int)\n    }),\n    'pH_Request_Probe_Data':('PH_REQ_PROBE_DATA',{\n        'ModuleID' : '' , # (int)\n    }),\n    'pH_Request_Technical_Data':('PH_REQ_TECH_DATA',{\n        'ModuleID' : '' , # (int)\n        'HardwareNumber' : '' , # (int)\n    }),\n    'pH_Calibrate':('PH_CALIBRATE',{\n        'ModuleID' : '' , # (int)\n        'CalibrationLevel' : '' , # (int)\n        'CalibrationValue' : '' , # (flt)\n        'CalibrationTemperature' : '' , # (flt)\n        'probePattern' : '' , # (str)\n    }),\n    'pH_Calibrate_Dynamically':('PH_CALIBRATE_DYN',{\n        'ModuleID' : '' , # (int)\n        'Variance' : '' , # (int)\n        'Timeout' : '' , # (int)\n        'CalibrationLevel' : '' , # (int)\n        'CalibrationValue' : '' , # (flt)\n        'CalibrationTemperature' : '' , # (flt)\n        'probePattern' : '' , # (str)\n    }),\n    \n    'pH_Sleep':('PH_SLEEP',{\n        'ModuleID' : '' , # (int)\n    }),\n    'pH_Terminate':('PH_TERM',{\n        'ModuleID' : '' , # (int)\n    }),\n    'pH_Wakeup':('PH_WAKEUP',{\n        'ModuleID' : '' , # (int)\n    }),\n    \n    'pH_Washer_Initialize':('PH_WASHER_INIT',{\n        'Comport' : '' , # (int)\n        'SimulationMode' : '' , # (bln)\n    }),\n    'pH_Washer_Set_Trace':('PH_WASHER_SET_TRC',{\n        'ModuleID' : '' , # (int)\n        'TraceLevel' : '' , # (int)\n    }),\n    'pH_Washer_Wash':('PH_WASHER_WASH',{\n        'ModuleID' : '' , # (int)\n        'CycleNumber' : '' , # (int)\n    }),\n    'pH_Washer_Terminate':('PH_WASHER_TERM',{\n        'ModuleID' : '' , # (int)\n    }),\n    'pH_Dryer_Initialize':('PH_DRYER_INIT',{\n        'Comport' : '' , # (int)\n        'SimulationMode' : '' , # (bln)\n    }),\n    'pH_Dryer_Set_Trace':('PH_DRYER_SET_TRC',{\n        'ModuleID' : '' , # (int)\n        'TraceLevel' : '' , # (int)\n    }),\n    'pH_Start_Drying':('PH_DRYER_START',{\n        'ModuleID' : '' , # (int)\n    }),\n    'pH_Stop_Drying':('PH_DRYER_STOP',{\n        'ModuleID' : '' , # (int)\n    }),\n    'pH_Dryer_Terminate':('PH_DRYER_TERM',{\n        'ModuleID' : '' , # (int)\n    }),\n    \n    'HHS_BeginMonitoring':('HHS_BEGIN_MONITORING',{\n        'deviceNumber' : '' , # (int)\n        'shakingToleranceRange' : '' , # (int)\n        'sampleInterval' : '' , # (int)\n        'action' : '' , # (int)\n    }),\n    'HHS_CreateStarDevice':('HHS_CREATE_STAR_DEVICE',{\n        'starDevice': '', # (str)\n        'usedNode': '' # (int [1,2])\n    }),\n    'HHS_CreateUSBDevice':('HHS_CREATE_USB_DEVICE',{\n        'usedNode': '' # (int [1,8])\n    }),\n    'HHS_EndMonitoring':('HHS_END_MONITORING', {\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_GetFirmwareVersion':('HHS_GET_FIRMWARE_VERSION', {\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_GetSerialNumber':('HHS_GET_SERIAL_NUM', {\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_GetShakerParameter':('HHS_GET_SHAKER_PARAM',{\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_GetShakerSpeed':('HHS_GET_SHAKER_SPEED',{\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_GetTempParameter':('HHS_GET_TEMP_PARAM', {\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_GetTemperature':('HHS_GET_TEMP', {\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_GetTemperatureState':('HHS_GET_TEMP_STATE', {\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_SendFirmwareCommand':('HHS_SEND_FIRMWARE_CMD', {\n        'deviceNumber': '', # (int)\n        'command': '', # (str)\n        'parameter': '' # (str)\n    }),\n    'HHS_SetPlateLock':('HHS_SET_PLATE_LOCK', {\n        'deviceNumber': '', #(int)\n        'plateLock': '' #(int_bool)\n    }),\n    'HHS_SetShakerParameter':('HHS_SET_SHAKER_PARAM', {\n        'deviceNumber': '', # (int)\n        'shakingDirection': '', # (int_bool)\n        'shakingAccRamp': '' # (int [630, 12500])\n    }),\n    'HHS_SetSimulation':('HHS_SET_SIMULATION', {\n        'simulate': '' # (int_bool)\n    }),\n    'HHS_SetTempParameter':('HHS_SET_TEMP_PARAM', {\n        'deviceNumber': '', #(int)\n        'startTimeout': '', # (int [1, 2500])\n        'toleranceRange': '', # (float [0.0, 105.0])\n        'securityRange': '' #(float [0.0, 100.0])\n    }),\n    'HHS_SetUSBTrace':('HHS_SET_USB_TRC', {\n        'trace': '' # (int_bool)\n    }),\n    'HHS_StartAllShaker':('HHS_START_ALL_SHAKER', {\n        'shakingSpeed': '', #(int [30, 2500])\n    }),\n    'HHS_StartAllShakerTimed':('HHS_START_ALL_SHAKER_TIMED', {\n        'shakingSpeed': '', # (int [30, 2500])\n        'shakingTime': '' # (int [1, 30000])\n    }),\n    'HHS_StartShaker':('HHS_START_SHAKER', {\n        'deviceNumber': '', #(int)\n        'shakingSpeed': '' # (int [30, 2500])\n    }),\n    'HHS_StartShakerTimed':('HHS_START_SHAKER_TIMED', {\n        'deviceNumber': '', # (int)\n        'shakingSpeed': '', # (int [30, 2500])\n        'shakingTime': '' #(int [1, 30000])\n    }),\n    'HHS_StartTempCtrl':('HHS_START_TEMP_CTRL', {\n        'deviceNumber': '', # (int)\n        'temperature': '', # (float [0.0, 105.0])\n        'waitForTempReached': '' #(int_bool)\n    }),\n    'HHS_StopAllShaker':('HHS_STOP_ALL_SHAKER', {\n    }),\n    'HHS_StopShaker':('HHS_STOP_SHAKER', {\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_StopTempCtrl':('HHS_STOP_TEMP_CTRL', {\n        'deviceNumber': '', #(int)\n    }),\n    'HHS_Terminate':('HHS_TERMINATE', {\n    }),\n    'HHS_WaitForShaker':('HHS_WAIT_FOR_SHAKER', {\n        'deviceNumber': '' # (int)\n    }),\n    'HHS_WaitForTempCtrl':('HHS_WAIT_FOR_TEMP_CTRL', {\n        'deviceNumber': '' #(int)\n    }),\n    'ODTC_Abort':('ODTC_ABORT', {\n        'DeviceID':'', # (integer)\n        'LockID':'', # (integer); \n    }),\n    'ODTC_Connect':('ODTC_CONNECT', {\n        'LocalIP':'', # (string)\n        'DeviceIP':'', # (string)\n        'DevicePort':'', # (string)\n        'SimulationMode':'', # (boolean)\n        \n    }),\n    'ODTC_Initialize':('ODTC_INIT', {\n        'DeviceID':'', # (integer)\n        'LockID':'', # (string); \n    }),\n    'ODTC_CloseDoor':('ODTC_CLOSE', {\n        'DeviceID':'', # (integer)\n        'LockID':'', # (string); \n    }),\n    'ODTC_DownloadProtocol':('ODTC_PRTCL', {\n        'DeviceID':'', # (integer)\n        'LockID':'', # (string); \n        'ProtocolFile':'',\n    }),\n    'ODTC_EvaluateError':('ODTC_EVAL', {\n        'DeviceID':'', # (integer)\n        'LockID':0, # (string); \n    }),\n    'ODTC_ExecuteMethod':('ODTC_EXCT', {\n        'DeviceID':'', # (integer)\n        'LockID':0, # (integer);\n        'MethodName':'', # (string)\n        'Priority':'', # (integer); \n    }),\n    'ODTC_GetStatus':('ODTC_STATUS', {\n        'DeviceID':'', # (integer)\n    }),\n    'ODTC_OpenDoor':('ODTC_OPEN', {\n        'DeviceID':'', # (integer)\n        'LockID':0, # (integer);\n    }),\n    'ODTC_ReadActualTemperature':('ODTC_READ', {\n        'DeviceID':'', # (integer)\n        'LockID':0, # (integer);\n    }),\n    'ODTC_Reset':('ODTC_RESET', {\n        'DeviceID':'', # (integer)\n        'LockID':0, # (integer);\n        'SimulationMode': '', # (boolean)\n        'TimeToWait': '', # 0=False, 1=True\n        'strDeviceID': '', # (string)\n        'PMSID': '', # (string)\n    }),\n    'ODTC_StopMethod':('ODTC_STOP', {\n        'DeviceID':'', # (integer)\n        'LockID':0, # (integer);\n    }),\n    'ODTC_Terminate':('ODTC_TERM', {\n        'DeviceID':'', # (integer)\n    }),\n    'Centrifuge_Initialize':('CENT_INIT', {\n        'Label':'', # (str)\n        'NodeName':'', # (str)\n        'SimulationMode':'', # (bln)\n        'AlwaysInitialize':'', # (bln)\n\n    }),\n    'Centrifuge_Centrifuge':('CENT_CENT', {\n        'Label':'', # (str)\n        'CloseCoverAtEnd':'', # (bln)\n        'PresentPosition':'', # (int)\n        'Direction':'', # (int)\n        'ArraySpeed':'', # (str)\n        'ArrayDuration':'', # (str)\n        'ArrayAcceleration':'', # (str)\n        'Deceleration':'', # (int)\n    }),\n    'Centrifuge_Open':('CENT_OPEN', {\n        'Label':'', # (str)\n    }),\n    'Centrifuge_Close':('CENT_CLOSE', {\n        'Label':'', # (str)\n    }),\n    'Centrifuge_Stop':('CENT_STOP', {\n        'Label':'', # (str)\n        'Deceleration':'', # (int)\n    }),\n    'Centrifuge_Terminate':('CENT_TERM', {\n        'Label':'', # (str)\n    }),\n    'Centrifuge_Start':('CENT_START', {\n        'Label':'', # (str)\n        'Direction':'', # (int)\n        'Speed':'', # (int)\n        'Deceleration':'', # (int)\n        'MaxRunTime':'', # (int)\n    }),\n    'Centrifuge_GetStatus':('CENT_STATUS', {\n        'Label':'', # (str)\n    }),\n    'HiG_Connect':('HIG_CONNECT', {\n        'DeviceID':'', # (str)\n        'AdapterDeviceID':'', # (str)\n        'SimulationMode':'', # (bln)\n    }),\n    'HiG_Disconnect':('HIG_DISCONNECT', {\n    }),\n    'HiG_Home':('HIG_HOME', {\n    }),\n    'HiG_Spin':('HIG_SPIN', {\n        'RotationalGs':'', # (flt)\n        'AccelPercent':'', # (flt)\n        'DecelPercent':'', # (flt)\n        'TimeSeconds':'', # (flt)\n    }),\n    'HiG_SpinAndWait':('HIG_SPINWAIT', {\n        'RotationalGs':'', # (flt)\n        'AccelPercent':'', # (flt)\n        'DecelPercent':'', # (flt)\n        'TimeSeconds':'', # (flt)\n    }),\n    'HiG_OpenShield':('HIG_OPEN', {\n        'BucketIndex':'', # (int)\n    }),\n    'HiG_CloseShield':('HIG_CLOSE', {\n    }),\n    'HiG_IsSpinning':('HIG_SPINNING', {\n    }),\n    'HiG_AbortSpin':('HIG_ABORT', {\n    }),\n    'MPE2_ConnectIP':('MPE2_IP', {\n        'InstrumentName':'', # (str)\n        'PortNumber':'', # (str)\n        'SimulationMode':'', # (bln)\n        'Options':'', # (int)\n    }),\n    'MPE2_ConnectCOM':('MPE2_COM', {\n        'ComPort':'', # (str)\n        'BaudRate':'', # (str)\n        'SimulationMode':'', # (bln)\n        'Options':'', # (int)\n    }),\n    'MPE2_ClampFilterPlate':('MPE2_CLAMP', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_CollectionPlatePlaced':('MPE2_COL_PLACED', {\n        'DeviceID':'', # (int)\n        'CollectionPlateHeight':'', # (flt)\n        'OffsetFromNozzles':'', # (flt)\n\n    }),\n    'MPE2_CollectionPlateRemoved':('MPE2_COL_REMOVED', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_Disconnect':('MPE2_DISCONNECT', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_Initialize':('MPE2_INIT', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_InitializeWithParams':('MPE2_INIT_PARAMS', {\n        'DeviceID':'', # (int)\n        'Smart':'', # (bln)\n        'WasteContainerID':'', # (int)\n        'VacuumRunTime':'', # (int)\n        'DisableVacuumCheck':'', # (bln)\n    }),\n    'MPE2_FilterPlatePlaced':('MPE2_FIL_PLACED', {\n        'DeviceID':'', # (int)\n        'FilterHeight':'', # (flt)\n        'NozzleHeight':'', # (flt)\n\n    }),\n    'MPE2_FilterPlateRemoved':('MPE2_FIL_REMOVED', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_ProcessFilterToCollectionPlate':('MPE2_FIL_TO_COL', {\n        'DeviceID':'', # (int)\n        'ControlPoints':'', # (str)\n        'ReturnPlateToIntegrationArea':'', # (bln)\n    }),\n    'MPE2_ProcessFilterToWasteContainer':('MPE2_FIL_TO_WASTE', {\n        'DeviceID':'', # (int)\n        'ControlPoints':'', # (str)\n        'ReturnPlateToIntegrationArea':'', # (bln)\n        'WasteContainerID':'', # (int)\n        'DisableVacuumCheck':'', # (bln)\n    }),\n    'MPE2_RetrieveFilterPlate':('MPE2_RETRIEVE_FIL', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_StartMPEVacuum':('MPE2_START_VAC', {\n        'DeviceID':'', # (int)\n        'WasteContainerID':'', # (int)\n        'DisableVacuumCheck':'', # (bln)\n    }),\n    'MPE2_StopVacuum':('MPE2_STOP_VAC', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_GetVacuumStatus':('MPE2_GET_VAC', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_GetPressureReadings':('MPE2_GET_PRESS', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_Dispense':('MPE2_DISPENSE', {\n        'DeviceID':'', # (int)\n        'SourceID':'', # (int)\n        'WellVolume':'', # (int)\n        'FlowRateAspirate':'', # (int)\n        'FlowRateDispense':'', # (int)\n        'NeedleOffset':'', # (int)\n    }),\n    'MPE2_Prime':('MPE2_PRIME', {\n        'DeviceID':'', # (int)\n        'SourceID':'', # (int)\n        'WellVolume':'', # (flt)\n        'FlowRate':'', # (flt)\n        'WasteContainerID':'', # (int)\n    }),\n    'MPE2_Flush':('MPE2_FLUSH', {\n        'DeviceID':'', # (int)\n        'WellVolume':'', # (flt)\n        'FlowRate':'', # (flt)\n        'WasteContainerID':'', # (int)\n    }),\n    'MPE2_Evaporate':('MPE2_EVAP', {\n        'DeviceID':'', # (int)\n        'PlateHeight':'', # (flt)\n        'NeedleOffset':'', # (flt)\n        'WellDepth':'', # (flt)\n        'EvaporatorTravelDistance':'', # (flt)\n        'EvaporateTime':'', # (flt)\n    }),\n    'MPE2_EvaporateWithRate':('MPE2_EVAP_RATE', {\n        'DeviceID':'', # (int)\n        'PlateHeight':'', # (flt)\n        'NeedleOffset':'', # (flt)\n        'WellDepth':'', # (flt)\n        'EvaporatorTravelDistance':'', # (flt)\n        'EvaporateTime':'', # (flt)\n        'FollowRate':'', # (flt)\n    }),\n    'MPE2_EvaporateEnd':('MPE2_EVAP_END', {\n        'DeviceID':'', # (int)\n        'Timeout':'', # (int)\n    }),\n    'MPE2_GetTemperatureRange':('MPE2_TEMP_RANGE', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_GetHeaterStatus':('MPE2_HEATER_STATUS', {\n        'DeviceID':'', # (int)\n        'Reset':'', # (bln)\n    }),\n    'MPE2_GetHeaterRange':('MPE2_TEMP_RANGE', {\n        'DeviceID':'', # (int)\n        'Reset':'', # (bln)\n    }),\n    'MPE2_GetSourceConfiguration':('MPE2_GET_SOURCE_CONFIG', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_SetSourceConfiguration':('MPE2_SET_SOURCE_CONFIG', {\n        'DeviceID':'', # (int)\n    }),\n    'MPE2_StartContainerCalibration':('MPE2_START_CAL', {\n        'DeviceID':'', # (int)\n        'SourceID':'', # (int)\n        'Volume':'', # (flt)\n    }),\n    'MPE2_GetContainerCalibration':('MPE2_GET_CAL', {\n        'DeviceID':'', # (int)\n        'SourceID':'', # (int)\n        'Volume':'', # (flt)\n    }),\n    'MPE2_MeasureEmptyContainer':('MPE2_MEAS_EMPTY', {\n        'DeviceID':'', # (int)\n        'SourceID':'', # (int)\n    }),\n    'MPE2_MeasureFullContainer':('MPE2_MEAS_FULL', {\n        'DeviceID':'', # (int)\n        'SourceID':'', # (int)\n    }),\n    'MPE2_SaveContainerCalibration':('MPE2_SAVE_CAL', {\n        'DeviceID':'', # (int)\n        'SourceID':'', # (int)\n    }),\n    'pH_Controller_Initialize':('PHC_INIT', {\n        'PortNumber':'', # (int)\n    }),\n    'pH_Controller_Terminate':('PHC_TERM', {\n        'ModuleID':'', # (int)\n    }),\n    'pH_Controller_Calibrate':('PHC_CAL', {\n        'ModuleID':'', # (int)\n        'seqModule':'', # (str)\n        'seqCalibration1':'', # (str)\n        'seqCalibration2':'', # (str)\n        'seqReference':'', # (str)\n        'MeasureTime':'', # (int)\n        'CalibrationTime':'', # (int)\n        'MeasureHeight':'', # (flt)\n        'CalibrationValue1':'', # (flt)\n        'CalibrationValue2':'', # (flt)\n        'CalibrationValueRef':'', # (flt)\n        'TempSoln1':'', # (flt)\n        'TempSoln2':'', # (flt)\n        'TempSolnRef':'', # (flt)\n        'CalibrateDynamically':'', # (bln)\n    }),\n    'pH_Controller_MeasureCycle':('PHC_MEASURE_CYCLE', {\n        'ModuleID':'', # (int)\n        'seqMeasurement':'', # (str)\n        'MeasurePositions':'', # (str)\n        'MeasureHeight':'', # (flt)\n        'ProbePattern':'', # (str)\n        'MeasureTime':'', # (int)\n        'Temperature':'', # (flt)\n    }),\n    'pH_Controller_SetParameters':('PHC_SET_PARAMS', {\n        'ModuleID':'', # (int)\n        'seqGripper':'', # (str)\n        'seqWashPosition':'', # (flt)\n        'seqDryPosition':'', # (str)\n        'TransportChannel':'', # (int)\n        'WashCycles':'', # (int)\n        'DryCycles':'', # (int)\n        'DryTime':'', # (int)\n    }),\n\n    'pH_Controller_Dry':('PHC_DRY', {\n        'ModuleID':'', # (int)\n    }),\n    'pH_Controller_Wash':('PHC_WASH', {\n        'ModuleID':'', # (int)\n    }),\n    'pH_Controller_Pickup':('PHC_PICKUP', {\n        'ModuleID':'', # (int)\n        'seqModule':'', # (str)\n\n    }),\n    'pH_Controller_Park':('PHC_PARK', {\n        'ModuleID':'', # (int)\n        'seqModule':'', # (str)\n    }),\n    'pH_Controller_LoadLastConfig':('PHC_LOAD', {\n    }),\n    \n    'pH_Controller_SaveLastConfig':('PHC_SAVE', {\n        'BluetoothPort':'', # (int)\n        'NumWashCycles':'', # (int)\n        'NumDryCycles':'', # (int)\n        'DryTime':'', # (int)\n    }),\n\n}\n\n\n\"\"\"All of the command names supported out of the box, mapped to their default params.\n\nOn 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.\n\nExample:\n\n```\nfrom pyhamilton import INITIALIZE\n```\n\n\nINITIALIZE\n\n- initializeAlways (int)\n\n    0=only initialize components not already initialized, 1=always reinitialize all robot components\n\n    Default: 0 \n\n\n\n\n\nPICKUP\n\n- tipSequence (string)\n\n    leave empty if you are going to provide specific labwarePositions below\n\n    Default: ''\n\n- labwarePositions (string)\n\n    leave empty if you are going to provide a sequence name above.'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n\n    Default: ''\n\n- channelVariable (string)\n\n    channel pattern e.g. '11110000'\n\n    Default: _channel_patt_16\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement,  1=Autoincrement\n\n    Default: 0\n\n- channelUse (integer)\n\n    1=use all sequence positions (no empty wells), 2=keep channel pattern\n\n    Default: 1\n\n\n\nEJECT\n\n- wasteSequence (string)\n\n    leave empty if you are going to provide specific labware-positions below or ejecting to default waste\n\n    Default: ''\n\n- labwarePositions (string)\n\n    leave empty if you are going to provide a sequence name above.'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n\n    Default: ''\n\n- channelVariable (string)\n\n    channel pattern e.g. \"11110000\"\n\n    Default: _channel_patt_16\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement,  1=Autoincrement.  Value omitted if ejecting to default waste\n\n    Default: 0\n\n- channelUse (integer)\n\n    1=use all sequence positions (no empty wells), 2=keep channel pattern\n\n    Default: 1\n\n- useDefaultWaste (integer)\n\n    0=eject to custom waste sequence,  1=Use default waste\n\n    Default: 0\n\n\n\n\n\nASPIRATE\n\n- aspirateSequence (string)\n\n    leave empty if you are going to provide specific labware-positions below\n\n    Default: ''\n\n- labwarePositions (string)\n\n    leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n\n    Default: ''\n\n- volumes (float or string)\n\n    enter a single value used for all channels or enter an array of values for each channel like [10.0,15.5,11.2]\n\n    Default: None\n\n- channelVariable (string)\n\n    channel pattern e.g. \"11110000\"\n\n    Default: _channel_patt_16\n\n- liquidClass (string)\n\n    Default: None\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement,  1=Autoincrement\n\n    Default: 0\n\n- channelUse (integer)\n\n    1=use all sequence positions (no empty wells), 2=keep channel pattern\n\n    Default: 1\n\n- aspirateMode (integer)\n\n    0=Normal Aspiration, 1=Consecutive (don´t aspirate blowout), 2=Aspirate all \n\n    Default: 0\n\n- capacitiveLLD (integer)\n\n    0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition\n\n    Default: 0\n\n- pressureLLD (integer)\n\n    0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From liquid class definition\n\n    Default: 0\n\n- liquidFollowing (integer)\n\n    0=Off , 1=On\n\n    Default: 0\n\n- submergeDepth (float)\n\n    mm of immersion below liquid´s surface to start aspiration when using LLD\n\n    Default: 2.0\n\n- liquidHeight (float)\n\n    mm above container´s bottom to start aspiration when not using LLD\n\n    Default: 1.0\n\n- maxLLdDifference (float)\n\n    max mm height different between cLLD and pLLD detected liquid levels\n\n    Default: 0.0\n\n- mixCycles (integer)\n\n    number of mixing cycles (1 cycle = 1 asp + 1 disp)\n\n    Default: 0\n\n- mixPosition (float)\n\n    additional immersion mm below aspiration position to start mixing\n\n    Default: 0.0\n\n- mixVolume (float)\n\n    mix volume\n\n    Default: 0.0\n\n- airTransportRetractDist (float)\n\n    mm to move up in Z after finishing the aspiration at a fixed height before aspirating 'transport air'\n\n    Default: 10.0\n\n- touchOff (integer)\n\n    0=Off , 1=On\n\n    Default: 0\n\n- aspPosAboveTouch (float)\n\n    mm to move up in Z after touch off detects the bottom before aspirating liquid\n\n    Default: 0.0\n\n\n\n\n\nDISPENSE\n\n- dispenseSequence (string)\n\n    leave empty if you are going to provide specific labware-positions below\n\n    Default: ''\n\n- labwarePositions (string)\n\n    leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n\n    Default: ''\n\n- volumes (float or string)\n\n    enter a single value used for all channels or enter an array of values for each channel like [10.0,15.5,11.2]\n\n    Default: None\n\n- channelVariable (string)\n\n    channel pattern e.g. \"11110000\"\n\n    Default: _channel_patt_16\n\n- liquidClass (string)\n\n    Default: None\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement,  1=Autoincrement\n\n    Default: 0\n\n- channelUse (integer)\n\n    1=use all sequence positions (no empty wells), 2=keep channel pattern\n\n    Default: 1\n\n- dispenseMode (integer)\n\n    0=Jet Part, 1=Jet Empty, 2=Surface Part, 3=Surface Empty, 4=Jet Drain tip, 8=From liquid class, 9=Blowout tip\n\n    Default: 8\n\n- capacitiveLLD (integer)\n\n    0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition\n\n    Default: 0\n\n- liquidFollowing (integer)\n\n    0=Off , 1=On\n\n    Default: 0\n\n- submergeDepth (float)\n\n    mm of immersion below liquid´s surface to start dispense when using LLD\n\n    Default: 2.0\n\n\n\n- liquidHeight (float)\n\n    mm above container´s bottom to start dispense when not using LLD\n\n    Default: 1.0\n\n- mixCycles (integer)\n\n    number of mixing cycles (1 cycle = 1 asp + 1 disp)\n\n    Default: 0\n\n- mixPosition (float)\n\n    additional immersion mm below dispense position to start mixing\n\n    Default: 0.0\n\n- mixVolume (float)\n\n    mix volume\n\n    Default: 0.0\n\n- airTransportRetractDist (float)\n\n    mm to move up in Z after finishing the dispense at a fixed height before aspirating 'transport air'\n\n    Default: 10.0\n\n- touchOff (integer)\n\n    0=Off , 1=On\n\n    Default: 0\n\n- dispPositionAboveTouch (float)\n\n    mm to move up in Z after touch off detects the bottom, before dispense\n\n    Default: 0.0\n\n- zMoveAfterStep (integer)\n\n    0=normal, 1=Minimized (Attention!!! this depends on labware clearance height, can crash). \n\n    Default: 0\n\n- sideTouch (integer)\n\n    0=Off , 1=On\n\n    Default: 0\n\n\n\n\n\nPICKUP96\n\n- tipSequence (string)\n\n    leave empty if you are going to provide specific labware-positions below\n\n    Default: ''\n\n- labwarePositions (string)\n\n    leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' Must contain 96 values\n\n    Default: ''\n\n- channelVariable (string)\n\n    channel Variable e.g. \"11110000....\" . Must contain 96 values\n\n    Default: _channel_patt_96\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement,  1=Autoincrement\n\n    Default: 0\n\n- reducedPatternMode (integer)\n\n    0=All (not reduced), 1=One channel, 2=One row  3=One column\n\n    Default: 0\n\n\n\n\n\nEJECT96\n\n- wasteSequence (string)\n\n    leave empty if you are going to provide specific labware-positions below or ejecting to default waste\n\n    Default: ''\n\n- labwarePositions (string)\n\n    leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....'\n\n    Default: ''\n\n- channelVariable (string)\n\n    channel Variable e.g. \"11110000....\" . Must contain 96 values\n\n    Default: _channel_patt_96\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement,  1=Autoincrement.  Value omitted if ejecting to default waste\n\n    Default: 0\n\n- tipEjectToKnownPosition (integer)\n\n    0=Eject to specified sequence position,  1=Eject on tip pick up position, 2=Eject on default waste\n\n    Default: 0\n\n\n\n\n\nASPIRATE96\n\n- aspirateSequence (string)\n\n    leave empty if you are going to provide specific labware-positions below\n\n    Default: ''\n\n- labwarePositions (string)\n\n    leave empty if you are going to provide a sequence name above. LabwareId1, positionId1; LabwareId2,positionId2; ....\n\n    Default: ''\n\n- aspirateVolume (float)\n\n    single volume used for all channels in the head. There´s no individual control of each channel volume in multi-probe heads.\n\n    Default: None\n\n- channelVariable (string)\n\n    channel Variable e.g. \"11110000....\" . Must contain 96 values\n\n    Default: _channel_patt_96\n\n- liquidClass (string)\n\n    Default: None\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement,  1=Autoincrement\n\n    Default: 0\n\n- aspirateMode (integer)\n\n    0=Normal Aspiration, 1=Consecutive (don´t aspirate blowout), 2=Aspirate all \n\n    Default: 0\n\n- capacitiveLLD (integer)\n\n    0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition\n\n    Default: 0\n\n- liquidFollowing (integer)\n\n    0=Off , 1=On\n\n    Default: 0\n\n- submergeDepth (float)\n\n    mm of immersion below liquid´s surface to start aspiration when using LLD\n\n    Default: 2.0\n\n- liquidHeight (float)\n\n    mm above container´s bottom to start aspiration when not using LLD\n\n    Default: 1.0\n\n- mixCycles (integer)\n\n    number of mixing cycles (1 cycle = 1 asp + 1 disp)\n\n    Default: 0\n\n- mixPosition (float)\n\n    additional immersion mm below aspiration position to start mixing\n\n    Default: 0.0\n\n- mixVolume (float)\n\n    mix volume\n\n    Default: 0.0\n\n- airTransportRetractDist (float)\n\n    mm to move up in Z after finishing the aspiration at a fixed height before aspirating 'transport air'\n\n    Default: 10.0\n\n\n\n\n\nDISPENSE96\n\n- dispenseSequence (string)\n\n    leave empty if you are going to provide specific labware-positions below\n\n    Default: ''\n\n- labwarePositions (string)\n\n    leave empty if you are going to provide a sequence name above. LabwareId1, positionId1; LabwareId2,positionId2; ....\n\n    Default: ''\n\n- dispenseVolume (float)\n\n    single volume used for all channels in the head. There´s no individual control of each channel volume in multi-probe heads.\n\n    Default: None\n\n- channelVariable (string)\n\n    channel Variable e.g. \"11110000....\" . Must contain 96 values\n\n    Default: _channel_patt_96\n\n- liquidClass (string)\n\n    Default: None\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement,  1=Autoincrement\n\n    Default: 0\n\n- dispenseMode (integer)\n\n    0=Jet Part, 1=Jet Empty, 2=Surface Part, 3=Surface Empty,4=Jet Drain tip, 8=From liquid class, 9=Blowout tip\n\n    Default: 8\n\n- capacitiveLLD (integer)\n\n    0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition\n\n    Default: 0\n\n- liquidFollowing (integer)\n\n    0=Off , 1=On\n\n    Default: 0\n\n- submergeDepth (float)\n\n    mm of immersion below liquid´s surface to start dispense when using LLD\n\n    Default: 2.0\n\n- liquidHeight (float)\n\n    mm above container´s bottom to start dispense when not using LLD\n\n    Default: 1.0\n\n- mixCycles (integer)\n\n    number of mixing cycles (1 cycle = 1 asp + 1 disp)\n\n    Default: 0\n\n- mixPosition (float)\n\n    additional immersion mm below dispense position to start mixing\n\n    Default: 0.0\n\n- mixVolume (float)\n\n    mix volume\n\n    Default: 0.0\n\n- airTransportRetractDist (float)\n\n    mm to move up in Z after finishing the dispense at a fixed height before aspirating 'transport air'\n\n    Default: 10.0\n\n- zMoveAfterStep (integer)\n\n    0=normal, 1=Minimized (Attention!!! this depends on labware clearance height, can crash). \n\n    Default: 0\n\n- sideTouch (integer)\n\n    0=Off , 1=On\n\n    Default: 0\n\n\n\n\n\nISWAP_GET\n\nplateSequence\n\n    leave empty if you are going to provide specific plate labware-position below\n\n    Default:''\n\n- plateLabwarePositions (string)\n\n    leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n\n    Default: ''\n\n- lidSequence (string)\n\n    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\n\n    Default: ''\n\n- lidLabwarePositions (string)\n\n    leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n\n    Default: ''\n\n- toolSequence (string)\n\n    sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1;\n\n    Default: ''\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement plate sequence,  1=Autoincrement\n\n    Default: 0\n\n- movementType (integer)\n\n    0=To carrier, 1=Complex movement\n\n    Default: 0\n\n- transportMode (integer)\n\n    0=Plate only, 1=Lid only ,2=Plate with lid\n\n    Default: 0\n\n- gripForce (integer)\n\n    2 (minimum) ... 9 (maximum)\n\n    Default: 4\n\n- inverseGrip (integer)\n\n    0=Off, 1=On\n\n    Default: 0\n\n- collisionControl (integer)\n\n    0=Off, 1=On\n\n    Default: 0\n\n- gripMode (integer)\n\n    0=Small side, 1=Large side\n\n    Default: 1\n\n- retractDistance (float)\n\n    retract distance [mm] (only used if 'movement type' is set to 'complex movement')\n\n    Default: 0.0\n\n- liftUpHeight (float)\n\n    lift-up distance [mm] (only used if 'movement type' is set to 'complex movement')\n\n    Default: 20.0\n\n- gripWidth (float)\n\n    grip width when closed [mm]\n\n    Default: 123.7\n\n- tolerance (float)\n\n    tolerance [mm]\n\n    Default: 2.0\n\n- gripHeight (float)\n\n    height to grip above bottom of labware [mm]\n\n    Default: 3.0\n\n- widthBefore (float)\n\n    grip width when opened before grip [mm]\n\n    Default: 130.0\n\n\n\n\n\nISWAP_PLACE\n\n- plateSequence (string)\n\n    leave empty if you are going to provide specific plate labware-position below\n\n    Default: ''\n\n- plateLabwarePositions (string)\n\n    leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n\n    Default: ''\n\n- lidSequence (string)\n\n    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\n\n    Default: ''\n\n- lidLabwarePositions (string)\n\n    leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; \n\n    Default: ''\n\n- toolSequence (string)\n\n    sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1;\n\n    Default: ''\n\n- sequenceCounting (integer)\n\n    0=don´t autoincrement plate sequence,  1=Autoincrement\n\n    Default: 0\n\n- movementType (integer)\n\n    0=To carrier, 1=Complex movement\n\n    Default: 0\n\n- transportMode (integer)\n\n    0=Plate only, 1=Lid only ,2=Plate with lid\n\n    Default: 0\n\n- collisionControl (integer)\n\n    0=Off, 1=On\n\n    Default: 0\n\n- retractDistance (float)\n\n    retract distance [mm] (only used if 'movement type' is set to 'complex movement')\n\n    Default: 0.0\n\n- liftUpHeight (float)\n\n    lift-up distance [mm] (only used if 'movement type' is set to 'complex movement')\n\n    Default: 20.0\n\n\n\n\n\nHEPA\n\n- deviceNumber (integer)\n\n    COM port number of fan\n\n    Default: _fan_port\n\n- persistant (integer)\n\n    0=don´t keep fan running after method exits, 1=keep settings after method exits\n\n    Default: 1\n\n- fanSpeed (float)\n\n    set percent of maximum fan speed\n\n    Default: None\n\n- simulate (integer)\n\n    0=normal mode, 1=use HxFan simulation mode\n\n    Default: 0 \n\n\n\n\n\nWASH96_EMPTY\n\n- refillAfterEmpty (integer)\n\n    0=Don't refill, 1=Refill both chambers, 2=Refill chamber 1 only, 3=Refill chamber 2 only\n\n    Default: 0\n\n- chamber1WashLiquid (integer)\n\n    0=Liquid 1 (red container), 1=liquid 2 (blue container)\n\n    Default: 0\n\n- chamber1LiquidChange (integer)\n\n    0=No, 1=Yes TODO: What does this mean?\n\n    Default: 0\n\n- chamber2WashLiquid (integer)\n\n    0=Liquid 1 (red container), 1=liquid 2 (blue container)\n\n    Default: 0\n\n- chamber2LiquidChange (integer)\n\n    0=No, 1=Yes TODO: What does this mean?\n\n    Default: 0\n\n\n\"\"\"\n\n"
  },
  {
    "path": "pyhamilton/defaults/defaults.json",
    "content": "{\n  \"robot_type\": \"STAR\",\n  \"core_gripper_sequence\": \"COREGripTool_OnWaste_1000ul_0001\",\n   \"liquids_database\": \"C:\\\\Program Files (x86)\\\\Hamilton\\\\Config\\\\ML_STARLiquids.mdb\"\n}\n"
  },
  {
    "path": "pyhamilton/defaults.py",
    "content": "from __future__ import annotations\nimport json\nfrom dataclasses import dataclass, asdict, replace\nfrom pathlib import Path\nfrom typing import Any, Final\n\n# ───────────────────────────── File location ─────────────────────────────\n_DOTDIR: Final[Path] = Path.home() / \".pyhamilton\"\n_DOTDIR.mkdir(exist_ok=True)\n_DEFAULTS_PATH: Final[Path] = _DOTDIR / \"defaults.json\"\n\n\n# ───────────────────────────── Settings dataclass ─────────────────────────\n@dataclass(slots=True, frozen=True)\nclass Defaults:\n    \"\"\"\n    Persistent user-wide defaults for PyHamilton configuration.\n    Automatically loaded from ~/.pyhamilton/defaults.json if available.\n    \"\"\"\n    robot_type: str = \"STAR\"\n    core_gripper_sequence: list[str] = ()\n    liquids_database: str = \"C:\\\\Program Files (x86)\\\\Hamilton\\\\Config\\\\ML_STARLiquids.mdb\"\n\n    # (internal) pointer to source file for debugging\n    _source_file: Path | None = None\n\n\n# ───────────────────────────── Internal load logic ────────────────────────\ndef _read_file() -> dict[str, Any]:\n    if not _DEFAULTS_PATH.exists():\n        return {}\n    try:\n        with _DEFAULTS_PATH.open(\"r\", encoding=\"utf-8\") as f:\n            return json.load(f) or {}\n    except (json.JSONDecodeError, OSError):\n        return {}\n\n\n# cache the singleton\n_defaults_singleton: Defaults | None = None\n\n\ndef defaults(**overrides) -> Defaults:\n    \"\"\"\n    Get the current default settings.\n    You can optionally pass overrides to get a copy with modified fields.\n    \"\"\"\n    global _defaults_singleton\n    if _defaults_singleton is None:\n        raw = _read_file()\n        _defaults_singleton = Defaults(**raw, _source_file=_DEFAULTS_PATH)\n\n    if overrides:\n        return replace(_defaults_singleton, **overrides)\n    return _defaults_singleton\n\n\n# ───────────────────────────── Save and reload utilities ──────────────────\ndef save(new_defaults: Defaults | None = None) -> None:\n    \"\"\"\n    Save the provided Defaults object (or current one) to disk.\n    \"\"\"\n    obj = new_defaults or defaults()\n    data = asdict(obj)\n    data.pop(\"_source_file\", None)\n    with _DEFAULTS_PATH.open(\"w\", encoding=\"utf-8\") as f:\n        json.dump(data, f, indent=2)\n\n\ndef reload() -> Defaults:\n    \"\"\"\n    Force a reload of the defaults from disk, replacing the cached singleton.\n    \"\"\"\n    global _defaults_singleton\n    _defaults_singleton = None\n    return defaults()\n"
  },
  {
    "path": "pyhamilton/devices/__init__.py",
    "content": "from .centrifuge_wrappers import *\nfrom .hhs_wrappers import *\nfrom .hig_wrappers import *\nfrom .mpe_wrappers import *\nfrom .odtc_wrappers import *\nfrom .tec_wrappers import *\nfrom .pH_wrappers import *"
  },
  {
    "path": "pyhamilton/devices/centrifuge_wrappers.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Wed Oct  5 07:52:56 2022\n\n@author: stefa\n\"\"\"\n\nimport sys, os, time, logging, importlib\nfrom threading import Thread\n\nfrom ..interface import HamiltonInterface\n\nfrom ..interface import (CENT_INIT, CENT_STATUS, CENT_CENT)\n\n\ndef centrifuge_initialize(ham, label, node_name, simulate, always_init):\n    cmd = ham.send_command(CENT_INIT, Label = label, NodeName = node_name,\n                           SimulationMode = simulate, AlwaysInitialize = always_init)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=300)\n\n\ndef centrifuge_get_drive_status(ham, label):\n    return_fields = ['step-return2', 'step-return3', 'step-return4']\n    cmd = ham.send_command(CENT_STATUS, Label = label)\n    outputs = ham.wait_on_response(cmd, raise_first_exception=True, timeout=300, return_data = return_fields)\n    return outputs\n\n\ndef centrifuge_set_run(ham, label, array_speed, array_acceleration,\n                   array_duration, deceleration, close_cover, \n                   direction, present_position):\n    \n    if not all([201 < speed < 4200 for speed in array_speed]):\n        raise ValueError('Speed must be between 201 and 4200 rpm')\n    \n    if not all([1000 < acc < 6500 for acc in array_acceleration]):\n        raise ValueError('Acceleration must be between 1000 and 6500 rpm^2')\n\n    if not all([0 < dur < 2700 for dur in array_duration]):\n        raise ValueError('Duration must be greater than 2700 seconds')\n        \n    if not 1000 < deceleration < 6500:\n        raise ValueError('Deceleration must be between 1000 and 6500')\n        \n    array_acceleration = ','.join(map(str, array_acceleration))\n    array_duration = ','.join(map(str, array_duration))\n    array_speed = ','.join(map(str, array_speed))\n\n    \n    cmd = ham.send_command(CENT_CENT, Label = label, ArraySpeed = array_speed, \n                           ArrayAcceleration = array_acceleration, ArrayDuration = array_duration,\n                           Deceleration = deceleration, CloseCoverAtEnd = close_cover, \n                           Direction = direction, PresentPosition = present_position)\n    \n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=300)\n\n\n\n\n\n\n"
  },
  {
    "path": "pyhamilton/devices/hhs_wrappers.py",
    "content": "import sys, os, time, logging, importlib\nfrom threading import Thread\n\nfrom ..interface import HamiltonInterface\n\nfrom ..interface import (HHS_BEGIN_MONITORING, HHS_CREATE_STAR_DEVICE, HHS_CREATE_USB_DEVICE,\n    HHS_END_MONITORING, HHS_GET_FIRMWARE_VERSION, HHS_GET_SERIAL_NUM, HHS_GET_SHAKER_PARAM, HHS_GET_SHAKER_SPEED,\n    HHS_GET_TEMP_PARAM, HHS_GET_TEMP, HHS_GET_TEMP_STATE, HHS_SEND_FIRMWARE_CMD, HHS_SET_PLATE_LOCK,\n    HHS_SET_SHAKER_PARAM, HHS_SET_SIMULATION, HHS_SET_TEMP_PARAM, HHS_SET_USB_TRC, HHS_START_ALL_SHAKER,\n    HHS_START_ALL_SHAKER_TIMED, HHS_START_SHAKER, HHS_START_SHAKER_TIMED, HHS_START_TEMP_CTRL, HHS_STOP_ALL_SHAKER,\n    HHS_STOP_SHAKER, HHS_STOP_TEMP_CTRL, HHS_TERMINATE, HHS_WAIT_FOR_SHAKER, HHS_WAIT_FOR_TEMP_CTRL)\n\nfrom ..resources import layout_item, Plate96, LayoutManager\n\nstd_timeout = 30\n\ndef hhs_begin_monitoring(ham, device_number, tolerance_range, interval, action):\n    cmd = ham.send_command(HHS_BEGIN_MONITORING, deviceNumber = device_number, \\\n            shakingToleranceRange = tolerance_range, sampleInterval = interval, action = action)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\n\ndef hhs_create_star_device(ham, star_device='ML_STAR', used_node=1):\n    return_field = ['step-return2']\n    cmd = ham.send_command(HHS_CREATE_STAR_DEVICE, starDevice=star_device, usedNode=used_node)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    device_number = response.return_data[0]\n    return device_number\n\n\ndef hhs_create_usb_device(ham, used_node):\n    cmd = ham.send_command(HHS_CREATE_USB_DEVICE, usedNode = used_node)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2'])\n    device_number = response.return_data[0]\n    return device_number\n\ndef hhs_end_monitoring(ham, device_number):\n    cmd = ham.send_command(HHS_END_MONITORING, deviceNumber = device_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2'])\n    monitor_result = response.return_data[0]\n    return monitor_result\n\ndef hhs_get_firmware_version(ham, device_number):\n    cmd = ham.send_command(HHS_GET_FIRMWARE_VERSION, deviceNumber = device_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2'])\n    monitor_result = response.return_data[0]\n    return monitor_result\n\ndef hhs_get_serial_num(ham, device_number):\n    cmd = ham.send_command(HHS_GET_SERIAL_NUM, deviceNumber = device_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2'])\n    serial_number = response.return_data[0]\n    return serial_number\n\ndef hhs_get_shaker_param(ham, device_number):\n    return_fields = ['step-return2', 'step-return3']\n    cmd = ham.send_command(HHS_GET_SHAKER_PARAM, deviceNumber = device_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_fields)\n    params = response.return_data[0:1]\n    return params\n\ndef hhs_get_shaker_speed(ham, device_number):\n    cmd = ham.send_command(HHS_GET_SHAKER_SPEED, deviceNumber = device_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2'])\n    shaker_speed = response.return_data[0]\n    return shaker_speed\n\ndef hhs_get_temp_param(ham, device_number):\n    return_fields = ['step-return2', 'step-return3', 'step-return4']\n    cmd = ham.send_command(HHS_GET_TEMP_PARAM, deviceNumber = device_number)\n    data = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_fields)\n    '''***Check STAR_OEM_noFan to verify step return 4'''\n    return data\n\ndef hhs_get_temp(ham, device_number):\n    cmd = ham.send_command(HHS_GET_TEMP, deviceNumber = device_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2'])\n    temp = response.return_data[0]\n    return temp\n\ndef hhs_get_temp_state(ham, device_number):\n    cmd = ham.send_command(HHS_GET_TEMP_STATE, deviceNumber = device_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2'])\n    temp_state = response\n    return temp_state\n\ndef hhs_set_simulation(ham, simulate):\n    cmd = ham.send_command(HHS_SET_SIMULATION, simulate=simulate)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\n\n\n\n\n\ndef hhs_send_firmware_cmd(ham, device_number, command, parameter):\n    '''*** ValueError: Assert valid command \"HHS_SendFirmwareCommand\" failed: command name \"TA\" does not match\n        Probably need to get example commands from Hamilton'''\n    cmd = ham.send_command(HHS_SEND_FIRMWARE_CMD, deviceNumber=device_number, command=command, parameter=parameter)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\n\n\ndef hhs_set_plate_lock(ham, device_number, plate_lock):\n    cmd = ham.send_command(HHS_SET_PLATE_LOCK, deviceNumber=device_number, plateLock=plate_lock)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_set_shaker_param(ham, device_number, shaking_direction, shaking_acc_ramp):\n    cmd = ham.send_command(HHS_SET_SHAKER_PARAM, deviceNumber=device_number, shakingDirection=shaking_direction, \\\n            shakingAccRamp=shaking_acc_ramp)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\n\ndef hhs_set_temp_param(ham, device_number, start_timeout, tolerance_range, security_range):\n    cmd = ham.send_command(HHS_SET_TEMP_PARAM, deviceNumber=device_number, startTimeout=start_timeout, \\\n            toleranceRange=tolerance_range, securityRange=security_range)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_set_usb_trace(ham, trace):\n    cmd = ham.send_command(HHS_SET_USB_TRC, trace=trace)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\n\n\ndef hhs_start_all_shaker(ham, shaking_speed):\n    '''*** trace: complete with error: node not initialized'''\n    cmd = ham.send_command(HHS_START_ALL_SHAKER, shakingSpeed=shaking_speed)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\n\ndef hhs_start_all_shaker_timed(ham, shaking_speed, shaking_time):\n    '''*** trace: complete with error: node not initialized'''\n    cmd = ham.send_command(HHS_START_ALL_SHAKER_TIMED, shakingSpeed=shaking_speed, shakingTime=shaking_time)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_start_shaker(ham, device_number, shaking_speed):\n    cmd = ham.send_command(HHS_START_SHAKER, deviceNumber=device_number, shakingSpeed=shaking_speed)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_start_shaker_timed(ham, device_number, shaking_speed, shaking_time):\n    cmd = ham.send_command(HHS_START_SHAKER_TIMED, deviceNumber=device_number, shakingSpeed=shaking_speed, \\\n            shakingTime=shaking_time)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_start_temp_ctrl(ham, device_number, temperature, wait_for_temp_reached):\n    cmd = ham.send_command(HHS_START_TEMP_CTRL, deviceNumber=device_number, temperature=temperature, \\\n            waitForTempReached=wait_for_temp_reached)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\n\n\ndef hhs_stop_all_shakers(ham):\n    '''*** trace: complete with error: node not initialized'''\n    cmd = ham.send_command(HHS_STOP_ALL_SHAKER)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_stop_shaker(ham, device_number):\n    cmd = ham.send_command(HHS_STOP_SHAKER, deviceNumber=device_number)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_stop_temp_ctrl(ham, device_number):\n    cmd = ham.send_command(HHS_STOP_TEMP_CTRL, deviceNumber=device_number)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_terminate(ham):\n    cmd = ham.send_command(HHS_TERMINATE)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_wait_for_shaker(ham, device_number):\n    cmd = ham.send_command(HHS_WAIT_FOR_SHAKER, deviceNumber=device_number)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\ndef hhs_wait_for_temp_ctrl(ham, device_number):\n    cmd = ham.send_command(HHS_WAIT_FOR_TEMP_CTRL, deviceNumber=device_number)\n    ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n\nclass HHS:\n    \"\"\"Helper class for Hamilton Heater Shaker devices.\"\"\"\n    def __init__(self, node, sequence, lmgr: LayoutManager):\n        self.node = node\n        self._sequence = sequence\n        self.lmgr = lmgr\n        self.resource = layout_item(lmgr, Plate96, sequence)\n    \n    def layout_name(self):\n        return self._sequence\n"
  },
  {
    "path": "pyhamilton/devices/hig_wrappers.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Fri Feb 10 00:01:53 2023\n\n@author: stefa\n\"\"\"\n\nimport sys, os, time, logging, importlib\nfrom threading import Thread\n\nfrom ..interface import HamiltonInterface\n\nfrom ..interface import (HIG_CONNECT, HIG_DISCONNECT, HIG_HOME, HIG_SPIN,\n                        HIG_SPINWAIT, HIG_OPEN, HIG_CLOSE, HIG_SPINNING,\n                        HIG_ABORT)\n\nstd_timeout = 5\n\n\ndef hig_connect(ham, device_id, adapter_device_id, simulation_mode):\n    return_field = ['step-return2']\n    cmd = ham.send_command(HIG_CONNECT, DeviceID=device_id, AdapterDeviceID = adapter_device_id, SimulationMode = simulation_mode)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    result = response.return_data[0]\n    return result\n\ndef hig_disconnect(ham):\n    cmd = ham.send_command(HIG_DISCONNECT)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n    return response\n\ndef hig_home(ham):\n    cmd = ham.send_command(HIG_HOME)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n    result = response.return_data[0]\n    return result\n\ndef hig_spin(ham, Gs, acceleration_pct, deceleration_pct, time):\n    cmd = ham.send_command(HIG_SPIN, RotationalGs = Gs, AccelPercent = acceleration_pct, \n                                    DecelPercent = deceleration_pct)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, \n                                    timeout = time + std_timeout)\n    return response\n\ndef hig_spin_and_wait(ham, Gs, acceleration, deceleration, time):\n    cmd = ham.send_command(HIG_SPINWAIT)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n    return response\n\ndef hig_open_shield(ham, bucket_index):\n    cmd = ham.send_command(HIG_OPEN, BucketIndex = bucket_index)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n    return response\n\ndef hig_close_shield(ham):\n    cmd = ham.send_command(HIG_CLOSE)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n    return response\n\ndef hig_is_spinning(ham):\n    return_field = ['step-return2']\n    cmd = ham.send_command(HIG_SPINNING)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    result = response.return_data[0]\n    return result\n\ndef hig_home(ham):\n    cmd = ham.send_command(HIG_ABORT)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout)\n    return response"
  },
  {
    "path": "pyhamilton/devices/mpe_wrappers.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Sun Feb 12 18:56:58 2023\n\n@author: stefa\n\"\"\"\n\nimport sys, os, time, logging, importlib\nfrom threading import Thread\n\nfrom functools import partial\n\nfrom ..interface import HamiltonInterface\n\nfrom ..interface import (MPE2_IP, MPE2_COM, MPE2_CLAMP, MPE2_COL_PLACED,\n                        MPE2_COL_REMOVED, MPE2_DISCONNECT, MPE2_INIT,\n                        MPE2_INIT_PARAMS, MPE2_DISCONNECT, MPE2_FIL_PLACED,\n                        MPE2_FIL_REMOVED, MPE2_FIL_TO_COL, MPE2_FIL_TO_WASTE,\n                        MPE2_FLUSH,MPE2_EVAP, MPE2_EVAP_END, MPE2_EVAP_RATE, \n                        MPE2_PRIME, MPE2_HEATER_STATUS, MPE2_TEMP_RANGE, MPE2_GET_VAC,\n                        MPE2_MEAS_EMPTY, MPE2_MEAS_FULL, MPE2_DISPENSE,\n                        MPE2_GET_PRESS, MPE2_RETRIEVE_FIL, MPE2_START_VAC, MPE2_STOP_VAC)\n\n\ndef mpe2_connect_ip(ham, instrument_name, port_number, simulation_mode, options = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_IP, InstrumentName=instrument_name, PortNumber=port_number, SimulationMode=simulation_mode, Options=options)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field)\n    result = response.return_data[0]\n    return result\n\ndef mpe2_connect_com(ham, com_port, baud_rate, simulation_mode, options = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_COM, ComPort=com_port, BaudRate=baud_rate, SimulationMode=simulation_mode, Options=options)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field)\n    return response\n\ndef mpe2_clamp_filter_plate(ham, device_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_CLAMP, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field)\n    return response\n\ndef mpe2_collection_plate_placed(ham, device_id, collection_plate_height, offset_from_nozzles):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_COL_PLACED, DeviceID=device_id, CollectionPlateHeight=collection_plate_height, OffsetFromNozzles=offset_from_nozzles)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field)\n    return response\n\ndef mpe2_collection_plate_removed(ham, device_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_COL_REMOVED, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field)\n    return response\n\ndef mpe2_disconnect(ham, device_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_DISCONNECT, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field)\n    return response\n\ndef mpe2_initialize(ham, device_id):\n    cmd = ham.send_command(MPE2_INIT, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_initialize_with_params(ham, device_id, smart, waste_container_id, vacuum_run_time, disable_vacuum_check):\n    cmd = ham.send_command(MPE2_INIT_PARAMS, DeviceID=device_id, Smart=smart, WasteContainerID=waste_container_id, VacuumRunTime=vacuum_run_time, DisableVacuumCheck=disable_vacuum_check)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_filter_plate_placed(ham, device_id, filter_height, nozzle_height):\n    cmd = ham.send_command(MPE2_FIL_PLACED, DeviceID=device_id, FilterHeight=filter_height, NozzleHeight=nozzle_height)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_filter_plate_removed(ham, device_id):\n    cmd = ham.send_command(MPE2_FIL_REMOVED, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_process_filter_to_collection_plate(ham, device_id, control_points, return_plate_to_integration_area=''):\n    cmd = ham.send_command(MPE2_FIL_TO_COL, DeviceID=device_id, ControlPoints=control_points, ReturnPlateToIntegrationArea=return_plate_to_integration_area)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_process_filter_to_waste_container(ham, device_id, control_points, return_plate_to_integration_area='', waste_container_id='', disable_vacuum_check=''):\n    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)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_retrieve_filter_plate(ham, device_id):\n    cmd = ham.send_command(MPE2_RETRIEVE_FIL, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_start_mpe_vacuum(ham, device_id, waste_container_id='', disable_vacuum_check=''):\n    cmd = ham.send_command(MPE2_START_VAC, DeviceID=device_id, WasteContainerID=waste_container_id, DisableVacuumCheck=disable_vacuum_check)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_stop_vacuum(ham, device_id):\n    cmd = ham.send_command(MPE2_STOP_VAC, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_get_vacuum_status(ham, device_id):\n    cmd = ham.send_command(MPE2_GET_VAC, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_get_pressure_readings(ham, device_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_GET_PRESS, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field)\n    return response\n\ndef mpe2_dispense(ham, device_id, source_id, well_volume, flow_rate_aspirate, flow_rate_dispense, needle_offset):\n    return_field = ['step-return2']\n    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)\n    response = ham.wait_on_response(cmd, raise_first_exception=True,  return_data=return_field)\n    return response\n\ndef mpe2_prime(ham, device_id, source_id, well_volume, flow_rate, waste_container_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_PRIME, DeviceID=device_id, SourceID=source_id, WellVolume=well_volume, FlowRate=flow_rate, WasteContainerID=waste_container_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True,  return_data=return_field)\n    return response\n\ndef mpe2_flush(ham, device_id, well_volume, flow_rate, waste_container_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(MPE2_FLUSH, DeviceID=device_id, WellVolume=well_volume, FlowRate=flow_rate, WasteContainerID=waste_container_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field)\n    return response\n\ndef mpe2_evaporate(ham, device_id, plate_height, needle_offset, well_depth, evaporator_travel_distance, evaporate_time):\n    return_field = ['step-return2']\n    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)\n    response = ham.wait_on_response(cmd, raise_first_exception=True,  return_data=return_field)\n    return response\n\n\ndef mpe2_evaporate_with_rate(ham, device_id, plate_height, needle_offset, well_depth, evaporator_travel_distance, evaporate_time, follow_rate):\n    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)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_evaporate_end(ham, device_id, timeout):\n    cmd = ham.send_command(MPE2_EVAP_END, DeviceID=device_id, Timeout=timeout)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_get_temperature_range(ham, device_id):\n    cmd = ham.send_command(MPE2_TEMP_RANGE, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_get_heater_status(ham, device_id, reset):\n    cmd = ham.send_command(MPE2_HEATER_STATUS, DeviceID=device_id, Reset=reset)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\ndef mpe2_get_heater_range(ham, device_id, reset):\n    cmd = ham.send_command(MPE2_TEMP_RANGE, DeviceID=device_id, Reset=reset)\n    response = ham.wait_on_response(cmd, raise_first_exception=True)\n    return response\n\n\n\n"
  },
  {
    "path": "pyhamilton/devices/odtc_wrappers.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Mon Jan 23 23:25:49 2023\n\n@author: stefa\n\"\"\"\n\nimport sys, os, time, logging, importlib\nfrom threading import Thread\nfrom dataclasses import dataclass\n\nfrom ..interface import HamiltonInterface, HamiltonResponse\n\nfrom ..interface import (ODTC_ABORT, ODTC_CONNECT, ODTC_INIT, ODTC_CLOSE, \n                        ODTC_PRTCL, ODTC_EVAL, ODTC_EXCT, ODTC_STATUS, \n                        ODTC_OPEN, ODTC_READ, ODTC_RESET, ODTC_STOP, ODTC_TERM)\n\nstd_timeout = 60\n\n\ndef odtc_abort(ham, device_id, lock_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_ABORT, DeviceID=device_id, LockID=lock_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_connect(ham, simulation_mode, local_ip, device_ip, device_port = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_CONNECT, LocalIP=local_ip, DeviceIP=device_ip, DevicePort=device_port, SimulationMode=simulation_mode)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    if response == 0 and not ham.simulating:\n        raise RuntimeError(\"Failed to connect to ODTC device\")\n    if ham.simulating:\n        return 1  # Simulated device ID\n    else:\n        device_id = int(response.return_data[0])\n    return device_id\n\ndef odtc_initialize(ham, device_id, lock_id = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_INIT, DeviceID=device_id, LockID=lock_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_close_door(ham, device_id, lock_id = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_CLOSE, DeviceID=device_id, LockID=lock_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_download_protocol(ham, device_id, protocol_file, lock_id = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_PRTCL, DeviceID=device_id, LockID=lock_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_evaluate_error(ham, device_id, lock_id = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_EVAL, DeviceID=device_id, LockID=lock_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_execute_protocol(ham, device_id, method_name, simulating, priority=1, lock_id = ''):\n    \n    if not 0 < priority < 10001:\n        raise ValueError(\"Date provided can't be in the past\")\n    \n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_EXCT, DeviceID=device_id, LockID=lock_id, MethodName=method_name, Priority=priority)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n\n    @dataclass\n    class ODTCExecuteResponse:\n        duration: float     \n        resultID: int\n        raw: HamiltonResponse  # keep the raw object if callers need extras\n\n    if simulating:\n        return ODTCExecuteResponse(duration=0.0, resultID=0, raw=response)\n    else:\n        return ODTCExecuteResponse(duration=response.return_data[0], resultID=response.return_data[1], raw=response)\n\ndef odtc_get_status(ham, device_id, simulating):\n    print(\"Checking ODTC status...\")\n    print(simulating)\n\n    return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5',\n                     'step-return6', 'step-return7', 'step-return8']\n    cmd = ham.send_command(ODTC_STATUS, DeviceID=device_id)\n    \n    @dataclass\n    class ODTCStatusResponse:\n        '''\n        'startup', 'resetting', 'standby', 'idle', 'busy', 'paused', 'errorhandling', \n        'inerror', 'asynchpaused', 'pauserequested', 'processing', 'responsewaiting'\n        '''\n        state: str\n        raw: HamiltonResponse # keep the raw object if callers need extras\n\n    if ham.simulating or simulating:\n        print(\"Simulating ODTC status as 'idle'\")\n        return ODTCStatusResponse(state='idle', raw=None)\n    \n    else:\n        response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_fields)\n    \n        result = ODTCStatusResponse(\n            state=response.return_data[0],\n            raw=response\n        )\n        return result\n\ndef odtc_open_door(ham, device_id, lock_id = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_OPEN, DeviceID=device_id, LockID=lock_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_read_actual_temperature(ham, device_id, lock_id = ''):\n    return_fields = ['step-return2', 'step-return3']\n    cmd = ham.send_command(ODTC_READ, DeviceID=device_id, LockID=lock_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_fields)\n    if ham.simulate:\n        return ['Simulation_mode_placeholder']*len(return_fields)\n    else:\n        result = response.return_data\n        return result\n\ndef odtc_reset(ham, device_id, simulation_mode, timeout, str_device_id = '', pms_id = '', lock_id = ''):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_RESET, DeviceID=device_id, LockID=lock_id, SimulationMode=simulation_mode, TimeToWait=timeout, strDeviceID=str_device_id, PMSID=pms_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_stop_method(ham, device_id, lock_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_STOP, DeviceID=device_id, LockID=lock_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_terminate(ham, device_id):\n    return_field = ['step-return2']\n    cmd = ham.send_command(ODTC_TERM, DeviceID=device_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field)\n    return response\n\ndef odtc_wait_for_idle(ham, device_id, simulating, check_interval=5, max_wait=3000):\n    '''\n    Waits until the ODTC device is in 'idle' state.\n    \n    Parameters:\n        ham (HamiltonInterface): The Hamilton interface instance.\n        device_id (int): The ID of the ODTC device.\n        check_interval (int): Time in seconds between status checks.\n        max_wait (int): Maximum time in seconds to wait before raising a TimeoutError.\n    \n    Raises:\n        TimeoutError: If the device does not reach 'idle' state within max_wait time.\n    '''\n    if simulating:\n        return\n    \n    start_time = time.time()\n    while True:\n        status = odtc_get_status(ham, device_id, simulating)\n        if status.state == 'idle':\n            return\n        elif time.time() - start_time > max_wait:\n            raise TimeoutError(f\"ODTC device {device_id} did not reach 'idle' state within {max_wait} seconds.\")\n        time.sleep(check_interval)\n\n"
  },
  {
    "path": "pyhamilton/devices/pH_wrappers.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Sun Oct  2 15:40:58 2022\n\n@author: stefa\n\"\"\"\nimport sys, os, time, logging, importlib\nfrom threading import Thread\n\nfrom ..interface import HamiltonInterface\n\nfrom ..interface import (PH_INIT, PH_REQ_BTRY, PH_MEASURE, PH_MEASURE_DYN, PH_REQ_CALIBRATION, PH_REQ_PROBE_DATA,\n                        PH_REQ_TECH_DATA, PH_CALIBRATE, PH_CALIBRATE_DYN, PH_TERM, PH_SLEEP, PH_WAKEUP, PH_WASHER_INIT,\n                        PH_WASHER_WASH, PH_WASHER_TERM, PH_DRYER_INIT, PH_DRYER_START, PH_DRYER_STOP, PH_DRYER_TERM,\n                        PHC_WASH, PHC_DRY, PHC_LOAD, PHC_SAVE)\n\nfrom ..interface import (PHC_INIT, PHC_SET_PARAMS, PHC_PICKUP, PHC_PARK, PHC_CAL, PHC_MEASURE_CYCLE)\nfrom ..liquid_handling_wrappers import compound_pos_str\n\n\nDEFAULT_WAIT_ON_RESPONSE_TIMEOUT = 300  # seconds\n\n\n\n### Controller functions ###\n\ndef ph_controller_initialize(ham, port_number, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PHC_INIT, PortNumber = port_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data=['step-return2'])\n    return int(response.moduleID)\n\ndef ph_controller_parameters(ham, module_id, seq_gripper, seq_wash, seq_dry, transport_channels,wash_cycles,dry_cycles,dry_time,\n                             raise_first_exception=True,\n                             wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    \n    cmd = ham.send_command(PHC_SET_PARAMS,\n                           ModuleID = module_id,\n                           seqGripper = seq_gripper,\n                           seqWashPosition = seq_wash,\n                           seqDryPosition = seq_dry,\n                           TransportChannel = transport_channels,\n                           WashCycles = wash_cycles,\n                           DryCycles = dry_cycles,\n                           DryTime = dry_time)\n    \n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\n\ndef ph_controller_pickup(ham, module_id, seq_module, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PHC_PICKUP, ModuleID = module_id, seqModule = seq_module)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n    \ndef ph_controller_park(ham, module_id, seq_module, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PHC_PARK, ModuleID = module_id, seqModule = seq_module)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\n\ndef ph_controller_calibrate(ham, module_id, seq_module, seq_solution_1,seq_solution_2,seq_reference,\n                           measure_time,calibration_time,measure_height, pH_solution_1, pH_solution_2,\n                           pH_reference,temp_solution_1, temp_solution_2, temp_solution_ref, calibrate_dynamically,\n                           raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    \n    cmd = ham.send_command(PHC_CAL, ModuleID = module_id, seqModule = seq_module, seqCalibration1 = seq_solution_1, \n                           seqCalibration2 = seq_solution_2, seqReference = seq_reference, MeasureTime = measure_time,\n                           CalibrationTime = calibration_time, MeasureHeight = measure_height, \n                           CalibrationValue1 = pH_solution_1, CalibrationValue2 = pH_solution_2, \n                           CalibrationValueRef = pH_reference, TempSoln1 = temp_solution_1, TempSoln2 = temp_solution_2,\n                           TempSolnRef = temp_solution_ref, CalibrateDynamically = calibrate_dynamically)\n    \n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\n\ndef ph_controller_measure_cycle(ham, module_id, pos, measure_height, probe_pattern, measure_time,temperature,\n                             raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    \n    return_fields = ['step-return2']\n    labware_pos = compound_pos_str(pos)\n    cmd = ham.send_command(PHC_MEASURE_CYCLE,\n                           ModuleID = module_id,\n                           MeasurePositions = labware_pos,\n                           MeasureHeight = measure_height,\n                           ProbePattern = probe_pattern,\n                           MeasureTime = measure_time,\n                           Temperature = temperature)\n    \n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, \n                                    timeout=wait_on_response_timeout, return_data = return_fields)\n    \n    pH_values = response.return_data[0].split(';')\n    pH_values = [float(pH) for pH in pH_values]\n    return pH_values\n\ndef ph_controller_wash(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PHC_WASH, ModuleID = module_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\ndef ph_controller_dry(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PHC_DRY, ModuleID = module_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\ndef ph_controller_loadconfig(ham, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5']\n    cmd = ham.send_command(PHC_LOAD)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, \n                                    timeout=wait_on_response_timeout, return_data = return_fields)\n    return response\n\ndef ph_controller_saveconfig(ham, bluetooth_port, num_wash_cycles, num_dry_cycles, dry_time, \n                             raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    \n    cmd = ham.send_command(PHC_SAVE, BluetoothPort = bluetooth_port, NumWashCycles = num_wash_cycles,\n                           NumDryCycles = num_dry_cycles, DryTime = dry_time)\n    \n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, \n                                    timeout=wait_on_response_timeout)\n    return response\n\n### Low-level functions ###\n\ndef ph_initialize(ham, comport, simulate, asynch=False, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_INIT, Comport = comport, SimulationMode = simulate)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data=['step-return2'])\n    return int(response.moduleID)\n\ndef ph_req_battery_data(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5']\n    cmd = ham.send_command(PH_REQ_BTRY, ModuleID = module_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields)\n    return response.return_data\n\ndef ph_measure(ham, module_id, temperature, probePattern, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5']\n    cmd = ham.send_command(PH_MEASURE, ModuleID = module_id, Temperature = temperature, probePattern = probePattern)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields)\n    return response.return_data\n\ndef ph_measure_dynamic(ham, module_id, temperature, precision, timeout, probePattern, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5']\n    cmd = ham.send_command(PH_MEASURE_DYN, ModuleID = module_id, Temperature = temperature,\n                           Precision = precision, Timeout = timeout, probePattern = probePattern)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields)\n    return response.return_data\n\ndef ph_request_calibration(ham, module_id, probe_number, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5',\n                     'step-return6', 'step-return7', 'step-return8', 'step-return9'\n                     ]\n    cmd = ham.send_command(PH_REQ_CALIBRATION, ModuleID = module_id, ProbeNumber = probe_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields)\n    return response.return_data\n\n\ndef ph_request_probe_data(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5',\n                     'step-return6'\n                     ]\n    cmd = ham.send_command(PH_REQ_PROBE_DATA, ModuleID = module_id)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields)\n    return response.return_data\n\ndef ph_request_technical_data(ham, module_id, hardware_number, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5']\n    cmd = ham.send_command(PH_REQ_TECH_DATA, ModuleID = module_id, HardwareNumber = hardware_number)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields)\n    return response.return_data\n\ndef 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):\n    cmd = ham.send_command(PH_CALIBRATE, ModuleID = module_id, CalibrationLevel = cal_level,\n                           CalibrationValue = cal_value, CalibrationTemperature=cal_temperature,\n                           probePattern = probe_pattern)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n    return response\n\ndef 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):\n    cmd = ham.send_command(PH_CALIBRATE_DYN, ModuleID = module_id, Variance = variance, Timeout = timeout,\n                           CalibrationLevel = cal_level, CalibrationValue = cal_value,\n                           CalibrationTemperature=cal_temperature, probePattern = probe_pattern)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n    return response\n\n\ndef ph_wakeup(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_WAKEUP, ModuleID = module_id)\n    return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\ndef ph_sleep(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_SLEEP, ModuleID = module_id)\n    return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\ndef ph_washer_initialize(ham, comport, simulate, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_WASHER_INIT, Comport = comport, SimulationMode = simulate)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data=['step-return2'])\n    return int(response.moduleID)\n\ndef ph_washer_wash(ham, module_id, cycle_num, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_WASHER_WASH, ModuleID = module_id, CycleNumber = cycle_num)\n    return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\ndef ph_washer_terminate(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_WASHER_TERM, ModuleID = module_id)\n    return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\ndef ph_dryer_initialize(ham, comport, simulate, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_DRYER_INIT, Comport = comport, SimulationMode = simulate)\n    response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data=['step-return2'])\n    return int(response.moduleID)\n\ndef ph_dryer_start(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_DRYER_START, ModuleID = module_id)\n    return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\ndef ph_dryer_stop(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_DRYER_STOP, ModuleID = module_id)\n    return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\ndef ph_dryer_terminate(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT):\n    cmd = ham.send_command(PH_DRYER_TERM, ModuleID = module_id)\n    return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout)\n\n"
  },
  {
    "path": "pyhamilton/devices/tec_wrappers.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Tue May 30 21:44:03 2023\n\n@author: stefa\n\"\"\"\nfrom ..interface import TEC_INIT, TEC_START, TEC_SET_TARGET, TEC_STOP, TEC_TERMINATE, TEC_GET_TEMPERATURE, HamiltonInterface\nimport logging\n\ndef initialize_tec(ham, controller_id, simulating):\n    logging.info('Initializing TEC/CPAC ' + str(controller_id) )\n    cid = ham.send_command(TEC_INIT, ControllerID=controller_id, SimulationMode=simulating)\n    ham.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef set_temperature_target_tec(ham, target_temp, controller_id, device_id):\n    logging.info('Set target temperature ' + str(controller_id) +' '+ str(device_id)+' to '+str(target_temp)+' degrees C')\n    cid = ham.send_command(TEC_SET_TARGET, TargetTemperature=target_temp, ControllerID=controller_id, DeviceID=device_id)\n    ham.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef get_temperature_tec(ham:HamiltonInterface, controller_id, device_id, selector = 1):\n    logging.info('Getting temperature ' + str(controller_id) +' '+ str(device_id))\n    cid = ham.send_command(TEC_GET_TEMPERATURE, ControllerID=controller_id, DeviceID=device_id, Selector=selector)\n    response = ham.wait_on_response(cid, raise_first_exception=True, timeout=120, return_data=['step-return2'])\n    return response\n\ndef start_temperature_control_tec(ham, controller_id, device_id):\n    logging.info('Starting temperature control '+str(controller_id)+' '+str(device_id))\n    cid=ham.send_command(TEC_START, ControllerID=controller_id, DeviceID=device_id)\n    ham.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef stop_temperature_control_tec(ham, controller_id, device_id):\n    logging.info('Ending temperature control '+str(controller_id)+' '+str(device_id))\n    cid=ham.send_command(TEC_STOP, ControllerID=controller_id, DeviceID=device_id)\n    ham.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef terminate_tec(ham, stop_all_devices):\n    logging.info('Terminating TEC/ CPAC')\n    cid=ham.send_command(TEC_TERMINATE, StopAllDevices=stop_all_devices)\n    ham.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n# CPAC has the exact same API as TEC\ninitialize_cpac = initialize_tec\nset_temperature_target_cpac = set_temperature_target_tec\nget_temperature_cpac = get_temperature_tec\nstart_temperature_control_cpac = start_temperature_control_tec\nstop_temperature_control_cpac = stop_temperature_control_tec\nterminate_cpac = terminate_tec"
  },
  {
    "path": "pyhamilton/error_code_descriptions.txt",
    "content": "Main Error Enumeration\nID\n Error\n Description\n \n 0\n No error\n -\n \n 1\n Syntax Error\n There is a wrong set of parameters or parameter ranges.\n \n 2\n Hardware Error\n Steps lost on one or more hardware components, or component not initialized or not functioning.\n \n 3\n Not Executed Error\n There was an error in previous part command.\n \n 4\n Clot Error\n Blood clot detected.\n \n 5\n Barcode Error\n Barcode could not be read or is missing.\n \n 6\n Insufficient Liquid Error\n Not enough liquid available.\n \n 7\n Tip Present Error\n A tip has already been picked up.\n \n 8\n No Tip Error\n Tip is missing or not picked up.\n \n 9\n No Carrier Error\n No carrier present for loading.\n \n 10\n Execution Error\n A step or a part of a step could not be processed.\n \n 11\n Pressure LLD Error\n A dispense with pressure liquid level detection is not allowed.\n \n 12\n Calibrate Error\n No capacitive signal detected during carrier calibration procedure.\n \n 13\n Unload Error\n Not possible to unload the carrier due to occupied loading tray position.\n \n 14\n Pressure LLD Error\n Pressure liquid level detection in a consecutive aspiration is not allowed.\n \n 15\n Parameter Error\n Dispense in jet mode with pressure liquid level detection is not allowed.\n \n 16\n Cover Open Error\n Cover not closed or can not be locked.\n \n 17\n Improper Aspiration Error\n\nImproper Dispense Error\n The pressure-based aspiration / dispensation control reported an error ( not enough liquid ).\n \n 18\n Wash Liquid Error\n Waste full or no more wash liquid available.\n \n 19\n Temperature Error\n Incubator temperature out of range.\n \n 20\n TADM overshot\n Overshot of limits during aspirate or dispense.\n\nNote:\n\nOn aspirate this error is returned as main error 17.\n\nOn dispense this error is returned as main error 4.\n \n 21\n Labware Error\n Labware not available.\n \n 22\n Labware Gripped Error\n Labware already gripped.\n \n 23\n Labware Lost Error\n Labware lost during transport.\n \n 24\n Illegal target plate position\n Cannot place plate, plate was gripped in a wrong direction.\n \n 25\n Illegal Intervention Error\n Cover was opened or a carrier was removed manually.\n \n 26\n TADM undershot\n Undershot of limits during aspirate or dispense.\n\nNote:\n\nOn aspirate this error is returned as main error 4.\n\nOn dispense this error is returned as main error 17.\n \n 27\n Position Error\n The position is out of range.\n \n28\n Unexpected cLLD Error\n The cLLD detected a liquid level above start height of liquid level search.\n \n29\n Area already occupied\n Instrument region already reserved.\n \n30\n Impossible to occupy area\n A region on the instrument cannot be reserved.\n \n31\n Anti drop control error\n Anti drop controlling out of tolerance.\n \n32\n Decapper error\n Decapper lock error while screw / unscrew a cap by twister channels.\n \n33\n Decapper handling error\n Decapper station error while lock / unlock a cap.\n \n99\n Slave Error\n Slave error.\n \n 100\n Wrong Carrier Error\n Wrong carrier barcode detected.\n \n 101\n No Carrier Barcode Error\n Carrier barcode could not be read or is missing.\n \n 102\n Liquid Level Error\n Liquid surface not detected.\n\nThis error is created from main / slave error 06/70, 06/73 and 06/87.\n \n 103\n Not Detected Error\n Carrier not detected at deck end position.\n \n 104\n Not Aspirated Error\n Dispense volume exceeds the aspirated volume.\n\nThis error is created from main / slave error 02/54.\n \n105\n Improper Dispensation Error\n The dispensed volume is out of tolerance (may only occur for Nano Pipettor Dispense steps). \n\nThis error is created from main / slave error 02/52 and 02/54.\n \n106\n No Labware Error\n The labware to be loaded was not detected by autoload module.\n\nNote:\n\nMay only occur on a Reload Carrier step if the labware property 'MlStarCarPosAreRecognizable' is set to 1.\n \n107\n Unexpected Labware Error\n The labware contains unexpected barcode ( may only occur on a Reload Carrier step ).\n \n108\n Wrong Labware Error\n The labware to be reloaded contains wrong barcode ( may only occur on a Reload Carrier step ).\n \n109\n Barcode Mask Error\n The barcode read doesn't match the barcode mask defined.\n \n110\n Barcode Not Unique Error\n The barcode read is not unique. Previously loaded labware with same barcode was loaded without unique barcode check.\n \n111\n Barcode Already Used Error\n The barcode read is already loaded as unique barcode ( it's not possible to load the same barcode twice ).\n \n112\n Kit Lot Expired Error\n Kit Lot expired.\n \n113\n Delimiter Error\n Barcode contains character which is used as delimiter in result string.\n \n"
  },
  {
    "path": "pyhamilton/interface.py",
    "content": "import sys\nimport time, json, signal, os, requests, string, logging, subprocess\nfrom dataclasses import dataclass, field\nfrom enum import auto, Enum, unique\nfrom parse import parse\nfrom waiter import wait, suppress\nfrom http import server\nfrom threading import Thread\nfrom multiprocessing import Process\nfrom pyhamilton import OEM_RUN_EXE_PATH, OEM_HSL_PATH\nfrom .oemerr import * #TODO: specify\nfrom .defaultcmds import defaults_by_cmd\nfrom .liquid_class_db import get_liquid_class_volume, get_liquid_class_dispense_mode\n\ndef invert_columns(pos_str: str, sep: str = ';') -> str:\n    parts = pos_str.split(sep)\n    wells_per_col = 8\n    num_cols = 12\n\n    if len(parts) != wells_per_col * num_cols:\n        raise ValueError(f\"Expected {wells_per_col * num_cols} entries, got {len(parts)}\")\n\n    cols = [parts[i*wells_per_col:(i+1)*wells_per_col] for i in range(num_cols)]\n    inverted = cols[::-1]\n    return sep.join(item for col in inverted for item in col)\n\nclass HamiltonCmdTemplate:\n    \"\"\"\n    Formatter object to create valid `pyhamilton` command dicts.\n\n    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.\n\n    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.\n    \"\"\"\n\n    @staticmethod\n    def unique_id():\n        \"\"\"Return a \"uniqe\" hexadecimal string (`'0x...'`) based on time of call.\"\"\"\n        return hex(int((time.time()%3600e4)*1e6))\n\n    def __init__(self, cmd_name, params_list):\n        \"\"\"\n        Creates a `HamiltonCmdTemplate` with a command name and required parameters.\n\n        The command name must be one of the command names accepted by the\n        `pyhamilton` interpreter and a list of expected parameters for this command.\n\n        Args:\n          cmd_name (str): One of the set of string literals recognized as command names\n            by the `pyhamilton` interpreter, e.g. `'mph96Dispense'`. See `pyhamilton.defaultcmds` for examples.\n          params_list (list): exact list of string parameters that must have associated\n            values for the command to be valid, other than those that are always present\n            (`'command'` and `'id'`)\n        \"\"\"\n        self.cmd_name = cmd_name\n        self.params_list = params_list\n        if cmd_name in defaults_by_cmd:\n            const_name, default_dict = defaults_by_cmd[cmd_name]\n            self.defaults = {k:v for k, v in default_dict.items() if v is not None}\n        else:\n            self.defaults = {}\n\n    def assemble_cmd(self, *args, **kwargs):\n        \"\"\"\n        Use keyword args to assemble this command. Default values auto-filled.\n\n        Args:\n          kwargs (dict): map of any parameters (str) to values that should be different\n            from the defaults supplied for this command in `pyhamilton.defaultcmds`\n        \"\"\"\n        if args:\n            raise ValueError('assemble_cmd can only take keyword arguments.')\n        assembled_cmd = {'command':self.cmd_name, 'id':HamiltonCmdTemplate.unique_id()}\n        assembled_cmd.update(self.defaults)\n        assembled_cmd.update(kwargs)\n        self.assert_valid_cmd(assembled_cmd)\n        return assembled_cmd\n\n    def assert_valid_cmd(self, cmd_dict):\n        \"\"\"Validate a finished command. Do nothing if it is valid.\n\n        `ValueError` will be raised if the supplied command did not have all required\n        parameters for this command, as well as values for keys `'id'` and `'command'`, which\n        are always required.\n\n        Args:\n          cmd_dict (dict): A fully assembled `pyhamilton` command\n\n        Raises:\n          ValueError: The command dict is not ready to send. Specifics of mismatch\n            summarized in exception description.\n        \"\"\"\n        prefix = 'Assert valid command \"' + self.cmd_name + '\" failed: '\n        if 'id' not in cmd_dict:\n            raise ValueError(prefix + 'no key \"id\"')\n        if 'command' not in cmd_dict:\n            raise ValueError(prefix + 'no key \"command\"')\n        if cmd_dict['command'] != self.cmd_name:\n            raise ValueError(prefix + 'command name \"' + cmd_dict['command'] + '\" does not match')\n        needs = set(['command', 'id'])\n        needs.update(self.params_list)\n        givens = set(cmd_dict.keys())\n        if givens != needs:\n            prints = [prefix + 'template parameter keys (left) do not match given keys (right)\\n']\n            q_mark = ' (?)  '\n            l_col_space = 4\n            r_col_space = max((len(key) for key in needs)) + len(q_mark) + 1\n            needs_l = sorted(list(needs))\n            givens_l = sorted(list(givens))\n            while needs_l or givens_l:\n                if needs_l:\n                    lval = needs_l.pop(0)\n                    if lval not in givens:\n                        lval = q_mark + lval\n                else:\n                    lval = ''\n                if givens_l:\n                    rval = givens_l.pop(0)\n                    if rval not in needs:\n                        rval = q_mark + rval\n                else:\n                    rval = ''\n                prints.append(' '*l_col_space + lval + ' '*(r_col_space - len(lval)) + rval)\n            raise ValueError('\\n'.join(prints))\n\n_builtin_templates_by_cmd = {}\n\nfor cmd in defaults_by_cmd:\n    const_name, default_dict = defaults_by_cmd[cmd]\n    const_template = HamiltonCmdTemplate(cmd, list(default_dict.keys()))\n    globals()[const_name] = const_template\n    _builtin_templates_by_cmd[cmd] = const_template\n\ndef labware_pos_str(labware, idx):\n    return labware.layout_name() + ', ' + labware.position_id(idx)\n\n\ndef _make_new_hamilton_serv_handler(resp_indexing_fn):\n    \"\"\"Make HTTP request handler to aggregate responses according to an index function.\"\"\"\n\n\n    \n\nclass HamiltonServerHandler(server.BaseHTTPRequestHandler):\n    _send_queue = []\n    indexed_responses = {}\n    MAX_QUEUED_RESPONSES = 1000\n    \n    @classmethod\n    def set_indexing_fn(cls, fn):\n        cls.indexing_fn = fn\n\n\n    @staticmethod\n    def send_str(cmd_str):\n        if not isinstance(cmd_str, b''.__class__):\n            if isinstance(cmd_str, ''.__class__):\n                cmd_str = cmd_str.encode()\n            else:\n                raise ValueError('send_command can only send strings, not ' + str(cmd_str))\n        HamiltonServerHandler._send_queue.append(cmd_str)\n\n    @staticmethod\n    def has_queued_cmds():\n        return bool(HamiltonServerHandler._send_queue)\n\n    @staticmethod\n    def pop_response(idx):\n        ir = HamiltonServerHandler.indexed_responses\n        return None if idx not in ir else ir.pop(idx).decode()\n\n    def _set_headers(self):\n        self.send_response(200)\n        self.send_header('Content-type', 'text/HTML')\n        self.end_headers()\n\n    def do_GET(self):\n        sq = HamiltonServerHandler._send_queue\n        response_to_send = sq.pop(0) if sq else b''\n        self._set_headers()\n        self.wfile.write(response_to_send)\n\n    def do_HEAD(self):\n        self._set_headers()\n\n    def do_POST(self):\n        content_len = int(self.headers.get('content-length', 0))\n        post_body = self.rfile.read(content_len)\n        self._set_headers()\n        self.wfile.write(b'<html><body><h1>POST!</h1></body></html>')\n        ir = HamiltonServerHandler.indexed_responses\n        index = HamiltonServerHandler.indexing_fn(post_body)\n        if index is None:\n            return\n        ir[index] = post_body\n\n    def log_message(self, *args, **kwargs):\n        pass\n\n\ndef run_hamilton_process():\n    print(\"RUNNING HAMILTON PROCESS\")\n    \"\"\"Start the interpreter in a separate python process.\n\n    Starts the pyhamilton interpreter, which is an HSL file to be passed to the\n    RunHSLExecutor.exe executable from Hamilton. This should always be done in a\n    separate python process using the subprocess module, not a Thread.\n    \"\"\"\n    import clr\n    from pyhamilton import OEM_STAR_PATH, OEM_HSL_PATH\n    clr.AddReference(os.path.join(OEM_STAR_PATH, 'RunHSLExecutor'))\n    clr.AddReference(os.path.join(OEM_STAR_PATH, 'HSLHttp'))\n    try:\n        from RunHSLExecutor import Class1\n    except ModuleNotFoundError:\n        raise RuntimeError('RunHSLExecutor DLLs successfully located, but an internal '\n                           'error prevented import as a CLR module. You might be '\n                           'missing the standard Hamilton software suite HSL '\n                           'executables, their DLLs may not be registered with Windows, '\n                           'or they may not be located in the expected system '\n                           'directory.')\n    C = Class1()\n    C.StartMethod(OEM_HSL_PATH)\n    try:\n        while True:\n            pass # Send external signal to end process\n    except:\n        pass\n\n@unique\nclass HamiltonResponseStatus(Enum):\n    \"\"\"\n    List of global Hamilton response status\n\n    Inheritance\n    -----------\n        Enum\n\n    Attributes\n    ----------\n    FAILED : enum.auto\n        command failure is reported or parsing error has been detected\n    SUCCESS : enum.auto\n        command and parsing successful\n    UNKNOWN : enum.auto\n        indecisive state\n    \"\"\"\n    FAILED = auto()\n    SUCCESS = auto()\n    UNKNOWN = auto()\n\n@dataclass\nclass HamiltonResponse:\n    \"\"\"\n    A class to represent the Venus server response\n\n    Attributes\n    ----------\n    status: HamiltonResponseStatus\n        Response status (failed, success or unknown)\n    return_data: list | str\n        Extracted values from specific field response\n    moduleID: str\n        ID of module from \"step-return2\" field\n    parsed_return: any\n        Represent \"step-return1\" field value\n    raw: any\n        Original server response\n\n    Methods\n    -------\n    _compute_status()\n        Compute the status based on step-return1 field from raw response\n\n    _return_data()\n        Contain values of requested fields\n\n    _moduleID()\n        Return Module ID (step-return2)\n\n    _parse_return():\n        Parse values from \"step-return1\" field\n\n    digest(fields)\n        Populate this object's attributes\n\n    raise_first_exception()\n        Evaluate which exception to raise\n\n\n    Raises\n    ------\n        HamiltonStepError: Errors in steps executed by VENUS software\n        HamiltonReturnParseError: Server response parsing failed\n        InvalidErrCodeError: Unknown server response error code\n\n    \"\"\"\n    status: HamiltonResponseStatus = HamiltonResponseStatus.UNKNOWN\n    return_data: list = field(default_factory=list)\n    moduleID: str = \"\"\n    parsed_return: any = None\n    raw: any = None\n\n    def _compute_status(self):\n        is_unknown = 'step-return1' not in self.raw\n        if is_unknown:\n            return HamiltonResponseStatus.UNKNOWN\n\n        response = json.loads(self.raw)['step-return1']\n\n        is_success = response == 1 or           \\\n            (\n                isinstance(response, str) and   \\\n                len(response) == 1 and          \\\n                response[0] == '1'\n            ) or                                \\\n            (\n                isinstance(response, str) and   \\\n                len(response) > 1 and           \\\n                response[0] == '0'\n            )\n        is_failed = response == 0 or            \\\n            (\n                isinstance(response, str) and   \\\n                len(response) == 1 and          \\\n                response[0] != '1'\n            ) or                                \\\n            (\n                isinstance(response, str) and   \\\n                len(response.strip()) > 1 and   \\\n                response.strip()[0] != '0'\n            )\n\n        if is_failed:\n            return HamiltonResponseStatus.FAILED\n\n        if is_success:\n            return HamiltonResponseStatus.SUCCESS\n\n        return HamiltonResponseStatus.UNKNOWN\n\n    def _return_data(self, fields):\n        response = json.loads(self.raw)\n        if not fields or (isinstance(fields, str) and fields not in response):\n            return []\n        if isinstance(fields, str) and fields in response:\n                return [response[fields]]\n\n        return [response[field] for field in fields if field in response]\n\n    def _moduleID(self):\n        moduleID_field_name = \"step-return2\"\n        if moduleID_field_name not in self.raw:\n            return \"\"\n        response = json.loads(self.raw)\n        return str(response[moduleID_field_name])\n\n    def _parse_return(self):\n        return_field = \"step-return1\"\n        field_names = [\n            \"{numField:d}\",\n            \"{mainErrField:d}\",\n            \"{slaveErr:d}\",\n            \"{recoveryBtnId:d}\",\n            \"{stepData}\",\n            \"{labwareName:w}\",\n            \"{labwarePos}\"\n        ]\n        if return_field not in self.raw:\n            return None\n\n        response = json.loads(self.raw)[return_field]\n        block_available = isinstance(response, str) and '[' in response and ',' in response\n        if not block_available:\n            return None\n\n        blocks = [r for r in response.split('[')[1:]]\n        if not blocks:\n            return None\n\n        parsed = [\n            parse(\n                \",\".join(field_names[:block.count(',') + 1]),\n                \",\".join([' ' if item == '' else item for item in block.split(',') ])) for block in blocks\n        ]\n        if not parsed:\n            return None\n\n        if all([p is None for p in parsed]):\n            return None\n        return [p.named for p in parsed if p]\n\n    def digest(self, fields=None):\n        self.status = self._compute_status()\n        self.return_data = self._return_data(fields=fields)\n        self.moduleID = self._moduleID()\n        self.parsed_return = self._parse_return()\n\n    def raise_first_exception(self):\n        isSuccessStatus = self.status == HamiltonResponseStatus.SUCCESS and '[' not in self.raw\n        if isSuccessStatus:\n            return\n        \n        isHamiltonStepError = self.status == HamiltonResponseStatus.FAILED and '[' not in self.raw\n        if isHamiltonStepError:\n            raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )')\n\n        isHamiltonReturnParseError = '[' in self.raw and (self.parsed_return is None or self.parsed_return == [])\n        if isHamiltonReturnParseError:\n            raise HamiltonReturnParseError(self.raw)\n\n        reportedErrorCodes = [p['mainErrField'] for p in self.parsed_return if p['mainErrField'] != 0]\n        isSuccessStatus = self.status == HamiltonResponseStatus.SUCCESS and len(reportedErrorCodes) == 0\n        if isSuccessStatus:\n            return\n\n        isFailedStatusNoReportedErrorCode = self.status == HamiltonResponseStatus.FAILED and len(reportedErrorCodes) == 0\n        if isFailedStatusNoReportedErrorCode:\n            raise HamiltonReturnParseError('Hamilton step did not execute correctly; no error code found. ( response: ' + self.raw + ' )')\n\n        firstErrorCode = reportedErrorCodes[0]\n        isFirstExceptionKnown = firstErrorCode in HAMILTON_ERROR_MAP\n        if isFirstExceptionKnown:\n            raise HAMILTON_ERROR_MAP[firstErrorCode]()\n        \n        if self.status == HamiltonResponseStatus.FAILED:\n            raise InvalidErrCodeError(f'Unknown error code: {firstErrorCode}')\n\n        if self.status == HamiltonResponseStatus.SUCCESS:\n            raise HamiltonReturnParseError('Inconsistency: Venus returns SUCCESS while error code {firstErrorCode} found! ( response: ' + self.raw + ' )')\n\n@dataclass\nclass DispenseResult:\n    liquidHeights: float\n    liquidVolumes: float\n    raw: HamiltonResponse # keep the raw object if callers need extras\n\n@dataclass\nclass AspirateResult:\n    liquidHeights: float        \n    liquidVolumes: float\n    raw: HamiltonResponse # keep the raw object if callers need extras\n\n\nclass HamiltonServerThread(Thread):\n    \"\"\"Private threaded local HTTP server with graceful shutdown flag.\"\"\"\n\n    def __init__(self, address, port):\n        super().__init__()\n        self.daemon = True  # CRITICAL: Make this a daemon thread\n        self.server_address = (address, port)\n        self.should_continue = True\n        self.exited = False\n\n        def index_on_resp_id(response_str):\n            try:\n                response = json.loads(response_str)\n                if 'id' in response:\n                    return response['id']\n            except json.decoder.JSONDecodeError:\n                pass\n            return None\n\n        HamiltonServerHandler.indexing_fn = index_on_resp_id\n        self.httpd = None\n\n    def run(self):\n        self.exited = False\n        try:\n            self.httpd = server.HTTPServer(self.server_address, HamiltonServerHandler)\n            # Set a short timeout so we don't block forever\n            self.httpd.timeout = 0.5\n            \n            while self.should_continue:\n                try:\n                    self.httpd.handle_request()\n                except OSError:\n                    # Socket was closed, exit gracefully\n                    break\n                    \n        except Exception as e:\n            print(f\"Server thread exception: {e}\")\n        finally:\n            if self.httpd:\n                try:\n                    self.httpd.server_close()\n                except:\n                    pass\n            self.exited = True\n            print(\"Server thread run() method completed\")\n\n    def disconnect(self):\n        \"\"\"Simple disconnect without calling shutdown() to avoid deadlocks\"\"\"\n        self.should_continue = False\n        # Don't call httpd.shutdown() here - it can cause deadlocks\n\n    def has_exited(self):\n        return self.exited\n\n\nclass HamiltonInterface:\n    \"\"\"Main class to automatically set up and tear down an interface to a Hamilton robot.\n\n    HamiltonInterface is the primary class offered by this module. It creates a Hamilton\n    HSL background process running the `pyhamilton` interpreter, along with a `localhost`\n    connection to act as a bridge. It is recommended to create a `HamiltonInterface` using\n    a `with:` block to ensure proper startup and shutdown of its async components, even if\n    exceptions are raised. It may be used with explicit `start()` and `stop()` calls.\n\n      Typical usage:\n\n      ```\n      with HamiltonInterface() as ham_int:\n          cmd_id = ham_int.send_command(INITIALIZE)\n          ...\n          response = ham_int.wait_on_response(cmd_id)\n          ...\n      ```\n    \"\"\"\n\n    known_templates = _builtin_templates_by_cmd\n    default_port = 3221\n    default_address = '127.0.0.1' # localhost\n    _global_server_thread = None\n\n\n    def __init__(self, address=None, port=None, simulating = False, debug=False, windowed = False, server_mode = False, persistent = False, **kwargs):\n        if 'simulate' in kwargs:\n            raise Exception(\"The simulate keyword argument is deprecated in favor of windowed. Please use windowed = True\")\n        self.address = HamiltonInterface.default_address if address is None else address\n        self.port = HamiltonInterface.default_port if port is None else port\n        self.windowed = windowed\n        self.simulating = simulating\n        self.server_mode = server_mode\n        self.persistent = persistent\n        self.debug = debug\n        self.server_thread = None\n        self.oem_process = None\n        self.active = False\n        self.logger = None\n        self.log_queue = []\n        self.json_logger = JSONLogger()\n\n\n        if self.__class__._global_server_thread is not None and \\\n           self.__class__._global_server_thread.is_alive():\n            print(\"Reusing existing server thread\")\n            self.server_thread = self.__class__._global_server_thread\n        else:\n            print(\"Starting a new server thread\")\n            self.server_thread = HamiltonServerThread(self.address, self.port)\n            self.server_thread.start()\n            # Store this new thread as the global server thread\n            self.__class__._global_server_thread = self.server_thread\n\n\n    def _open(self):\n        # This is your logic to check if the HSL application is up or needs to be started\n        if self.windowed:\n                # Only start HSL if it's not responding\n            try:\n                    # Attempt the ping\n                self.active = True\n                \n                print(\"Sending ping to check if interface is open\")\n                response_id = self.send_command(command='ping', id=HamiltonCmdTemplate.unique_id())\n                self.wait_on_response(response_id, timeout=5)\n                \n                print(\"Interface already open\")\n                return\n            except HamiltonTimeoutError:\n                print(\"Opening HSL application\")\n                subprocess.Popen([OEM_RUN_EXE_PATH, OEM_HSL_PATH])\n                self.active = True\n                return\n\n\n    def start(self):\n        \"\"\"Starts the extra processes, threads, and servers for the Hamilton connection.\n\n        Launches: 1) the pyhamilton interpreter using the Hamilton Run Control\n        executable, either in the background for normal use, or in the foreground with a\n        GUI for simulation; 2) a local HTTP server to ferry messages between the python\n        module and the interpreter.\n\n        When used with a `with:` block, called automatically upon entering the block.\n        \"\"\"\n\n        if self.active:\n            return\n        self.log('starting a Hamilton interface')\n        if self.windowed:\n            self._open()\n            #subprocess.Popen([OEM_RUN_EXE_PATH, OEM_HSL_PATH])\n            self.log('started the oem application for simulation')\n        elif self.simulating:\n            self.active=True\n            self.log('running in simulation mode')\n        elif self.server_mode:\n            current_directory = os.path.dirname(os.path.abspath(__file__))\n            server_script_path = os.path.join(current_directory, 'run_venus_client.py')\n            python_32bit_path = os.getenv('PYTHON_32BIT_PATH')\n            print(\"SERVER PATHS\")\n            print(python_32bit_path)\n            if not python_32bit_path:\n                raise Exception(\"Please set your PYTHON_32BIT_PATH variable in order to use server mode.\")\n            print(server_script_path)\n            self.server_process = subprocess.Popen([python_32bit_path, server_script_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n        else:\n            self.oem_process = Process(target=run_hamilton_process, args=())\n            self.oem_process.start()\n            self.log('started the oem process')\n        #self.server_thread = HamiltonInterface.HamiltonServerThread(self.address, self.port)\n        #self.server_thread.start()\n        print(\"started the server thread\")\n        self.log('started the server thread')\n        #self.active = True\n\n    def stop(self):\n        \"\"\"Stop this HamiltonInterface and clean up associated async processes.\"\"\"\n\n        if not self.active:\n            return\n        \n        try:\n            if self.windowed or self.simulating or self.server_mode:\n                self.log('sending end run command to simulator')\n                try:\n                    print(\"Sending end command\")\n                    self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5)\n                    print(\"End command sent\")\n                except HamiltonTimeoutError:\n                    pass\n            else:\n                for i in range(2):\n                    try:\n                        os.kill(self.oem_process.pid, signal.SIGTERM)\n                        self.log('sent sigterm to oem process')\n                        self.oem_process.join()\n                        self.log('oem process exited')\n                        break\n                    except PermissionError:\n                        self.log('permission denied, trying again...', 'warn')\n                        time.sleep(2)\n                else:\n                    self.log('Could not kill oem process, moving on with shutdown', 'warn')\n        finally:\n            print(\"Stopping server thread\")\n            self.active = False\n            \n            # Don't call disconnect() - it can cause deadlocks\n            # Instead, just signal the thread to stop and force close the server\n            self.server_thread.should_continue = False\n            \n            if hasattr(self.server_thread, 'httpd') and self.server_thread.httpd:\n                print(\"Force closing HTTP server\")\n                try:\n                    # Close the server socket immediately without waiting\n                    self.server_thread.httpd.server_close()\n                    self.log('HTTP server socket closed')\n                except Exception as e:\n                    print(f\"Error closing server: {e}\")\n            \n            print(\"Joining server thread with timeout\")\n            # Give the thread a very short time to exit gracefully\n            self.server_thread.join(timeout=1.0)\n            \n            if self.server_thread.is_alive():\n                print(\"Server thread still alive, this is expected in some cases\")\n                self.log('server thread did not exit within timeout (this may be normal)', 'info')\n                # Don't try to force kill - just let it be a daemon thread\n            else:\n                print(\"Server thread exited successfully\")\n                self.log('server thread exited successfully')\n\n    def __enter__(self):\n        self.start()\n        return self\n\n    def __exit__(self, exc_type, exc_value, tb):\n        if exc_type is not None:\n            # There was an error, always stop\n            self.stop()\n        elif not self.persistent:\n            # Normal exit, but not persistent → stop\n            self.stop()\n        # else: persistent and normal exit → keep running\n\n        # Returning False means exceptions propagate normally\n        return False\n\n    def is_open(self):\n        \"\"\"Return `True` if the HamiltonInterface has been started and not stopped.\"\"\"\n        return self.active\n\n    def send_command(self, template=None, block_until_sent=False, *args, **cmd_dict): # returns unique id of command\n        \"\"\"Add a command templated after HamiltonCmdTemplate to the server send queue.\n\n        Args:\n          template (HamiltonCmdTemplate): Optional; a template to provide default\n            arguments not specified in `cmd_dict`.\n          block_until_sent (bool): Optional; if `True`, wait for all queued messages,\n            including this one, to get picked up by the local server and sent across\n            the HTTP connection, before returning. Default is False.\n          cmd_dict (dict): keyword arguments to be forwarded to `template` when building\n            the command, overriding its defaults. If `template` not given, cmd_dict must\n            either have a 'command' key with value matching one of the command names in\n            `defaultcmds` and might be missing an 'id' key, or itself be a fully formed\n            and correct pyhamilton command with its own 'id' key.\n\n        Returns:\n          unique id (str) of the command that can be used to index it later, either\n            newly generated or same as originally present in cmd_dict.\n        \"\"\"\n        if not self.is_open():\n            self.log_and_raise(RuntimeError('Cannot send a command from a closed HamiltonInterface'))\n        if template is None:\n            if 'command' not in cmd_dict:\n                self.log_and_raise(ValueError('Command dicts from HamiltonInterface must have a \\'command\\' key'))\n            cmd_name = cmd_dict['command']\n            if cmd_name in HamiltonInterface.known_templates:\n                # raises if this is a known command but some fields in cmd_dict are invalid\n                send_cmd_dict = HamiltonInterface.known_templates[cmd_name].assemble_cmd(**cmd_dict)\n            else:\n                send_cmd_dict = cmd_dict\n        else:\n            send_cmd_dict = template.assemble_cmd(**cmd_dict)\n        if 'id' not in send_cmd_dict:\n            self.log_and_raise(ValueError(\"Command dicts sent from HamiltonInterface must have a unique id with key 'id'\"))\n        if not self.simulating:\n            HamiltonServerHandler.send_str(json.dumps(send_cmd_dict))\n        else:\n            self.json_logger.log(str(send_cmd_dict))\n        if block_until_sent:\n            self._block_until_sq_clear()\n        return send_cmd_dict['id']\n\n    def wait_on_response(self, id, timeout=60, raise_first_exception=False, return_data=None):\n        \"\"\"Wait and do not return until the response for the specified id comes back.\n\n        When the command corresponding to `id` regards multiple distinct pipette channels\n        or devices, responses may contain encoded errors that might be different for\n        different channels or devices. For this reason, the default behavior of\n        `wait_on_response` is to not raise exceptions, but to delegate handling\n        exceptions to the caller. For convenience, this method can optionally raise the\n        first exception it encounters, often a useful behavior for succinct scripted\n        commands that regard only one device, when raise_first_exception is `True`.\n\n        Args:\n          id (str): The unique id of a previously sent command\n          timeout (float): Optional; maximum time in seconds to wait before raising\n            `HamiltonTimeoutError`. Default is 60 seconds.\n          raise_first_exception: Optional; if True, may raise if there is an error\n            encoded in the response. Default is False.\n          return_data(list | str): Optional\n            field(s) value to extract (e.g: \"step-result1\")\n\n        Returns:\n          HamiltonResponse\n\n        Raises:\n          `HamiltonTimeoutError`: after `timeout` seconds elapse with no response, if\n          `timeout` was specified.\n        \"\"\"\n        if self.simulating:\n            return\n        \n        delays = 1  # sec\n        server_response = None\n        for _ in wait(delays=delays, timeout=timeout):\n            server_response = HamiltonServerHandler.pop_response(id)\n            if server_response is not None:\n                break\n            \n        if server_response is None:\n            self.log_and_raise(HamiltonTimeoutError('Timed out after ' + str(timeout) + ' sec while waiting for response id ' + str(id)))\n        \n        if self.debug:\n            print(server_response)\n        \n        return self.parse_response(server_response, raise_first_exception, return_data)\n\n    def parse_response(self, server_response:str, raise_first_exception:bool=False, return_data:\"list|str\"=None):\n        \"\"\"Parse the server response and return parsed response of type HamiltonResponse.\n\n        Args:\n          server_response (str): Venus server response\n          raise_first_exception (bool): Optional; forwarded to `wait_on_response`.\n            Default is `False`.\n          return_data: field(s) value to extract (e.g: \"step-result1\")\n\n        Returns:\n          HamiltonResponse\n\n        \"\"\"\n\n        hamiltonResponse = HamiltonResponse(raw=server_response)\n        hamiltonResponse.digest(fields=return_data)\n        if raise_first_exception:\n            hamiltonResponse.raise_first_exception()\n\n        return hamiltonResponse\n\n    def _block_until_sq_clear(self):\n        while HamiltonServerHandler.has_queued_cmds():\n            print(HamiltonServerHandler._send_queue)\n\n            pass\n\n    def set_log_dir(self, log_dir):\n        self.logger = logging.getLogger(__name__)\n        self.logger.setLevel(logging.INFO)\n        hdlr = logging.FileHandler(log_dir)\n        formatter = logging.Formatter('[%(asctime)s] %(name)s %(levelname)s %(message)s')\n        hdlr.setFormatter(formatter)\n        self.logger.addHandler(hdlr)\n        self._dump_log_queue()\n\n    def log(self, msg, msg_type='info'):\n        self.log_queue.append((msg, msg_type))\n        self._dump_log_queue()\n\n    def _dump_log_queue(self):\n        if self.logger is None:\n            return\n        log_actions = {'error':self.logger.error,\n                      'warn':self.logger.warn,\n                      'debug':self.logger.debug,\n                      'info':self.logger.info,\n                      'critical':self.logger.critical}\n        while self.log_queue:\n            msg, msg_type = self.log_queue.pop(0)\n            log_actions.get(msg_type.lower(), self.logger.info)(msg) # prints if no log path set\n\n    def log_and_raise(self, err):\n        self.log(repr(err), 'error')\n        raise err\n\n    @staticmethod\n    def _channel_var(pos_tuples):\n        \"\"\"Create channel pattern string for commands\"\"\"\n        ch_var = ['0']*16\n        for i, pos_tup in enumerate(pos_tuples):\n            if pos_tup is not None:\n                ch_var[i] = '1'\n        return ''.join(ch_var)\n\n    @staticmethod\n    def _compound_pos_str(pos_tuples):\n        \"\"\"Create position string for commands\"\"\"\n        present_pos_tups = [pt for pt in pos_tuples if pt is not None]\n        return ';'.join((pt[0].layout_name() + ', ' + pt[0].position_id(pt[1]) \n                        for pt in present_pos_tups))\n\n    @staticmethod\n    def _compound_pos_str_96(labware96):\n        \"\"\"Create position string for 96-well commands\"\"\"\n        return ';'.join((labware96.layout_name() + ', ' + labware96.position_id(idx) \n                        for idx in range(96)))\n\n    @staticmethod\n    def _assert_parallel_nones(list1, list2):\n        \"\"\"Verify two lists have None values in the same positions\"\"\"\n        if not (len(list1) == len(list2) and \n                all([(i1 is None) == (i2 is None) for i1, i2 in zip(list1, list2)])):\n            raise ValueError('Lists must have parallel None entries')\n\n    def initialize(self, **more_options):\n        \"\"\"Initialize the Hamilton robot with optional parameters.\n\n        Args:\n            **more_options: Additional command options to pass to the initialize command.\n        \"\"\"\n        self.log('initialize: Initializing Hamilton robot with options ' + str(more_options))\n        response = self.wait_on_response(\n            self.send_command(\n                INITIALIZE,\n                **more_options\n            ),\n            timeout=300,\n            raise_first_exception=True,\n            return_data=['step-return2', 'step-return3']\n        )\n        return response\n    \n    def aspirate(self, pos_tuples, vols, **more_options) -> AspirateResult:\n        \"\"\"Aspirate liquid from specified positions.\n        \n        Args:\n            pos_tuples: List of (labware, idx) tuples specifying positions\n            vols: List of volumes to aspirate\n            **more_options: Additional command options\n\n        Returns\n        -------\n        AspirateResult:\n            .liquidHeights liquid heights after aspirate\n            .liquidVolumes liquid volumes after aspirate\n            .raw           raw HamiltonResponse object\n        \"\"\"\n        self.log('aspirate: Aspirate volumes ' + str(vols) + ' from positions [' +\n                '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) +\n                (']' if not more_options else '] with extra options ' + str(more_options)))\n\n        if len(pos_tuples) > 8:\n            raise ValueError('Can only aspirate with 8 channels at a time')\n            \n        self._assert_parallel_nones(pos_tuples, vols)\n            \n        if 'liquidClass' not in more_options:\n            raise ValueError('Must specify a liquidClass for aspirate commands')\n\n        if more_options.get('capacitiveLLD', 0) not in (0, 5):\n            dispense_mode = get_liquid_class_dispense_mode(more_options['liquidClass'])\n            if 'Surface' not in dispense_mode:\n                raise ValueError('cLLD can only be used with Surface dispense modes')\n        \n        response = self.wait_on_response(\n            self.send_command(\n                ASPIRATE,\n                channelVariable=self._channel_var(pos_tuples),\n                labwarePositions=self._compound_pos_str(pos_tuples), \n                volumes=[v for v in vols if v is not None],\n                **more_options\n            ),\n            raise_first_exception=True,\n            return_data=['step-return2', 'step-return3']\n        )\n\n        if self.simulating:\n            # In simulation mode, we don't get liquid heights and volumes\n            res = AspirateResult(\n                liquidHeights=[2.0] * len(pos_tuples),\n                liquidVolumes=[10.0] * len(pos_tuples),\n                raw=response\n            )\n            return res\n        \n        else:\n            res = AspirateResult(\n                liquidHeights=[float(x) for x in response.return_data[0].split(';')],\n                liquidVolumes=[float(x) for x in response.return_data[1].split(';')],\n                raw=response\n            )\n            return res\n\n\n    def dispense(self, pos_tuples, vols, **more_options) -> DispenseResult:\n        \"\"\"Dispense liquid into specified positions.\n        \n        Args:\n            pos_tuples: List of (labware, idx) tuples specifying positions\n            vols: List of volumes to dispense\n            **more_options: Additional command options\n        \n        \"\"\"\n        self.log('dispense: Dispense volumes ' + str(vols) + ' into positions [' +\n                '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) +\n                (']' if not more_options else '] with extra options ' + str(more_options)))\n\n        if len(pos_tuples) > 8:\n            raise ValueError('Can only dispense with 8 channels at a time')\n            \n        self._assert_parallel_nones(pos_tuples, vols)\n            \n        if 'liquidClass' not in more_options:\n            more_options['liquidClass'] = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol'\n\n        if more_options.get('capacitiveLLD', 0) not in (0, 5):\n            dispense_mode = get_liquid_class_dispense_mode(more_options['liquidClass'])\n            if 'Surface' not in dispense_mode:\n                raise ValueError('cLLD can only be used with Surface dispense modes')\n\n\n        response = self.wait_on_response(\n            self.send_command(\n                DISPENSE,\n                channelVariable=self._channel_var(pos_tuples),\n                labwarePositions=self._compound_pos_str(pos_tuples),\n                volumes=[v for v in vols if v is not None],\n                **more_options\n            ),\n            raise_first_exception=True,\n            return_data=['step-return2', 'step-return3']\n        )\n\n\n        if self.simulating:\n            # In simulation mode, we don't get liquid heights and volumes\n            res = DispenseResult(\n                liquidHeights=[2.0] * len(pos_tuples),\n                liquidVolumes=[10.0] * len(pos_tuples),\n                raw=response\n            )\n            return res\n        \n        else:\n            res = DispenseResult(\n                liquidHeights=[float(x) for x in response.return_data[0].split(';')],\n                liquidVolumes=[float(x) for x in response.return_data[1].split(';')],\n                raw=response\n            )\n            return res\n\n\n\n    def tip_pick_up(self, pos_tuples, **more_options):\n        \"\"\"Pick up tips from specified positions.\n        \n        Args:\n            pos_tuples: List of (labware, idx) tuples specifying tip positions\n            **more_options: Additional command options\n        \"\"\"\n        self.log('tip_pick_up: Pick up tips at ' + '; '.join((labware_pos_str(*pt) if pt else '(skip)' \n                for pt in pos_tuples)) + ('' if not more_options else ' with extra options ' + str(more_options)))\n\n        if len(pos_tuples) > 8:\n            raise ValueError('Can only pick up 8 tips at a time')\n\n        self.wait_on_response(\n            self.send_command(\n                PICKUP,\n                labwarePositions=self._compound_pos_str(pos_tuples),\n                channelVariable=self._channel_var(pos_tuples),\n                **more_options\n            ), \n            raise_first_exception=True\n        )\n\n    def tip_eject(self, pos_tuples=None, **more_options):\n        \"\"\"Eject tips to specified positions or default waste.\n        \n        Args:\n            pos_tuples: Optional list of (labware, idx) tuples specifying tip positions.\n                       If None, eject to default waste.\n            **more_options: Additional command options\n        \"\"\"\n        if pos_tuples is None:\n            self.log('tip_eject: Eject tips to default waste' + \n                    ('' if not more_options else ' with extra options ' + str(more_options)))\n            more_options['useDefaultWaste'] = 1\n            from .resources.deckresource import Tip96\n            dummy = Tip96('')\n            pos_tuples = [(dummy, 0)] * 8\n        else:\n            self.log('tip_eject: Eject tips to ' + '; '.join((labware_pos_str(*pt) if pt else '(skip)' \n                    for pt in pos_tuples)) + ('' if not more_options else ' with extra options ' + str(more_options)))\n\n        if len(pos_tuples) > 8:\n            raise ValueError('Can only eject up to 8 tips')\n\n        self.wait_on_response(\n            self.send_command(\n                EJECT,\n                labwarePositions=self._compound_pos_str(pos_tuples),\n                channelVariable=self._channel_var(pos_tuples),\n                **more_options\n            ),\n            raise_first_exception=True\n        )\n\n    def tip_pick_up_96(self, tip96, **more_options):\n        \"\"\"Pick up tips from a 96-well tip rack.\n        \n        Args:\n            tip96: 96-well tip rack labware\n            **more_options: Additional command options\n        \"\"\"\n        self.log('tip_pick_up_96: Pick up tips at ' + tip96.layout_name() +\n                ('' if not more_options else ' with extra options ' + str(more_options)))\n        self.wait_on_response(\n            self.send_command(\n                PICKUP96,\n                labwarePositions=self._compound_pos_str_96(tip96),\n                **more_options\n            ),\n            raise_first_exception=True\n        )\n\n    def tip_eject_96(self, tip96=None, **more_options):\n        \"\"\"Eject tips to a 96-well tip rack or default waste.\n        \n        Args:\n            tip96: Optional 96-well tip rack labware. If None, eject to default waste.\n            **more_options: Additional command options\n        \"\"\"\n        self.log('tip_eject_96: Eject tips to ' + (tip96.layout_name() if tip96 else 'default waste') +\n                ('' if not more_options else ' with extra options ' + str(more_options)))\n\n        if tip96 is None:\n            labware_poss = ''\n            more_options.update({'tipEjectToKnownPosition': 2})  # 2 is default waste\n        else:\n            labware_poss = self._compound_pos_str_96(tip96)\n\n        self.wait_on_response(\n            self.send_command(\n                EJECT96,\n                labwarePositions=labware_poss,\n                **more_options\n            ),\n            raise_first_exception=True\n        )\n\n\n    def aspirate_96(self, plate96, vol, **more_options):\n        \"\"\"Aspirate liquid from a 96-well plate.\n        \n        Args:\n            plate96: 96-well plate labware\n            vol: Volume to aspirate\n            **more_options: Additional command options\n        \"\"\"\n        self.log('aspirate_96: Aspirate volume ' + str(vol) + ' from ' + plate96.layout_name() +\n                ('' if not more_options else ' with extra options ' + str(more_options)))\n\n        if 'liquidClass' not in more_options:\n            raise ValueError('Must specify a liquidClass for aspirate commands')\n\n        if more_options.get('capacitiveLLD', 0) not in (0, 5):\n            dispense_mode = get_liquid_class_dispense_mode(more_options['liquidClass'])\n            if 'Surface' not in dispense_mode:\n                raise ValueError('cLLD can only be used with Surface dispense modes')\n\n        self.wait_on_response(\n            self.send_command(\n                ASPIRATE96,\n                labwarePositions=self._compound_pos_str_96(plate96),\n                aspirateVolume=vol,\n                **more_options\n            ),\n            raise_first_exception=True\n        )\n\n    def tip_pick_up_mph_columns(self, tip_96, num_columns_from_left, **more_options):\n        \"\"\"Pick up tips from a 96-well tip rack in a multi-channel fashion.\n\n        Args:\n            tip_96: 96-well tip rack labware\n            num_columns: Number of columns to pick up\n            **more_options: Additional command options\n        \"\"\"\n        self.log('tip_pick_up_mph_columns: Pick up tips at ' + tip_96.layout_name() +\n                ('' if not more_options else ' with extra options ' + str(more_options)))\n        num_columns_from_right = 12 - num_columns_from_left + 1 # Convert to right-side pickup\n        channelVariable = '1'*num_columns_from_right*8 + '0'*(12-num_columns_from_right)*8\n        positions = self._compound_pos_str_96(tip_96)\n        flipped_positions = invert_columns(positions) # Sequences have to be inverted for right-side pickup\n        self.wait_on_response(\n            self.send_command(\n                PICKUP96,\n                labwarePositions=flipped_positions,\n                channelVariable=channelVariable,\n                reducedPatternMode=3,  # (integer) 0=All (not reduced), 1=One channel, 2=One row  3=One column\n                **more_options\n            ),\n            raise_first_exception=True\n        )\n\n    def dispense_96(self, plate96, vol, **more_options):\n        \"\"\"Dispense liquid into a 96-well plate.\n        \n        Args:\n            plate96: 96-well plate labware\n            vol: Volume to dispense\n            **more_options: Additional command options\n        \"\"\"\n        self.log('dispense_96: Dispense volume ' + str(vol) + ' into ' + plate96.layout_name() +\n                ('' if not more_options else ' with extra options ' + str(more_options)))\n\n        if 'liquidClass' not in more_options:\n            more_options['liquidClass'] = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol'\n\n        if more_options.get('capacitiveLLD', 0) not in (0, 5):\n            dispense_mode = get_liquid_class_dispense_mode(more_options['liquidClass'])\n            if 'Surface' not in dispense_mode:\n                raise ValueError('cLLD can only be used with Surface dispense modes')\n\n\n        self.wait_on_response(\n            self.send_command(\n                DISPENSE96,\n                labwarePositions=self._compound_pos_str_96(plate96),\n                dispenseVolume=vol,\n                **more_options\n            ),\n            raise_first_exception=True\n        )\n\n\n    def aspirate_384_quadrant(self, plate384, quadrant, vol, **more_options):\n        \"\"\"Aspirate liquid from a 384-well plate quadrant.\n        \n        Args:\n            plate384: 384-well plate labware\n            quadrant: Quadrant number (0-3)\n            vol: Volume to aspirate\n            **more_options: Additional command options\n        \"\"\"\n        self.log('aspirate_384_quadrant: Aspirate volume ' + str(vol) + ' from ' + plate384.layout_name() +\n                ' quadrant ' + str(quadrant) + ('' if not more_options else ' with extra options ' + str(more_options)))\n\n        if 'liquidClass' not in more_options:\n            more_options['liquidClass'] = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol'\n\n        self.wait_on_response(\n            self.send_command(\n                ASPIRATE96,\n                labwarePositions=self._compound_pos_str_384_quad(plate384, quadrant),\n                aspirateVolume=vol,\n                **more_options\n            ),\n            raise_first_exception=True\n        )\n\n    def dispense_384_quadrant(self, plate384, quadrant, vol, **more_options):\n        \"\"\"Dispense liquid into a 384-well plate quadrant.\n        \n        Args:\n            plate384: 384-well plate labware\n            quadrant: Quadrant number (0-3)\n            vol: Volume to dispense\n            **more_options: Additional command options\n        \"\"\"\n        self.log('dispense_384_quadrant: Dispense volume ' + str(vol) + ' into ' + plate384.layout_name() +\n                ' quadrant ' + str(quadrant) + ('' if not more_options else ' with extra options ' + str(more_options)))\n\n        if 'liquidClass' not in more_options:\n            more_options['liquidClass'] = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol'\n\n        self.wait_on_response(\n            self.send_command(\n                DISPENSE96,\n                labwarePositions=self._compound_pos_str_384_quad(plate384, quadrant),\n                dispenseVolume=vol,\n                **more_options\n            ),\n            raise_first_exception=True\n        )\n\n    def set_labware_property(self, labware_id, property_name, property_value):\n        \"\"\"Set a property for a specific labware item.\n\n        Args:\n            labware_id: The ID of the labware item\n            property_name: The name of the property to set\n            property_value: The value to set the property to\n        \"\"\"\n        self.log(f'set_labware_property: Setting {property_name} of {labware_id} to {property_value}')\n\n        self.wait_on_response(\n            self.send_command(\n                SET_LABWARE_PROPERTY,\n                LabwareID=labware_id,\n                PropertyName=property_name,\n                PropertyValue=property_value\n            ),\n            raise_first_exception=True\n        )\n\n    @staticmethod\n    def _compound_pos_str_384_quad(plate384, quadrant):\n        \"\"\"Create position string for 384-well quadrant commands\"\"\"\n        def get_384w_quadrant(quadrant):\n            def cells_96_to_384(well, idx):\n                return well*2+idx%2+(idx//2)*16+16*(well//8)\n            return [cells_96_to_384(idx, quadrant) for idx in range(96)]\n        \n        return ';'.join((plate384.layout_name() + ', ' + plate384.position_id(idx) \n                        for idx in get_384w_quadrant(quadrant)))\n\n    def move_plate(self, source_plate, target_plate, CmplxGetDict=None, CmplxPlaceDict=None, inversion=None, **more_options):\n        \"\"\"Move a plate from source to target position using iSWAP.\n        \n        Args:\n            source_plate: Source plate labware\n            target_plate: Target plate labware\n            CmplxGetDict: Optional complex movement parameters for get operation\n            CmplxPlaceDict: Optional complex movement parameters for place operation\n            inversion: Optional inversion setting (0 or 1)\n            **more_options: Additional command options\n        \"\"\"\n        self.log('move_plate: Moving plate ' + source_plate.layout_name() + ' to ' + target_plate.layout_name())\n        \n        src_pos = source_plate.layout_name() + ', ' + source_plate.position_id(0)\n        trgt_pos = target_plate.layout_name() + ', ' + target_plate.position_id(0)\n        \n        if not inversion:\n            try_inversions = (0, 1)\n        else:\n            try_inversions = (inversion,)\n        \n        getCmplxMvmnt, getRetractDist, getLiftUpHeight, getOrientation = (0, 0.0, 20.0, 1)\n        placeCmplxMvmnt, placeRetractDist, placeLiftUpHeight, placeOrientation = (0, 0.0, 20.0, 1)\n        \n        if CmplxGetDict:\n            getCmplxMvmnt = 1\n            getRetractDist = CmplxGetDict['retractDist']\n            getLiftUpHeight = CmplxGetDict['liftUpHeight']\n            getOrientation = CmplxGetDict['labwareOrientation']\n        \n        if CmplxPlaceDict:\n            placeCmplxMvmnt = 1\n            placeRetractDist = CmplxPlaceDict['retractDist']\n            placeLiftUpHeight = CmplxPlaceDict['liftUpHeight']\n            placeOrientation = CmplxPlaceDict['labwareOrientation']\n\n        for inv in try_inversions:\n            cid = self.send_command(ISWAP_GET,\n                                   plateLabwarePositions=src_pos,\n                                   inverseGrip=inv,\n                                   movementType=getCmplxMvmnt,\n                                   retractDistance=getRetractDist,\n                                   liftUpHeight=getLiftUpHeight,\n                                   labwareOrientation=getOrientation,\n                                   **more_options)\n            try:\n                self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n                break\n            except PositionError:\n                self.log(\"trying inverse\", 'info')\n                pass\n\n        cid = self.send_command(ISWAP_PLACE,\n                               plateLabwarePositions=trgt_pos,\n                               movementType=placeCmplxMvmnt,\n                               retractDistance=placeRetractDist,\n                               liftUpHeight=placeLiftUpHeight,\n                               labwareOrientation=placeOrientation)\n        try:\n            self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n        except PositionError:\n            raise IOError\n\n    def move_by_seq(self, source_plate_seq, target_plate_seq, CmplxGetDict=None, CmplxPlaceDict=None, inversion=None, **more_options):\n        \"\"\"Move a plate by sequence using iSWAP.\n\n        Used to have defaults: grip_height=0, inversion=None, gripForce=2, width_before=132,\n        \n        Args:\n            source_plate_seq: Source plate sequence\n            target_plate_seq: Target plate sequence\n            CmplxGetDict: Optional complex movement parameters for get operation\n            CmplxPlaceDict: Optional complex movement parameters for place operation\n            grip_height: Grip height parameter\n            inversion: Optional inversion setting (0 or 1)\n            gripForce: Grip force parameter\n            width_before: Width before parameter\n            **more_options: Additional command options\n        \"\"\"\n        self.log('move_by_seq: Moving plate ' + source_plate_seq + ' to ' + target_plate_seq)\n        \n        if not inversion:\n            try_inversions = (0, 1)\n        else:\n            try_inversions = (inversion,)\n\n        getCmplxMvmnt, getRetractDist, getLiftUpHeight, getOrientation = (0, 0.0, 20.0, 1)\n        placeCmplxMvmnt, placeRetractDist, placeLiftUpHeight, placeOrientation = (0, 0.0, 20.0, 1)\n        \n        if CmplxGetDict:\n            getCmplxMvmnt = 1\n            getRetractDist = CmplxGetDict['retractDist']\n            getLiftUpHeight = CmplxGetDict['liftUpHeight']\n            getOrientation = CmplxGetDict['labwareOrientation']\n        \n        if CmplxPlaceDict:\n            placeCmplxMvmnt = 1\n            placeRetractDist = CmplxPlaceDict['retractDist']\n            placeLiftUpHeight = CmplxPlaceDict['liftUpHeight']\n            placeOrientation = CmplxPlaceDict['labwareOrientation']\n\n        for inv in try_inversions:\n            cid = self.send_command(ISWAP_GET, plateSequence=source_plate_seq,\n                                   inverseGrip=inv,\n                                   movementType=placeCmplxMvmnt,\n                                   retractDistance=placeRetractDist,\n                                   liftUpHeight=placeLiftUpHeight,\n                                   labwareOrientation=placeOrientation,\n                                   **more_options)\n            try:\n                self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n                break\n            except PositionError:\n                pass\n        else:\n            raise IOError\n            \n        cid = self.send_command(ISWAP_PLACE,\n                               plateSequence=target_plate_seq,\n                               movementType=placeCmplxMvmnt,\n                               retractDistance=placeRetractDist,\n                               liftUpHeight=placeLiftUpHeight,\n                               labwareOrientation=placeOrientation)\n        try:\n            self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n        except PositionError:\n            raise IOError\n\n    def get_plate_gripper_seq(self, source_plate_seq, gripHeight, gripWidth, openWidth, lid, tool_sequence, gripForce, **more_options):\n        \"\"\"Get a plate using the gripper by sequence.\n        \n        Args:\n            source_plate_seq: Source plate sequence\n            gripHeight: Grip height parameter\n            gripWidth: Grip width parameter\n            openWidth: Open width parameter\n            lid: Whether this is a lid operation\n            tool_sequence: Tool sequence parameter\n            **more_options: Additional command options\n        \"\"\"\n        self.log('get_plate_gripper_seq: Getting plate ' + source_plate_seq)\n        \n        if lid:\n            cid = self.send_command(GRIP_GET, plateSequence=source_plate_seq, transportMode=1,\n                                   gripHeight=gripHeight, gripWidth=gripWidth, widthBefore=openWidth,\n                                   toolSequence=tool_sequence)\n        else:\n            cid = self.send_command(GRIP_GET, plateSequence=source_plate_seq, transportMode=0,\n                                   gripHeight=gripHeight, gripWidth=gripWidth, widthBefore=openWidth,\n                                   toolSequence=tool_sequence, **more_options)\n        self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n    def move_plate_gripper_seq(self, dest_plate_seq, **more_options):\n        \"\"\"Move a plate using the gripper by sequence.\n        \n        Args:\n            dest_plate_seq: Destination plate sequence\n            **more_options: Additional command options\n        \"\"\"\n        self.log('move_plate_gripper_seq: Moving plate ' + dest_plate_seq)\n        cid = self.send_command(GRIP_MOVE, plateSequence=dest_plate_seq)\n        self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n    def place_plate_gripper_seq(self, dest_plate_seq, tool_sequence, **more_options):\n        \"\"\"Place a plate using the gripper by sequence.\n        \n        Args:\n            dest_plate_seq: Destination plate sequence\n            tool_sequence: Tool sequence parameter\n            **more_options: Additional command options\n        \"\"\"\n        self.log('place_plate_gripper_seq: Placing plate ' + dest_plate_seq)\n        cid = self.send_command(GRIP_PLACE, plateSequence=dest_plate_seq, toolSequence=tool_sequence, **more_options)\n        self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n    def move_plate_gripper(self, source_poss, dest_poss, **more_options):\n        \"\"\"Move a plate using the gripper by positions.\n        \n        Args:\n            source_poss: Source positions\n            dest_poss: Destination positions\n            **more_options: Additional command options\n        \"\"\"\n        labware_poss = self._compound_pos_str(dest_poss)\n        cid = self.send_command(GRIP_MOVE, plateLabwarePositions=labware_poss, **more_options)\n        self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n    def move_sequence(self, sequence, xDisplacement=0, yDisplacement=0, zDisplacement=0):\n        \"\"\"Move a sequence with optional displacement parameters.\n        \n        Args:\n            sequence: Input sequence to move\n            xDisplacement: X displacement (default 0)\n            yDisplacement: Y displacement (default 0)\n            zDisplacement: Z displacement (default 0)\n        \"\"\"\n        self.log('move_sequence: Moving sequence with displacements x=' + str(xDisplacement) + \n                ', y=' + str(yDisplacement) + ', z=' + str(zDisplacement))\n        cid = self.send_command(MOVE_SEQ, inputSequence=sequence, \n                               xDisplacement=xDisplacement, yDisplacement=yDisplacement, \n                               zDisplacement=zDisplacement)\n        self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n    def load_carrier(self, carrier_name, **more_options):\n        \"\"\"Load a carrier with the specified name.\n        \n        Args:\n            carrier_name: Name of the carrier to load\n            **more_options: Additional command options\n\n        Returns\n        -------\n        LoadCarrierResult\n            .carrierName   name you passed in\n            .barcodeReads  value of 'step-return2'\n            .barcodeMasks  value of 'step-return3'\n            .positionIds   value of 'step-return4'\n            .raw           underlying HamiltonResponse (for diagnostics)\n        \"\"\"\n\n        self.log('load_carrier: Loading carrier ' + carrier_name)\n        cid = self.send_command(LOAD_CARRIER, carrierName=carrier_name, **more_options)\n        response = self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n        @dataclass\n        class LoadCarrierResult:\n            carrierName: str\n            barcodeReads: Any\n            barcodeMasks: Any\n            positionIds: Any\n            raw: \"HamiltonResponse\"\n\n        # 3. Wrap the raw list in the dataclass and return it\n        return LoadCarrierResult(\n            carrierName=carrier_name,\n            barcodeReads=response.return_data[0],\n            barcodeMasks=response.return_data[1],\n            positionIds=response.return_data[2],\n            raw=response\n        )\n\n\n    def unload_carrier(self, carrier_name, **more_options):\n        \"\"\"Unload a carrier with the specified name.\n        \n        Args:\n            carrier_name: Name of the carrier to unload\n            **more_options: Additional command options\n        \"\"\"\n        self.log('unload_carrier: Unloading carrier ' + carrier_name)\n        cid = self.send_command(UNLOAD_CARRIER, carrierName=carrier_name, **more_options)\n        self.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\nclass JSONLogger:\n    def __init__(self):\n        self.logger = logging.getLogger(self.__class__.__name__)\n        self.logger.setLevel(logging.DEBUG)  # Set the default logging level\n    \n    def log(self, message):\n        self.logger.info(message)\n    \n    def set_log_dir(self, log_dir):\n        hdlr = logging.FileHandler(log_dir)\n        hdlr.setLevel(logging.DEBUG)\n        formatter = logging.Formatter('%(message)s')\n        hdlr.setFormatter(formatter)\n        self.logger.addHandler(hdlr)\n"
  },
  {
    "path": "pyhamilton/library/ASWStandard/ASWGlobal/ASWGlobal.hsl",
    "content": "// This library contains the most needed constants of HSL used in SMT and MED.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n//\r\n// Modification History\r\n// 2009-04-02  stephan gieriet: Creation of this lib.\r\n\r\n#ifndef __ASWGLOBAL_hsl__\r\n#define __ASWGLOBAL_hsl__\t1\r\n\r\nnamespace ASWGLOBAL\r\n{\r\n   namespace BOOL\r\n   {\r\n      const variable FALSE(hslFalse);\r\n      const variable TRUE(hslTrue);\r\n\r\n      const variable NO(hslFalse);\r\n      const variable YES(hslTrue);\r\n\r\n      const variable OFF(hslFalse);\r\n      const variable ON(hslTrue);\r\n   }\r\n\r\n\r\n   namespace DIALOG\r\n   {\r\n      const variable OK(1);\r\n      const variable CANCEL(2);\r\n      const variable ABORT(3);\r\n      const variable RETRY(4);\r\n      const variable IGNORE(5);\r\n      const variable YES(6);\r\n      const variable NO(7);\r\n   }\r\n\r\n   namespace TIMER\r\n   {\r\n      const variable STOP(3);\r\n   }\r\n}\r\n\r\n#endif\r\n// $$author=vmware$$valid=0$$time=2009-04-23 15:42$$checksum=a6fedaf4$$length=083$$"
  },
  {
    "path": "pyhamilton/library/ASWStandard/TraceLevel/TraceLevel.hsl",
    "content": "///////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ----------------------------------------------------------------------------------------------------\r\n// TraceLevel.hsl - library for dependent traces\r\n// ----------------------------------------------------------------------------------------------------\r\n// Modification History\r\n//  2009-03-02  v1.0  Corsin Alig\r\n//              - created\r\n//  2009-03-12  v1.1  Corsin Alig\r\n//              - functions Debug_Trace6, Release_Trace6 deleted\r\n//              - functions GetTraceLevel, Debug_Trace8, Release_Trace8 added\r\n//  2010-02-01  v1.2  Corsin Alig\r\n//              - Default TraceLevel value is NONE\r\n//  2013-05-03  v2.0  Bernd Huf\r\n//              - total rework to comply AAW650410\r\n//              - removed unneccessary includes\r\n//              - added some private helper functions (mostly string-related)\r\n//              - global TraceLevel variable now static\r\n//              - all \"old\" functions remain as static thus \"old\" methods don't have to be upgraded\r\n//              - new functions (all functions include the desired tracelevel as parameter):\r\n//                Trace02, Trace04, Trace06, Trace08, Trace10:  trace variables\r\n//                TraceArray:                                   trace array formatted\r\n//                TraceArrayHorizontally:                       trace array formatted in one line\r\n//                TraceArraysFaceToFace:                        trace two arrays next to each other\r\n//                TraceSequence                                 trace sequence\r\n//                TraceSequenceParameter                        trace all sequence parameter in one line\r\n//                SetStringIndicator                            set a character to easily identify all strings (i.e. ')\r\n//  2013-06-12  v2.1  Bernd Huf\r\n//              - new function TraceAction to trace action of functions like HSL function FormatTrace\r\n//              - bugfix in functions Release_Trace2 and Debug_Trace2: tracing of both parameters instead of two times parameter 1\r\n//              - bugfix in private function _ToString: changed string handling for float values\r\n//  2013-07-31  v2.2  Bernd Huf\r\n//              - bugfix in function TraceAction: check limits\r\n//  2013-09-17  v2.3  Bernd Huf\r\n//              - new function SetActionIndicator\r\n//              - new function TraceSequencePositions\r\n//  2013-11-14  v2.4  Bernd Huf\r\n//              - bugfix in function _TraceSequence\r\n//  2014-03-14  v2.5  Bernd Huf\r\n//              - changed function TraceSequencePositions to trace either only current position or all positions\r\n//  2014-06-24  v2.6  Bernd Huf\r\n//              - new internal function _GetComma to retrieve the comma sign based on the actual country settings\r\n//              - function _ToString: use function _GetComma for float conversions\r\n//  2014-07-14  v2.7  Bernd Huf\r\n//              - removed all \"direct\" initializations of variables (i.e. variable intLength(i_strInput.GetLength()) due to possible problems with scheduler\r\n//              - initialize all variables with default values\r\n//\r\n///////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n#ifndef __TraceLevel_hsl__\r\n  #define __TraceLevel_hsl__ 1\r\n\r\n  namespace TRACELEVEL\r\n  {\r\n    // --------------------------------------------------------------------------------------\r\n    // public constant declarations\r\n    // --------------------------------------------------------------------------------------\r\n\r\n    const global variable TRACE_LEVEL_NONE            (0);\r\n    const global variable TRACE_LEVEL_RELEASE         (1);\r\n    const global variable TRACE_LEVEL_DEBUG           (2);\r\n\r\n    namespace ACTION\r\n    {\r\n      const variable START                (1);\r\n      const variable COMPLETE             (2);\r\n      const variable ERROR                (3);\r\n      const variable PROGRESS             (4);\r\n      const variable COMPLETE_WITH_ERROR  (5);\r\n    }\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // task-local variable declarations\r\n    // --------------------------------------------------------------------------------------\r\n\r\n    static variable _strStringIdentifier                  (\"\");\r\n    static variable _strActionStartIdentifier             (\"\");\r\n    static variable _strActionCompleteIdentifier          (\"\");\r\n    static variable _strActionErrorIdentifier             (\"\");\r\n    static variable _strActionProgressIdentifier          (\"\");\r\n    static variable _strActionCompleteWithErrorIdentifier (\"\");\r\n    static string   _strComma                             (\"\");\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // global constant/variable declarations\r\n    // --------------------------------------------------------------------------------------\r\n\r\n    static global variable gTRACELEVEL_intTraceLevel  (TRACE_LEVEL_DEBUG);\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function declarations\r\n    // --------------------------------------------------------------------------------------\r\n\r\n    function GetTraceLevel() variable;\r\n\r\n    function SetTraceLevel(variable i_intTraceLevel) void;\r\n\r\n    function SetStringIndicator(variable i_strStringIndicator) void;\r\n\r\n    function Trace_02(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02) void;\r\n\r\n    function Trace_04(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02,\r\n                      variable i_varToTrace_03,\r\n                      variable i_varToTrace_04) void;\r\n\r\n    function Trace_06(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02,\r\n                      variable i_varToTrace_03,\r\n                      variable i_varToTrace_04,\r\n                      variable i_varToTrace_05,\r\n                      variable i_varToTrace_06) void;\r\n\r\n    function Trace_08(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02,\r\n                      variable i_varToTrace_03,\r\n                      variable i_varToTrace_04,\r\n                      variable i_varToTrace_05,\r\n                      variable i_varToTrace_06,\r\n                      variable i_varToTrace_07,\r\n                      variable i_varToTrace_08) void;\r\n\r\n    function Trace_10(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02,\r\n                      variable i_varToTrace_00,\r\n                      variable i_varToTrace_04,\r\n                      variable i_varToTrace_05,\r\n                      variable i_varToTrace_06,\r\n                      variable i_varToTrace_07,\r\n                      variable i_varToTrace_08,\r\n                      variable i_varToTrace_09,\r\n                      variable i_varToTrace_10) void;\r\n\r\n    function TraceArray(variable i_intTraceLevel,\r\n                        variable i_strDescription,\r\n                        variable i_arrvarToTrace[]) void;\r\n\r\n    function TraceArrayHorizontally(variable i_intTraceLevel,\r\n                                    variable i_strDescription,\r\n                                    variable i_arrvarToTrace[]) void;\r\n\r\n    function TraceArraysFaceToFace(variable i_intTraceLevel,\r\n                                   variable i_strDescription_1,\r\n                                   variable i_strDescription_2,\r\n                                   variable i_arrvarToTrace_1[],\r\n                                   variable i_arrvarToTrace_2[]) void;\r\n\r\n    function TraceSequence(variable i_intTraceLevel,\r\n                           sequence i_seqToTrace) void;\r\n\r\n    function TraceSequenceParameter(variable i_intTraceLevel,\r\n                                    sequence i_seqToTrace) void;\r\n\r\n    function TraceSequencePositions(device ML_STAR,\r\n                                    variable i_intTraceLevel,\r\n                                    sequence i_seqToTrace,\r\n                                    variable i_blnCurrentPositionOnly) void;\r\n\r\n    function TraceAction(variable i_intTraceLevel,\r\n                         variable i_intAction,\r\n                         variable i_strFunctionName,\r\n                         variable i_strMethodName,\r\n                         variable i_strComment) void;\r\n\r\n    function SetActionIndicator(variable i_intAction,\r\n                                variable i_strIndicator) void;\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // helper function declarations\r\n    // --------------------------------------------------------------------------------------\r\n\r\n    private function _TraceArray(variable i_strFunctionName,\r\n                                 variable i_strDescription,\r\n                                 variable i_arrvarToTrace[]) void;\r\n\r\n    private function _TraceSequence(variable i_strFunctionName,\r\n                                    sequence i_seqToTrace) void;\r\n\r\n    private function _Trace(variable i_strFunctionName,\r\n                            variable i_strToTrace) void;\r\n\r\n    private function _LongestElementSize(variable i_arrvarToCheck[]) variable;\r\n\r\n    private function _TrimRight(string i_strToTrim,\r\n                                string i_strToRemove) variable;\r\n\r\n    private function _FillLeft(string i_strStringToFill,\r\n                               variable i_strFillCharacter,\r\n                               variable i_intLength) variable;\r\n\r\n    private function _FillRight(string i_strStringToFill,\r\n                                variable i_strFillCharacter,\r\n                                variable i_intLength) variable;\r\n\r\n    private function _StringLength(string i_strStringToCheck) variable;\r\n\r\n    private function _ToString(variable i_varValue,\r\n                               variable i_blnUseStringIndicator) variable;\r\n\r\n    private function _ToInteger(variable i_varValue) variable;\r\n\r\n    private function _ExtractFunctionName(variable i_strFunctionName) variable;\r\n\r\n    private function _ExtractMethodName(variable i_strMethodName) variable;\r\n\r\n    private function _ReverseFind(string i_strStringToParse,\r\n                                  string i_strSubstringToFind) variable;\r\n\r\n    private function _GetComma() string;\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function GetTraceLevel\r\n    // --------------------------------------------------------------------------------------\r\n    function GetTraceLevel() variable\r\n    {\r\n      return(gTRACELEVEL_intTraceLevel);\r\n    } // GetTraceLevel\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function SetTraceLevel\r\n    // --------------------------------------------------------------------------------------\r\n    function SetTraceLevel(variable i_intTraceLevel) void\r\n    {\r\n      variable strDescription(\"\");\r\n\r\n      gTRACELEVEL_intTraceLevel = _ToInteger(i_intTraceLevel);\r\n\r\n      if(gTRACELEVEL_intTraceLevel > TRACE_LEVEL_DEBUG) gTRACELEVEL_intTraceLevel = TRACE_LEVEL_DEBUG;\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_NONE) gTRACELEVEL_intTraceLevel = TRACE_LEVEL_NONE;\r\n\r\n      if(gTRACELEVEL_intTraceLevel == TRACE_LEVEL_DEBUG) strDescription = \"TRACE_LEVEL_DEBUG\";\r\n      if(gTRACELEVEL_intTraceLevel == TRACE_LEVEL_RELEASE) strDescription = \"TRACE_LEVEL_RELEASE\";\r\n      if(gTRACELEVEL_intTraceLevel == TRACE_LEVEL_NONE) strDescription = \"TRACE_LEVEL_NONE\";\r\n\r\n      _Trace(\"SetTraceLevel\", \"Trace level set to \" + strDescription);\r\n    } // SetTraceLevel\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function SetStringIndicator\r\n    // --------------------------------------------------------------------------------------\r\n    function SetStringIndicator(variable i_strStringIndicator) void\r\n    {\r\n      if(GetType(i_strStringIndicator) == \"s\") _strStringIdentifier = i_strStringIndicator;\r\n    } // SetStringIndicator\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function Trace_02\r\n    // --------------------------------------------------------------------------------------\r\n    function Trace_02(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      _Trace(\"Trace_02\",\r\n             _ToString(i_varToTrace_01, hslTrue) +\r\n             _ToString(i_varToTrace_02, hslTrue));\r\n    } // Trace_02\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function Trace_04\r\n    // --------------------------------------------------------------------------------------\r\n    function Trace_04(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02,\r\n                      variable i_varToTrace_03,\r\n                      variable i_varToTrace_04) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      _Trace(\"Trace_04\",\r\n             _ToString(i_varToTrace_01, hslTrue) +\r\n             _ToString(i_varToTrace_02, hslTrue) +\r\n             _ToString(i_varToTrace_03, hslTrue) +\r\n             _ToString(i_varToTrace_04, hslTrue));\r\n    } // Trace_04\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function Trace_06\r\n    // --------------------------------------------------------------------------------------\r\n    function Trace_06(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02,\r\n                      variable i_varToTrace_03,\r\n                      variable i_varToTrace_04,\r\n                      variable i_varToTrace_05,\r\n                      variable i_varToTrace_06) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      _Trace(\"Trace_06\",\r\n             _ToString(i_varToTrace_01, hslTrue) +\r\n             _ToString(i_varToTrace_02, hslTrue) +\r\n             _ToString(i_varToTrace_03, hslTrue) +\r\n             _ToString(i_varToTrace_04, hslTrue) +\r\n             _ToString(i_varToTrace_05, hslTrue) +\r\n             _ToString(i_varToTrace_06, hslTrue));\r\n    } // Trace_06\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function Trace_08\r\n    // --------------------------------------------------------------------------------------\r\n    function Trace_08(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02,\r\n                      variable i_varToTrace_03,\r\n                      variable i_varToTrace_04,\r\n                      variable i_varToTrace_05,\r\n                      variable i_varToTrace_06,\r\n                      variable i_varToTrace_07,\r\n                      variable i_varToTrace_08) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      _Trace(\"Trace_08\",\r\n             _ToString(i_varToTrace_01, hslTrue) +\r\n             _ToString(i_varToTrace_02, hslTrue) +\r\n             _ToString(i_varToTrace_03, hslTrue) +\r\n             _ToString(i_varToTrace_04, hslTrue) +\r\n             _ToString(i_varToTrace_05, hslTrue) +\r\n             _ToString(i_varToTrace_06, hslTrue) +\r\n             _ToString(i_varToTrace_07, hslTrue) +\r\n             _ToString(i_varToTrace_08, hslTrue));\r\n    } // Trace_08\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function Trace_10\r\n    // --------------------------------------------------------------------------------------\r\n    function Trace_10(variable i_intTraceLevel,\r\n                      variable i_varToTrace_01,\r\n                      variable i_varToTrace_02,\r\n                      variable i_varToTrace_03,\r\n                      variable i_varToTrace_04,\r\n                      variable i_varToTrace_05,\r\n                      variable i_varToTrace_06,\r\n                      variable i_varToTrace_07,\r\n                      variable i_varToTrace_08,\r\n                      variable i_varToTrace_09,\r\n                      variable i_varToTrace_10) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      _Trace(\"Trace_10\",\r\n             _ToString(i_varToTrace_01, hslTrue) +\r\n             _ToString(i_varToTrace_02, hslTrue) +\r\n             _ToString(i_varToTrace_03, hslTrue) +\r\n             _ToString(i_varToTrace_04, hslTrue) +\r\n             _ToString(i_varToTrace_05, hslTrue) +\r\n             _ToString(i_varToTrace_06, hslTrue) +\r\n             _ToString(i_varToTrace_07, hslTrue) +\r\n             _ToString(i_varToTrace_08, hslTrue) +\r\n             _ToString(i_varToTrace_09, hslTrue) +\r\n             _ToString(i_varToTrace_10, hslTrue));\r\n    } // Trace_10\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function TraceArray\r\n    // --------------------------------------------------------------------------------------\r\n    function TraceArray(variable i_intTraceLevel,\r\n                        variable i_strDescription,\r\n                        variable i_arrvarToTrace[]) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      _TraceArray(\"TraceArray\", i_strDescription, i_arrvarToTrace);\r\n    } // TraceArray\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function TraceArrayHorizontally\r\n    // --------------------------------------------------------------------------------------\r\n    function TraceArrayHorizontally(variable i_intTraceLevel,\r\n                                    variable i_strDescription,\r\n                                    variable i_arrvarToTrace[]) void\r\n    {\r\n      variable intActualPosition(0), intArraySize(0), intFillupSize(0);\r\n      variable strToTrace(\"\");\r\n\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      intArraySize = i_arrvarToTrace.GetSize();\r\n\r\n      i_strDescription = _ToString(i_strDescription, hslFalse);\r\n\r\n      if(intArraySize == 0)\r\n      {\r\n        _Trace(\"TraceArrayHorizontally\", i_strDescription + \": empty array\");\r\n        return;\r\n      }\r\n\r\n      intFillupSize = _StringLength(IStr(intArraySize));\r\n\r\n      strToTrace = i_strDescription + \" \";\r\n\r\n      for(intActualPosition = 0; intActualPosition < intArraySize; intActualPosition++)\r\n        strToTrace = strToTrace +\r\n                    \"[\" +\r\n                    _FillLeft(IStr(intActualPosition + 1), \"0\", intFillupSize) +\r\n                    \"]: \" +\r\n                    _ToString(i_arrvarToTrace.GetAt(intActualPosition), hslTrue) +\r\n                    \", \";\r\n      _Trace(\"TraceArrayHorizontally\", _TrimRight(strToTrace, \", \"));\r\n    } // TraceArrayHorizontally\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function TraceArraysFaceToFace\r\n    // --------------------------------------------------------------------------------------\r\n    function TraceArraysFaceToFace(variable i_intTraceLevel,\r\n                                   variable i_strDescription_1,\r\n                                   variable i_strDescription_2,\r\n                                   variable i_arrvarToTrace_1[],\r\n                                   variable i_arrvarToTrace_2[]) void\r\n    {\r\n      variable intActualPosition(0), intArraySize_1(0), intArraySize_2(0), intArraySizeMax(0), intFillupSize_1(0), intFillupSize_2(0), intMaxLength(0), intGapLength(0);\r\n      variable strToTrace(\"\");\r\n\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      // convert i_strDescription to a string\r\n      i_strDescription_1 = _ToString(i_strDescription_1, hslFalse);\r\n      i_strDescription_2 = _ToString(i_strDescription_2, hslFalse);\r\n\r\n      intArraySize_1 = i_arrvarToTrace_1.GetSize();\r\n      intArraySize_2 = i_arrvarToTrace_2.GetSize();\r\n\r\n      intFillupSize_1 = _StringLength(IStr(intArraySize_1));\r\n      intFillupSize_2 = _StringLength(IStr(intArraySize_2));\r\n\r\n      if(intArraySize_1 == 0) i_arrvarToTrace_1.AddAsLast(\"empty\");\r\n      if(intArraySize_2 == 0) i_arrvarToTrace_2.AddAsLast(\"empty\");\r\n\r\n      intGapLength = _LongestElementSize(i_arrvarToTrace_1);\r\n      intMaxLength = _LongestElementSize(i_arrvarToTrace_2);\r\n\r\n      if(intArraySize_1 == 0) i_arrvarToTrace_1.SetSize(0);\r\n      if(intArraySize_2 == 0) i_arrvarToTrace_2.SetSize(0);\r\n\r\n      if(intGapLength > 0) intGapLength = intGapLength + _StringLength(i_strDescription_1) + intFillupSize_1 + 8;\r\n\r\n      intMaxLength = intMaxLength + intGapLength + _StringLength(i_strDescription_2) + intFillupSize_2;\r\n\r\n      if(intArraySize_1 > intArraySize_2) intArraySizeMax = intArraySize_1; else intArraySizeMax = intArraySize_2;\r\n\r\n      FormatTrace(\"TRACELEVEL\", \"TraceArraysFaceToFace\", ACTION::START, _FillRight(\"   \", \"-\", intMaxLength + 8));\r\n      for(intActualPosition = 0; intActualPosition < intArraySizeMax; intActualPosition++)\r\n      {\r\n        strToTrace = \"\";\r\n        if(intActualPosition < intArraySize_1)\r\n        {\r\n          strToTrace = i_strDescription_1 +\r\n                       \" [\" +\r\n                       _FillLeft(IStr(intActualPosition + 1), \"0\", intFillupSize_1) +\r\n                       \"]: \"  +\r\n                       _ToString(i_arrvarToTrace_1.GetAt(intActualPosition), hslTrue);\r\n        }\r\n\r\n        if(intActualPosition == 0 && intArraySize_1 == 0)\r\n          strToTrace = i_strDescription_1 + \": empty array\";\r\n\r\n        strToTrace = _FillRight(strToTrace, \" \", intGapLength);\r\n\r\n        if(intActualPosition < intArraySize_2)\r\n        {\r\n          strToTrace = strToTrace +\r\n                       i_strDescription_2 +\r\n                       \" [\" +\r\n                       _FillLeft(IStr(intActualPosition + 1), \"0\", intFillupSize_2) +\r\n                       \"]: \"  +\r\n                       _ToString(i_arrvarToTrace_2.GetAt(intActualPosition), hslTrue);\r\n        }\r\n\r\n        if(intActualPosition == 0 && intArraySize_2 == 0)\r\n          strToTrace = strToTrace + i_strDescription_2 + \": empty array\";\r\n        FormatTrace(\"TRACELEVEL\", \"TraceArraysFaceToFace\", ACTION::PROGRESS, strToTrace);\r\n      }\r\n      FormatTrace(\"TRACELEVEL\", \"TraceArraysFaceToFace\", ACTION::COMPLETE, _FillRight(\"\", \"-\", intMaxLength + 5));\r\n    } // TraceArraysFaceToFace\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function TraceSequence\r\n    // --------------------------------------------------------------------------------------\r\n    function TraceSequence(variable i_intTraceLevel,\r\n                           sequence i_seqToTrace) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      _TraceSequence(\"TraceSequence\", i_seqToTrace);\r\n    } // TraceSequence\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function TraceSequenceParameter\r\n    // --------------------------------------------------------------------------------------\r\n    function TraceSequenceParameter(variable i_intTraceLevel,\r\n                                    sequence i_seqToTrace) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      _Trace(\"TraceSequenceParameter\",\r\n             \"Name: '\" + i_seqToTrace.GetName() + \"'\" +\r\n             \", Current: \" + IStr(i_seqToTrace.GetCurrentPosition()) +\r\n             \", Count: \" + IStr(i_seqToTrace.GetCount()) +\r\n             \", Total: \" + IStr(i_seqToTrace.GetTotal()) +\r\n             \", Max: \" + IStr(i_seqToTrace.GetMax()) +\r\n             \", Used: \" + IStr(i_seqToTrace.GetUsedPositions()));\r\n    } // TraceSequenceParameter\r\n\r\n     // --------------------------------------------------------------------------------------\r\n    // function TraceSequencePositions\r\n    // --------------------------------------------------------------------------------------\r\n    function TraceSequencePositions(device ML_STAR,\r\n                                    variable i_intTraceLevel,\r\n                                    sequence i_seqToTrace,\r\n                                    variable i_blnCurrentPositionOnly) void\r\n    {\r\n      variable strLabwareID(\"\"), strPositionID(\"\"), strTrace(\"\");\r\n      variable intSequenceSize(0), intLoopCounterTraceSequence(0);\r\n      variable arrfltPositions[];\r\n\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      if(i_blnCurrentPositionOnly)\r\n        intSequenceSize = 1;\r\n      else\r\n      {\r\n        i_seqToTrace.SetCurrentPosition(1);\r\n        intSequenceSize = i_seqToTrace.GetCount();\r\n      }\r\n\r\n      FormatTrace(\"TRACELEVEL\", \"TraceSequencePositions\", ACTION::START, _FillRight(\"   \", \"-\", 100));\r\n      for(intLoopCounterTraceSequence = 1; intLoopCounterTraceSequence <= intSequenceSize; intLoopCounterTraceSequence++)\r\n      {\r\n        strLabwareID = i_seqToTrace.GetLabwareId();\r\n        strPositionID = i_seqToTrace.GetPositionId();\r\n        ML_STAR.GetLabwarePosition(strLabwareID, arrfltPositions, strPositionID);\r\n        strTrace = strLabwareID + \"_\" + strPositionID + \": \";\r\n        strTrace = strTrace + \"x = \" + FStr(arrfltPositions.GetAt(0));\r\n        strTrace = strTrace + \", y = \" + FStr(arrfltPositions.GetAt(1));\r\n        strTrace = strTrace + \", z = \" + FStr(arrfltPositions.GetAt(2));\r\n        strTrace = strTrace + \", r = \" + FStr(arrfltPositions.GetAt(3));\r\n        i_seqToTrace.GetNext();\r\n        FormatTrace(\"TRACELEVEL\", \"TraceSequencePositions\",  ACTION::PROGRESS, strTrace);\r\n      }\r\n      FormatTrace(\"TRACELEVEL\", \"TraceSequencePositions\", ACTION::COMPLETE, _FillRight(\"\", \"-\", 97));\r\n    } // TraceSequencePositions\r\n\r\n   // --------------------------------------------------------------------------------------\r\n    // function TraceAction\r\n    // --------------------------------------------------------------------------------------\r\n    function TraceAction(variable i_intTraceLevel,\r\n                         variable i_intAction,\r\n                         variable i_strFunctionName,\r\n                         variable i_strMethodName,\r\n                         variable i_strComment) void\r\n    {\r\n      string strMethodName(\"\");\r\n      variable strIndicator(\"\");\r\n\r\n      if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return;\r\n\r\n      i_intAction = _ToInteger(i_intAction);\r\n\r\n      if(i_intAction > ACTION::COMPLETE_WITH_ERROR) i_intAction = ACTION::COMPLETE_WITH_ERROR;\r\n      if(i_intAction < ACTION::START) i_intAction = ACTION::START;\r\n\r\n      strMethodName = _ToString(i_strMethodName, hslFalse);\r\n      strMethodName = _ExtractMethodName(strMethodName);\r\n      strMethodName.MakeUpper();\r\n\r\n      if(i_intAction == ACTION::START) strIndicator = _strActionStartIdentifier;\r\n      if(i_intAction == ACTION::COMPLETE) strIndicator = _strActionCompleteIdentifier;\r\n      if(i_intAction == ACTION::ERROR) strIndicator = _strActionErrorIdentifier;\r\n      if(i_intAction == ACTION::PROGRESS) strIndicator = _strActionProgressIdentifier;\r\n      if(i_intAction == ACTION::COMPLETE_WITH_ERROR) strIndicator = _strActionCompleteWithErrorIdentifier;\r\n      if(strIndicator != \"\")\r\n      {\r\n        strIndicator = _FillRight(strIndicator, strIndicator, 100);\r\n        FormatTrace(strMethodName, _ExtractFunctionName(_ToString(i_strFunctionName, hslFalse)), i_intAction, strIndicator);\r\n      }\r\n      FormatTrace(strMethodName, _ExtractFunctionName(_ToString(i_strFunctionName, hslFalse)), i_intAction, i_strComment);\r\n      if(strIndicator != \"\")\r\n        FormatTrace(strMethodName, _ExtractFunctionName(_ToString(i_strFunctionName, hslFalse)), i_intAction, strIndicator);\r\n    } // TraceAction\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // function SetActionIndicator\r\n    // --------------------------------------------------------------------------------------\r\n    function SetActionIndicator(variable i_intAction,\r\n                                variable i_strIndicator) void\r\n    {\r\n      if(GetType(i_strIndicator) == \"s\")\r\n      {\r\n        if(i_intAction == ACTION::START) _strActionStartIdentifier = i_strIndicator;\r\n        if(i_intAction == ACTION::COMPLETE) _strActionCompleteIdentifier = i_strIndicator;\r\n        if(i_intAction == ACTION::ERROR) _strActionErrorIdentifier = i_strIndicator;\r\n        if(i_intAction == ACTION::PROGRESS) _strActionProgressIdentifier = i_strIndicator;\r\n        if(i_intAction == ACTION::COMPLETE_WITH_ERROR) _strActionCompleteWithErrorIdentifier = i_strIndicator;\r\n      }\r\n    } // SetActionIndicator\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // private function _TraceArray\r\n    // --------------------------------------------------------------------------------------\r\n    private function _TraceArray(variable i_strFunctionName,\r\n                                 variable i_strDescription,\r\n                                 variable i_arrvarToTrace[]) void\r\n    {\r\n      variable intActualPosition(0), intArraySize(0), intFillupSize(0), intMaxLength(0);\r\n\r\n      i_strDescription = _ToString(i_strDescription, hslFalse);\r\n\r\n      intArraySize = i_arrvarToTrace.GetSize();\r\n      intFillupSize = _StringLength(IStr(intArraySize));\r\n\r\n      if(intArraySize == 0)\r\n      {\r\n        _Trace(i_strFunctionName, _ToString(i_strDescription, hslFalse) + \": empty array\");\r\n        return;\r\n      }\r\n\r\n      intMaxLength = _LongestElementSize(i_arrvarToTrace);\r\n      intMaxLength = intMaxLength + _StringLength(i_strDescription) + intFillupSize;\r\n\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::START, _FillRight(\"   \", \"-\", intMaxLength + 8));\r\n      for(intActualPosition = 0; intActualPosition < intArraySize; intActualPosition++)\r\n        FormatTrace(\"TRACELEVEL\",\r\n                    i_strFunctionName,\r\n                    ACTION::PROGRESS,\r\n                    i_strDescription,\r\n                     \" [\",\r\n                    _FillLeft(IStr(intActualPosition + 1), \"0\", intFillupSize),\r\n                    \"]: \",\r\n                    _ToString(i_arrvarToTrace.GetAt(intActualPosition), hslTrue));\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::COMPLETE, _FillRight(\"\", \"-\", intMaxLength + 5));\r\n    }// _TraceArray\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // private function _TraceSequence\r\n    // --------------------------------------------------------------------------------------\r\n    private function _TraceSequence(variable i_strFunctionName,\r\n                                    sequence i_seqToTrace) void\r\n    {\r\n      variable intCurrentPosition(0);\r\n      sequence seqTemp;\r\n      variable arrTemp[];\r\n\r\n      seqTemp = i_seqToTrace;\r\n\r\n      seqTemp.SetCurrentPosition(1);\r\n      seqTemp.SetCount(i_seqToTrace.GetTotal());\r\n      for(intCurrentPosition = 0;intCurrentPosition < seqTemp.GetTotal(); intCurrentPosition++)\r\n      {\r\n        arrTemp.AddAsLast(\"LabwareID: \" + seqTemp.GetLabwareId() + \", PositionID : \" + seqTemp.GetPositionId());\r\n        seqTemp.Increment(1);\r\n      }\r\n\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::START, _FillRight(\"   \", \"-\", _LongestElementSize(arrTemp) + 3));\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::PROGRESS, \"Name:    \" + i_seqToTrace.GetName());\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::PROGRESS, \"Current: \" + IStr(i_seqToTrace.GetCurrentPosition()));\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::PROGRESS, \"Count:   \" + IStr(i_seqToTrace.GetCount()));\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::PROGRESS, \"Total:   \" + IStr(i_seqToTrace.GetTotal()));\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::PROGRESS, \"Max:     \" + IStr(i_seqToTrace.GetMax()));\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::PROGRESS, \"Used:    \" + IStr(i_seqToTrace.GetUsedPositions()));\r\n\r\n      for(intCurrentPosition = 0;intCurrentPosition < arrTemp.GetSize(); intCurrentPosition++)\r\n        FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::PROGRESS, arrTemp.GetAt(intCurrentPosition));\r\n\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::COMPLETE, _FillRight(\"\", \"-\", _LongestElementSize(arrTemp)));\r\n    } // _TraceSequence\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // private function _Trace\r\n    // --------------------------------------------------------------------------------------\r\n    private function _Trace(variable i_strFunctionName,\r\n                            variable i_strToTrace) void\r\n    {\r\n      FormatTrace(\"TRACELEVEL\", i_strFunctionName, ACTION::COMPLETE, i_strToTrace);\r\n    } // _Trace\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // private function _LongestElementSize\r\n    // --------------------------------------------------------------------------------------\r\n    private function _LongestElementSize(variable i_arrvarToCheck[]) variable\r\n    {\r\n      variable intActualPosition(0), intArraySize(0), intMaxLength(0);\r\n      string strTemp;\r\n\r\n      intArraySize = i_arrvarToCheck.GetSize();\r\n\r\n      for(intActualPosition = 0; intActualPosition < intArraySize; intActualPosition++)\r\n      {\r\n        strTemp = _ToString(i_arrvarToCheck.GetAt(intActualPosition), hslTrue);\r\n        if(strTemp.GetLength() > intMaxLength) intMaxLength = strTemp.GetLength();\r\n      }\r\n      return(intMaxLength);\r\n    } // _LongestElementSize\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // private function _TrimRight\r\n    // --------------------------------------------------------------------------------------\r\n    private function _TrimRight(string i_strToTrim,\r\n                                string i_strToRemove) variable\r\n    {\r\n      variable strReturn(\"\");\r\n      variable intLength(0), intRemoveLength(0), intCount(0);\r\n      string strTemp(\"\");\r\n\r\n      strReturn = i_strToTrim;\r\n      intLength = i_strToTrim.GetLength();\r\n      intRemoveLength = i_strToRemove.GetLength();\r\n\r\n      for(intCount = intLength - intRemoveLength; intCount > 0; intCount = intCount - intRemoveLength)\r\n      {\r\n        strTemp = i_strToTrim.Mid(intCount, intRemoveLength);\r\n        if(strTemp.Compare(i_strToRemove) != 0) break;\r\n        strReturn = i_strToTrim.Mid(0, intCount);\r\n      }\r\n\r\n      return(strReturn);\r\n    } // _TrimRight\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _FillLeft\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _FillLeft(string i_strStringToFill,\r\n                               variable i_strFillCharacter,\r\n                               variable i_intLength) variable\r\n    {\r\n      variable strReturn(\"\");\r\n      variable intCount(0);\r\n\r\n      strReturn = i_strStringToFill;\r\n      for(intCount = i_strStringToFill.GetLength(); intCount < i_intLength; intCount++) strReturn = i_strFillCharacter + strReturn;\r\n      return(strReturn);\r\n    } // _FillLeft\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _FillRight\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _FillRight(string i_strStringToFill,\r\n                                variable i_strFillCharacter,\r\n                                variable i_intLength) variable\r\n    {\r\n      variable strReturn(\"\");\r\n      variable intLength(0), intCount(0);\r\n\r\n      strReturn = i_strStringToFill;\r\n      intLength = i_strStringToFill.GetLength();\r\n      for(intCount = intLength; intCount < i_intLength; intCount++) strReturn = strReturn + i_strFillCharacter;\r\n      return(strReturn);\r\n    } // _FillRight\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _StringLength\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _StringLength(string i_strStringToCheck) variable\r\n    {\r\n      return(i_strStringToCheck.GetLength());\r\n    } // _StringLength\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _ToString\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _ToString(variable i_varValue,\r\n                               variable i_blnUseStringIndicator) variable\r\n    {\r\n      string strVariableType(\"\"), strTempFloat(\"\"), strComma(\"\");\r\n\r\n      strVariableType = GetType(i_varValue);\r\n      if(strVariableType.Compare(hslString) == 0)\r\n        if(i_blnUseStringIndicator)\r\n          return(_strStringIdentifier + i_varValue + _strStringIdentifier);\r\n        else\r\n          return(i_varValue);\r\n      if(strVariableType.Compare(hslInteger) == 0) return(IStr(i_varValue));\r\n      if(strVariableType.Compare(hslFloat) == 0)\r\n      {\r\n        strComma = _GetComma();\r\n        strTempFloat = FStr(i_varValue, hslTrue, 1000);\r\n        if(strTempFloat.Find(strComma) == -1)\r\n        {\r\n          strTempFloat = strTempFloat + strComma;\r\n          strTempFloat = strTempFloat + \"0\";\r\n        }\r\n        return(strTempFloat);\r\n      }\r\n      return(\"\");\r\n    } // _ToString\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _ToInteger\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _ToInteger(variable i_varValue) variable\r\n    {\r\n      string strVariableType(\"\");\r\n\r\n      strVariableType = GetType(i_varValue);\r\n      if(strVariableType.Compare(hslInteger) == 0) return(i_varValue);\r\n      if(strVariableType.Compare(hslString) == 0) return(IVal(i_varValue));\r\n      if(strVariableType.Compare(hslFloat) == 0) return(Floor(i_varValue));\r\n      return(0);\r\n    } // _ToInteger\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _ExtractFunctionName\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _ExtractFunctionName(variable i_strFunctionName) variable\r\n    {\r\n      string strFunctionName(\"\");\r\n\r\n      strFunctionName = i_strFunctionName;\r\n      return(strFunctionName.Mid(_ReverseFind(i_strFunctionName, \":\") + 1, strFunctionName.GetLength()));\r\n    } // _ExtractFunctionName\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _ExtractMethodName\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _ExtractMethodName(variable i_strMethodName) variable\r\n    {\r\n      string strMethodName(\"\");\r\n      variable intCutPosition(0);\r\n\r\n      strMethodName = i_strMethodName;\r\n      intCutPosition = _ReverseFind(i_strMethodName, \"\\\\\") + 1;\r\n      return(strMethodName.Mid(intCutPosition, _ReverseFind(i_strMethodName, \".\") - intCutPosition));\r\n    } // _ExtractMethodName\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _ReverseFind\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _ReverseFind(string i_strStringToParse,\r\n                                  string i_strSubstringToFind) variable\r\n    {\r\n      variable intIndex(0), intResult(-1), intStringLength(0);\r\n      string strTempString(\"\");\r\n\r\n      strTempString = i_strStringToParse;\r\n      intStringLength = strTempString.GetLength();\r\n      for (intIndex = strTempString.Find(i_strSubstringToFind); intIndex != -1; intIndex = strTempString.Find(i_strSubstringToFind))\r\n      {\r\n        intResult = intResult + intIndex + 1;\r\n        strTempString = strTempString.Mid(intIndex + 1, intStringLength);\r\n      }\r\n      return(intResult);\r\n    } // _ReverseFind\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _GetComma\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _GetComma() string\r\n    {\r\n      if(_strComma.Compare(\"\") == 0)\r\n      {\r\n        _strComma = FStr(1.2, hslTrue);\r\n        _strComma = _strComma.Mid(1,1);\r\n      }\r\n      return(_strComma);\r\n    } // _GetComma\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Debug_Trace2\r\n    // --------------------------------------------------------------------------------------\r\n    static function Debug_Trace2(variable i_varToTrace_1,\r\n                                 variable i_varToTrace_2) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return;\r\n\r\n      _Trace(\"Debug_Trace2\",\r\n             _ToString(i_varToTrace_1, hslTrue) +\r\n             _ToString(i_varToTrace_2, hslTrue));\r\n    } // Debug_Trace2\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Debug_Trace4\r\n    // --------------------------------------------------------------------------------------\r\n    static function Debug_Trace4(variable i_varToTrace_1,\r\n                                 variable i_varToTrace_2,\r\n                                 variable i_varToTrace_3,\r\n                                 variable i_varToTrace_4) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return;\r\n\r\n      _Trace(\"Debug_Trace4\",\r\n             _ToString(i_varToTrace_1, hslTrue) +\r\n             _ToString(i_varToTrace_2, hslTrue) +\r\n             _ToString(i_varToTrace_3, hslTrue) +\r\n             _ToString(i_varToTrace_4, hslTrue));\r\n    } // Debug_Trace4\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Debug_Trace8\r\n    // --------------------------------------------------------------------------------------\r\n    static function Debug_Trace8(variable i_varToTrace_1,\r\n                                 variable i_varToTrace_2,\r\n                                 variable i_varToTrace_3,\r\n                                 variable i_varToTrace_4,\r\n                                 variable i_varToTrace_5,\r\n                                 variable i_varToTrace_6,\r\n                                 variable i_varToTrace_7,\r\n                                 variable i_varToTrace_8) void\r\n\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return;\r\n\r\n      _Trace(\"Debug_Trace8\",\r\n             _ToString(i_varToTrace_1, hslTrue) +\r\n             _ToString(i_varToTrace_2, hslTrue) +\r\n             _ToString(i_varToTrace_3, hslTrue) +\r\n             _ToString(i_varToTrace_4, hslTrue) +\r\n             _ToString(i_varToTrace_5, hslTrue) +\r\n             _ToString(i_varToTrace_6, hslTrue) +\r\n             _ToString(i_varToTrace_7, hslTrue) +\r\n             _ToString(i_varToTrace_8, hslTrue));\r\n    } // Debug_Trace8\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Debug_Trace12\r\n    // --------------------------------------------------------------------------------------\r\n    static function Debug_Trace12(variable i_varToTrace_1,\r\n                                  variable i_varToTrace_2,\r\n                                  variable i_varToTrace_3,\r\n                                  variable i_varToTrace_4,\r\n                                  variable i_varToTrace_5,\r\n                                  variable i_varToTrace_6,\r\n                                  variable i_varToTrace_7,\r\n                                  variable i_varToTrace_8,\r\n                                  variable i_varToTrace_9,\r\n                                  variable i_varToTrace_10,\r\n                                  variable i_varToTrace_11,\r\n                                  variable i_varToTrace_12) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return;\r\n\r\n      _Trace(\"Debug_Trace12\",\r\n             _ToString(i_varToTrace_1, hslTrue) +\r\n             _ToString(i_varToTrace_2, hslTrue) +\r\n             _ToString(i_varToTrace_3, hslTrue) +\r\n             _ToString(i_varToTrace_4, hslTrue) +\r\n             _ToString(i_varToTrace_5, hslTrue) +\r\n             _ToString(i_varToTrace_6, hslTrue) +\r\n             _ToString(i_varToTrace_7, hslTrue) +\r\n             _ToString(i_varToTrace_8, hslTrue) +\r\n             _ToString(i_varToTrace_9, hslTrue) +\r\n             _ToString(i_varToTrace_10, hslTrue) +\r\n             _ToString(i_varToTrace_11, hslTrue) +\r\n             _ToString(i_varToTrace_12, hslTrue));\r\n    } // Debug_Trace12\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Debug_TraceArray\r\n    // --------------------------------------------------------------------------------------\r\n    static function Debug_TraceArray(variable i_arrvarToTrace[],\r\n                                     variable i_strDescription) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return;\r\n\r\n      _TraceArray(\"Debug_TraceArray\", i_strDescription, i_arrvarToTrace);\r\n    } // Debug_TraceArray\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Debug_TraceSequence\r\n    // --------------------------------------------------------------------------------------\r\n    static function Debug_TraceSequence(sequence i_seqToTrace) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return;\r\n\r\n      _TraceSequence(\"Debug_TraceSequence\", i_seqToTrace);\r\n    } // Debug_TraceSequence\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Release_Trace2\r\n    // --------------------------------------------------------------------------------------\r\n    static function Release_Trace2(variable i_varToTrace_1,\r\n                                   variable i_varToTrace_2) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return;\r\n\r\n      _Trace(\"Release_Trace2\",\r\n             _ToString(i_varToTrace_1, hslTrue) +\r\n             _ToString(i_varToTrace_2, hslTrue));\r\n    } // Release_Trace2\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Release_Trace4\r\n    // --------------------------------------------------------------------------------------\r\n    static function Release_Trace4(variable i_varToTrace_1,\r\n                                   variable i_varToTrace_2,\r\n                                   variable i_varToTrace_3,\r\n                                   variable i_varToTrace_4) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return;\r\n\r\n      _Trace(\"Release_Trace4\",\r\n             _ToString(i_varToTrace_1, hslTrue) +\r\n             _ToString(i_varToTrace_2, hslTrue) +\r\n             _ToString(i_varToTrace_3, hslTrue) +\r\n             _ToString(i_varToTrace_4, hslTrue));\r\n    } // Release_Trace4\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Release_Trace8\r\n    // --------------------------------------------------------------------------------------\r\n    static function Release_Trace8(variable i_varToTrace_1,\r\n                                   variable i_varToTrace_2,\r\n                                   variable i_varToTrace_3,\r\n                                   variable i_varToTrace_4,\r\n                                   variable i_varToTrace_5,\r\n                                   variable i_varToTrace_6,\r\n                                   variable i_varToTrace_7,\r\n                                   variable i_varToTrace_8) void\r\n\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return;\r\n\r\n      _Trace(\"Release_Trace8\",\r\n             _ToString(i_varToTrace_1, hslTrue) +\r\n             _ToString(i_varToTrace_2, hslTrue) +\r\n             _ToString(i_varToTrace_3, hslTrue) +\r\n             _ToString(i_varToTrace_4, hslTrue) +\r\n             _ToString(i_varToTrace_5, hslTrue) +\r\n             _ToString(i_varToTrace_6, hslTrue) +\r\n             _ToString(i_varToTrace_7, hslTrue) +\r\n             _ToString(i_varToTrace_8, hslTrue));\r\n    } // Release_Trace8\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Release_Trace12\r\n    // --------------------------------------------------------------------------------------\r\n    static function Release_Trace12(variable i_varToTrace_1,\r\n                                    variable i_varToTrace_2,\r\n                                    variable i_varToTrace_3,\r\n                                    variable i_varToTrace_4,\r\n                                    variable i_varToTrace_5,\r\n                                    variable i_varToTrace_6,\r\n                                    variable i_varToTrace_7,\r\n                                    variable i_varToTrace_8,\r\n                                    variable i_varToTrace_9,\r\n                                    variable i_varToTrace_10,\r\n                                    variable i_varToTrace_11,\r\n                                    variable i_varToTrace_12) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return;\r\n\r\n      _Trace(\"Release_Trace12\",\r\n             _ToString(i_varToTrace_1, hslTrue) +\r\n             _ToString(i_varToTrace_2, hslTrue) +\r\n             _ToString(i_varToTrace_3, hslTrue) +\r\n             _ToString(i_varToTrace_4, hslTrue) +\r\n             _ToString(i_varToTrace_5, hslTrue) +\r\n             _ToString(i_varToTrace_6, hslTrue) +\r\n             _ToString(i_varToTrace_7, hslTrue) +\r\n             _ToString(i_varToTrace_8, hslTrue) +\r\n             _ToString(i_varToTrace_9, hslTrue) +\r\n             _ToString(i_varToTrace_10, hslTrue) +\r\n             _ToString(i_varToTrace_11, hslTrue) +\r\n             _ToString(i_varToTrace_12, hslTrue));\r\n    } // Release_Trace12\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Release_TraceArray\r\n    // --------------------------------------------------------------------------------------\r\n    static function Release_TraceArray(variable i_arrvarToTrace[],\r\n                                     variable i_strDescription) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return;\r\n\r\n      _TraceArray(\"Release_TraceArray\", i_strDescription, i_arrvarToTrace);\r\n    } // Release_TraceArray\r\n\r\n    // --------------------------------------------------------------------------------------\r\n    // static function Release_TraceSequence\r\n    // --------------------------------------------------------------------------------------\r\n    static function Release_TraceSequence(sequence i_seqToTrace) void\r\n    {\r\n      if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return;\r\n\r\n      _TraceSequence(\"Release_TraceSequence\", i_seqToTrace);\r\n    } // Release_TraceSequence\r\n} // namespace\r\n#endif\r\n// $$author=bhuf$$valid=1$$time=2014-07-14 11:38$$checksum=b497a74c$$length=081$$"
  },
  {
    "path": "pyhamilton/library/Alpha Numeric Conversion/Alpha Numeric Conversion.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 8/15/2017 8:46:29 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace ANC {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction Alpha_Num_Add_0_to_Position( variable & io_Str_Position_ID ) void { }\r\nfunction Alpha_Num_Remove_0_from_Position( variable & io_Str_Position_ID ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2017-08-15 20:46$$checksum=5f5785bd$$length=083$$"
  },
  {
    "path": "pyhamilton/library/Alpha Numeric Conversion/Alpha Numeric Conversion.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace ANC {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction Alpha_Num_Add_0_to_Position( variable & io_Str_Position_ID ) void ;\r\nfunction Alpha_Num_Remove_0_from_Position( variable & io_Str_Position_ID ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nprivate function Lookup( variable & array[], variable item ) variable ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Alpha_Num_Remove_0_from_Position\" \"Begin\"\r\nfunction Alpha_Num_Remove_0_from_Position( variable & io_Str_Position_ID ) void {\r\n// }} \"\"\r\nprivate variable str_left;\r\nprivate variable str_right;\r\n// {{ 5 \"Alpha_Num_Remove_0_from_Position\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 8 1 0 \"6b178e95_0584_4a75_aa6efedb62ddc42a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_left = StrLeft(io_Str_Position_ID, 2);\r\n// }} \"\"\r\n// {{{ 9 1 0 \"d0e3435d_c9e9_46c3_a82d3fa9ad319c24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_right = StrRight(str_left, 1);\r\n// }} \"\"\r\n// {{ 10 1 0 \"caa1f517_257e_43a0_b75e75bb6510cdc0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_right == \"0\")\r\n{\r\n// }} \"\"\r\n// {{{ 11 1 0 \"6b80571a_7c70_4609_88954d7aa9cfcabf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_left = StrLeft(io_Str_Position_ID, 1);\r\n// }} \"\"\r\n// {{{ 12 1 0 \"232377c2_8687_4dfc_9381829d646485b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_right = StrRight(io_Str_Position_ID, 1);\r\n// }} \"\"\r\n// {{{ 13 1 0 \"f78310f3_231a_413f_bda042fcb400e065\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Str_Position_ID = StrConcat2(str_left, str_right);\r\n// }} \"\"\r\n// {{ 14 1 0 \"caa1f517_257e_43a0_b75e75bb6510cdc0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Alpha_Num_Remove_0_from_Position\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Alpha_Num_Add_0_to_Position\" \"Begin\"\r\nfunction Alpha_Num_Add_0_to_Position( variable & io_Str_Position_ID ) void {\r\n// }} \"\"\r\nprivate variable right;\r\nprivate variable left;\r\nprivate variable length;\r\n// {{ 5 \"Alpha_Num_Add_0_to_Position\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1 1 0 \"3a838138_7a48_4fe8_ab760b5396db7900\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlength = StrGetLength(io_Str_Position_ID);\r\n// }} \"\"\r\n// {{ 2 1 0 \"32c6fba6_7290_4363_8e42ac49f3031df1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (length == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"143af9c0_e59f_4a56_978c3335d02ba191\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nleft = StrLeft(io_Str_Position_ID, 1);\r\n// }} \"\"\r\n// {{{ 4 1 0 \"f00681ff_a734_4d0c_b23e3bd0685a6d7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nright = StrRight(io_Str_Position_ID, 1);\r\n// }} \"\"\r\n// {{{ 5 1 0 \"6bc28d7d_43fe_46a4_b6ed86ef360943c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Str_Position_ID = StrConcat4(left, Translate(\"0\"), right, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 6 1 0 \"32c6fba6_7290_4363_8e42ac49f3031df1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Alpha_Num_Add_0_to_Position\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Convert_Alpha_Numeric_to_Numbers\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable arr_letters[];\r\nprivate variable letter;\r\nprivate variable column_number;\r\nprivate variable number;\r\nprivate variable row_number;\r\nprivate variable input_type;\r\n// {{ 5 \"Convert_Alpha_Numeric_to_Numbers\" \"InitLocals\"\r\no_Numeric_Value = 0;\r\n// }} \"\"\r\n// {{{ 16 1 0 \"6136314c_d06e_4fd6_a28154312772e2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ninput_type = StrGetType(i_Alpha_Numeric_Value);\r\n// }} \"\"\r\n// {{ 17 1 0 \"283c3158_ea2c_444c_b4e0c264f5fbe527\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (input_type != \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 18 1 0 \"7c86593c_7545_4367_ac6eaee2ab6bf7ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Input value must be a string!\"));\r\n// }} \"\"\r\n// {{ 19 1 0 \"283c3158_ea2c_444c_b4e0c264f5fbe527\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 20 1 0 \"1330a9b8_bc4a_41d2_8721205bb3316f79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nAlpha_Num_Add_0_to_Position(i_Alpha_Numeric_Value);\r\n// }} \"\"\r\n// {{ 21 1 0 \"53311afd_da19_40f9_9069ae252ccc7fa7\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_letters.SetSize(0);\r\n// }} \"\"\r\n// {{ 22 1 0 \"6607f6b5_6056_49be_9431e0b35cda95f3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"A\"));\r\n// }} \"\"\r\n// {{ 23 1 0 \"1be9656e_e58b_427d_9ff2faf4bbb9b3da\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"B\"));\r\n// }} \"\"\r\n// {{ 24 1 0 \"0ed5614a_cd1b_48f3_82778388df2b80f3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"C\"));\r\n// }} \"\"\r\n// {{ 25 1 0 \"43a7fcd9_3162_4655_935ca0ea41673b51\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"D\"));\r\n// }} \"\"\r\n// {{ 26 1 0 \"3852fb52_8c56_40e6_817cc1bcaf126d21\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"E\"));\r\n// }} \"\"\r\n// {{ 27 1 0 \"259e17ee_3744_4811_a4ea74285cd0dbf3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"F\"));\r\n// }} \"\"\r\n// {{ 28 1 0 \"bf7c4e93_bd3b_41f3_a101017fecfba633\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"G\"));\r\n// }} \"\"\r\n// {{ 29 1 0 \"642a01bc_a4f3_40ee_a4ab4355f683a242\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"H\"));\r\n// }} \"\"\r\n// {{ 30 1 0 \"ebe2b1ff_1838_4a5e_b65431bf8bc2f805\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"I\"));\r\n// }} \"\"\r\n// {{ 31 1 0 \"6b36475d_ed70_4d55_bafd60a5a27b5da5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"J\"));\r\n// }} \"\"\r\n// {{ 32 1 0 \"2666cee2_2180_4e56_b527b782a9691af8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"K\"));\r\n// }} \"\"\r\n// {{ 33 1 0 \"ea863560_9e60_495c_95a073d8ef5df143\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"L\"));\r\n// }} \"\"\r\n// {{ 34 1 0 \"af0f4f49_cee9_4b6c_94cb482c29eeedd1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"M\"));\r\n// }} \"\"\r\n// {{ 35 1 0 \"2ca39090_7bff_4e5d_87c8f514fd743892\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"N\"));\r\n// }} \"\"\r\n// {{ 36 1 0 \"c8977efe_d33d_4bef_b999a4769d996742\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"O\"));\r\n// }} \"\"\r\n// {{ 37 1 0 \"3d16a1af_e057_4991_a582aa77a543d444\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"P\"));\r\n// }} \"\"\r\n// {{ 38 1 0 \"1407ebbc_f20e_4362_97bb774b9fa82f3b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"Q\"));\r\n// }} \"\"\r\n// {{ 39 1 0 \"d5bc29bf_ecca_44b6_a951fd1fc927bbf2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"R\"));\r\n// }} \"\"\r\n// {{ 40 1 0 \"53d821aa_aac6_49a7_85fe856ef62e8f9e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"S\"));\r\n// }} \"\"\r\n// {{ 41 1 0 \"d67d5258_9fb5_4dcf_8cc673798eed7f53\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"T\"));\r\n// }} \"\"\r\n// {{ 42 1 0 \"899d7118_2273_4284_b272bad94904fa62\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"U\"));\r\n// }} \"\"\r\n// {{ 43 1 0 \"615b94fe_563c_4772_a2b1c6b57955387a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"V\"));\r\n// }} \"\"\r\n// {{ 44 1 0 \"2fc4d1cd_7472_4ad3_aa7d2a7826c06fcb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"W\"));\r\n// }} \"\"\r\n// {{ 45 1 0 \"1d157008_d163_49c3_8e5849a66022a198\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"X\"));\r\n// }} \"\"\r\n// {{ 46 1 0 \"f3ff2b48_f9fb_4bfa_a1f30a7743f41937\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"Y\"));\r\n// }} \"\"\r\n// {{ 47 1 0 \"b31de323_da5c_4ae0_bd9b350d493b82d2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"Z\"));\r\n// }} \"\"\r\n// {{{ 48 1 0 \"4ea9c3d4_44e7_470c_b12782d0c6a70c37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nletter = StrLeft(i_Alpha_Numeric_Value, 1);\r\n// }} \"\"\r\n// {{{ 49 1 0 \"fee99ea7_8b69_4946_aba92d389bb3164a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumber = StrRight(i_Alpha_Numeric_Value, 2);\r\n// }} \"\"\r\n// {{{ 50 1 0 \"bf0e5e47_c4d5_41b3_a35dab8432e5970f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncolumn_number = StrIVal(number);\r\n// }} \"\"\r\n// {{{ 51 1 0 \"3c780649_b8b1_4059_852ee87794670c23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nrow_number = Lookup(arr_letters, letter);\r\n// }} \"\"\r\n// {{ 52 1 0 \"b4ea06c5_4157_4509_8673eb9dbe67a728\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Sort_by_Column == 1)\r\n{\r\n// }} \"\"\r\no_Numeric_Value = i_Total_Rows * (column_number - 1) + row_number;\r\n// {{ 54 1 0 \"b4ea06c5_4157_4509_8673eb9dbe67a728\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\no_Numeric_Value = i_Total_Columns * (row_number - 1) + column_number;\r\n// {{ 56 1 0 \"b4ea06c5_4157_4509_8673eb9dbe67a728\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Convert_Alpha_Numeric_to_Numbers\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Convert_Numbers_to_Alpha_Numeric\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable letter_index;\r\nprivate variable letter;\r\nprivate variable column_number;\r\nprivate variable input_type;\r\nprivate variable arr_letters[];\r\n// {{ 5 \"Convert_Numbers_to_Alpha_Numeric\" \"InitLocals\"\r\no_Alpha_Numeric_Value = 0;\r\n// }} \"\"\r\n// {{{ 58 1 0 \"6acaaa34_4f95_48c3_b37e57ee1feba1e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ninput_type = StrGetType(i_Numeric_Value);\r\n// }} \"\"\r\n// {{ 59 1 0 \"41bc47de_bfac_439f_aedd0e1f70cd6362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (input_type != \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 60 1 0 \"3cd004e4_1c00_459d_9e7461f3d5b8e22c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Input value must be an integer!\"));\r\n// }} \"\"\r\n// {{ 61 1 0 \"41bc47de_bfac_439f_aedd0e1f70cd6362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 62 1 0 \"62eb5f72_6843_4c2a_942c7e05a54ff38b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Numeric_Value < 1)\r\n{\r\n// }} \"\"\r\n// {{{ 63 1 0 \"bb36e0e2_cad4_4b0d_9192577b3ba0ff51\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Input value cannot be lower than 1!\"));\r\n// }} \"\"\r\n// {{ 64 1 0 \"62eb5f72_6843_4c2a_942c7e05a54ff38b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 65 1 0 \"bfbe40e7_94a0_4a46_96cb03544c0d18af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Total_Rows > 26)\r\n{\r\n// }} \"\"\r\n// {{{ 66 1 0 \"a80b06ec_de86_4b1e_a42b3d8b81b2127f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"The total rows must be lower than 26!\"));\r\n// }} \"\"\r\n// {{ 67 1 0 \"bfbe40e7_94a0_4a46_96cb03544c0d18af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 68 1 0 \"11ec1a52_43c1_4bfa_a26abda273e4c404\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Total_Columns > 99)\r\n{\r\n// }} \"\"\r\n// {{{ 69 1 0 \"283253d1_b520_405b_b06c9b4c22324bbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"The total columns must be lower than 99!\"));\r\n// }} \"\"\r\n// {{ 70 1 0 \"11ec1a52_43c1_4bfa_a26abda273e4c404\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 71 1 0 \"7ff57783_b5de_46b9_af856830d703fed2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_letters.SetSize(0);\r\n// }} \"\"\r\n// {{ 72 1 0 \"479f8c0f_6bdf_4ed6_8616b0502f8a8bd4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"A\"));\r\n// }} \"\"\r\n// {{ 73 1 0 \"e644494d_dd51_47ff_88c3c9e38d544aa3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"B\"));\r\n// }} \"\"\r\n// {{ 74 1 0 \"32372efa_fafa_44d8_b395edc738e9ca2b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"C\"));\r\n// }} \"\"\r\n// {{ 75 1 0 \"95abaa48_1a6d_42b9_9e14260a37a473f5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"D\"));\r\n// }} \"\"\r\n// {{ 76 1 0 \"963d177e_b257_45c5_ac6b0b2960998ce5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"E\"));\r\n// }} \"\"\r\n// {{ 77 1 0 \"b789b773_0a27_440b_8c984eb2c1ed70ca\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"F\"));\r\n// }} \"\"\r\n// {{ 78 1 0 \"eec4bfcd_1e32_4c7b_91437a7b7f96c1d4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"G\"));\r\n// }} \"\"\r\n// {{ 79 1 0 \"8ede60c1_5d85_42f4_b144e9ddf769e6fa\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"H\"));\r\n// }} \"\"\r\n// {{ 80 1 0 \"a187a7de_acb7_4862_90a3cd195eaad0c5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"I\"));\r\n// }} \"\"\r\n// {{ 81 1 0 \"775c5f38_bfc7_4c7f_be9190ac8ed640b3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"J\"));\r\n// }} \"\"\r\n// {{ 82 1 0 \"5011de34_b295_4ed4_9fd57ae2385b8033\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"K\"));\r\n// }} \"\"\r\n// {{ 83 1 0 \"5e321c14_a5ba_4416_815cfa154d2d1b12\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"L\"));\r\n// }} \"\"\r\n// {{ 84 1 0 \"5623eda7_eb12_44e7_929e2c858b0b298b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"M\"));\r\n// }} \"\"\r\n// {{ 85 1 0 \"725a09a0_66ae_46fd_886b6da25b6edbad\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"N\"));\r\n// }} \"\"\r\n// {{ 86 1 0 \"87402508_df13_4b18_b2aee442921dca85\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"O\"));\r\n// }} \"\"\r\n// {{ 87 1 0 \"5bb1affc_09db_40b3_a42d36dfd524272e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"P\"));\r\n// }} \"\"\r\n// {{ 88 1 0 \"46856e7e_3b8a_4c4e_9f98107737649416\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"Q\"));\r\n// }} \"\"\r\n// {{ 89 1 0 \"9409097f_5897_4ad8_9241b0aaf173dfa9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"R\"));\r\n// }} \"\"\r\n// {{ 90 1 0 \"1dd40b64_79ea_4783_8a48577f7e7e76bf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"S\"));\r\n// }} \"\"\r\n// {{ 91 1 0 \"77e5b3c0_7bf0_4603_b28a3d743aee96a9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"T\"));\r\n// }} \"\"\r\n// {{ 92 1 0 \"67141e0c_f7d2_4421_b5fec8dc764cbae1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"U\"));\r\n// }} \"\"\r\n// {{ 93 1 0 \"c964819a_5353_48bc_b5dc344309487347\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"V\"));\r\n// }} \"\"\r\n// {{ 94 1 0 \"f9177f8c_3e24_442f_a7e3f0223acc5205\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"W\"));\r\n// }} \"\"\r\n// {{ 95 1 0 \"37510d49_0830_45a8_915dde6c43abf1f5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"X\"));\r\n// }} \"\"\r\n// {{ 96 1 0 \"85964ad8_afdc_4cd5_a4d65b2de00467a1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"Y\"));\r\n// }} \"\"\r\n// {{ 97 1 0 \"e9f3684f_fbca_46eb_8152bc5a452e54ee\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_letters.AddAsLast(Translate(\"Z\"));\r\n// }} \"\"\r\n// {{ 98 1 0 \"6fe3bcce_44d2_4ee0_8d059baa0b8679b4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Sort_by_Column == 1)\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"f3af858b_0b3a_4055_b3e93a51630d4ffe\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ncolumn_number = i_Numeric_Value / i_Total_Rows;\r\n// }} \"\"\r\n// {{ 100 1 0 \"16d3917c_1593_49a5_a00f97350b13b2e6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nletter_index = i_Numeric_Value % i_Total_Rows;\r\n// }} \"\"\r\n// {{ 101 1 0 \"1904aca3_eda9_4d35_9e1193b5b4a825c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (letter_index > 0)\r\n{\r\n// }} \"\"\r\n// {{ 102 1 0 \"c085c22c_d354_407a_8487a4fe15ffa9f1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ncolumn_number = column_number + 1;\r\n// }} \"\"\r\n// {{ 103 1 0 \"1904aca3_eda9_4d35_9e1193b5b4a825c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 104 1 0 \"4cc2f49e_55b3_4803_848f72f11812cc9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nletter_index = i_Total_Rows;\r\n// }} \"\"\r\n// {{ 105 1 0 \"1904aca3_eda9_4d35_9e1193b5b4a825c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 106 1 0 \"736c924e_3d7e_42d1_807a2ffebe04fdfe\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nletter=arr_letters.GetAt(letter_index-1);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"898c1275_1a14_42bb_83da833f35f4ea8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_Alpha_Numeric_Value = StrConcat2(letter, column_number);\r\n// }} \"\"\r\n// {{ 108 1 0 \"6fe3bcce_44d2_4ee0_8d059baa0b8679b4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 109 1 0 \"92d706db_698c_4462_87643b4c15d78351\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nletter_index = i_Numeric_Value / i_Total_Columns;\r\n// }} \"\"\r\n// {{ 110 1 0 \"122e3eec_7320_470c_823965ca35a94d45\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ncolumn_number = i_Numeric_Value % i_Total_Columns;\r\n// }} \"\"\r\n// {{ 111 1 0 \"be2eddc2_ab86_4f7e_a2b6d04670045943\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (column_number > 0)\r\n{\r\n// }} \"\"\r\n// {{ 112 1 0 \"af7713c9_a003_4af6_ad8993c94fe48ec1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nletter_index = letter_index + 1;\r\n// }} \"\"\r\n// {{ 113 1 0 \"be2eddc2_ab86_4f7e_a2b6d04670045943\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 114 1 0 \"a0a6f86f_2d3d_41f5_9a8958210222c287\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncolumn_number = i_Total_Columns;\r\n// }} \"\"\r\n// {{ 115 1 0 \"be2eddc2_ab86_4f7e_a2b6d04670045943\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 116 1 0 \"7791932f_d60c_4c54_9bbb7c7a5b697b80\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nletter=arr_letters.GetAt(letter_index-1);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"6e7abffb_45fb_4f59_b61095bb7684b3a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_Alpha_Numeric_Value = StrConcat2(letter, column_number);\r\n// }} \"\"\r\n// {{ 118 1 0 \"6fe3bcce_44d2_4ee0_8d059baa0b8679b4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Convert_Numbers_to_Alpha_Numeric\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Lookup\" \"Begin\"\r\nprivate function Lookup( variable & array[], variable item ) variable {\r\n// }} \"\"\r\nprivate variable index;\r\nprivate variable lookupreturn;\r\n// {{ 5 \"Lookup\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 120 1 0 \"2e0e2fb0_f5aa_4a54_bc3b295e98e024d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlookupreturn = Util::Lookup(array, item, index);\r\n// }} \"\"\r\n// {{ 121 1 0 \"37771551_bf9e_4c50_9d3f28616b6e6394\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lookupreturn > 0)\r\n{\r\n// }} \"\"\r\n// {{ 122 1 0 \"d3989e85_a484_4c3a_bd841eecfd262af9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nindex = index + 1;\r\n// }} \"\"\r\n// {{{ 123 1 0 \"11cacaf7_509e_494d_8004a62633485f1f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (index);\r\n// }} \"\"\r\n// {{ 124 1 0 \"37771551_bf9e_4c50_9d3f28616b6e6394\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 125 1 0 \"66dfa150_2cb2_44b0_9d6be9c3943b787a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{ 126 1 0 \"37771551_bf9e_4c50_9d3f28616b6e6394\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Lookup\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2017-08-15 20:46$$checksum=2c3bc320$$length=085$$"
  },
  {
    "path": "pyhamilton/library/ErrorSimulator/ErrorSimulator.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 7/16/2012 3:01:49 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace ERRORSIMULATOR {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction AA_Abstract(  ) void { }\r\nfunction STEP1_PrepareRegistryAndCfgFile( device & ML_STAR ) void { }\r\nfunction STEP2a_SimulateError_Channels( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { }\r\nfunction STEP2b_SimulateError_COREGripper( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { }\r\nfunction STEP2c_SimulateError_iSWAP( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { }\r\nfunction STEP2d_SimulateError_96Head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { }\r\nfunction STEP2e_SimulateError_384head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { }\r\nfunction STEP2f_SimulateError_BarcodeReading( variable WhenSimulateError, device & ML_STAR ) void { }\r\nfunction STEP2g_SimulateError_Autoload( variable notReadPositions_Str, variable notPresentPositions_Str, device & ML_STAR ) void { }\r\nfunction STEP2h_SimulateError_CRWashstation( variable errorToSimulate, device & ML_STAR ) void { }\r\nfunction STEP3_Restore_BackupCfgFile( device & ML_STAR ) void { }\r\nfunction STEP4_Optional_SwitchChecksum_ON(  ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Cuevas_A$$valid=0$$time=2012-07-16 15:01$$checksum=0cf6bb89$$length=085$$"
  },
  {
    "path": "pyhamilton/library/ErrorSimulator/ErrorSimulator.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"ErrorSimulator\\\\MlStarSimCfg.hsl\"\r\n#include \"HSLFilLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"ErrorSimulator\\\\HSLFilLibEx.hsl\"\r\n#include \"HSLML_STARLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace ERRORSIMULATOR {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction AA_Abstract(  ) void ;\r\nfunction STEP1_PrepareRegistryAndCfgFile( device & ML_STAR ) void ;\r\nfunction STEP2a_SimulateError_Channels( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ;\r\nfunction STEP2b_SimulateError_COREGripper( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ;\r\nfunction STEP2c_SimulateError_iSWAP( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ;\r\nfunction STEP2d_SimulateError_96Head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ;\r\nfunction STEP2e_SimulateError_384head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ;\r\nfunction STEP2f_SimulateError_BarcodeReading( variable WhenSimulateError, device & ML_STAR ) void ;\r\nfunction STEP2g_SimulateError_Autoload( variable notReadPositions_Str, variable notPresentPositions_Str, device & ML_STAR ) void ;\r\nfunction STEP2h_SimulateError_CRWashstation( variable errorToSimulate, device & ML_STAR ) void ;\r\nfunction STEP3_Restore_BackupCfgFile( device & ML_STAR ) void ;\r\nfunction STEP4_Optional_SwitchChecksum_ON(  ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"STEP1_PrepareRegistryAndCfgFile\" \"Begin\"\r\nfunction STEP1_PrepareRegistryAndCfgFile( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable strCommand;\r\nprivate variable libPath;\r\nprivate variable str;\r\nprivate file file1;\r\nprivate variable strFound;\r\nprivate variable logPath;\r\nprivate variable cfgPath;\r\nprivate variable binPath;\r\nprivate variable loopCounter1;\r\nprivate variable cfgFileBak;\r\nprivate variable cfgFile;\r\nprivate variable strNew;\r\nprivate variable backupExists;\r\nprivate variable strFile;\r\nprivate variable mlStarCfg;\r\nprivate variable STAR_type;\r\nprivate variable mlStarCfgBak;\r\n// {{ 5 \"STEP1_PrepareRegistryAndCfgFile\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 3 1 0 \"5bd539fe_fc1c_4cd7_b7278303ae739678\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 4 1 0 \"71eda1d9_8f90_4cb1_8edc16ff60799eb4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbinPath = FilGetBinPath();\r\n// }} \"\"\r\n// {{{ 5 1 0 \"2bf4fdc8_2dd6_4863_b2b3d74029c35839\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncfgPath = FilGetConfigPath();\r\n// }} \"\"\r\n// {{{ 6 1 0 \"3ae1d58c_cd6e_40a0_b8354732906b885d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlogPath = FilGetLogFilesPath();\r\n// }} \"\"\r\n// {{{ 7 1 0 \"ad02d0ed_9bc3_4c5e_b35ff69503de7c13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlibPath = FilGetLibraryPath();\r\n// }} \"\"\r\n// {{ 8 1 0 \"5bd539fe_fc1c_4cd7_b7278303ae739678\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"0b5222d4_6e51_4228_a9eececd51d7b21b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 10 1 0 \"49a12910_177d_42ab_b4b37317e712546b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFile = StrConcat2(libPath, Translate(\"\\ErrorSimulator\\SwitchChecksum_OFF.bat\"));\r\n// }} \"\"\r\n// {{{ 11 1 0 \"ad1ffb46_d00a_42a6_8d0254d5c309e810\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrCommand = StrConcat4(Translate(\"\\\"\"), libPath, Translate(\"\\ErrorSimulator\\PhoenixChecksum_0.reg\\\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 12 1 0 \"2517f40b_fe78_4300_a475b50363009b6a\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(1, strCommand, hslString);\r\nfile1.SetDelimiter(hslAsciiText);\r\nif( 0 == file1.Open(strFile, hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, strFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 13 1 0 \"d2871217_e30a_43ce_a388597472e5ffff\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 14 1 0 \"e5862bcc_741d_4e75_8f5b581139610b13\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\n// {{ 15 1 0 \"886b63de_26b2_448a_9698e4c4e94fb253\" \"{B31F3545-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nif( 0 == Shell(strFile, hslShow, hslSynchronous) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1238499072, MECC::IDS::stepNameShell, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 16 1 0 \"0b5222d4_6e51_4228_a9eececd51d7b21b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 17 1 0 \"f11e8bd1_ba63_4932_80d7f856c94ccaae\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 18 1 0 \"60d95a9a_10ac_41d0_a610e849d0d0a356\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 19 1 0 \"c794ba05_9a8a_49df_80709a0eff58ce50\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{ 20 1 0 \"c18d1795_bf86_495f_9e17dc17a97cc383\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (STAR_type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 21 1 0 \"5aa22dc6_bafe_40d5_af7276249873eccb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfg = Translate(\"\\ML_STAR_Simulator.cfg\");\r\n// }} \"\"\r\n// {{ 22 1 0 \"0c723690_2424_4a8a_b35169cf1b27fea2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfgBak = Translate(\"\\ML_STAR_Simulator.cfg.bak\");\r\n// }} \"\"\r\n// {{ 23 1 0 \"c18d1795_bf86_495f_9e17dc17a97cc383\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 24 1 0 \"8bf63af2_da33_4dda_98bfb520019652f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (STAR_type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 25 1 0 \"e2d2867f_bb13_47c0_904060d9e427ee93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfg = Translate(\"\\ML_Starlet_Simulator.cfg\");\r\n// }} \"\"\r\n// {{ 26 1 0 \"69325772_c142_40b4_a3da66d589edf241\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfgBak = Translate(\"\\ML_Starlet_Simulator.cfg.bak\");\r\n// }} \"\"\r\n// {{ 27 1 0 \"8bf63af2_da33_4dda_98bfb520019652f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 28 1 0 \"7caf499f_870f_434a_b799b651abbb2f44\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (STAR_type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 29 1 0 \"8503b486_cb1b_4aca_8814790503c03570\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfg = Translate(\"\\ML_FlexStar_Simulator.cfg\");\r\n// }} \"\"\r\n// {{ 30 1 0 \"bfc409ae_8814_483d_b4337dbb7faeac46\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfgBak = Translate(\"\\ML_FlexStar_Simulator.cfg.bak\");\r\n// }} \"\"\r\n// {{ 31 1 0 \"7caf499f_870f_434a_b799b651abbb2f44\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 32 1 0 \"67a3fd8a_06ad_4c06_a42f65010c538a32\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncfgFile = StrConcat2(cfgPath, mlStarCfg);\r\n// }} \"\"\r\n// {{{ 33 1 0 \"81d8ab0c_d8ba_4bde_96df906c28b986fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncfgFileBak = StrConcat2(cfgPath, mlStarCfgBak);\r\n// }} \"\"\r\n// {{{ 34 1 0 \"7421465a_b883_4718_a12f96655ebbc58c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbackupExists = FilSearchPath(cfgFileBak);\r\n// }} \"\"\r\n// {{ 35 1 0 \"b8f0b55b_ba12_4134_97347f0f68a75d4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (backupExists == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 36 1 0 \"78b27ef2_8a87_4d0f_8a64ea25197d156a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 37 1 0 \"ab72e150_d57f_4345_9c090716bdbb7f1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFilCopyFileEx(cfgFile, cfgFileBak);\r\n// }} \"\"\r\n// {{ 38 1 0 \"b8f0b55b_ba12_4134_97347f0f68a75d4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 39 1 0 \"f11e8bd1_ba63_4932_80d7f856c94ccaae\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 40 1 0 \"ae19ef5d_4b15_4fec_81d2d0643f7d8d3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 41 1 0 \"5106408e_9d01_49b4_af15c55fc7353855\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrCommand = StrConcat8(binPath, Translate(\"\\HxCfgFilConverter.exe /t \\\"\"), cfgPath, mlStarCfg, Translate(\"\\\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 42 1 0 \"710a13d5_53ff_4f49_b3e2b0dc2e519799\" \"{B31F3545-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nif( 0 == Shell(strCommand, hslShow, hslSynchronous) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1238499072, MECC::IDS::stepNameShell, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 43 1 0 \"ae19ef5d_4b15_4fec_81d2d0643f7d8d3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 44 1 0 \"4457cc8b_3ba4_4a70_a7397e6a18d4f25f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 45 1 0 \"dac14d1c_ee34_4aaa_b79faac33613fd7d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrNew = Translate(\"\");\r\n// }} \"\"\r\n// {{ 46 1 0 \"33b6afca_9641_4691_99a8f1e4274a80f2\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(1, str, hslString);\r\nfile1.SetDelimiter(hslAsciiText);\r\nif( 0 == file1.Open(cfgFile, hslRead) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, cfgFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 47 1 0 \"7bd75906_dd88_4e21_95b4191761ce1b54\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (\r\n   (file1.Eof() == 0)\r\n)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 48 1 0 \"6a497735_0a14_487f_b33b60b0c88c6c92\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 49 1 0 \"18caf040_4216_46e4_80eb43b26a65105c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFound = StrFind(str, Translate(\"reload\"));\r\n// }} \"\"\r\n// {{ 50 1 0 \"800c4e6d_2788_45fc_b6f4dd9f72f0f89e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (strFound >= 0)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 51 1 0 \"d931ff6d_2953_46e5_8a3b5621483d45f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"\"), str);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 52 1 0 \"8b6ee905_42b3_4807_ae9ce68873284848\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str, Translate(\"0\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 53 1 0 \"800c4e6d_2788_45fc_b6f4dd9f72f0f89e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 54 1 0 \"47d5312c_1dde_4bb7_802c8006f4fdf010\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrNew = StrConcat2(strNew, str);\r\n// }} \"\"\r\n// {{ 55 1 0 \"7bd75906_dd88_4e21_95b4191761ce1b54\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 56 1 0 \"bf4013bc_5ee3_42fc_b5acd8dea64ec744\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\n// {{ 57 1 0 \"e06f23f0_b9e3_483c_8d44858f9fdf3638\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(1, strNew, hslString);\r\nfile1.SetDelimiter(hslAsciiText);\r\nif( 0 == file1.Open(cfgFile, hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, cfgFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 58 1 0 \"55efb1b7_4f2d_446c_9660192d3301bc77\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 59 1 0 \"19867ab6_5196_4a35_8104e8164aae6ebf\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\n// {{ 60 1 0 \"4457cc8b_3ba4_4a70_a7397e6a18d4f25f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"STEP1_PrepareRegistryAndCfgFile\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP4_Optional_SwitchChecksum_ON\" \"Begin\"\r\nfunction STEP4_Optional_SwitchChecksum_ON(  ) void {\r\n// }} \"\"\r\nprivate variable strCommand;\r\nprivate variable libPath;\r\nprivate file file1;\r\nprivate variable strFile;\r\n// {{ 5 \"STEP4_Optional_SwitchChecksum_ON\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 530 1 0 \"042ead97_58de_4476_8889d389c706e1bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 531 1 0 \"8ac1aeb8_7458_4829_8b1b4407a2b7a7c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlibPath = FilGetLibraryPath();\r\n// }} \"\"\r\n// {{ 532 1 0 \"042ead97_58de_4476_8889d389c706e1bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 533 1 0 \"f683c7dd_59a0_4219_b5267d00a7300835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 534 1 0 \"3c07b10e_dda6_45dc_99a13d30ad63b700\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFile = StrConcat2(libPath, Translate(\"\\ErrorSimulator\\SwitchChecksum_ON.bat\"));\r\n// }} \"\"\r\n// {{{ 535 1 0 \"91e48d90_119f_4d73_88564fa54b27e227\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrCommand = StrConcat4(Translate(\"\\\"\"), libPath, Translate(\"\\ErrorSimulator\\PhoenixChecksum_1.reg\\\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 536 1 0 \"b6a77aa1_a95d_422c_a716c023402b4361\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(1, strCommand, hslString);\r\nfile1.SetDelimiter(hslAsciiText);\r\nif( 0 == file1.Open(strFile, hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, strFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 537 1 0 \"cd80ae8c_8608_468e_be4fd87c19271e2e\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"31815309_5dc9_4cb5_8e49d4241270c0bf\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\n// {{ 539 1 0 \"add22bc3_2d69_49da_8f962321a0b1bd9d\" \"{B31F3545-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nif( 0 == Shell(strFile, hslShow, hslSynchronous) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1238499072, MECC::IDS::stepNameShell, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 540 1 0 \"f683c7dd_59a0_4219_b5267d00a7300835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"STEP4_Optional_SwitchChecksum_ON\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2a_SimulateError_Channels\" \"Begin\"\r\nfunction STEP2a_SimulateError_Channels( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable ErrStr_KeyName;\r\nprivate variable ErrStr_NewValue;\r\nprivate variable STAR_type;\r\nprivate variable array_channels[];\r\nprivate variable NumOfChnWithError;\r\nprivate variable loopCounter1;\r\nprivate variable chn_index;\r\n// {{ 5 \"STEP2a_SimulateError_Channels\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 62 1 0 \"ed165ca4_2672_412d_b8114f04680755d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"\");\r\n// }} \"\"\r\n// {{ 63 1 0 \"338ede05_c6e1_4ef1_9ddbf5c211b49593\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_NewValue = Translate(\"er99/00 \");\r\n// }} \"\"\r\n// {{{ 64 1 0 \"9669b5b9_3a8d_4efe_b6c93c1b1d8ca0e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ChannelNumber, Translate(\",\"), array_channels, 0);\r\n// }} \"\"\r\n// {{ 65 1 0 \"7b479989_ccc8_4ec0_af83180e57bec1ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 66 1 0 \"fcc8b369_fc53_402d_a0fa1378ed01b609\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 1)\r\n{\r\n// }} \"\"\r\n// {{ 67 1 0 \"5637a6af_1c11_4961_a4a081c10a6ebb05\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 68 1 0 \"4b01788d_b6dc_449a_be1ce8d7dae5f676\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0AS\");\r\n// }} \"\"\r\n// {{ 69 1 0 \"fcc8b369_fc53_402d_a0fa1378ed01b609\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 70 1 0 \"fa2ee0c0_5981_4dc5_9875b6b3599a4212\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 2)\r\n{\r\n// }} \"\"\r\n// {{ 71 1 0 \"e4316954_b19f_4b1f_a9bc38e505226ced\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 72 1 0 \"790b3078_68eb_469e_b744f0e4bd38d8b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0DS\");\r\n// }} \"\"\r\n// {{ 73 1 0 \"fa2ee0c0_5981_4dc5_9875b6b3599a4212\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 74 1 0 \"822da6c1_3335_4856_904aabe562296dd7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 3)\r\n{\r\n// }} \"\"\r\n// {{ 75 1 0 \"6c75c515_2194_4d59_bdbc8686f4cc3373\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"12e867e4_3af1_4008_830ff18a7322d11d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0TP\");\r\n// }} \"\"\r\n// {{ 77 1 0 \"822da6c1_3335_4856_904aabe562296dd7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 78 1 0 \"8d076a01_cb6a_4784_a2e451c806e5c301\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 4)\r\n{\r\n// }} \"\"\r\n// {{ 79 1 0 \"296ac91f_8866_492b_89831cafc6d53ce5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 80 1 0 \"047dc326_16b4_443d_a575b710312190ab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0TR\");\r\n// }} \"\"\r\n// {{ 81 1 0 \"8d076a01_cb6a_4784_a2e451c806e5c301\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 82 1 0 \"7b479989_ccc8_4ec0_af83180e57bec1ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 83 1 0 \"54f84df7_7a9b_4e13_a978f60e16f77433\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 84 1 0 \"11890cda_b994_4a62_93b88299bb0ac15c\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nNumOfChnWithError=array_channels.GetSize();\r\n// }} \"\"\r\n// {{ 85 1 0 \"a6558573_3cac_4850_968074473799a884\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < NumOfChnWithError;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"3297de1c_3515_424a_8faae8c326d18526\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nchn_index=array_channels.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{ 87 1 0 \"866a95d5_5649_4baf_bf4d54bbdaa44a03\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 1)\r\n{\r\n// }} \"\"\r\n// {{ 88 1 0 \"9e3dc33e_8427_48ea_9f800590a91e00da\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 89 1 0 \"2d43d9bd_48eb_4258_bad7b4f00737e8f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"06/70\"));\r\n// }} \"\"\r\n// {{ 90 1 0 \"866a95d5_5649_4baf_bf4d54bbdaa44a03\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 91 1 0 \"2301ff80_0baa_4f82_b468d84f8d80e12c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 2)\r\n{\r\n// }} \"\"\r\n// {{ 92 1 0 \"e2615878_330b_4226_ba5ae595605858d3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 93 1 0 \"6f2df4ba_6931_4a59_95b763c4ca610d69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"06/71\"));\r\n// }} \"\"\r\n// {{ 94 1 0 \"2301ff80_0baa_4f82_b468d84f8d80e12c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 95 1 0 \"9a7ddf62_f5a4_4e57_b9fb8b6f165ef0a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 3)\r\n{\r\n// }} \"\"\r\n// {{ 96 1 0 \"40f84565_e516_4077_aa9c1ac81ee26be5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 97 1 0 \"9b5ca2e3_e3b1_492b_a878aad3e451b682\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"06/73\"));\r\n// }} \"\"\r\n// {{ 98 1 0 \"9a7ddf62_f5a4_4e57_b9fb8b6f165ef0a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 99 1 0 \"a8849d68_1be3_449d_baeea2648d4e4e90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 4)\r\n{\r\n// }} \"\"\r\n// {{ 100 1 0 \"04dfe745_8c2d_4445_86aecf061fa6a170\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"16010ba1_f155_4d62_a704790799e01ddb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"04/81\"));\r\n// }} \"\"\r\n// {{ 102 1 0 \"a8849d68_1be3_449d_baeea2648d4e4e90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 103 1 0 \"7a2e4555_ddf2_4c19_be976ddba7cddacd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 5)\r\n{\r\n// }} \"\"\r\n// {{ 104 1 0 \"b42a28f3_d6e3_4271_8231768fe73fdcde\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 105 1 0 \"42733e93_8ca6_45ad_99b170470f9bb89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"06/80\"));\r\n// }} \"\"\r\n// {{ 106 1 0 \"7a2e4555_ddf2_4c19_be976ddba7cddacd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 107 1 0 \"c5e8e0b8_20be_4243_bc9ac9ac9ae110a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 6)\r\n{\r\n// }} \"\"\r\n// {{ 108 1 0 \"7c0e655c_b886_46bf_b44d9934fffd65fe\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 109 1 0 \"286db30e_d313_461b_b3f1115474bdb587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"07/00\"));\r\n// }} \"\"\r\n// {{ 110 1 0 \"c5e8e0b8_20be_4243_bc9ac9ac9ae110a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 111 1 0 \"483ea706_7651_4bbf_85ce6c0c73f22a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 7)\r\n{\r\n// }} \"\"\r\n// {{ 112 1 0 \"71de95fb_f43b_4d18_942ae56ad0009187\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 113 1 0 \"bf5f6025_1c29_4776_bebd12f59876a7c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"08/00\"));\r\n// }} \"\"\r\n// {{ 114 1 0 \"483ea706_7651_4bbf_85ce6c0c73f22a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 115 1 0 \"43eb81af_7b07_4d38_ad7b4b0f3f98fa5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 8)\r\n{\r\n// }} \"\"\r\n// {{ 116 1 0 \"4808cbf1_2700_4848_8915be75c62a9c37\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 117 1 0 \"dcbb670e_fefa_47c9_96ffc18b635663a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"08/78\"));\r\n// }} \"\"\r\n// {{ 118 1 0 \"43eb81af_7b07_4d38_ad7b4b0f3f98fa5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 119 1 0 \"1b2230c9_db96_46a1_8afef6c8f1856b89\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 9)\r\n{\r\n// }} \"\"\r\n// {{ 120 1 0 \"b4d676ba_8a97_4aeb_af74858a4e3bfa47\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 121 1 0 \"d044aaca_0883_442e_808e26a120f36209\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"01/00\"));\r\n// }} \"\"\r\n// {{ 122 1 0 \"1b2230c9_db96_46a1_8afef6c8f1856b89\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 123 1 0 \"4a13748c_3387_4470_9d154df0e85314ef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 10)\r\n{\r\n// }} \"\"\r\n// {{ 124 1 0 \"52cd3e84_dd8a_4e42_81bb665f0c7bdfe1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 125 1 0 \"0a43d8c9_4c63_4c87_b2470949cd242ec0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"02/00\"));\r\n// }} \"\"\r\n// {{ 126 1 0 \"4a13748c_3387_4470_9d154df0e85314ef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 127 1 0 \"258858ec_f34a_4101_a21176b8895afe64\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 11)\r\n{\r\n// }} \"\"\r\n// {{ 128 1 0 \"7fdd0dd3_dc1d_4b60_8bdeb00255814f71\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 129 1 0 \"6e1a86fc_1288_4ff5_b988ed4c8071f6a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"03/00\"));\r\n// }} \"\"\r\n// {{ 130 1 0 \"258858ec_f34a_4101_a21176b8895afe64\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 131 1 0 \"07aaaa47_9437_4c3d_8025ce2058666497\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 12)\r\n{\r\n// }} \"\"\r\n// {{ 132 1 0 \"d69dd481_8c6c_4dc4_b369d9cc044c36a1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 133 1 0 \"3939340a_03bd_43fe_ab837c1d773e821b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"P\"), chn_index, Translate(\"10/00\"));\r\n// }} \"\"\r\n// {{ 134 1 0 \"07aaaa47_9437_4c3d_8025ce2058666497\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 135 1 0 \"a6558573_3cac_4850_968074473799a884\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 136 1 0 \"54f84df7_7a9b_4e13_a978f60e16f77433\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 137 1 0 \"119cdbfd_31df_4f42_80aa16bf8cf7b83d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"03fb6afc_a5f4_4f85_99ec2157b00bbb5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type);\r\n// }} \"\"\r\n// {{{ 5 \"STEP2a_SimulateError_Channels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2b_SimulateError_COREGripper\" \"Begin\"\r\nfunction STEP2b_SimulateError_COREGripper( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable ErrStr_KeyName;\r\nprivate variable ErrStr_NewValue;\r\nprivate variable STAR_type;\r\n// {{ 5 \"STEP2b_SimulateError_COREGripper\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 140 1 0 \"0519e2af_40e0_4d11_9bf6b0fb7d1a1488\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"\");\r\n// }} \"\"\r\n// {{ 141 1 0 \"f8159c2c_fc98_4614_8421d5378619b1da\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_NewValue = Translate(\"er99/00 P\");\r\n// }} \"\"\r\n// {{ 142 1 0 \"4db0b82d_6fe0_4d53_8312d3bee0689303\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"3f374ce3_84c0_42c4_971d154bdc553643\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 1)\r\n{\r\n// }} \"\"\r\n// {{ 144 1 0 \"c057e16d_8e91_47e7_8cf23c0ddf753ae7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 145 1 0 \"aeb667c0_9306_49c1_b53dc4538b6d48ec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0ZT\");\r\n// }} \"\"\r\n// {{ 146 1 0 \"3f374ce3_84c0_42c4_971d154bdc553643\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 147 1 0 \"4b1787e2_59fd_4b47_ba5d7ba51909e5cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 2)\r\n{\r\n// }} \"\"\r\n// {{ 148 1 0 \"09d92aae_cf4f_434c_96a14767213cc118\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 149 1 0 \"d5339ee1_95d7_4a78_9c3e65826deed583\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0ZP\");\r\n// }} \"\"\r\n// {{ 150 1 0 \"4b1787e2_59fd_4b47_ba5d7ba51909e5cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 151 1 0 \"a9e6b197_51eb_43d9_b7fb3f4a4073f15a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 3)\r\n{\r\n// }} \"\"\r\n// {{ 152 1 0 \"1ae7b441_4aec_41a2_98dd30e7c9c6c47a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 153 1 0 \"28d4e2ed_b307_42a0_8eadf5920dd03d29\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0ZR\");\r\n// }} \"\"\r\n// {{ 154 1 0 \"a9e6b197_51eb_43d9_b7fb3f4a4073f15a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 155 1 0 \"9a567569_f10e_421a_9d4a15b82f5464a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 4)\r\n{\r\n// }} \"\"\r\n// {{ 156 1 0 \"c24a7e82_6d52_4977_a30eaee93119c7a4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 157 1 0 \"7bb6714a_8494_42e1_9f3602f00c33cdb3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0ZS\");\r\n// }} \"\"\r\n// {{ 158 1 0 \"9a567569_f10e_421a_9d4a15b82f5464a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 159 1 0 \"4db0b82d_6fe0_4d53_8312d3bee0689303\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 160 1 0 \"8f37d288_48b0_4d4c_ae712b49ff5447ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 161 1 0 \"3524df88_c3a9_4703_913d4f2cb3e1186e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 1)\r\n{\r\n// }} \"\"\r\n// {{ 162 1 0 \"fd1151aa_7382_4092_b85b0f796a8c345f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 163 1 0 \"c4c13347_d110_4e4e_a8273a09e1262b24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"08/75\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 164 1 0 \"3524df88_c3a9_4703_913d4f2cb3e1186e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 165 1 0 \"7f0fd5c5_7bd6_4dd3_9a32c470d5d8aa74\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 2)\r\n{\r\n// }} \"\"\r\n// {{ 166 1 0 \"0660ae9a_f88f_416c_af5315931e58ed4f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 167 1 0 \"aac35c60_eece_420d_af33e4c2e9a0d58d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"02/62\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 168 1 0 \"7f0fd5c5_7bd6_4dd3_9a32c470d5d8aa74\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 169 1 0 \"db7659eb_09aa_47b9_b507fd54af99639f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 3)\r\n{\r\n// }} \"\"\r\n// {{ 170 1 0 \"1c83d871_308c_46a0_b4a4b0c96643212f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 171 1 0 \"f4dccd6c_6e1c_4f9c_b2915e93021baca8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"02/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 172 1 0 \"db7659eb_09aa_47b9_b507fd54af99639f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 173 1 0 \"8f37d288_48b0_4d4c_ae712b49ff5447ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 174 1 0 \"321fb1d8_098b_47b7_bd4b756a8f8ed7d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"0338e78e_ec63_4d9d_86db70ca675b83d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type);\r\n// }} \"\"\r\n// {{{ 5 \"STEP2b_SimulateError_COREGripper\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2c_SimulateError_iSWAP\" \"Begin\"\r\nfunction STEP2c_SimulateError_iSWAP( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable ErrStr_KeyName;\r\nprivate variable ErrStr_NewValue;\r\nprivate variable STAR_type;\r\n// {{ 5 \"STEP2c_SimulateError_iSWAP\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 177 1 0 \"d1de1411_1477_4cc2_83bfb426c16a405b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"\");\r\n// }} \"\"\r\n// {{ 178 1 0 \"f95a74d1_6f0b_4a04_accb85ce805a3acd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_NewValue = Translate(\"er99/00 R0\");\r\n// }} \"\"\r\n// {{ 179 1 0 \"d71f2a20_5dfe_4d36_8bb1db5def384997\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 180 1 0 \"f6d9aaec_2fbc_469f_964945d5f3f124cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 1)\r\n{\r\n// }} \"\"\r\n// {{ 181 1 0 \"3433bc51_8fe3_4ed1_a424b4b7f84b60ca\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 182 1 0 \"a496a253_9f79_4b03_a7b6f196de019557\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0PP\");\r\n// }} \"\"\r\n// {{ 183 1 0 \"f6d9aaec_2fbc_469f_964945d5f3f124cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 184 1 0 \"fc177357_dc11_4cf2_bda4a70026779226\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 2)\r\n{\r\n// }} \"\"\r\n// {{ 185 1 0 \"d7ce088b_db00_4b4c_9126aeb0159c0e2f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 186 1 0 \"235619ea_98cf_4ae2_96138399c3b459a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0PR\");\r\n// }} \"\"\r\n// {{ 187 1 0 \"fc177357_dc11_4cf2_bda4a70026779226\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 188 1 0 \"d71f2a20_5dfe_4d36_8bb1db5def384997\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 189 1 0 \"0b5a7590_aeb4_466e_9caf6bf6acac12eb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 190 1 0 \"b9cf42a0_e7ec_43f9_baac4180bb8eb3ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 1)\r\n{\r\n// }} \"\"\r\n// {{ 191 1 0 \"9b4e3252_8ac6_44c8_ab9414cb31076d3f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 192 1 0 \"f9300437_1a52_413a_91e7f1e84e2832ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"\"), Translate(\"21/94\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 193 1 0 \"b9cf42a0_e7ec_43f9_baac4180bb8eb3ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 194 1 0 \"2bbe7c82_3c3f_4e12_99afe6a9df115090\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 2)\r\n{\r\n// }} \"\"\r\n// {{ 195 1 0 \"1cec7b9e_0484_4404_b05fe103a9ceff5f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 196 1 0 \"59b56898_9faf_4de9_8c30e7fe1bc6fb4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"\"), Translate(\"02/62\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 197 1 0 \"2bbe7c82_3c3f_4e12_99afe6a9df115090\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 198 1 0 \"6f8951c1_ab9c_4d71_9e6fb768d553fdb9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 3)\r\n{\r\n// }} \"\"\r\n// {{ 199 1 0 \"0ae280c1_8950_40de_af3636fffbbb1a54\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 200 1 0 \"bf349d2e_e1a2_4bb8_a05a82cd43eeeec9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"\"), Translate(\"02/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 201 1 0 \"6f8951c1_ab9c_4d71_9e6fb768d553fdb9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 202 1 0 \"0f54ef9d_9486_4156_877a1cf37b6a02ec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 4)\r\n{\r\n// }} \"\"\r\n// {{ 203 1 0 \"5a8c137c_4375_404d_81b305cc59ffb976\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 204 1 0 \"c5da8b3e_5029_4d65_abb91579b894665e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(\"\"), Translate(\"23/96\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 205 1 0 \"0f54ef9d_9486_4156_877a1cf37b6a02ec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 206 1 0 \"0b5a7590_aeb4_466e_9caf6bf6acac12eb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 207 1 0 \"1faec585_a4d8_425c_925ec8ba7beab8f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"2dd477d5_ff94_4d54_9ddce5e88eaa4cdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type);\r\n// }} \"\"\r\n// {{{ 5 \"STEP2c_SimulateError_iSWAP\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2d_SimulateError_96Head\" \"Begin\"\r\nfunction STEP2d_SimulateError_96Head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable ErrStr_KeyName;\r\nprivate variable ErrStr_NewValue;\r\nprivate variable ChannelNumber;\r\nprivate variable STAR_type;\r\n// {{ 5 \"STEP2d_SimulateError_96Head\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 210 1 0 \"9b0af16f_edaa_4b1e_ad36090b615eb4a3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"\");\r\n// }} \"\"\r\n// {{ 211 1 0 \"4ad5084c_9336_4543_92623cf16bef115f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"\");\r\n// }} \"\"\r\n// {{ 212 1 0 \"9fa88820_77e7_417e_89f2d592307038c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_NewValue = Translate(\"er99/00 \");\r\n// }} \"\"\r\n// {{ 213 1 0 \"ced8eb60_8e5f_4800_82a87fdc3adaa7a1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nChannelNumber = Translate(\"H0\");\r\n// }} \"\"\r\n// {{ 214 1 0 \"3e3fdd92_15f8_46c0_80b52708979c39b6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 215 1 0 \"1cda0e82_e747_4aa3_9e8a51c0079e6d39\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 1)\r\n{\r\n// }} \"\"\r\n// {{ 216 1 0 \"106d7b56_5558_4f48_97a27c410cb13c79\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 217 1 0 \"b540e46e_5e81_46d6_bd810616024ad8f0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0EA\");\r\n// }} \"\"\r\n// {{ 218 1 0 \"1cda0e82_e747_4aa3_9e8a51c0079e6d39\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 219 1 0 \"c967c224_47db_4837_a68ab938f6b74a41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 2)\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"5481b069_cf6b_46d1_a17dfbfce6d09d9f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 221 1 0 \"44cb3a26_405f_45e0_a815e0c0ce770943\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0ED\");\r\n// }} \"\"\r\n// {{ 222 1 0 \"c967c224_47db_4837_a68ab938f6b74a41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 223 1 0 \"a1d53f7e_47d3_4139_b36b3e31e36a45c0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 3)\r\n{\r\n// }} \"\"\r\n// {{ 224 1 0 \"ce38fb45_9c30_4901_aec57f6b1b98cc94\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 225 1 0 \"2e4efc85_bd37_4308_9555d611320b76d7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0EP\");\r\n// }} \"\"\r\n// {{ 226 1 0 \"a1d53f7e_47d3_4139_b36b3e31e36a45c0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 227 1 0 \"03e43542_6d8f_4a42_84699d3fa8d12714\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 4)\r\n{\r\n// }} \"\"\r\n// {{ 228 1 0 \"a4e7806c_a991_4911_a29650ca1acde72b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 229 1 0 \"6bea1668_afd0_42f0_a2a4373e86974f48\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0ER\");\r\n// }} \"\"\r\n// {{ 230 1 0 \"03e43542_6d8f_4a42_84699d3fa8d12714\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 231 1 0 \"cd033a75_ca51_4d9d_a571c4a11e4fff38\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 5)\r\n{\r\n// }} \"\"\r\n// {{ 232 1 0 \"54dd9be1_3010_4d4c_891ad99814f521f2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 233 1 0 \"e9615c57_dcaa_4fd4_b75e6d25e435ab04\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0EG\");\r\n// }} \"\"\r\n// {{ 234 1 0 \"cd033a75_ca51_4d9d_a571c4a11e4fff38\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 235 1 0 \"3e3fdd92_15f8_46c0_80b52708979c39b6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 236 1 0 \"0bbe8abc_87b9_4826_b7a1ae070956f9da\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 237 1 0 \"01225656_54ca_463c_8f846cb0837c1143\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 5)\r\n{\r\n// }} \"\"\r\n// {{ 238 1 0 \"fae84601_1787_45cd_a93a8fa27ac81ec7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 239 1 0 \"42ca8bca_6b07_4247_8480fc95d2a24279\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"18/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 240 1 0 \"01225656_54ca_463c_8f846cb0837c1143\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 241 1 0 \"f5c381da_c6b8_4672_984b88755f65b747\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 1)\r\n{\r\n// }} \"\"\r\n// {{ 242 1 0 \"2fc6ef1d_acf2_4b94_9d5fc3f06f5da7e4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 243 1 0 \"e3cd1823_e6e5_43af_97472bb6154eb8b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"06/70\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 244 1 0 \"f5c381da_c6b8_4672_984b88755f65b747\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 245 1 0 \"38c8c0c1_a64e_416c_b3b84aa364df9d4f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 2)\r\n{\r\n// }} \"\"\r\n// {{ 246 1 0 \"ed55518b_cfe5_45dd_8f91a12bdbf896a4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 247 1 0 \"0b255114_2443_4a2f_a2635ae781affa58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"06/71\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 248 1 0 \"38c8c0c1_a64e_416c_b3b84aa364df9d4f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 249 1 0 \"52e39ccf_5522_4441_afa2dc0d4cdfb1b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 6)\r\n{\r\n// }} \"\"\r\n// {{ 250 1 0 \"25c4a154_2b5a_4cdb_9a2e2a34384d84de\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 251 1 0 \"b4c29c8f_537d_46f0_8a4e47476f33f709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"07/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 252 1 0 \"52e39ccf_5522_4441_afa2dc0d4cdfb1b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"50ee51b0_e30c_4211_9a59dfbc59d5937e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 7)\r\n{\r\n// }} \"\"\r\n// {{ 254 1 0 \"5fe7d8df_264f_4370_88be65d835bd89f3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 255 1 0 \"f9b866ab_e624_4297_a0db6fbaf43269c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"08/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 256 1 0 \"50ee51b0_e30c_4211_9a59dfbc59d5937e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 257 1 0 \"b2233652_7ece_44a0_8284de8314a66312\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 8)\r\n{\r\n// }} \"\"\r\n// {{ 258 1 0 \"79b42a93_a52f_4bde_82c4ae5005160bb0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 259 1 0 \"56b5617c_838b_4fb1_b803c2a4e5b7cbb4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"08/78\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 260 1 0 \"b2233652_7ece_44a0_8284de8314a66312\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 261 1 0 \"984549f6_2b56_4ff7_9e39038ba2b4a16c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 9)\r\n{\r\n// }} \"\"\r\n// {{ 262 1 0 \"091e7517_0466_442f_83e006f041b23ce7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 263 1 0 \"aabb26b5_aaea_4c32_bb568ded5079cdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"01/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 264 1 0 \"984549f6_2b56_4ff7_9e39038ba2b4a16c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 265 1 0 \"f11da1cf_4c34_4ef0_92aad9f81e2f7cdd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 10)\r\n{\r\n// }} \"\"\r\n// {{ 266 1 0 \"397b78a3_282d_48b7_88a140b62eed0ab0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 267 1 0 \"f351cd0d_f4bf_4e9a_81d04addd0490dac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"02/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 268 1 0 \"f11da1cf_4c34_4ef0_92aad9f81e2f7cdd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 269 1 0 \"07932bbb_3ede_4ce2_9f5f951777c57f8e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 11)\r\n{\r\n// }} \"\"\r\n// {{ 270 1 0 \"3c0030bd_9ec9_4319_a4909f6fe0b0d5ca\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 271 1 0 \"455b4f98_d3b5_433d_a732eaa005ea9c7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"03/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 272 1 0 \"07932bbb_3ede_4ce2_9f5f951777c57f8e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 273 1 0 \"aa078de1_4809_4884_8f16cc356ee790b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 12)\r\n{\r\n// }} \"\"\r\n// {{ 274 1 0 \"bf6d373f_70d2_4992_afaf32e4a692bb97\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 275 1 0 \"e6dda7da_8e09_412d_b27123432c46c35c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"10/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 276 1 0 \"aa078de1_4809_4884_8f16cc356ee790b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 277 1 0 \"0bbe8abc_87b9_4826_b7a1ae070956f9da\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 278 1 0 \"74bc9bed_a7a2_4c99_afb6cc83bc3fa36b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{{ 279 1 0 \"4a84073b_d1ac_4daa_853c88c4afe4041b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type);\r\n// }} \"\"\r\n// {{{ 5 \"STEP2d_SimulateError_96Head\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2e_SimulateError_384head\" \"Begin\"\r\nfunction STEP2e_SimulateError_384head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable ChannelNumber;\r\nprivate variable ErrStr_KeyName;\r\nprivate variable ErrStr_NewValue;\r\nprivate variable STAR_type;\r\n// {{ 5 \"STEP2e_SimulateError_384head\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 281 1 0 \"b649ba17_f472_4f24_868ba474f019f5a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"\");\r\n// }} \"\"\r\n// {{ 282 1 0 \"725f324f_22ef_4aa0_a72b4662a209704b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"\");\r\n// }} \"\"\r\n// {{ 283 1 0 \"605e7b22_3257_4df2_a08a14007142fed8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_NewValue = Translate(\"er99/00 \");\r\n// }} \"\"\r\n// {{ 284 1 0 \"419eadf0_cfa7_4331_990f08dea711560b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nChannelNumber = Translate(\"D0\");\r\n// }} \"\"\r\n// {{ 285 1 0 \"dce5e9d6_aade_4728_b4686bb6579a0e81\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 286 1 0 \"cb1f3530_02e7_44d6_8c7d3b636fe21cb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 1)\r\n{\r\n// }} \"\"\r\n// {{ 287 1 0 \"a410f4ff_7e3f_4eb0_8c59296cf097aca7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"03713df9_71af_4266_ab98cc79de66074b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0JA\");\r\n// }} \"\"\r\n// {{ 289 1 0 \"cb1f3530_02e7_44d6_8c7d3b636fe21cb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 290 1 0 \"fc1ba402_94ae_4458_9501d201e224427f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 2)\r\n{\r\n// }} \"\"\r\n// {{ 291 1 0 \"970babea_89f0_4894_ac3069329726f320\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 292 1 0 \"7f8cf4f7_07a6_42fe_90019c934211a6c6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0JD\");\r\n// }} \"\"\r\n// {{ 293 1 0 \"fc1ba402_94ae_4458_9501d201e224427f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"7797e6c5_738b_4eaa_9815556da7934343\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 3)\r\n{\r\n// }} \"\"\r\n// {{ 295 1 0 \"d0492fa2_ecae_449d_bd32b37fdf84e2f3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"f0e3c632_34ce_42af_acb0993ff2e7ade6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0JC\");\r\n// }} \"\"\r\n// {{ 297 1 0 \"7797e6c5_738b_4eaa_9815556da7934343\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 298 1 0 \"03ef15c5_dc83_449b_97a228253e8a00e3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 4)\r\n{\r\n// }} \"\"\r\n// {{ 299 1 0 \"c39ddfbf_0251_4c7c_893fb5fa05be1eda\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 300 1 0 \"6b0c86aa_f082_4b0e_93d7706bb96f5685\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0JB\");\r\n// }} \"\"\r\n// {{ 301 1 0 \"03ef15c5_dc83_449b_97a228253e8a00e3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 302 1 0 \"f1fea7a7_2f19_42e9_b852a2da944cbfe3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 5)\r\n{\r\n// }} \"\"\r\n// {{ 303 1 0 \"9687a967_737f_4e7d_809b2285d508a1ca\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 304 1 0 \"1fea4bdb_dccd_4899_872f6a8282ffd273\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nErrStr_KeyName = Translate(\"C0JG\");\r\n// }} \"\"\r\n// {{ 305 1 0 \"f1fea7a7_2f19_42e9_b852a2da944cbfe3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 306 1 0 \"dce5e9d6_aade_4728_b4686bb6579a0e81\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 307 1 0 \"fea10ee9_c32e_4a03_99eedfaf6046322a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 308 1 0 \"c73af3e9_e82c_413c_922a4ab332b4c57c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 5)\r\n{\r\n// }} \"\"\r\n// {{ 309 1 0 \"10c5585a_0654_40a3_9699923918f36da2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 310 1 0 \"ddd9f7fd_30af_488a_afe37a0ca5485df2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"18/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 311 1 0 \"c73af3e9_e82c_413c_922a4ab332b4c57c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 312 1 0 \"130e03ba_4b87_418a_b3915567e52a1ce0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 1)\r\n{\r\n// }} \"\"\r\n// {{ 313 1 0 \"876c978a_9e78_462f_9f91e25201f8fedd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 314 1 0 \"3277f127_1720_46c9_88685fd5378f7528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"06/70\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 315 1 0 \"130e03ba_4b87_418a_b3915567e52a1ce0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 316 1 0 \"b3e3ba3c_5621_4584_a5ec3e8965b07d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 2)\r\n{\r\n// }} \"\"\r\n// {{ 317 1 0 \"5b9f12d9_a32f_4604_bfca0fcaf57385ed\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 318 1 0 \"4b6d462b_ad85_428c_a0021fe186864a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"06/71\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 319 1 0 \"b3e3ba3c_5621_4584_a5ec3e8965b07d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 320 1 0 \"a19fac4b_c5a0_4623_998c08073f36373f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 6)\r\n{\r\n// }} \"\"\r\n// {{ 321 1 0 \"6feb3967_cba6_4ef3_b9d476ab7be13264\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 322 1 0 \"0ab7c0d3_95c7_46b0_858d52a4df322fa8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"07/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 323 1 0 \"a19fac4b_c5a0_4623_998c08073f36373f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 324 1 0 \"10a1158c_c035_492f_bd08ee24cc3cc3b8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 7)\r\n{\r\n// }} \"\"\r\n// {{ 325 1 0 \"b8a9e537_551f_429d_a237ea27b4a337db\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 326 1 0 \"a74a1076_5143_45d3_a2db04088a6bdd24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"08/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 327 1 0 \"10a1158c_c035_492f_bd08ee24cc3cc3b8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 328 1 0 \"d8fec33d_0bf8_4536_92e07208b6ea0008\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 8)\r\n{\r\n// }} \"\"\r\n// {{ 329 1 0 \"a48db2b5_e057_4517_965d503b10967f0c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 330 1 0 \"dc1b8447_f770_4a4d_8611f259d40e6ba0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"08/78\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 331 1 0 \"d8fec33d_0bf8_4536_92e07208b6ea0008\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 332 1 0 \"c49dbe3a_6747_40c7_8489a6732f3f5674\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 9)\r\n{\r\n// }} \"\"\r\n// {{ 333 1 0 \"68170e0f_ce05_47e0_ad6b5e8c657c88e7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 334 1 0 \"017078c4_8d06_4cdb_b38441d1f3f1c52f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"01/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 335 1 0 \"c49dbe3a_6747_40c7_8489a6732f3f5674\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 336 1 0 \"1f09f8f2_41a2_4ba7_aefc70ad8379ed4a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 10)\r\n{\r\n// }} \"\"\r\n// {{ 337 1 0 \"9f85e8e8_5b44_4758_b9ab31b193c3e87a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 338 1 0 \"a5c7ba99_3673_45f8_97d327118fd01320\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"02/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 339 1 0 \"1f09f8f2_41a2_4ba7_aefc70ad8379ed4a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 340 1 0 \"440f3520_688a_4c6f_995539432035382e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 11)\r\n{\r\n// }} \"\"\r\n// {{ 341 1 0 \"6f744c52_b4f4_4028_83923d9157889a33\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 342 1 0 \"17800683_71ab_46cc_b73e459d34a97fea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"03/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 343 1 0 \"440f3520_688a_4c6f_995539432035382e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 344 1 0 \"96fab4eb_bb8d_40d3_b709f872d49e38fa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ErrorToSimulate == 12)\r\n{\r\n// }} \"\"\r\n// {{ 345 1 0 \"15466503_d204_4822_a828a24ffc3ec2e0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 346 1 0 \"8f0fd55e_fed2_4265_af46a323fb296a43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate(\"10/00\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 347 1 0 \"96fab4eb_bb8d_40d3_b709f872d49e38fa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 348 1 0 \"fea10ee9_c32e_4a03_99eedfaf6046322a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 349 1 0 \"44326fcc_9bdc_4cbb_a6da6e3fd0d3a1c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"ab789708_bac7_4b44_956c92eb6797a342\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type);\r\n// }} \"\"\r\n// {{{ 5 \"STEP2e_SimulateError_384head\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2f_SimulateError_BarcodeReading\" \"Begin\"\r\nfunction STEP2f_SimulateError_BarcodeReading( variable WhenSimulateError, device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable STAR_type;\r\n// {{ 5 \"STEP2f_SimulateError_BarcodeReading\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 352 1 0 \"7c3eef82_9706_4952_aeb02595f33f2886\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{ 353 1 0 \"bbc6eb49_3625_4937_8f9de436e2497107\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 354 1 0 \"261974c0_29fa_4a89_8e8138fc7dc99bbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(Translate(\"C0ZB\"), Translate(\"er99/00 I005/80\"), STAR_type);\r\n// }} \"\"\r\n// {{ 355 1 0 \"bbc6eb49_3625_4937_8f9de436e2497107\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 356 1 0 \"4c717309_5985_435c_b4a101c2c84b6f84\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (WhenSimulateError == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 357 1 0 \"5b029b65_b82d_4b1f_84c349d008c0fc0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(Translate(\"C0PB\"), Translate(\"er99/00 I005/80\"), STAR_type);\r\n// }} \"\"\r\n// {{ 358 1 0 \"4c717309_5985_435c_b4a101c2c84b6f84\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2f_SimulateError_BarcodeReading\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2g_SimulateError_Autoload\" \"Begin\"\r\nfunction STEP2g_SimulateError_Autoload( variable notReadPositions_Str, variable notPresentPositions_Str, device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable currentBitValue;\r\nprivate variable tmpCounter;\r\nprivate variable strBitsChain;\r\nprivate variable tmpVal;\r\nprivate variable num_errorSamples;\r\nprivate variable STR;\r\nprivate variable loopCounter3;\r\nprivate variable tmpBinChain;\r\nprivate variable loopCounter4;\r\nprivate variable loopCounter5;\r\nprivate variable array_BitValue[];\r\nprivate variable arr_SmpPos[];\r\nprivate variable array_Binaries[];\r\nprivate variable notPresentError_FW;\r\nprivate variable notReadBarcodeError_FW;\r\nprivate variable ErrStr_NewValue;\r\nprivate variable arr_SmpPos2[];\r\nprivate variable noBC;\r\nprivate variable num_errorSamples2;\r\nprivate variable STAR_type;\r\n// {{ 5 \"STEP2g_SimulateError_Autoload\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 360 1 0 \"82aec9cc_b22c_4d2f_b614e247494bf78b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 361 1 0 \"b6fc5e10_9dd7_495a_99976a7def255612\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nSTR = notPresentPositions_Str;\r\n// }} \"\"\r\n// {{ 362 1 0 \"f7f0015e_646c_4f76_b006c030cbfefe0e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 363 1 0 \"f8f6aade_51b3_4abd_84e22ecc9d1fa66b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_SmpPos.SetSize(0);\r\n// }} \"\"\r\n// {{ 364 1 0 \"d7b1af61_b82a_427e_834169276955f538\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narray_Binaries.SetSize(0);\r\n// }} \"\"\r\n// {{ 365 1 0 \"ecd422e5_6b7e_460e_bc257024ed0c48e2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narray_BitValue.SetSize(0);\r\n// }} \"\"\r\n// {{ 366 1 0 \"580b0b2d_20b9_45ab_ba2ddef53370b0cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 367 1 0 \"e955b80a_88bc_43c3_837c6d694752bbfe\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"0000\"));\r\n// }} \"\"\r\n// {{ 368 1 0 \"0951f6cd_c0f4_48a2_a1bbcd2b28a3f391\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"0001\"));\r\n// }} \"\"\r\n// {{ 369 1 0 \"d469e4d8_d375_4c57_8ab3f02e49fe26ca\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"0010\"));\r\n// }} \"\"\r\n// {{ 370 1 0 \"0915f006_3726_405e_8bb85abfa7b033a5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"0011\"));\r\n// }} \"\"\r\n// {{ 371 1 0 \"5c7deb33_a8e7_45ad_990a7a783eabf859\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"0100\"));\r\n// }} \"\"\r\n// {{ 372 1 0 \"7669cf6f_f9ad_48bb_ba50bb2256b4c2f6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"0101\"));\r\n// }} \"\"\r\n// {{ 373 1 0 \"4c217647_887c_43f8_a400139daeff2d50\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"0110\"));\r\n// }} \"\"\r\n// {{ 374 1 0 \"22d6ef05_0f01_479d_865cd1bae0ae3b5e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"0111\"));\r\n// }} \"\"\r\n// {{ 375 1 0 \"369f4e75_ac26_4b9b_868b60e04752101a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"1000\"));\r\n// }} \"\"\r\n// {{ 376 1 0 \"bddeb271_7aae_49f6_8fe41ff8cde83181\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"1001\"));\r\n// }} \"\"\r\n// {{ 377 1 0 \"23b9da2b_94aa_442d_9551f136ae39913c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"1010\"));\r\n// }} \"\"\r\n// {{ 378 1 0 \"b8d0c6c9_c132_4a61_a319938585ed16c8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"1011\"));\r\n// }} \"\"\r\n// {{ 379 1 0 \"87be86bf_453c_4a87_ba9c196ad5ea9adf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"1100\"));\r\n// }} \"\"\r\n// {{ 380 1 0 \"230fd314_00cb_4cff_8a03c086966a85af\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"1101\"));\r\n// }} \"\"\r\n// {{ 381 1 0 \"3c5d5631_b6ff_4a27_af7df49984a3a779\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"1110\"));\r\n// }} \"\"\r\n// {{ 382 1 0 \"0fdaf7ae_3d31_434f_b5873ebec14bd872\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_Binaries.AddAsLast(Translate(\"1111\"));\r\n// }} \"\"\r\n// {{ 383 1 0 \"580b0b2d_20b9_45ab_ba2ddef53370b0cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 384 1 0 \"8d41c261_b028_4976_b9f96344b16310a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 385 1 0 \"74884a02_fcf4_48c3_ad9d46d9ac663286\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 386 1 0 \"bf02a7fd_c7d8_403e_9698de3883841e80\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 387 1 0 \"dd9f2371_b48d_4940_a1ce6677c1499e6b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"2\"));\r\n// }} \"\"\r\n// {{ 388 1 0 \"2f60f6d7_9ec1_413f_904ec56b5363ba4d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"3\"));\r\n// }} \"\"\r\n// {{ 389 1 0 \"000f10fc_bb98_4a87_b17176c354e61a49\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"4\"));\r\n// }} \"\"\r\n// {{ 390 1 0 \"212ad452_3365_4bec_905f3726bc7cb53f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"5\"));\r\n// }} \"\"\r\n// {{ 391 1 0 \"55d2f70b_56d8_4c36_a84eddb623be0153\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"6\"));\r\n// }} \"\"\r\n// {{ 392 1 0 \"238cdcd6_deb6_45dc_a28c116ef423adf5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"7\"));\r\n// }} \"\"\r\n// {{ 393 1 0 \"7a4bbdb9_7567_4683_b871c1d24762f514\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"8\"));\r\n// }} \"\"\r\n// {{ 394 1 0 \"9c1a1406_3dfe_4d7d_ad43d8f7e863290c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"9\"));\r\n// }} \"\"\r\n// {{ 395 1 0 \"7208c04a_0648_4ec2_8f6206579fdef2af\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"A\"));\r\n// }} \"\"\r\n// {{ 396 1 0 \"6badda7f_0da2_4def_9bc6807d66bda1c3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"B\"));\r\n// }} \"\"\r\n// {{ 397 1 0 \"75ad772a_2011_45f2_93725f4e0fe2776f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"C\"));\r\n// }} \"\"\r\n// {{ 398 1 0 \"96d01fe8_0454_40f6_8d8adfc2dde2cdd8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"D\"));\r\n// }} \"\"\r\n// {{ 399 1 0 \"5a83e9c1_3765_47f0_a77e6b40cbe95483\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"E\"));\r\n// }} \"\"\r\n// {{ 400 1 0 \"014d60d5_e7eb_43a9_a8be0019263ac787\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narray_BitValue.AddAsLast(Translate(\"F\"));\r\n// }} \"\"\r\n// {{ 401 1 0 \"8d41c261_b028_4976_b9f96344b16310a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 402 1 0 \"f7f0015e_646c_4f76_b006c030cbfefe0e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 403 1 0 \"6bae3d00_c082_40b1_bac08d43d043fa79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(STR, Translate(\",\"), arr_SmpPos, 0);\r\n// }} \"\"\r\n// {{ 404 1 0 \"1108941a_be79_424b_b8fe0e37f8c7eb44\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_errorSamples=arr_SmpPos.GetSize();\r\n// }} \"\"\r\n// {{ 405 1 0 \"072bee7b_8ad1_42b4_953194dbc42abb68\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncurrentBitValue = 32;\r\n// }} \"\"\r\n// {{ 406 1 0 \"108d3e21_daa8_49ed_83ea624cacbd8591\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpBinChain = Translate(\"\");\r\n// }} \"\"\r\n// {{ 407 1 0 \"4f9fb600_f9e0_48e3_ba5855fa3ff67b19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrBitsChain = Translate(\"\");\r\n// }} \"\"\r\n// {{ 408 1 0 \"62024241_64d0_426e_b3306066d193c48b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpCounter = 1;\r\n// }} \"\"\r\n// {{ 409 1 0 \"ca018662_62a8_4ae3_b42029d91712e00a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < 32;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{ 410 1 0 \"80900c35_dd1b_4b84_9e1c06aa95d9d5be\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpVal = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 411 1 0 \"74939718_884a_46a8_982d62e975117b58\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter4 = 0; loopCounter4 < num_errorSamples;)\r\n{\r\nloopCounter4 = loopCounter4 + 1;\r\n// }} \"\"\r\n// {{ 412 1 0 \"16ddd55d_aa99_4fcb_92bb5e468fe1fd33\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ntmpVal=arr_SmpPos.GetAt(loopCounter4-1);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"a48774f7_0e2b_4de6_abbbef3abee4370b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmpVal = StrIVal(tmpVal);\r\n// }} \"\"\r\n// {{ 414 1 0 \"e24e0370_f0c3_4cc9_aca31ad0a5c777b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (currentBitValue == tmpVal)\r\n{\r\n// }} \"\"\r\n// {{ 415 1 0 \"874d3490_2876_4301_9ce6789b0fda314b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpVal = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 416 1 0 \"15681144_ec0e_400c_b51b7d45a3e616b5\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 417 1 0 \"e24e0370_f0c3_4cc9_aca31ad0a5c777b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 418 1 0 \"131a3c4b_e83f_4a26_8b02c21cb8b534bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpVal = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 419 1 0 \"e24e0370_f0c3_4cc9_aca31ad0a5c777b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 420 1 0 \"74939718_884a_46a8_982d62e975117b58\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 421 1 0 \"884202e5_d1eb_4a17_a086009ce145fece\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmpBinChain = StrConcat2(tmpBinChain, tmpVal);\r\n// }} \"\"\r\n// {{ 422 1 0 \"a650202a_4fd0_4341_8da6edbed3c7384d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ncurrentBitValue = currentBitValue - 1;\r\n// }} \"\"\r\n// {{ 423 1 0 \"734f6040_f625_49d4_af06d549e4e2a144\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpCounter = tmpCounter + 1;\r\n// }} \"\"\r\n// {{ 424 1 0 \"e602fb2e_844d_4f39_9a3885e6c0e09619\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tmpCounter > 4)\r\n{\r\n// }} \"\"\r\n// {{ 425 1 0 \"19fd2961_8e11_4dfe_8f7ea98cf6a431dd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 426 1 0 \"02bea6d2_e1ae_4af7_bacec8368ac527d1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter5 = 0; loopCounter5 < 16;)\r\n{\r\nloopCounter5 = loopCounter5 + 1;\r\n// }} \"\"\r\n// {{ 427 1 0 \"7afec8ca_5b1a_47cf_ba69c22bebef2e48\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ntmpVal=array_Binaries.GetAt(loopCounter5-1);\r\n// }} \"\"\r\n// {{ 428 1 0 \"7be203e9_f24f_4180_883879f39a85f919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tmpBinChain == tmpVal)\r\n{\r\n// }} \"\"\r\n// {{ 429 1 0 \"03d29074_457d_4f7a_b01b1fede017683c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 430 1 0 \"2cece292_72cc_4e7e_8a75a043808392f0\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ntmpVal=array_BitValue.GetAt(loopCounter5-1);\r\n// }} \"\"\r\n// {{{ 431 1 0 \"a0fe523d_050c_49f5_ac208fb84f4766da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrBitsChain = StrConcat2(strBitsChain, tmpVal);\r\n// }} \"\"\r\n// {{ 432 1 0 \"d81c41f6_c379_4179_838d7d872f9c3dea\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 433 1 0 \"7be203e9_f24f_4180_883879f39a85f919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 434 1 0 \"02bea6d2_e1ae_4af7_bacec8368ac527d1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 435 1 0 \"585fff70_2f9e_411b_9c6e182829edda15\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 436 1 0 \"04db34c8_2e88_40c2_b6ae573d3377edfe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpCounter = 1;\r\n// }} \"\"\r\n// {{ 437 1 0 \"1486f3e5_6e9c_4ab2_9ab6844627c3eac5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpBinChain = Translate(\"\");\r\n// }} \"\"\r\n// {{ 438 1 0 \"e602fb2e_844d_4f39_9a3885e6c0e09619\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 439 1 0 \"ca018662_62a8_4ae3_b42029d91712e00a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 440 1 0 \"b026e5a8_55b7_4558_acfbee949aa7afa9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnotPresentError_FW = StrConcat2(Translate(\"ci\"), strBitsChain);\r\n// }} \"\"\r\n// {{{ 441 1 0 \"3193087f_dfbe_4eae_99ea1c5a2992b4e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Generated Bit Error String  \"), notPresentError_FW);\r\n// }} \"\"\r\n// {{ 442 1 0 \"82aec9cc_b22c_4d2f_b614e247494bf78b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 443 1 0 \"cddc9ed9_11d2_4156_b3087f154ed6c722\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 444 1 0 \"fb4b9780_fd88_4502_94b59455fbfc0b43\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nSTR = notReadPositions_Str;\r\n// }} \"\"\r\n// {{{ 445 1 0 \"cdd53e75_13f6_4592_818d7c79a0e96723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(STR, Translate(\",\"), arr_SmpPos2, 0);\r\n// }} \"\"\r\n// {{ 446 1 0 \"f7c20ccd_21ea_4e0f_8253a771de36e1b1\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_errorSamples2=arr_SmpPos2.GetSize();\r\n// }} \"\"\r\n// {{ 447 1 0 \"0e2cbe1e_d2e6_4eaf_9a2ec4d62629e63e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrBitsChain = Translate(\"\");\r\n// }} \"\"\r\n// {{ 448 1 0 \"61578dee_4a9a_4862_9a22483f55060dfd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpBinChain = Translate(\"\");\r\n// }} \"\"\r\n// {{ 449 1 0 \"8e6f1e16_e340_44ed_b57626e23fe43879\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < 32;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{ 450 1 0 \"1b807a14_f2ea_4b33_a4010391c0a0f70d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnoBC = 0;\r\n// }} \"\"\r\n// {{ 451 1 0 \"498d8abe_98de_41e5_bfc3f158ad8c7aa9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 452 1 0 \"ff6e652e_ceaa_4050_96cc3c1d87099ff8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter4 = 0; loopCounter4 < num_errorSamples;)\r\n{\r\nloopCounter4 = loopCounter4 + 1;\r\n// }} \"\"\r\n// {{ 453 1 0 \"93e88927_05bc_4285_a366348bfd56ca77\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ntmpVal=arr_SmpPos.GetAt(loopCounter4-1);\r\n// }} \"\"\r\n// {{{ 454 1 0 \"6ae58d37_c618_4ec1_a2b1eeeceab20f89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmpVal = StrIVal(tmpVal);\r\n// }} \"\"\r\n// {{ 455 1 0 \"4486987b_4d40_4019_af33bc60c16958c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter3 == tmpVal)\r\n{\r\n// }} \"\"\r\n// {{ 456 1 0 \"1dfc6951_310b_433a_84e069d8aee771ca\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnoBC = 1;\r\n// }} \"\"\r\n// {{ 457 1 0 \"998fd2e8_97d7_483d_bff5bd89211ef16a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpVal = Translate(\"/00\");\r\n// }} \"\"\r\n// {{ 458 1 0 \"3bdeca88_db9c_4c7b_b4dd8f87bb2c1d8c\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 459 1 0 \"4486987b_4d40_4019_af33bc60c16958c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"ff6e652e_ceaa_4050_96cc3c1d87099ff8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 461 1 0 \"3bc47d4e_19ef_46ec_b89f484538fcd6eb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (noBC == 0)\r\n{\r\n// }} \"\"\r\n// {{ 462 1 0 \"ae9b3147_082f_4c7c_b5303d3d3bc0eccb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter4 = 0; loopCounter4 < num_errorSamples2;)\r\n{\r\nloopCounter4 = loopCounter4 + 1;\r\n// }} \"\"\r\n// {{ 463 1 0 \"bda8cba4_2ae3_4b2e_b94fe48f1d923df6\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ntmpVal=arr_SmpPos2.GetAt(loopCounter4-1);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"e6c65645_6445_43fe_9f0c3113ee1711b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmpVal = StrIVal(tmpVal);\r\n// }} \"\"\r\n// {{ 465 1 0 \"0560db43_c75f_4293_9413e6fd90a00e78\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter3 == tmpVal)\r\n{\r\n// }} \"\"\r\n// {{ 466 1 0 \"1f11e203_d6f8_4305_973aaa839a3fdff0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnoBC = 1;\r\n// }} \"\"\r\n// {{ 467 1 0 \"f106e46b_9d78_460d_9937b2f6366710db\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpVal = Translate(\"/00\");\r\n// }} \"\"\r\n// {{ 468 1 0 \"3c01380a_d83e_43c2_9fd0aa8de11b78d1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 469 1 0 \"0560db43_c75f_4293_9413e6fd90a00e78\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 470 1 0 \"ae9b3147_082f_4c7c_b5303d3d3bc0eccb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 471 1 0 \"3bc47d4e_19ef_46ec_b89f484538fcd6eb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 472 1 0 \"d3965e5c_456b_4433_8cb14c9fbf454914\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (noBC == 0)\r\n{\r\n// }} \"\"\r\n// {{ 473 1 0 \"e60beb65_2b1c_48ce_9d857c285fb97580\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"225a8f77_f090_45bc_8d9b65ee23b0b1c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter3 < 10)\r\n{\r\n// }} \"\"\r\n// {{{ 475 1 0 \"6b44c91e_064c_402d_b9bb3b9faf1d0ed8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmpVal = StrConcat2(Translate(\"0\"), loopCounter3);\r\n// }} \"\"\r\n// {{ 476 1 0 \"225a8f77_f090_45bc_8d9b65ee23b0b1c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 477 1 0 \"8ea8991f_4989_4685_bc77136b4f929f1d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmpVal = loopCounter3;\r\n// }} \"\"\r\n// {{ 478 1 0 \"225a8f77_f090_45bc_8d9b65ee23b0b1c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 479 1 0 \"eb843c66_41d7_4072_ad1cca19916c1634\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmpVal = StrConcat2(Translate(\"/09Barcode\"), tmpVal);\r\n// }} \"\"\r\n// {{ 480 1 0 \"e60beb65_2b1c_48ce_9d857c285fb97580\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 481 1 0 \"d3965e5c_456b_4433_8cb14c9fbf454914\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 482 1 0 \"0194bd60_a15c_4fe3_859cd01c87a6fa31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmpBinChain = StrConcat2(tmpBinChain, tmpVal);\r\n// }} \"\"\r\n// {{ 483 1 0 \"8e6f1e16_e340_44ed_b57626e23fe43879\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 484 1 0 \"deb196f9_e4e1_442c_af438d58ffcbf57d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnotReadBarcodeError_FW = StrConcat2(Translate(\"bb\"), tmpBinChain);\r\n// }} \"\"\r\n// {{{ 485 1 0 \"a6889cf1_5d80_4991_90e2ff3a0baa08ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Generated BC Error String  \"), notReadBarcodeError_FW);\r\n// }} \"\"\r\n// {{ 486 1 0 \"cddc9ed9_11d2_4156_b3087f154ed6c722\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 487 1 0 \"41693611_8972_48c0_99f8c320c65e5901\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrStr_NewValue = StrConcat8(Translate(\"er00/00 \"), notPresentError_FW, Translate(\" \"), notReadBarcodeError_FW, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 488 1 0 \"e617037c_7830_402d_ac0968e81fa014cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"d3f5a986_9511_4860_bdcb2e723d3d873a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(Translate(\"C0CL\"), ErrStr_NewValue, STAR_type);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 490 1 0 \"3016108a_b27a_45e8_846fd44cd2c3c9ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"C0CL  \"), ErrStr_NewValue);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"STEP2g_SimulateError_Autoload\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2h_SimulateError_CRWashstation\" \"Begin\"\r\nfunction STEP2h_SimulateError_CRWashstation( variable errorToSimulate, device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable STAR_type;\r\n// {{ 5 \"STEP2h_SimulateError_CRWashstation\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 492 1 0 \"0f692bd7_307f_4c85_958eadb53e14ef75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{ 493 1 0 \"f3f54b3f_f6f2_448f_aba4367a16803910\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (errorToSimulate == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 494 1 0 \"6c1f3dac_32a0_4498_ab24bfaf2905be50\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(Translate(\"C0WS\"), Translate(\"er99/00 W118/00\"), STAR_type);\r\n// }} \"\"\r\n// {{ 495 1 0 \"f3f54b3f_f6f2_448f_aba4367a16803910\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 496 1 0 \"2f1602b5_6f0a_410f_8c3ea8452d37818a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (errorToSimulate == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 497 1 0 \"7f377a16_f6ca_4794_be8a0971f6d6381d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMlStarSimCfg::updateKeyValueForOneUse(Translate(\"C0WS\"), Translate(\"er99/00 W102/00\"), STAR_type);\r\n// }} \"\"\r\n// {{ 498 1 0 \"2f1602b5_6f0a_410f_8c3ea8452d37818a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP2h_SimulateError_CRWashstation\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"STEP3_Restore_BackupCfgFile\" \"Begin\"\r\nfunction STEP3_Restore_BackupCfgFile( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable logPath;\r\nprivate variable libPath;\r\nprivate variable cfgPath;\r\nprivate variable backupExists;\r\nprivate variable binPath;\r\nprivate variable cfgFileBak;\r\nprivate variable cfgFile;\r\nprivate variable mlStarCfg;\r\nprivate variable STAR_type;\r\nprivate variable mlStarCfgBak;\r\n// {{ 5 \"STEP3_Restore_BackupCfgFile\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 500 1 0 \"c0948c4f_8ecc_4efc_b7b2e4b0618bb0e6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 501 1 0 \"76140cba_0772_4461_9d3e2653efbeec85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbinPath = FilGetBinPath();\r\n// }} \"\"\r\n// {{{ 502 1 0 \"33d5046c_1ed9_45ef_9c439b2839c7e33d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncfgPath = FilGetConfigPath();\r\n// }} \"\"\r\n// {{{ 503 1 0 \"eb568466_bb2b_4c01_9b848a3ddb90d10a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlogPath = FilGetLogFilesPath();\r\n// }} \"\"\r\n// {{{ 504 1 0 \"7aae5932_54e4_4b32_b79a5ffd6f49f600\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlibPath = FilGetLibraryPath();\r\n// }} \"\"\r\n// {{ 505 1 0 \"c0948c4f_8ecc_4efc_b7b2e4b0618bb0e6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 506 1 0 \"2150e872_cd28_47a9_af62abda01b403db\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 507 1 0 \"7e76c44c_a4e0_43ff_b11b5af597d963cc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 508 1 0 \"77e19401_6c64_4a1c_8b55f86e0f03075f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSTAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR);\r\n// }} \"\"\r\n// {{ 509 1 0 \"3d1f5985_e2ba_4fb2_ad87655a05c334bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (STAR_type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 510 1 0 \"68815b06_e61a_4b7f_9809d544a9fa6886\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfg = Translate(\"\\ML_STAR_Simulator.cfg\");\r\n// }} \"\"\r\n// {{ 511 1 0 \"34055e96_06a3_486c_a50ca84efb00fe3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfgBak = Translate(\"\\ML_STAR_Simulator.cfg.bak\");\r\n// }} \"\"\r\n// {{ 512 1 0 \"3d1f5985_e2ba_4fb2_ad87655a05c334bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 513 1 0 \"929aa074_bced_48bd_8419c48da8ef79d0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (STAR_type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 514 1 0 \"c32211b3_4e4b_4952_bc79ace2cfe9645b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfg = Translate(\"\\ML_Starlet_Simulator.cfg\");\r\n// }} \"\"\r\n// {{ 515 1 0 \"e8386217_0998_4436_9ea3d53c72a0e954\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfgBak = Translate(\"\\ML_Starlet_Simulator.cfg.bak\");\r\n// }} \"\"\r\n// {{ 516 1 0 \"929aa074_bced_48bd_8419c48da8ef79d0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 517 1 0 \"e772981f_c811_4ad2_88a69c6f576d9b35\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (STAR_type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 518 1 0 \"aaa6ac5f_bacd_4776_a4b2092c3f36626d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfg = Translate(\"\\ML_FlexStar_Simulator.cfg\");\r\n// }} \"\"\r\n// {{ 519 1 0 \"9e888e01_382d_4da1_ac1768527b68b046\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmlStarCfgBak = Translate(\"\\ML_FlexStar_Simulator.cfg.bak\");\r\n// }} \"\"\r\n// {{ 520 1 0 \"e772981f_c811_4ad2_88a69c6f576d9b35\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 521 1 0 \"06f2413e_fb9f_4b70_a3e91fc985873148\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncfgFile = StrConcat2(cfgPath, mlStarCfg);\r\n// }} \"\"\r\n// {{{ 522 1 0 \"523b040e_ea9c_46c7_b2661d9d6612fee7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncfgFileBak = StrConcat2(cfgPath, mlStarCfgBak);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"711ed928_0dd8_4fde_bd90a58e4a4ecef1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbackupExists = FilSearchPath(cfgFileBak);\r\n// }} \"\"\r\n// {{ 524 1 0 \"e203c585_716d_41f6_85148345acc4ced1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (backupExists != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 525 1 0 \"1e61f34a_2881_4065_abb256dbc8c20b3f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 526 1 0 \"8acbeb6b_b653_41e5_880cef5809b00d98\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFilCopyFileEx(cfgFileBak, cfgFile);\r\n// }} \"\"\r\n// {{ 527 1 0 \"e203c585_716d_41f6_85148345acc4ced1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 528 1 0 \"2150e872_cd28_47a9_af62abda01b403db\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"STEP3_Restore_BackupCfgFile\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"AA_Abstract\" \"Begin\"\r\nfunction AA_Abstract(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"AA_Abstract\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1 1 0 \"6b0c8e80_6050_44d3_a56d7390cedecf65\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"AA_Abstract\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 542 1 0 \"a9b4e529_fa40_45c4_b9bff3ed696f40d0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 543 1 0 \"dc1453e6_f480_4eda_925c71db9d6640c6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 544 1 0 \"96f340a1_356f_4689_b4f71ce07aafd716\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 545 1 0 \"dcd9c3c5_8f11_4f6f_9d2d89a1e757d8bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n      //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n  // Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n  // Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n  // Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Cuevas_A$$valid=0$$time=2012-07-16 15:01$$checksum=897229d5$$length=087$$"
  },
  {
    "path": "pyhamilton/library/ErrorSimulator/HSLFilLibEx.hsl",
    "content": "// This is an extension of the HSL File Library Extension.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n//\r\n// Modification History\r\n// 2002-11-27  bandenmatten : Initial file creation.\r\n// 2003-05-06  bandenmatten : Added function FilFormatReportFile().\r\n\r\n#ifndef __HSLFilLibEx_hsl__\r\n#define __HSLFilLibEx_hsl__\t1\r\n\r\n// Interface to the File Library Extension\r\n#ifndef HSL_RUNTIME\r\n\r\n// Deletes a specified file.\r\nfunction FilDeleteFileEx(\r\n\tvariable& filePathName) void\t\t\t\t\t\t// i: The name of the file to delete. The filespec can contain wildcard characters in the last path component. \r\n{}\r\n\r\n// Copies one or more files from one location to another.\r\nfunction FilCopyFileEx(\r\n\tvariable& sourceFilePathName, \t\t\t\t\t// i: Character string file specification, which can include wildcard characters, for one or more files to be copied. \r\n\tvariable& destinationFilePathName) void\t\t// i: Character string destination where the file or files from source are to be copied. Wildcard characters are not allowed.\r\n{}\r\n\r\n// Formats a specified report file.\r\nfunction FilFormatReportFileEx(\r\n\tvariable& sourceFilePathName, \t\t\t\t\t// i: Character string file specification. Wildcard characters are not allowed.\r\n\tvariable& destinationFilePathName) variable\t// i: Character string destination where the file from source is to be formated. Wildcard characters are not allowed.\r\n{return(0);}\r\n\r\n#endif\r\n\r\n// Implementation of the File Library Extension\r\n#ifdef HSL_RUNTIME\r\n\r\nfunction FilDeleteFileEx(variable& filePathName) void\r\n{\r\n\tobject fso;\r\n\tfso.CreateObject(\"Scripting.FileSystemObject\");\r\n\tfso.DeleteFile(filePathName);\r\n\tfso.ReleaseObject();\r\n}\r\n\r\nfunction FilCopyFileEx(\r\n\tvariable& sourceFilePathName, \r\n\tvariable& destinationFilePathName) void\r\n{\r\n\tobject fso;\r\n\tfso.CreateObject(\"Scripting.FileSystemObject\");\r\n\tfso.CopyFile(sourceFilePathName, destinationFilePathName);\r\n\tfso.ReleaseObject();\r\n}\r\n\r\nnamespace IOMode\r\n{\r\n\tconst variable forReading(1);\r\n\tconst variable forWriting(2);\r\n\tconst variable forAppending(8);\r\n}\r\n\r\nfunction FilFormatReportFileEx(\r\n\tvariable& sourceFilePathName,\r\n\tvariable& destinationFilePathName) variable\r\n{\r\n\tvariable write(hslFalse);\r\n\tstring line;\r\n\tobject fso;\r\n\tobject src;\r\n\tobject dst;\r\n\r\n\tonerror goto Unexpected;\r\n\tfso.CreateObject(\"Scripting.FileSystemObject\");\r\n\tsrc = fso.OpenTextFile(sourceFilePathName, IOMode::forReading);\r\n\tdst = fso.OpenTextFile(destinationFilePathName, IOMode::forWriting, hslTrue);\r\n\tfor (line = src.ReadLine(); !src.AtEndOfStream; line = src.ReadLine())\r\n\t{\r\n\t\tif (!write)\r\n\t\t\tif (line.Find(\"Element Name;\") == 0)\r\n\t\t\t\twrite = hslTrue;\r\n\t\tif (write)\r\n\t\t\tdst.WriteLine(line);\r\n\t}\r\n\tsrc.Close();\r\n\tdst.Close();\r\n\treturn(hslTrue);\r\n\r\n\tUnexpected:\r\n\t{\r\n\t\tif (!src.IsNull())\r\n\t\t\tsrc.Close();\r\n\t\tif (!dst.IsNull())\r\n\t\t\tdst.Close();\r\n\t\treturn(hslFalse);\r\n\t}\r\n}\r\n\r\n#endif\r\n#endif\r\n// $$author=bandenmatten$$valid=0$$time=2003-05-06 11:21$$checksum=2131b3b2$$length=089$$"
  },
  {
    "path": "pyhamilton/library/ErrorSimulator/MlStarSimCfg.hsl",
    "content": "#pragma once\r\n\r\n\r\nnamespace MlStarSimCfg\r\n{\r\n\tstatic const variable dataDefName       (\"Simulator\");\r\n\tstatic const variable instanceName      (\"default\");\r\n\tstatic const variable keyNameUpdateKey  (\"updateKeyValue\");\r\n\tstatic const variable keyNameUpdateValue(\"updateParamValue\");\r\n\r\n\r\n\t// Update one key value pair in the simulator config file\r\n\t// The previous value for the keyName is readed out and stored\r\n\t// under the keys in the config file which are updated for the second use.\r\n\t// variable instrumentType:\r\n     // 0= ML STAR\r\n     // 1= ML STARlet\r\n     // 2= ML STARplus\r\n\r\n\tfunction updateKeyValueForOneUse(\r\n\t\tvariable keyName,\r\n\t\tvariable newValue,\r\n      variable instrumentType) variable\r\n\t{\r\n\t\tvariable oldValue(\"\");\r\n\r\n\t\tvariable simulatorConfigFile(\"\");\r\n\r\n\t\tvariable cfgStatus(-1);\r\n\t\tvariable dateDefVerNum(-1);\r\n      variable mlStarCfg;\t\r\n\r\n\t\tobject simCfg;\r\n\r\n      if(instrumentType==0){mlStarCfg=\"\\\\ML_STAR_Simulator.cfg\";}\r\n      if(instrumentType==1){mlStarCfg=\"\\\\ML_Starlet_Simulator.cfg\";}\r\n      if(instrumentType==2){mlStarCfg=\"\\\\ML_FlexStar_Simulator.cfg\";}\r\n\r\n\t\tsimulatorConfigFile = GetConfigPath() + mlStarCfg;\r\n\r\n\t\tsimCfg.CreateObject(\"HXCFGFILLib.HxCfgFile\");\r\n\r\n\t\t// Load the simulator config\r\n\t\tcfgStatus = simCfg.LoadFile(simulatorConfigFile);\r\n\r\n\t\t// Get the data def version number\r\n\t\tdateDefVerNum = simCfg.GetDataDefVerNum(dataDefName, instanceName);\r\n\r\n\t\t// Read the previous stored value under the keyName\r\n\t\toldValue = simCfg.GetDataDefValueAsString(dataDefName, instanceName, keyName);\r\n\r\n\t\t// Set the new value for the keyName\r\n\t\tsimCfg.PutStringValueInDataDef(dataDefName, dateDefVerNum, instanceName, keyName, newValue);\r\n\r\n\t\t// Set the keyValue and ParamValue which shall be used for the second use\r\n\t\tsimCfg.PutStringValueInDataDef(dataDefName, dateDefVerNum, instanceName, keyNameUpdateKey, keyName);\r\n\t\tsimCfg.PutStringValueInDataDef(dataDefName, dateDefVerNum, instanceName, keyNameUpdateValue, oldValue);\r\n\r\n\t\t// Store the file\r\n\t\tsimCfg.StoreFile(simulatorConfigFile, cfgStatus);\r\n\r\n\t\treturn( oldValue );\r\n\t}\r\n}\r\n// $$author=Cuevas_A$$valid=0$$time=2012-07-10 18:09$$checksum=7a8c5e22$$length=085$$"
  },
  {
    "path": "pyhamilton/library/ErrorSimulator/StrTokenize.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 03.10.2008 08:27:45\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STRTOKENIZE {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=marsll_hamilton$$valid=0$$time=2008-10-03 08:27$$checksum=c3c24163$$length=092$$"
  },
  {
    "path": "pyhamilton/library/ErrorSimulator/StrTokenize.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STRTOKENIZE {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nfunction StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable posCurrent;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable strEdit;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1 1 0 \"40f83796_e0a6_45fb_bdfac23e9e04e799\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2 1 0 \"cb9a86a9_eff5_461d_b6d8c3a95ff3bde6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 3 1 0 \"42d6b1c8_9878_46e2_bdf0b5cb0397c20b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 4 1 0 \"34ebdf61_3010_4c32_8dd0622ea91b0234\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n      Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=marsll_hamilton$$valid=0$$time=2008-10-03 08:27$$checksum=5a6eb8d1$$length=094$$"
  },
  {
    "path": "pyhamilton/library/HSLAppsLib/HSLAppsLib.hsl",
    "content": "//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\ This library is a summary of the popular steps in many of the common libraries\r\n//*\\\\ Compiled by Scott Walton & Josh Brewer, Hamilton Company\r\n//*\\\\ Version 1.1 , Jan 2013\r\n//*\\\\  \r\n//*\\\\ Version1.1 - Jan 29th, 2013, -  1. enabled use of integers for site IDs,\r\n//*\\\\                                 2. moved the strConvertToString and strConvertToString\r\n//*\\\\                                    to beginning of list to use these functions in other \r\n//*\\\\                                    functions\r\n//*\\\\                                 3. Added the CopySeq function\r\n//*\\\\                                 4. Added the AlphaNumConversion function\r\n//*\\\\\r\n//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n\r\n\r\n\r\n\r\n#ifndef __HSLAppsLib_hsl__\r\n#define __HSLAppsLib_hsl__  1\r\n\r\n\r\n\r\n\r\n//For the DeckVisualize step include:\r\n#ifndef __HSLDeckVisualize_hsl__\r\n\t#include \"HSLDeckVisualize.hsl\"\r\n#endif\r\n\r\n\r\n\r\nnamespace APPSLIB\r\n{\r\n\r\n//For the GetLabwareBarcode step include:\r\n#ifndef __HSLLabwareStateLib_hsl__\r\n\t#include \"HSLLabwareStateLibImpl.hs_\"\r\n#endif\r\n\r\n\r\n//////////////////////////////////////////////////////////////////////////////////////////////////////\r\n//////////////////////////////////////////////////////////////////////////////////////////////////////\r\n//LIBRARY FUNCTIONS\r\n\r\n\r\n// Function converts an integer or a float to to the corresponding string\r\n   function StrConvertToString(variable& floatOrInteger) string\r\n      {private variable varType;\r\n       private string returnValue;\r\n\r\n       varType = GetType(floatOrInteger);\r\n       if (varType == \"f\")\r\n           returnValue = FStr(floatOrInteger);\r\n       else if (varType == \"i\")\r\n           returnValue = IStr(floatOrInteger);\r\n       else\r\n           Trace(\"The variable \", floatOrInteger, \" was not converted. It is not a float or integer.\");\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function converts a string into the float or integer value, depending on whether a \".\" is found\r\n   function StrConvertToNumber(string& stringVariable) variable\r\n      {private variable returnValue, varType, isFound;\r\n\r\n       varType = GetType(stringVariable);\r\n       if (varType == \"s\")\r\n          {isFound = stringVariable.Find(\".\");\r\n           if (isFound == -1)  //  stringVariable should be an integer\r\n               returnValue = IVal(stringVariable);\r\n           else                //  stringVariable should be a float\r\n               returnValue = FVal(stringVariable);\r\n          }\r\n       else\r\n          {Trace(\"The variable \", stringVariable, \" cannot be converted. It is not a string.\");\r\n           returnValue = stringVariable;\r\n          }\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n // Function returns a string channel pattern - e.g. if tipUsed is 3, return \"00100000\", number of channels returned from dev library\r\n   function ChannelPatternSingleTip(device& deviceObj, variable& tipUsed) variable\r\n      {private string str_channelPattern;\r\n       private variable loopNumber(1), numberOfChannels;\r\n\r\n       numberOfChannels = deviceObj.GetCfgValueWithKey(1);\r\n       if (GetType(tipUsed) == \"s\")\r\n           tipUsed = IVal(tipUsed);       \r\n       loop (numberOfChannels)\r\n         {if (tipUsed == loopNumber) str_channelPattern = str_channelPattern + \"1\";\r\n          else str_channelPattern = str_channelPattern + \"0\";\r\n          loopNumber++;\r\n         }\r\n\r\n       Trace(\"Channel Pattern - Tip Used: \", tipUsed, \", number of channels: \", numberOfChannels, \", pattern returned: \", str_channelPattern);\r\n       return(str_channelPattern);\r\n      }\r\n\r\n\r\n // Function returns a string channel pattern - e.g. if tipsUsed is 3, return \"11100000\", number of channels reuturned from dev library\r\n   function ChannelPatternMultipleTip(device& deviceObj, variable& tipsUsed) variable\r\n      {private string str_channelPattern;\r\n       private variable loopNumber(1), numberOfChannels;\r\n\r\n       numberOfChannels = deviceObj.GetCfgValueWithKey(1);\r\n       if (GetType(tipsUsed) == \"s\")\r\n           tipsUsed = IVal(tipsUsed);  \r\n       loop (numberOfChannels)\r\n         {if (loopNumber <= tipsUsed) str_channelPattern = str_channelPattern + \"1\";\r\n          else str_channelPattern = str_channelPattern + \"0\";\r\n          loopNumber++;\r\n         }\r\n       Trace(\"Channel Pattern - Tips Used: \", tipsUsed, \", number of channels: \", numberOfChannels, \", pattern returned: \", str_channelPattern);\r\n       return(str_channelPattern);\r\n      }\r\n\r\n\r\n// Function updates the loaded labware on the deck\r\n   function UpdateLoadedLabware(device& deviceObj, variable labwareIDs[], variable labwareStates[]) void\r\n      {private variable description(\"\");\r\n       DeckVisualize::UpdateLoadedLabware(deviceObj, labwareIDs, labwareStates, description);\r\n      }\r\n\r\n\r\n// Function Adds Labware to the deck based upon defined coordinates\r\n   function DevAddLabware(device& deviceObj, variable& labwareId, variable& configFile, variable xCoord, variable yCoord, variable zCoord, variable angle) variable\r\n      {private variable returnValue(0);\r\n       private variable position[](4);\r\n\r\n       position[0] = xCoord;\r\n       position[1] = yCoord;\r\n       position[2] = zCoord;\r\n       position[3] = angle;\r\n       returnValue = deviceObj.AddLabware(labwareId, configFile, position);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function adds labware to a specific site on a template\r\n   function DevAddLabwareToTemplate(device& deviceObj, variable& labwareId, variable& configFile, variable& templateId, variable& siteId) variable\r\n      {private variable returnValue(0);\r\n       private string str_siteId;\r\n       if (GetType(siteId) != \"s\")\r\n           str_siteId = APPSLIB::StrConvertToString(siteId);\r\n       else\r\n           str_siteId = siteId;\r\n       returnValue = deviceObj.AddLabwareToTemplate(labwareId, configFile, templateId, str_siteId);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function removes labware from the deck\r\n   function DevRemoveLabware(device& deviceObj, variable& labwareId) variable\r\n      {private variable returnValue(0);\r\n\r\n       returnValue = deviceObj.RemoveLabware(labwareId);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Gets the position of labware, position defined by the deck coordinates\r\n   function DevGetLabwarePosition(device& deviceObj, variable& labwareId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle) variable\r\n      {private variable returnValue(0);\r\n       private variable position[];\r\n\r\n       returnValue = deviceObj.GetLabwarePosition(labwareId, position);\r\n       xCoord = position[0];\r\n       yCoord = position[1];\r\n       zCoord = position[2];\r\n       angle =  position[3];\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Gets the position of labware's position ID, position defined by the deck coordinates\r\n   function DevGetLabwarePositionEx(device& deviceObj, variable& labwareId, variable& positionId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle)variable\r\n      {private variable returnValue(0), str_pos;\r\n       private variable position[];\r\n\r\n       if (GetType(positionId) != \"s\")\r\n          {if (GetType(positionId) == \"f\")\r\n              str_pos = FStr(positionId);\r\n           else\r\n              str_pos = IStr(positionId);\r\n          }\r\n       else\r\n           str_pos = positionId;\r\n       returnValue = deviceObj.GetLabwarePosition(labwareId, position, str_pos);\r\n       xCoord = position[0];\r\n       yCoord = position[1];\r\n       zCoord = position[2];\r\n       angle =  position[3];\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets a barcode that has been set by a scanner or SetLabwareBarcode smart step (data handling step)\r\n// Returns the labware barcode at the current position of a sequence, uses HSLLabwareStateLibImpl.hs_ included\r\n   function GetLabwareBarcode(device& deviceObj, sequence& Sequence, variable& labwareLevel) variable\r\n      {private variable barcode;\r\n\r\n       barcode = HSLLabwState::GetLabwareBarcode(deviceObj, Sequence, labwareLevel);\r\n       return (barcode);\r\n      }\r\n\r\n\r\n// Function rounds the float to the specified number of of digits passed the decimal place.  Zero returns integers\r\n   function MathRound(variable& number, variable& numberOfDecimalPlaces) variable\r\n      {private variable integerPortion(0.0);\r\n\t    private variable fractionalPortion(0.0);\r\n\t    private variable returnValue(0.0);\r\n\r\n\t    integerPortion = Floor(number, hslTrue);\r\n\t    fractionalPortion = number - integerPortion;\r\n\t    returnValue = integerPortion + Floor((10.0^numberOfDecimalPlaces) * fractionalPortion + 0.5) / (10.0^numberOfDecimalPlaces);\r\n\t    if (0 == numberOfDecimalPlaces)\r\n\t\t    return(Floor(returnValue));\r\n       else\r\n\t\t    return(returnValue);\r\n      }\r\n\r\n\r\n// Function adds a new position to the end of the given sequence\r\n   function SequenceAdd(sequence& sequenceObj, variable& labwareId, variable& positionId) void\r\n      {sequenceObj.Add(labwareId, positionId);\r\n      }\r\n\r\n\r\n// Function brings a visual dialogs to graphically edit a sequence\r\n   function SequenceEdit(sequence& seqObject,device deviceObj,variable title,variable prompt,variable timeout,variable initFromConfig, variable first, variable last, variable editable, variable cfgFile) void\r\n      {seqObject.Edit(deviceObj, title, prompt, timeout, initFromConfig, first, last, editable, cfgFile);\r\n      }\r\n\r\n\r\n// Function gets the labware ID of the current position of the sequence\r\n   function SequenceGetLabwareId(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetLabwareId();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets the position ID of the current position of the sequence\r\n   function SequenceGetPositionId(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetPositionId();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function copies a plate pattern\r\n   function CopyPlatePatternToPlate (sequence sourcePlate, sequence& targetPlate) void\r\n      {private variable labwareId, position, total, loopNum;\r\n       sourcePlate.SetCurrentPosition(1);\r\n       targetPlate.SetCurrentPosition(1);\r\n       labwareId = targetPlate.GetLabwareId();\r\n\r\n       //Remove All positions from the targetPlate sequence\r\n       total = targetPlate.GetTotal();\r\n\t    targetPlate.SetCount(total);\r\n\t    targetPlate.SetCurrentPosition(1);\r\n\t    for (position = total; 0 < position; position--)\r\n\t\t      targetPlate.RemoveAt(position);\r\n\t    targetPlate.SetCount(0);\r\n\t    targetPlate.SetCurrentPosition(0);\r\n\t    targetPlate.SetMax(0);\r\n\r\n       // loop over the source sequence and copy the positions to the target plate sequence\r\n       for (loopNum=1 ; loopNum <= sourcePlate.GetTotal() ; loopNum++)\r\n            {targetPlate.Add(labwareId, targetPlate.GetPositionId());\r\n             sourcePlate.Increment(1);\r\n            }\r\n       targetPlate.SetCurrentPosition(1);\r\n      }\r\n\r\n\r\n// Function gets the total positions in the sequence\r\n   function SequenceGetTotal(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetTotal();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets the number of positions in the sequence, if an end position is set\r\n//   that is before the last position, then this number will be less the the GetTotal number of positions\r\n   function SequenceGetCount(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetCount();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets the remaining positions left in the sequence\r\n   function SequenceTotalPosRemaining(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       if ((seqObject.GetCount() == 0) && (seqObject.GetCurrentPosition() == 0)) // no positions in the sequence\r\n          returnValue = 0;\r\n       else\r\n          returnValue = (seqObject.GetCount() - seqObject.GetCurrentPosition()) + 1;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function increments a sequence by the amount requested\r\n   function SequenceIncrement(sequence& seqObject, variable increment) void\r\n      {seqObject.Increment(increment);\r\n      }\r\n\r\n\r\n// Function removes all positions from a sequence, after re-adding positions to the sequence sequence must be set to 1 again or error occrus\r\n   function SequenceRemoveAll(sequence& seqObject) void\r\n      {private variable position, total;\r\n\r\n\t    total = seqObject.GetTotal();\r\n\t    seqObject.SetCount(total);\r\n\t    seqObject.SetCurrentPosition(1);\r\n\t    for (position = total; 0 < position; position--)\r\n\t\t    seqObject.RemoveAt(position);\r\n\t    seqObject.SetCount(0);\r\n\t    seqObject.SetCurrentPosition(0);\r\n\t    seqObject.SetMax(0);\r\n      }\r\n\r\n\r\n// Function removes a sequence position at the requested position\r\n   function SequenceRemoveAt(sequence& seqObject, position) void\r\n      {variable int;\r\n       if (GetType(position) == \"f\")\r\n          {int = APPSLIB::MathRound(position, 0);\r\n           seqObject.RemoveAt(int);\r\n          }\r\n       else if (GetType(position) == \"s\")\r\n           seqObject.RemoveAt(IVal(position));\r\n       else\r\n           seqObject.RemoveAt(position);\r\n      }\r\n\r\n\r\n// Function overwrites a target sequence with the contents of the source sequence\r\nfunction SequenceCopySeq(sequence& targetSequence, sequence& sourceSequence) void\r\n{\r\n\ttargetSequence.CopySequence(sourceSequence);\r\n}\r\n\r\n\r\n// Function concatenates the strings and returns the caoncatenated string, if non-string values are given, then convert them into strings\r\n   function StrConcatenate(variable var1, variable var2, variable var3, variable var4, variable var5, variable var6, variable var7, variable var8) variable\r\n      {private variable loopNum, varType, varPos;\r\n       private string returnValue, str_var;\r\n       private variable varArray[](8);\r\n\r\n       varArray[0] = var1; varArray[1] = var2; varArray[2] = var3; varArray[3] = var4;\r\n       varArray[4] = var5; varArray[5] = var6; varArray[6] = var7; varArray[7] = var8;\r\n       for (loopNum=0; loopNum < varArray.GetSize(); loopNum++)\r\n         {varType = GetType(varArray[loopNum]);\r\n          varPos = varArray[loopNum];\r\n          if (varType == \"f\")\r\n             {str_var = FStr(varPos);\r\n              returnValue = returnValue + str_var;\r\n             }\r\n          else if (varType == \"i\")\r\n             {str_var = IStr(varPos);\r\n              returnValue = returnValue + str_var;\r\n             }\r\n          else if (varType == \"s\")\r\n             returnValue = returnValue + varPos;\r\n         }\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Finds a substring within a string, returnValue is 1 based\r\n   function StringFind(variable& strObject, variable& subStrToFind) variable\r\n      {private variable returnValue;\r\n       private string str_strObject, str_subStrToFind;\r\n       \r\n       if (GetType(strObject) !=\"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(subStrToFind) !=\"s\")\r\n           str_subStrToFind = APPSLIB::StrConvertToString(subStrToFind);\r\n       else\r\n           str_subStrToFind = subStrToFind;\r\n       returnValue = str_strObject.Find(str_subStrToFind);\r\n       returnValue++;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a number leftmost characters of a string\r\n   function StringLeft(variable& strObject, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       returnValue = str_strObject.Left(numberOfChar);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a number of rightmost characters of a string\r\n   function StringRight(variable& strObject, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       returnValue = str_strObject.Right(numberOfChar);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns the length of a string\r\n   function StringGetLength(variable& strObject) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n       \r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       returnValue = str_strObject.GetLength();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a string within a given string, position should be 1 based\r\n   function StringMid(variable& strObject,variable& startPosition, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(startPosition) == \"s\")\r\n          {startPosition = APPSLIB::StrConvertToNumber(startPosition);\r\n           if (GetType(startPosition) == \"f\")\r\n               startPosition = APPSLIB::MathRound(startPosition, 0);\r\n          }\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       startPosition--;\r\n       returnValue = str_strObject.Mid(startPosition, numberOfChar);\r\n       return(returnValue);\r\n      }\r\n\r\n// Function Looks up a value within an array (position is 1 based), returns hslTrue if found - else hslFalse\r\n   function ArrayLookup(variable& arrayToSearch[], variable& valueSearchedFor, variable& positionInArray) variable\r\n      {private variable returnValue(hslFalse), loopNum, value;\r\n\r\n       for(loopNum=0 ; loopNum < arrayToSearch.GetSize() ; loopNum++)\r\n          {value = arrayToSearch[loopNum];\r\n           if (value == valueSearchedFor)   //Value was found\r\n              {positionInArray = loopNum + 1;  // value returned is 1 based\r\n               returnValue = hslTrue;\r\n               break;\r\n              }\r\n          }\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function will shift the labware of the current position in the sequence\r\n   function MoveSequence(device& deviceObj, sequence& Sequence, variable& xDelta, variable yDelta, variable zDelta) void\r\n      {private variable labID;\r\n\t    object editLabware;\r\n\t\t object deckLayout;\r\n\t\t object labware;\r\n\r\n\t\t labID = Sequence.GetLabwareId();\r\n       deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout\r\n\t\t if(!deckLayout.IsNull())\r\n         {labware = deckLayout.Labware(labID);\r\n\t\t    if(!labware.IsNull())\r\n            {labware.GetObject2(\"{39A3639F-97AB-444D-86D3-253122BD2202}\", editLabware); // get IEditLabware5\r\n\t\t\t\t editLabware.MoveDelta(xDelta, yDelta, zDelta);\r\n\t\t\t   }\r\n          else\r\n\t\t\t    Trace(\"Warning, labware is null\");\r\n         }\r\n       else\r\n\t\t    Trace(\"Warning Deck Layout is null\");\r\n      }\r\n\r\n\r\n// Function will shift the labware based upon the LabwareID\r\n   function MoveLabware(device& deviceObj, variable& labwareId, variable& xDelta, variable yDelta, variable zDelta) void\r\n      {private variable labID;\r\n\t    object editLabware;\r\n\t\t object deckLayout;\r\n\t\t object labware;\r\n\r\n       deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout\r\n\t\t if(!deckLayout.IsNull())\r\n         {labware = deckLayout.Labware(labwareId);\r\n\t\t    if(!labware.IsNull())\r\n            {labware.GetObject2(\"{39A3639F-97AB-444D-86D3-253122BD2202}\", editLabware); // get IEditLabware5\r\n\t\t\t\t editLabware.MoveDelta(xDelta, yDelta, zDelta);\r\n\t\t\t   }\r\n          else\r\n\t\t\t    Trace(\"Warning, labware is null\");\r\n         }\r\n       else\r\n\t\t    Trace(\"Warning Deck Layout is null\");\r\n      }\r\n\r\n\r\n\r\n// Function will send values to the trace file\r\n   function TraceValues(variable value1, variable value2, variable value3, variable value4, variable value5, variable value6, variable value7, variable value8) void\r\n      {Trace(value1, value2, value3, value4, value5, value6, value7, value8);\r\n      }\r\n\r\n\r\n// Function will send a sequence to the trace file\r\n   function TraceSequence(sequence& seqObject) void\r\n      {private variable loopNum, currentPosition;\r\n\r\n       currentPosition = seqObject.GetCurrentPosition();\r\n       Trace(\"Trace sequence \", seqObject.GetName(), \"  -  total positions: \", seqObject.GetTotal(), \", current position: \", currentPosition, \", end position: \", seqObject.GetCount());\r\n       \r\n       for (loopNum=1 ; loopNum <= seqObject.GetTotal() ; loopNum++)\r\n           {Trace(\"Position \", loopNum, \"    labwareId: \", seqObject.GetLabwareId(), \"    positionId: \", seqObject.GetPositionId());\r\n            seqObject.Increment(1);\r\n           }\r\n       seqObject.SetCurrentPosition(currentPosition);\r\n      }\r\n\r\n\r\n// Function will trace out 1 array\r\n   function TraceArray(variable& description, variable& array1[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n           {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n            Trace(\"Position \", position, \": \", array1[loopNum]);\r\n           }\r\n      }\r\n\r\n\r\n// Function will trace out 2 arrays\r\n   function TraceArray2(variable& description, variable& array1[], variable& array2[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if (array1.GetSize() == array2.GetSize())\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize());\r\n      }\r\n\r\n\r\n// Function will trace out 3 arrays\r\n   function TraceArray3(variable& description, variable& array1[], variable& array2[], variable& array3[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if ((array1.GetSize() == array2.GetSize())&&(array1.GetSize() == array3.GetSize()))\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum], \"     \", array3[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize(), \",  Array3 size: \", array3.GetSize());\r\n      }\r\n\r\n\r\n// Function will trace out 4 arrays\r\n   function TraceArray4(variable& description, variable& array1[], variable& array2[], variable& array3[], variable& array4[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if ((array1.GetSize() == array2.GetSize())&&(array1.GetSize() == array3.GetSize())&&(array1.GetSize() == array4.GetSize()))\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum], \"     \", array3[loopNum], \"     \", array4[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize(), \",  Array3 size: \", array3.GetSize(), \",  Array4 size: \", array4.GetSize());\r\n      }\r\n\r\n\r\n// Function converts an xlsx file to xls.  Windows 2007 or higher must be installed on the system.\r\n   function ConvertXLSX_to_XLS(variable& path_sourceFile, variable& path_newFile) void\r\n      {object app, workbook, workbook_src;\r\n\r\n       app.CreateObject(\"Excel.Application\");\r\n       workbook = app.Workbooks();\r\n       workbook_src = workbook.Open(path_sourceFile);\r\n       app.DisplayAlerts = hslFalse;\r\n       app.Visible = hslFalse;\r\n       workbook_src.SaveAs(path_newFile, 56);\r\n       workbook_src.Close;\r\n      }\r\n\r\n\r\n// Function converts an xls file to xlsx.  Windows 2007 or higher must be installed on the system.\r\n   function ConvertXLS_to_XLSX(variable& path_sourceFile, variable& path_newFile) void\r\n      {object app, workbook, workbook_src;\r\n\r\n       app.CreateObject(\"Excel.Application\");\r\n       workbook = app.Workbooks();\r\n       workbook_src = workbook.Open(path_sourceFile);\r\n       app.DisplayAlerts = hslFalse;\r\n       app.Visible = hslFalse;\r\n       workbook_src.SaveAs(path_newFile, 51);\r\n       workbook_src.Close;\r\n      }\r\n\r\n\r\n// Function converts an AlphaNum to an Integer or an Integer to AlphaNum \r\n//  e.g. Convert 15 to G2 (96 well plate format)\r\n   function AlphaNumConversion(variable& convIndex, variable& posNum, variable& plateFormat) variable\r\n      {private variable returnValue, int_convIndex, int_posNum, int_column, int_row, str_row, int_plateFormat, divisor;\r\n       private string str_posNum;\r\n       \r\n\r\n       // First convert it to an integer in case the user enters a string\r\n       if (GetType(convIndex) == \"s\")\r\n           int_convIndex = APPSLIB::StrConvertToNumber(convIndex);\r\n       else\r\n           int_convIndex = convIndex;\r\n\r\n       // Convert the plateFormat variable type to integer (it should be either 96, 384 or 1536)\r\n       if (GetType(plateFormat) == \"s\")\r\n           int_plateFormat = APPSLIB::StrConvertToNumber(plateFormat);\r\n       else\r\n           int_plateFormat = plateFormat;\r\n\r\n       // Get the correct divisor based upon the plate format\r\n       if (int_plateFormat == 96)\r\n           divisor = 8;\r\n       else if (int_plateFormat == 384)\r\n           divisor = 16;\r\n       else if (int_plateFormat == 1536)\r\n           divisor = 32;\r\n       else\r\n           {Trace(\"Error - The correct plate type 96, 384, or 1536 was not used. \", plateFormat, \" is not a valid input.  The AlphaNumConversion failed.\");\r\n            convIndex = -1;\r\n           }\r\n\r\n       if (convIndex == 0) // Then convert a numeric position to a string (e.g. 7 to \"G1\")\r\n          {\r\n           // Convert the posNum variable to type integer if they mistakenly used a string\r\n           if (GetType(posNum) == \"s\")\r\n              {Trace(\"Variable type detected for variable: \", posNum, \" type \", GetType(posNum), \". Attempting to convert to type i.\");\r\n               int_posNum = APPSLIB::StrConvertToNumber(posNum);\r\n              }\r\n           else\r\n               int_posNum = posNum;\r\n                     \r\n           int_column = (int_posNum - ((int_posNum-1) % divisor) - 1);\r\n           int_column = (int_column / divisor) + 1;\r\n           int_row = (((int_posNum-1) % divisor) + 1) + 64;\r\n           str_row = StrAsciiToStr(int_row);\r\n           returnValue = str_row + IStr(int_column);\r\n\r\n           return (returnValue);\r\n          }\r\n       else if (convIndex == 1) // Then conver a string position to a number (e.g. \"G1\" to 7)\r\n          {\r\n           // If the posNum is not a string, don't try to convert, just send error to Trace\r\n           if (GetType(posNum) == \"s\")\r\n              {str_posNum = posNum;\r\n               int_row = StrStrToAscii(str_posNum.Left(1)) - 64;\r\n               int_column = IVal(str_posNum.Mid(1, str_posNum.GetLength() - 1));\r\n               returnValue = ((int_column - 1) * divisor) + int_row;\r\n               return (returnValue);\r\n              }\r\n           else\r\n               Trace(\"Error - the variable \", posNum, \" of type \", GetType(posNum), \" cannot be converted to a numeric value.  Use a valid string.\");\r\n          }\r\n       else\r\n           Trace(\"Error - invalid variable used for AlphaNumConversion step in Apps library. Variable convIndex contains: \", convIndex);\r\n      }\r\n\r\n\r\n//End the namespace\r\n}\r\n\r\n\r\n//For the GetSerialNumber step include:\r\n#ifndef __HSLStrLib_hsl__\r\n\t#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n\r\n// Gets the serial number from the instrument (instrument must be initialized)\r\nfunction GetSerialNumber(device& ML_STAR) variable\r\n{\r\n\tvariable command(\"\");\t\t\t\t\t\t\t\t// Command string\r\n\tvariable parameter(\"\");\t\t\t\t\t\t\t\t// Parameter string\r\n\tvariable serialNumber(\"\");\t\t\t\t\t\t\t// Serial number\r\n\tvariable rc[];\t\t\t\t\t\t\t\t\t\t\t// Low level step return values\r\n\r\n\t// Get serial number\r\n\tcommand = \"C0RI\";\t\t\t\t// Request Installation data\r\n\tparameter = \"\";\r\n\trc = ML_STAR.FirmwareCommand( \"1e78330b_4cb4_456b_84d80d3b33e97e73\" );\r\n\tif (4 == rc.GetSize())\r\n   {\r\n\t\tserialNumber = StrMid(rc.ElementAt(3), StrFind(rc.ElementAt(3), \"sn\"), 6);\r\n   }\r\n\treturn(StrMakeUpper(serialNumber));\r\n}\r\n\r\n\r\n\r\n#endif\r\n// $$author=Josh Brewer$$valid=0$$time=2013-06-12 14:08$$checksum=24c9bda3$$length=090$$"
  },
  {
    "path": "pyhamilton/library/HSLAppsLib.hsl",
    "content": "//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\ This library is a summary of the popular steps in many of the common libraries\r\n//*\\\\ Compiled by Scott Walton, Applications Specialist, Hamilton Company\r\n//*\\\\ Version 1.1 , Jan 2013\r\n//*\\\\  \r\n//*\\\\ Version1.2 - Jan 29th, 2013, -  1. enabled use of integers for site IDs,\r\n//*\\\\                                 2. moved the strConvertToString and strConvertToString\r\n//*\\\\                                    to beginning of list to use these functions in other \r\n//*\\\\                                    functions\r\n//*\\\\                                 3. Added the CopySeq function\r\n//*\\\\                                 4. Added the AlphaNumConversion function\r\n//*\\\\\r\n//*\\\\ Version1.3 - Aug 27th, 2013, -  1. Added the MultiDisp setup function\r\n//*\\\\                                 2. Fixed typo error in StringFind help file, 0 returned when not found\r\n//*\\\\                                 3. Removed the string library from the get serial number step\r\n//*\\\\                                 4. SequenceAdd - added a validation on the positionId input\r\n//*\\\\                                 5. In the trace array step, arrays of different sizes will be traced out separately\r\n//*\\\\                                 6. ArrayLookup - Changed to: if data types are different, they won't be compared\r\n//*\\\\                                 7. SequenceGetRemainingPositions changed && to ||\r\n//*\\\\\r\n//*\\\\ Version1.4 - Jan 2014 -         1. Added the ifndef then define the string library.\r\n//*\\\\\r\n//*\\\\ Version1.5 - Aug 2014 -         1. Added ReleaseObject() to ConvertToXLSX and XLS\r\n//*\\\\                                 2. Added function SequenceGetLabwareIds\r\n//*\\\\\r\n//*\\\\\r\n//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n\r\n\r\n\r\n\r\n#ifndef __HSLAppsLib_hsl__\r\n#define __HSLAppsLib_hsl__  1\r\n\r\n#ifndef __HSLStrLib_hsl__\r\n#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLLabwareStateLib_hsl__\r\n#include \"HSLLabwareStateLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLDeckVisualize_hsl__\r\n#include \"HSLDeckVisualize.hsl\"\r\n#endif\r\n\r\n\r\nnamespace APPSLIB\r\n{\r\n\r\n//////////////////////////////////////////////////////////////////////////////////////////////////////\r\n//////////////////////////////////////////////////////////////////////////////////////////////////////\r\n//LIBRARY FUNCTIONS\r\n\r\n\r\n// Function Looks up a value within an array (position is 1 based), returns hslTrue if found - else hslFalse\r\n   function ArrayLookup(variable& arrayToSearch[], variable& valueSearchedFor, variable& positionInArray) variable\r\n      {private variable returnValue(hslFalse), loopNum, value;\r\n\r\n       for(loopNum=0 ; loopNum < arrayToSearch.GetSize() ; loopNum++)\r\n          {value = arrayToSearch[loopNum];\r\n           if (GetType(value) == GetType(valueSearchedFor))\r\n              {if (value == valueSearchedFor)   //Value was found\r\n                  {positionInArray = loopNum + 1;  // value returned is 1 based\r\n                   returnValue = hslTrue;\r\n                   break;\r\n                  }\r\n              }\r\n          }\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function converts an integer or a float to to the corresponding string\r\n   function StrConvertToString(variable& floatOrInteger) string\r\n      {private variable varType;\r\n       private string returnValue;\r\n\r\n       varType = GetType(floatOrInteger);\r\n       if (varType == \"f\")\r\n           returnValue = FStr(floatOrInteger);\r\n       else if (varType == \"i\")\r\n           returnValue = IStr(floatOrInteger);\r\n       else\r\n           returnValue = floatOrInteger;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function converts a string into the float or integer value, depending on whether a \".\" is found\r\n   function StrConvertToNumber(string& stringVariable) variable\r\n      {private variable returnValue, varType, isFound;\r\n\r\n       varType = GetType(stringVariable);\r\n       if (varType == \"s\")\r\n          {isFound = stringVariable.Find(\".\");\r\n           if (isFound == -1)  //  stringVariable should be an integer\r\n               returnValue = IVal(stringVariable);\r\n           else                //  stringVariable should be a float\r\n               returnValue = FVal(stringVariable);\r\n          }\r\n       else\r\n           returnValue = stringVariable;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n // Function returns a string channel pattern - e.g. if tipUsed is 3, return \"00100000\", number of channels returned from dev library\r\n   function ChannelPatternSingleTip(device& deviceObj, variable& tipUsed) variable\r\n      {private string str_channelPattern;\r\n       private variable loopNumber(1), numberOfChannels;\r\n\r\n       numberOfChannels = deviceObj.GetCfgValueWithKey(1);\r\n       if (GetType(tipUsed) == \"s\")\r\n           tipUsed = IVal(tipUsed);       \r\n       loop (numberOfChannels)\r\n         {if (tipUsed == loopNumber) str_channelPattern = str_channelPattern + \"1\";\r\n          else str_channelPattern = str_channelPattern + \"0\";\r\n          loopNumber++;\r\n         }\r\n\r\n       Trace(\"Channel Pattern - Tip Used: \", tipUsed, \", number of channels: \", numberOfChannels, \", pattern returned: \", str_channelPattern);\r\n       return(str_channelPattern);\r\n      }\r\n\r\n\r\n // Function returns a string channel pattern - e.g. if tipsUsed is 3, return \"11100000\", number of channels reuturned from dev library\r\n   function ChannelPatternMultipleTip(device& deviceObj, variable& tipsUsed) variable\r\n      {private string str_channelPattern;\r\n       private variable loopNumber(1), numberOfChannels;\r\n\r\n       numberOfChannels = deviceObj.GetCfgValueWithKey(1);\r\n       if (GetType(tipsUsed) == \"s\")\r\n           tipsUsed = IVal(tipsUsed);  \r\n       loop (numberOfChannels)\r\n         {if (loopNumber <= tipsUsed) str_channelPattern = str_channelPattern + \"1\";\r\n          else str_channelPattern = str_channelPattern + \"0\";\r\n          loopNumber++;\r\n         }\r\n       Trace(\"Channel Pattern - Tips Used: \", tipsUsed, \", number of channels: \", numberOfChannels, \", pattern returned: \", str_channelPattern);\r\n       return(str_channelPattern);\r\n      }\r\n\r\n\r\n// Function updates the loaded labware on the deck\r\n   function UpdateLoadedLabware(device& deviceObj, variable labwareIDs[], variable labwareStates[]) void\r\n      {private variable description(\"\");\r\n       DeckVisualize::UpdateLoadedLabware(deviceObj, labwareIDs, labwareStates, description);\r\n     }\r\n\r\n\r\n// Function Adds Labware to the deck based upon defined coordinates\r\n   function DevAddLabware(device& deviceObj, variable& labwareId, variable& configFile, variable xCoord, variable yCoord, variable zCoord, variable angle) variable\r\n      {private variable returnValue(0);\r\n       private variable position[](4);\r\n\r\n       position[0] = xCoord;\r\n       position[1] = yCoord;\r\n       position[2] = zCoord;\r\n       position[3] = angle;\r\n       returnValue = deviceObj.AddLabware(labwareId, configFile, position);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function adds labware to a specific site on a template\r\n   function DevAddLabwareToTemplate(device& deviceObj, variable& labwareId, variable& configFile, variable& templateId, variable& siteId) variable\r\n      {private variable returnValue(0);\r\n       private string str_siteId;\r\n       if (GetType(siteId) != \"s\")\r\n           str_siteId = APPSLIB::StrConvertToString(siteId);\r\n       else\r\n           str_siteId = siteId;\r\n       returnValue = deviceObj.AddLabwareToTemplate(labwareId, configFile, templateId, str_siteId);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function removes labware from the deck\r\n   function DevRemoveLabware(device& deviceObj, variable& labwareId) variable\r\n      {private variable returnValue(0);\r\n\r\n       returnValue = deviceObj.RemoveLabware(labwareId);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Gets the position of labware, position defined by the deck coordinates\r\n   function DevGetLabwarePosition(device& deviceObj, variable& labwareId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle) variable\r\n      {private variable returnValue(0);\r\n       private variable position[];\r\n\r\n       returnValue = deviceObj.GetLabwarePosition(labwareId, position);\r\n       xCoord = position[0];\r\n       yCoord = position[1];\r\n       zCoord = position[2];\r\n       angle =  position[3];\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Gets the position of labware's position ID, position defined by the deck coordinates\r\n   function DevGetLabwarePositionEx(device& deviceObj, variable& labwareId, variable& positionId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle)variable\r\n      {private variable returnValue(0), str_pos;\r\n       private variable position[];\r\n\r\n       if (GetType(positionId) != \"s\")\r\n          {if (GetType(positionId) == \"f\")\r\n              str_pos = FStr(positionId);\r\n           else\r\n              str_pos = IStr(positionId);\r\n          }\r\n       else\r\n           str_pos = positionId;\r\n       returnValue = deviceObj.GetLabwarePosition(labwareId, position, str_pos);\r\n       xCoord = position[0];\r\n       yCoord = position[1];\r\n       zCoord = position[2];\r\n       angle =  position[3];\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets a barcode that has been set by a scanner or SetLabwareBarcode smart step (data handling step)\r\n// Returns the labware barcode at the current position of a sequence, uses HSLLabwareStateLibImpl.hs_ included\r\n   function GetLabwareBarcode(device& deviceObj, sequence& Sequence, variable& labwareLevel) variable\r\n      {private variable barcode;\r\n\r\n       barcode = HSLLabwState::GetLabwareBarcode(deviceObj, Sequence, labwareLevel);\r\n       return (barcode);\r\n      }\r\n\r\n\r\n// Function rounds the float to the specified number of of digits passed the decimal place.  Zero returns integers\r\n   function MathRound(variable& number, variable& numberOfDecimalPlaces) variable\r\n      {private variable integerPortion(0.0);\r\n\t    private variable fractionalPortion(0.0);\r\n\t    private variable returnValue(0.0);\r\n\r\n\t    integerPortion = Floor(number, hslTrue);\r\n\t    fractionalPortion = number - integerPortion;\r\n\t    returnValue = integerPortion + Floor((10.0^numberOfDecimalPlaces) * fractionalPortion + 0.5) / (10.0^numberOfDecimalPlaces);\r\n\t    if (0 == numberOfDecimalPlaces)\r\n\t\t    return(Floor(returnValue));\r\n       else\r\n\t\t    return(returnValue);\r\n      }\r\n\r\n\r\n// Function adds a new position to the end of the given sequence\r\n   function SequenceAdd(sequence& sequenceObj, variable& labwareId, variable& positionId) void\r\n      {private variable str_positionId;\r\n       if (GetType(positionId) !=\"s\")\r\n          {str_positionId = APPSLIB::StrConvertToString(positionId);\r\n          }\r\n       else\r\n          {str_positionId = positionId;\r\n          }\r\n       sequenceObj.Add(labwareId, str_positionId);\r\n      }\r\n\r\n\r\n// Function brings a visual dialogs to graphically edit a sequence\r\n   function SequenceEdit(sequence& seqObject,device deviceObj,variable title,variable prompt,variable timeout,variable initFromConfig, variable first, variable last, variable editable, variable cfgFile) void\r\n      {seqObject.Edit(deviceObj, title, prompt, timeout, initFromConfig, first, last, editable, cfgFile);\r\n      }\r\n\r\n\r\n// Function gets the labware ID of the current position of the sequence\r\n   function SequenceGetLabwareId(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n       \r\n       returnValue = seqObject.GetLabwareId();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function will get the list of all the unique labware IDs within a sequence,\r\n// will return positions only between the start and end position of the sequence\r\n   function SequenceGetLabwareIds(sequence& seqObject, variable& arrLabwareIds[]) variable\r\n      {private variable i;\r\n       private variable labID;\r\n       private variable isFound;\r\n       private variable arrayPosition;\r\n       private variable currentPosition;\r\n       private variable loopsTotal;\r\n\r\n       currentPosition = seqObject.GetCurrentPosition();\r\n       arrLabwareIds.SetSize(0);\r\n       loopsTotal = (seqObject.GetCount() - currentPosition) + 1;\r\n        \r\n       if (loopsTotal < 1)\r\n         {Trace(\"APPSLIB User Error SequenceGetLabwareIds: The sequence end position is less than the start position.\");\r\n          return(1);\r\n         }\r\n       for (i = 0 ; i < loopsTotal ; i++)\r\n         {labID = seqObject.GetLabwareId();\r\n          isFound = ArrayLookup(arrLabwareIds, labID, arrayPosition);\r\n          if (isFound == 0) arrLabwareIds.AddAsLast(labID);\r\n          seqObject.Increment(1);\r\n         }\r\n\r\n       seqObject.SetCurrentPosition(currentPosition);\r\n       return(0);\r\n      }\r\n\r\n\r\n// Function gets the position ID of the current position of the sequence\r\n   function SequenceGetPositionId(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetPositionId();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function copies a plate pattern\r\n   function CopyPlatePatternToPlate (sequence sourcePlate, sequence& targetPlate) void\r\n      {private variable labwareId, position, total, loopNum;\r\n       sourcePlate.SetCurrentPosition(1);\r\n       targetPlate.SetCurrentPosition(1);\r\n       labwareId = targetPlate.GetLabwareId();\r\n\r\n       //Remove All positions from the targetPlate sequence\r\n       total = targetPlate.GetTotal();\r\n\t    targetPlate.SetCount(total);\r\n\t    targetPlate.SetCurrentPosition(1);\r\n\t    for (position = total; 0 < position; position--)\r\n\t\t      targetPlate.RemoveAt(position);\r\n\t    targetPlate.SetCount(0);\r\n\t    targetPlate.SetCurrentPosition(0);\r\n\t    targetPlate.SetMax(0);\r\n\r\n       // loop over the source sequence and copy the positions to the target plate sequence\r\n       for (loopNum=1 ; loopNum <= sourcePlate.GetTotal() ; loopNum++)\r\n            {targetPlate.Add(labwareId, targetPlate.GetPositionId());\r\n             sourcePlate.Increment(1);\r\n            }\r\n       targetPlate.SetCurrentPosition(1);\r\n      }\r\n\r\n\r\n// Function gets the total positions in the sequence\r\n   function SequenceGetTotal(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetTotal();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets the number of positions in the sequence, if an end position is set\r\n//   that is before the last position, then this number will be less the the GetTotal number of positions\r\n   function SequenceGetCount(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetCount();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets the remaining positions left in the sequence\r\n   function SequenceTotalPosRemaining(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       if ((seqObject.GetCount() == 0) || (seqObject.GetCurrentPosition() == 0)) // no positions in the sequence\r\n          returnValue = 0;\r\n       else\r\n          returnValue = (seqObject.GetCount() - seqObject.GetCurrentPosition()) + 1;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function increments a sequence by the amount requested\r\n   function SequenceIncrement(sequence& seqObject, variable increment) void\r\n      {seqObject.Increment(increment);\r\n      }\r\n\r\n\r\n// Function removes all positions from a sequence, after re-adding positions to the sequence sequence must be set to 1 again or error occrus\r\n   function SequenceRemoveAll(sequence& seqObject) void\r\n      {private variable position, total;\r\n\r\n\t    total = seqObject.GetTotal();\r\n\t    seqObject.SetCount(total);\r\n\t    seqObject.SetCurrentPosition(1);\r\n\t    for (position = total; 0 < position; position--)\r\n\t\t    seqObject.RemoveAt(position);\r\n\t    seqObject.SetCount(0);\r\n\t    seqObject.SetCurrentPosition(0);\r\n\t    seqObject.SetMax(0);\r\n      }\r\n\r\n\r\n// Function removes a sequence position at the requested position\r\n   function SequenceRemoveAt(sequence& seqObject, position) void\r\n      {variable int;\r\n       if (GetType(position) == \"f\")\r\n          {int = APPSLIB::MathRound(position, 0);\r\n           seqObject.RemoveAt(int);\r\n          }\r\n       else if (GetType(position) == \"s\")\r\n           seqObject.RemoveAt(IVal(position));\r\n       else\r\n           seqObject.RemoveAt(position);\r\n      }\r\n\r\n\r\n// Function overwrites a target sequence with the contents of the source sequence\r\nfunction SequenceCopySeq(sequence& targetSequence, sequence& sourceSequence) void\r\n{\r\n\ttargetSequence.CopySequence(sourceSequence);\r\n}\r\n\r\n\r\n// Function concatenates the strings and returns the caoncatenated string, if non-string values are given, then convert them into strings\r\n   function StrConcatenate(variable var1, variable var2, variable var3, variable var4, variable var5, variable var6, variable var7, variable var8) variable\r\n      {private variable loopNum, varType, varPos;\r\n       private string returnValue, str_var;\r\n       private variable varArray[](8);\r\n\r\n       varArray[0] = var1; varArray[1] = var2; varArray[2] = var3; varArray[3] = var4;\r\n       varArray[4] = var5; varArray[5] = var6; varArray[6] = var7; varArray[7] = var8;\r\n       for (loopNum=0; loopNum < varArray.GetSize(); loopNum++)\r\n         {varType = GetType(varArray[loopNum]);\r\n          varPos = varArray[loopNum];\r\n          if (varType == \"f\")\r\n             {str_var = FStr(varPos);\r\n              returnValue = returnValue + str_var;\r\n             }\r\n          else if (varType == \"i\")\r\n             {str_var = IStr(varPos);\r\n              returnValue = returnValue + str_var;\r\n             }\r\n          else if (varType == \"s\")\r\n             returnValue = returnValue + varPos;\r\n         }\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Finds a substring within a string, returnValue is 1 based\r\n   function StringFind(variable& strObject, variable& subStrToFind) variable\r\n      {private variable returnValue;\r\n       private string str_strObject, str_subStrToFind;\r\n       \r\n       if (GetType(strObject) !=\"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(subStrToFind) !=\"s\")\r\n           str_subStrToFind = APPSLIB::StrConvertToString(subStrToFind);\r\n       else\r\n           str_subStrToFind = subStrToFind;\r\n       returnValue = str_strObject.Find(str_subStrToFind);\r\n       returnValue++;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a number leftmost characters of a string\r\n   function StringLeft(variable& strObject, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       returnValue = str_strObject.Left(numberOfChar);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a number of rightmost characters of a string\r\n   function StringRight(variable& strObject, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       returnValue = str_strObject.Right(numberOfChar);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns the length of a string\r\n   function StringGetLength(variable& strObject) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n       \r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       returnValue = str_strObject.GetLength();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a string within a given string, position should be 1 based\r\n   function StringMid(variable& strObject,variable& startPosition, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(startPosition) == \"s\")\r\n          {startPosition = APPSLIB::StrConvertToNumber(startPosition);\r\n           if (GetType(startPosition) == \"f\")\r\n               startPosition = APPSLIB::MathRound(startPosition, 0);\r\n          }\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       // Check to see if the start position and the number of characters exceeds the length of the string\r\n       if ((APPSLIB::StringGetLength(str_strObject) + 1) < (startPosition + numberOfChar))\r\n          Trace(\"APPSLIB::StringMid Error: the requested string exceeds the length of the string.\");\r\n       startPosition--;\r\n       returnValue = str_strObject.Mid(startPosition, numberOfChar);\r\n       startPosition++;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function will shift the labware of the current position in the sequence\r\n   function MoveSequence(device& deviceObj, sequence& Sequence, variable& xDelta, variable yDelta, variable zDelta) void\r\n      {private variable labID;\r\n\t    object editLabware;\r\n\t\t object deckLayout;\r\n\t\t object labware;\r\n\r\n\t\t labID = Sequence.GetLabwareId();\r\n       deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout\r\n\t\t if(!deckLayout.IsNull())\r\n         {labware = deckLayout.Labware(labID);\r\n\t\t    if(!labware.IsNull())\r\n            {labware.GetObject2(\"{39A3639F-97AB-444D-86D3-253122BD2202}\", editLabware); // get IEditLabware5\r\n\t\t\t\t editLabware.MoveDelta(xDelta, yDelta, zDelta);\r\n\t\t\t   }\r\n          else\r\n\t\t\t    Trace(\"Warning, labware is null\");\r\n         }\r\n       else\r\n\t\t    Trace(\"Warning Deck Layout is null\");\r\n      }\r\n\r\n\r\n// Function will shift the labware based upon the LabwareID\r\n   function MoveLabware(device& deviceObj, variable& labwareId, variable& xDelta, variable yDelta, variable zDelta) void\r\n      {private variable labID;\r\n\t    object editLabware;\r\n\t\t object deckLayout;\r\n\t\t object labware;\r\n\r\n       deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout\r\n\t\t if(!deckLayout.IsNull())\r\n         {labware = deckLayout.Labware(labwareId);\r\n\t\t    if(!labware.IsNull())\r\n            {labware.GetObject2(\"{39A3639F-97AB-444D-86D3-253122BD2202}\", editLabware); // get IEditLabware5\r\n\t\t\t\t editLabware.MoveDelta(xDelta, yDelta, zDelta);\r\n\t\t\t   }\r\n          else\r\n\t\t\t    Trace(\"Warning, labware is null\");\r\n         }\r\n       else\r\n\t\t    Trace(\"Warning Deck Layout is null\");\r\n      }\r\n\r\n\r\n// Function will send values to the trace file\r\n   function TraceValues(variable value1, variable value2, variable value3, variable value4, variable value5, variable value6, variable value7, variable value8) void\r\n      {Trace(value1, value2, value3, value4, value5, value6, value7, value8);\r\n      }\r\n\r\n\r\n// Function will send a sequence to the trace file\r\n   function TraceSequence(sequence& seqObject) void\r\n      {private variable loopNum, currentPosition;\r\n\r\n       currentPosition = seqObject.GetCurrentPosition();\r\n       Trace(\"Trace sequence \", seqObject.GetName(), \"  -  total positions: \", seqObject.GetTotal(), \", current position: \", currentPosition, \", end position: \", seqObject.GetCount());\r\n       \r\n       for (loopNum=1 ; loopNum <= seqObject.GetTotal() ; loopNum++)\r\n           {Trace(\"Position \", loopNum, \"    labwareId: \", seqObject.GetLabwareId(), \"    positionId: \", seqObject.GetPositionId());\r\n            seqObject.Increment(1);\r\n           }\r\n       seqObject.SetCurrentPosition(currentPosition);\r\n      }\r\n\r\n\r\n// Function will trace out 1 array\r\n   function TraceArray(variable& description, variable& array1[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n           {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n            Trace(\"Position \", position, \": \", array1[loopNum]);\r\n           }\r\n      }\r\n\r\n\r\n// Function will trace out 2 arrays\r\n   function TraceArray2(variable& description, variable& array1[], variable& array2[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if (array1.GetSize() == array2.GetSize())\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          {Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize());\r\n           APPSLIB::TraceArray(\"Array1\", array1);\r\n           APPSLIB::TraceArray(\"Array2\", array2);\r\n          }\r\n      }\r\n\r\n\r\n// Function will trace out 3 arrays\r\n   function TraceArray3(variable& description, variable& array1[], variable& array2[], variable& array3[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if ((array1.GetSize() == array2.GetSize())&&(array1.GetSize() == array3.GetSize()))\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum], \"     \", array3[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          {Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize(), \",  Array3 size: \", array3.GetSize());\r\n           APPSLIB::TraceArray(\"Array1\", array1);\r\n           APPSLIB::TraceArray(\"Array2\", array2);\r\n           APPSLIB::TraceArray(\"Array3\", array3);\r\n          }\r\n      }\r\n\r\n\r\n// Function will trace out 4 arrays\r\n   function TraceArray4(variable& description, variable& array1[], variable& array2[], variable& array3[], variable& array4[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if ((array1.GetSize() == array2.GetSize())&&(array1.GetSize() == array3.GetSize())&&(array1.GetSize() == array4.GetSize()))\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum], \"     \", array3[loopNum], \"     \", array4[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          {Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize(), \",  Array3 size: \", array3.GetSize(), \",  Array4 size: \", array4.GetSize());\r\n           APPSLIB::TraceArray(\"Array1\", array1);\r\n           APPSLIB::TraceArray(\"Array2\", array2);\r\n           APPSLIB::TraceArray(\"Array3\", array3);\r\n           APPSLIB::TraceArray(\"Array4\", array4);\r\n\r\n          }\r\n      }\r\n\r\n\r\n// Function converts an xlsx file to xls.  Windows 2007 or higher must be installed on the system.\r\n   function ConvertXLSX_to_XLS(variable& path_sourceFile, variable& path_newFile) void\r\n      {object app, workbook, workbook_src;\r\n\r\n       app.CreateObject(\"Excel.Application\");\r\n       workbook = app.Workbooks();\r\n       workbook_src = workbook.Open(path_sourceFile);\r\n       app.DisplayAlerts = hslFalse;\r\n       app.Visible = hslFalse;\r\n       workbook_src.SaveAs(path_newFile, 56);\r\n       workbook_src.Close;\r\n       app.ReleaseObject();\r\n      }\r\n\r\n\r\n// Function converts an xls file to xlsx.  Windows 2007 or higher must be installed on the system.\r\n   function ConvertXLS_to_XLSX(variable& path_sourceFile, variable& path_newFile) void\r\n      {object app, workbook, workbook_src;\r\n\r\n       app.CreateObject(\"Excel.Application\");\r\n       workbook = app.Workbooks();\r\n       workbook_src = workbook.Open(path_sourceFile);\r\n       app.DisplayAlerts = hslFalse;\r\n       app.Visible = hslFalse;\r\n       workbook_src.SaveAs(path_newFile, 51);\r\n       workbook_src.Close;\r\n       app.ReleaseObject();\r\n      }\r\n\r\n\r\n// Function converts an AlphaNum to an Integer or an Integer to AlphaNum \r\n//  e.g. Convert 15 to G2 (96 well plate format)\r\n   function AlphaNumConversion(variable& convIndex, variable& posNum, variable& plateFormat) variable\r\n      {private variable returnValue, int_convIndex, int_posNum, int_column, int_row, str_row, int_plateFormat, divisor;\r\n       private string str_posNum;\r\n       \r\n\r\n       // First convert it to an integer in case the user enters a string\r\n       if (GetType(convIndex) == \"s\")\r\n           int_convIndex = APPSLIB::StrConvertToNumber(convIndex);\r\n       else\r\n           int_convIndex = convIndex;\r\n\r\n       // Convert the plateFormat variable type to integer (it should be either 96, 384 or 1536)\r\n       if (GetType(plateFormat) == \"s\")\r\n           int_plateFormat = APPSLIB::StrConvertToNumber(plateFormat);\r\n       else\r\n           int_plateFormat = plateFormat;\r\n\r\n       // Get the correct divisor based upon the plate format\r\n       if (int_plateFormat == 96)\r\n           divisor = 8;\r\n       else if (int_plateFormat == 384)\r\n           divisor = 16;\r\n       else if (int_plateFormat == 1536)\r\n           divisor = 32;\r\n       else\r\n           {Trace(\"Error - The correct plate type 96, 384, or 1536 was not used. \", plateFormat, \" is not a valid input.  The AlphaNumConversion failed.\");\r\n            convIndex = -1;\r\n           }\r\n\r\n       if (convIndex == 0) // Then convert a numeric position to a string (e.g. 7 to \"G1\")\r\n          {\r\n           // Convert the posNum variable to type integer if they mistakenly used a string\r\n           if (GetType(posNum) == \"s\")\r\n              {Trace(\"Variable type detected for variable: \", posNum, \" type \", GetType(posNum), \". Attempting to convert to type i.\");\r\n               int_posNum = APPSLIB::StrConvertToNumber(posNum);\r\n              }\r\n           else\r\n               int_posNum = posNum;\r\n                     \r\n           int_column = (int_posNum - ((int_posNum-1) % divisor) - 1);\r\n           int_column = (int_column / divisor) + 1;\r\n           int_row = (((int_posNum-1) % divisor) + 1) + 64;\r\n           str_row = StrAsciiToStr(int_row);\r\n           returnValue = str_row + IStr(int_column);\r\n\r\n           return (returnValue);\r\n          }\r\n       else if (convIndex == 1) // Then conver a string position to a number (e.g. \"G1\" to 7)\r\n          {\r\n           // If the posNum is not a string, don't try to convert, just send error to Trace\r\n           if (GetType(posNum) == \"s\")\r\n              {str_posNum = posNum;\r\n               int_row = StrStrToAscii(str_posNum.Left(1)) - 64;\r\n               int_column = IVal(str_posNum.Mid(1, str_posNum.GetLength() - 1));\r\n               returnValue = ((int_column - 1) * divisor) + int_row;\r\n               return (returnValue);\r\n              }\r\n           else\r\n               Trace(\"Error - the variable \", posNum, \" of type \", GetType(posNum), \" cannot be converted to a numeric value.  Use a valid string.\");\r\n          }\r\n       else\r\n           Trace(\"Error - invalid variable used for AlphaNumConversion step in Apps library. Variable convIndex contains: \", convIndex);\r\n      }\r\n\r\n\r\n/* Function sets up a multi dispense, Enter the dispense volume the target sequence, and the max volume that can be\r\n   aspirated in each tip.  This function will then return the number of dispenses and the arpirate volume for each channel.\r\n   Before each dispense, there should be a step to get the remaining number of posistions in the sequence then\r\n   change the channel pattern accordingly.\r\n*/\r\n   function MultiDispSetup(variable& i_dispVolume, sequence& i_targetSeq, variable& i_maxAspVolume,\r\n                           variable& i_numberOfChannels, variable& o_numberOfDispenses, variable& o_volumeArray[]) void\r\n      {private variable columns(0);\r\n       private variable fullColumns(0);\r\n       private variable partialColumn(0);\r\n       private variable subtractDisp(0);\r\n       private variable i;\r\n\r\n       // Validate the input variables\r\n       if (GetType(i_dispVolume) == \"s\")\r\n          {i_dispVolume = APPSLIB::StrConvertToNumber(i_dispVolume);}\r\n\r\n       if (GetType(i_maxAspVolume) == \"s\")\r\n          {i_maxAspVolume = APPSLIB::StrConvertToNumber(i_maxAspVolume);}\r\n\r\n       if (GetType(i_numberOfChannels) == \"s\")\r\n          {i_numberOfChannels = APPSLIB::StrConvertToNumber(i_numberOfChannels);}\r\n\r\n       if (i_numberOfChannels > 16 || i_numberOfChannels < 1)\r\n         {Trace(\"APPSLIB Error MultiDispSetup: The number of channels is invalid for the MultiDisp setup. Channel number entered: \", i_numberOfChannels);}\r\n\r\n       else if (i_dispVolume < 0 || i_dispVolume > 5000 || i_maxAspVolume < 0 || i_maxAspVolume > 5000)\r\n         {Trace(\"APPSLIB Error MultiDispSetup: The asp and disp volumes entered are invalid. Dispense volume entered: \", i_dispVolume, \",  Max Aspirate volume entered: \", i_maxAspVolume);}\r\n\r\n       else if (i_maxAspVolume < i_dispVolume)\r\n         {Trace(\"APPSLIB Error MultiDispSetup: The i_maxAspVolume input variable must be greater than or equal to the i_dispVolume input variable.\");\r\n          Trace(\"APPSLIB Error MultiDispSetup: i_maxAspVolume: \", i_maxAspVolume, \", i_dispVolume: \", i_dispVolume);\r\n         }\r\n         \r\n       // All input variables checked for the correct variable type and range\r\n       else\r\n         {\r\n          o_numberOfDispenses = APPSLIB::MathRound((i_maxAspVolume / i_dispVolume), 0);\r\n          fullColumns = APPSLIB::SequenceTotalPosRemaining(i_targetSeq) / i_numberOfChannels;\r\n          partialColumn = APPSLIB::SequenceTotalPosRemaining(i_targetSeq) % i_numberOfChannels;\r\n\r\n          if (partialColumn > 0)\r\n            {columns = fullColumns + 1;\r\n            }\r\n\r\n          /* If the number of columns remaining in the sequence left to pipet is less than or equal to the\r\n             max possible number of dispenses allowed then return the number of columns remaining\r\n             as the number of dispenses. - Else leave it as the maximum\r\n          */\r\n          if (columns <= o_numberOfDispenses)\r\n            {o_numberOfDispenses = columns;\r\n            }\r\n          else\r\n            {partialColumn = 0;\r\n            }\r\n       \r\n          // subract an amount from the asp amount so that some tips don't end up with residual amounts of reagent\r\n          // on the last partial column dispense\r\n          o_volumeArray.SetSize(i_numberOfChannels);\r\n          for (i=0 ; i < i_numberOfChannels; i++)\r\n            {if ((partialColumn > 0) && (partialColumn < (8-i)))\r\n               {subtractDisp = i_dispVolume;\r\n               }\r\n             else\r\n               {subtractDisp = 0;\r\n               }\r\n             o_volumeArray.SetAt((i_numberOfChannels - i) - 1, (i_dispVolume * o_numberOfDispenses) - subtractDisp);\r\n             }\r\n          APPSLIB::TraceArray(\"Volume Array for multiDispense: \", o_volumeArray);\r\n         }\r\n      }\r\n\r\n\r\n//End the namespace\r\n}\r\n\r\n// Gets the serial number from the instrument (instrument must be initialized)\r\nfunction GetSerialNumber(device& ML_STAR) variable\r\n{\r\n\tvariable command(\"\");\t\t\t\t\t\t\t\t// Command string\r\n\tvariable parameter(\"\");\t\t\t\t\t\t\t\t// Parameter string\r\n\tvariable serialNumber(\"\");\t\t\t\t\t\t\t// Serial number\r\n   string str_serialNumber(\"\");\r\n   variable first_char;\r\n\tvariable rc[];\t\t\t\t\t\t\t\t\t\t\t// Low level step return values\r\n\r\n\t// Get serial number\r\n\tcommand = \"C0RI\";\t\t\t\t// Request Installation data\r\n\tparameter = \"\";\r\n\trc = ML_STAR.FirmwareCommand( \"1e78330b_4cb4_456b_84d80d3b33e97e73\" );\r\n   \r\n\tif (4 == rc.GetSize())\r\n   {\r\n      str_serialNumber = rc.ElementAt(3);\r\n      first_char = str_serialNumber.Find(\"sn\");\r\n      str_serialNumber = str_serialNumber.Mid(first_char, 6);\r\n\t\t//serialNumber = StrMid(rc.ElementAt(3), StrFind(rc.ElementAt(3), \"sn\"), 6);\r\n   }\r\n   serialNumber = str_serialNumber.MakeUpper();\r\n\treturn(serialNumber);\r\n}\r\n\r\n\r\n#endif\r\n\r\n\r\n\r\n\r\n\r\n// $$author=walton_s$$valid=0$$time=2014-09-08 09:22$$checksum=2a469957$$length=085$$"
  },
  {
    "path": "pyhamilton/library/HSLBarcodeReader.hs_",
    "content": "// ======================================================================\r\n// This is a part of the HSL BarcodeReader Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//\t\t2002-05-24\t fbrehm\t\t:\tRemove PVCS header\r\n//\t\t2002-06-25   ubernhard\t:\tSCR#155: corrected bug in function Read()\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Case: manuall input of Barcode;\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t leaving the dialog with Cancel returns \r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t now an empty String)\r\n//\t\t2005-11-30\t ubernhard\t:\tSCR#1118: make library schedulable\r\n//\t\t2007-09-17\t ubernhard\t:\tSupport of simulation flag\r\n//\t\t\t\t\t\t\t\t\t\t\tAdd new interface function SetSimulation()\r\n// \r\n// ======================================================================\r\n\r\n#ifndef __HSLBarcodeReaderImpl_hsl__\r\n#define __HSLBarcodeReaderImpl_hsl__\t1\r\n\r\n// includes\r\n#ifndef __HSLStrLib_hsl__\r\n#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n// debug switch\r\n//#define _DEBUG \t\t\t\t\t\t\t\t1\r\n\r\n// ======================================================================\r\n// Implementation of HSLBarcodeReader library \r\n// ======================================================================\r\n\r\nnamespace HSLBarcodeReader\r\n{\r\n\t#ifndef __HSLStringTableLib_hsl__\r\n\t#include \"HSLStringTableLib.hs_\"\r\n\t#endif\r\n\r\n\tnamespace errorID\r\n\t{\r\n\t\tstatic const variable first(0);\t\t\t\t\t\t\t\t\t\t\t// guard\r\n\t\tstatic const variable noError(first);\t\t\t\t\t\t\t\t\t// No error\r\n\t\tstatic const variable fatalError(first + 1);\t\t\t\t\t\t\t// General unspecific error\r\n\t\tstatic const variable readError(first + 2);\t\t\t\t\t\t\t// Read error\r\n\t\tstatic const variable last(first + 2);\t\t\t\t\t\t\t\t\t// guard\r\n\t}\r\n\r\n\tnamespace stringID\r\n\t{\r\n\t\tstatic const variable first(errorID::last + 1);\t\t\t\t\t\t// guard\r\n\t\tstatic const variable userPrompt(first);\t\t\t\t\t\t\t\t// User prompt for input barcode\r\n\t\tstatic const variable helpFileName(first + 1);\t\t\t\t\t\t// Name of helpfile\r\n\t\tstatic const variable inputBoxTitel(first + 2);\t\t\t\t\t\t// Titel of barode input-box\r\n\t\tstatic const variable messageBoxTitel(first + 3);\t\t\t\t\t// Titel of read error message-box\r\n\t\tstatic const variable traceSource(first + 4);\t\t\t\t\t\t// source for formated trace\r\n\t\tstatic const variable traceActionSetComPort(first + 5);\t\t\t// action for formated trace\r\n\t\tstatic const variable traceActionSetTimeout(first + 6);\t\t\t// action for formated trace\r\n\t\tstatic const variable traceActionSetErrorRecovery(first + 7);\t// action for formated trace\r\n\t\tstatic const variable traceActionRead(first + 8);\t\t\t\t\t// action for formated trace\r\n\t\tstatic const variable traceActionDeleteComBuffer(first + 9);\t// action for formated trace\r\n\t\tstatic const variable traceActionSetSimulation(first + 10);\t\t// action for formated trace\r\n\r\n\t\tstatic const variable traceAdditionalSetComPort(first + 11);\t// com port used\r\n\t\tstatic const variable traceAdditionalSetTimeout(first + 12);\t// timeout set\r\n\t\tstatic const variable traceAdditionalSetTimeoutInfinite(first + 13);\t// timeout set\r\n\t\tstatic const variable traceAdditionalSetErrorRecovery_0(first + 14);\r\n\t\tstatic const variable traceAdditionalSetErrorRecovery_1(first + 15);\r\n\t\tstatic const variable traceAdditionalSetErrorRecovery_2(first + 16);\r\n\t\tstatic const variable traceAdditionalRead(first + 17);\r\n\t\tstatic const variable traceAdditionalSetSimulation(first + 18);\r\n\t\tstatic const variable traceTextOn(first + 19);\r\n\t\tstatic const variable traceTextOff(first + 20);\r\n\r\n\t\tstatic const variable traceErrorInvalidDatatype(first + 21);\t// error for formated trace\r\n\t\tstatic const variable traceErrorInvalidComPort(first + 22);\t\t// error for formated trace\r\n\t\tstatic const variable traceErrorInvalidArgument(first + 23);\t// error for formated trace\r\n\t\tstatic const variable traceErrorReadError(first + 24);\t\t\t// error for formated trace\r\n\t\tstatic const variable traceRecManEnteredBC(first + 25);\t\t\t// description of error recovery done\r\n\t\tstatic const variable traceRecCancelPressed(first + 26);\t\t\t// description of error recovery done\r\n\t\tstatic const variable last(first + 26);\t\t\t\t\t\t\t\t// guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Global data\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tglobal variable mg_barcode(\"\");\r\n\tglobal variable mg_baudRate(0);\r\n\tglobal variable mg_comPort(\"\");\r\n\tglobal variable mg_comSetting;\r\n\tglobal variable mg_errRecovery(1);\r\n\tglobal file mg_port;\r\n\tglobal variable mg_isSimulation(hslFalse);\r\n\tglobal variable mg_readTimeout(10);\t\t\t\t// default 10 seconds\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Exception Handling\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tnamespace Error\r\n\t{\r\n\t\tstatic function Raise(\t\t\t\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] error id, one of IDE\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\r\n\t\t\t// set error description\r\n\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + funcName + \"()\\n\" + StringTable::Load(errorId);\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), StringTable::Load(stringID::helpFileName));\r\n\t\t}\r\n\r\n\t\tfunction RaiseEx(\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] error id, one of IDE\r\n\t\t\tvariable errorDesc,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] error description\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\r\n\t\t\t// set error description\r\n\t\t\tif (\"\" == funcName)\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + errorDesc;\r\n\t\t\telse\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + funcName + \"()\\n\" + errorDesc;\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), StringTable::Load(stringID::helpFileName));\r\n\t\t}\r\n\r\n\t\tfunction RaiseLast()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// re-throws the last runtime error\r\n\t\t{\r\n\t\t\t// re-raise error\r\n\t\t\terr.Raise();\r\n\t\t}\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Library Initialization\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tstatic variable initializedLib(hslFalse);\t\t// initialization state of the HxBarcodeReader library\r\n\r\n\tstatic function InitBarcodeReaderLibrary();\t// initializes the HxBarcodeReader library (only once)\r\n\r\n\tstatic function InitBarcodeReaderLibrary()\r\n\t{\r\n\t\t// initialize the HxBarcodeReaderlibrary once only\r\n\t\tif(!initializedLib)\r\n\t\t{\r\n\t\t\tStringTable::Init(\"HSLBarcodeReaderStringTable\");\r\n\r\n\t\t\t#ifdef _DEBUG\r\n\t\t\t\tStringTable::Dump();\r\n\t\t\t#endif\r\n\t\t\t\r\n\t\t\tinitializedLib = hslTrue;\r\n\t\t}\r\n\t\treturn(initializedLib);\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Prototypes of internal functions\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tstatic function checkConsistency();\t// check, if settings have been initialized\r\n\tstatic function setDefaultValues();\t// Set com settings to default values\r\n\tstatic function openPort();\t\t\t// open port with given settings\r\n\tstatic function isString(\t\t\t\t// returns true if the variable value is a string\r\n\t\t\tvariable var);\t\t\t\t\t\t// i: variable\r\n\tstatic function isNumber(\t\t\t\t// returns true if the variable value is a number\r\n\t\t\tvariable var);\t\t\t\t\t\t// i: variable\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Set Simulation\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tfunction SetSimulation(variable simulate) variable\r\n\t{\r\n\t\tvariable traceSource;\t\t\t\t\t\t\t// source for formated trace\r\n\t\tvariable traceAction;\t\t\t\t\t\t\t// action for formated trace\r\n\t\tvariable traceError;\t\t\t\t\t\t\t\t// error for formated trace\r\n\t\tvariable traceEx;\t\t\t\t\t\t\t\t\t// additional info for formated trace\r\n\r\n\t\t// initialize barcode reader library\r\n\t\tInitBarcodeReaderLibrary();\r\n\r\n\t\ttraceSource = StringTable::Load(stringID::traceSource);\r\n\t\ttraceAction = StringTable::Load(stringID::traceActionSetSimulation);\r\n\r\n\t\t// Trace start of SetSimulation\t\r\n\t\tFormatTrace(traceSource, traceAction, 1);\r\n\r\n\t\t// Check variable comPort\r\n\t\tif(!isNumber(simulate))\r\n\t\t{\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorInvalidDatatype);\r\n\t\t\tFormatTrace(traceSource, traceAction, 5, traceError); \r\n\t\t\treturn(1);\t//invalid datatype \r\n\t\t}\r\n\t\r\n\t\tmg_isSimulation = hslFalse;\r\n\t\t\r\n\t\tif(simulate != 0)\r\n\t\t\tmg_isSimulation = hslTrue;\r\n\t\r\n\t\t// Trace completion of SetSimulation\r\n\t\ttraceEx = StringTable::Load(stringID::traceAdditionalSetSimulation);\r\n\t\tif(mg_isSimulation)\r\n\t\t\tStrReplace(traceEx, \"%s\", StringTable::Load(stringID::traceTextOn));\r\n\t\telse\r\n\t\t\tStrReplace(traceEx, \"%s\", StringTable::Load(stringID::traceTextOff));\r\n\t\t\r\n\t\tFormatTrace(traceSource, traceAction, 2, traceEx); \r\n\r\n\t\treturn(0);\r\n\t}\t// end of SetSimulation()\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Set COM port\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tfunction SetComPort(variable& comPort)\r\n\t{\r\n\t\tvariable traceSource;\t\t\t\t\t\t\t// source for formated trace\r\n\t\tvariable traceAction;\t\t\t\t\t\t\t// action for formated trace\r\n\t\tvariable traceError;\t\t\t\t\t\t\t\t// error for formated trace\r\n\t\tvariable traceEx;\t\t\t\t\t\t\t\t\t// additional info for formated trace\r\n\r\n\t\t// initialize barcode reader library\r\n\t\tInitBarcodeReaderLibrary();\r\n\t\r\n\t\ttraceSource = StringTable::Load(stringID::traceSource);\r\n\t\ttraceAction = StringTable::Load(stringID::traceActionSetComPort);\r\n\r\n\t\t// Trace start of SetComPort\t\r\n\t\tFormatTrace(traceSource, traceAction, 1);\r\n\r\n\t\t// Check variable comPort\r\n\t\tif (isNumber(comPort))\r\n\t\t{\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorInvalidDatatype);\r\n\t\t\tFormatTrace(traceSource, traceAction, 5, traceError); \r\n\t\t\treturn(2);\t//invalid datatype \r\n\t\t}\r\n\t\r\n\t\tif ((comPort != \"COM1\") && (comPort != \"COM2\") && (comPort != \"COM3\") &&\r\n\t\t\t (comPort != \"COM4\") && (comPort == \"LPT1\") || (comPort == \"LPT2\"))\r\n\t\t{\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorInvalidComPort);\r\n\t\t\tFormatTrace(traceSource, traceAction, 5, traceError); \r\n\t\t\treturn(1);\t//invalid comPort\r\n\t\t}\r\n\r\n\t\tmg_comPort = comPort;\t\r\n\t\r\n\t\t// Trace completion of SetComPort\t\r\n\t\ttraceEx = StringTable::Load(stringID::traceAdditionalSetComPort);\r\n\t\tStrReplace(traceEx, \"%s\", mg_comPort);\r\n\t\tFormatTrace(traceSource, traceAction, 2, traceEx); \r\n\t\r\n\t\treturn(0);\r\n\t}\t// end of SetComPort()\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Set Timeout\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tfunction SetTimeout(variable timeout) \r\n\t{\t\r\n\t\tvariable traceSource;\t\t\t\t\t\t\t// source for formated trace\r\n\t\tvariable traceAction;\t\t\t\t\t\t\t// action for formated trace\r\n\t\tvariable traceError;\t\t\t\t\t\t\t\t// error for formated trace\r\n\t\tvariable traceEx;\t\t\t\t\t\t\t\t\t// additional info for formated trace\r\n\t\tvariable ReadTotalTimeoutConstant;\r\n\r\n\t\t// initialize barcode reader library\r\n\t\tInitBarcodeReaderLibrary();\r\n\r\n\t\ttraceSource = StringTable::Load(stringID::traceSource);\r\n\t\ttraceAction = StringTable::Load(stringID::traceActionSetTimeout);\r\n\r\n\t\t// Trace start of SetTimeout\t\r\n\t\tFormatTrace(traceSource, traceAction, 1); \r\n\r\n\t\t// check variable timeout\r\n\t\tif (!isNumber(timeout))\r\n\t\t{\t\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorInvalidDatatype);\r\n\t\t\tFormatTrace(traceSource, traceAction, 5, traceError); \r\n\t\t\treturn(1);\t//invalid datatype\r\n\t\t}\r\n\r\n\t\tif (timeout < 1 && timeout != -1)\r\n\t\t{\t\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorInvalidArgument);\r\n\t\t\tFormatTrace(traceSource, traceAction, 5, traceError); \r\n\t\t\treturn(2);\t//invalid argument\r\n\t\t}\r\n\r\n\t\tif (timeout == -1)\r\n\t\t{\r\n\t\t\ttimeout = hslInfinite;\r\n\t\t\ttraceEx = StringTable::Load(stringID::traceAdditionalSetTimeoutInfinite);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\ttraceEx = StringTable::Load(stringID::traceAdditionalSetTimeout);\r\n\t\t\tStrReplace(traceEx, \"%s\", IStr(timeout));\r\n\t\t}\r\n\t\r\n\t\tmg_readTimeout = timeout;\r\n\t\r\n\t\tif(( GetSimulationMode() == 1 ) || mg_isSimulation)\r\n\t\t{\r\n\t\t\t// Trace completion of SetTimeout\r\n\t\t\tFormatTrace(traceSource, traceAction, 2, traceEx);\r\n\t\t\treturn(0);\r\n\t\t}\r\n\r\n\t\tcheckConsistency();\r\n\r\n\t\tReadTotalTimeoutConstant = mg_readTimeout;\r\n\t\tSetCommTimeouts(mg_port);\r\n\r\n\t\t// Trace completion of SetTimeout\r\n\t\tFormatTrace(traceSource, traceAction, 2, traceEx);\r\n\t\r\n\t\treturn(0);\r\n\t}  // end of SetTimeout()\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Delete communication input buffer\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tfunction DelComBuffer()\r\n\t{\r\n\t\tvariable ReadTotalTimeoutConstant;\r\n\t\tvariable rr(1);\r\n\t\tvariable traceSource;\t\t\t\t\t\t\t// source for formated trace\r\n\t\tvariable traceAction;\t\t\t\t\t\t\t// action for formated trace\r\n\t\tvariable traceError;\t\t\t\t\t\t\t\t// error for formated trace\r\n\r\n\t\t// initialize barcode reader library\r\n\t\tInitBarcodeReaderLibrary();\r\n\r\n\t\ttraceSource = StringTable::Load(stringID::traceSource);\r\n\t\ttraceAction = StringTable::Load(stringID::traceActionDeleteComBuffer);\r\n\r\n\t\t// Trace start of DelComBuffer\t\r\n\t\tFormatTrace(traceSource, traceAction, 1); \r\n\r\n\t\tif(( GetSimulationMode() == 1 ) || mg_isSimulation)\r\n\t\t{\r\n\t\t\t// Trace completion of DelComBuffer\r\n\t\t\tFormatTrace(traceSource, traceAction, 2);\r\n\t\t\treturn(0);\r\n\t\t}\r\n\r\n\t\tcheckConsistency();\r\n\t\r\n\t\t// Read Record until input buffer is empty\r\n\t\tReadTotalTimeoutConstant = 0.1;\r\n\t\tSetCommTimeouts(mg_port);\r\n\r\n\t\tonerror goto Unexpected;\r\n\t\twhile(rr != 0 || mg_port.Eof())\r\n\t\t{\r\n\t\t\trr = mg_port.ReadRecord();\r\n\t\t}\r\n\t\tonerror goto 0;\r\n\r\n\t\tReadTotalTimeoutConstant = mg_readTimeout;\r\n\t\tSetCommTimeouts(mg_port);\r\n\r\n\t\t// Trace completion of DelComBuffer\r\n\t\tFormatTrace(traceSource, traceAction, 2);\r\n\r\n\t\treturn(0);\r\n\r\n\t\tUnexpected:\r\n\t\t{\t\r\n\t\t\t// do nothing --> assume the Com Port is not open\r\n\t\t\terr.Clear();\r\n\t\t\tresume next;\r\n\t\t}\r\n\t}\t// end of DelComBuffer()\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Read barcode from scanner\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tfunction Read()\r\n\t{\r\n\t\tvariable rr;\t\t\t\t\t\t\t\t\t\t// returnvalue of ReadRecord\r\n\t\tvariable traceSource;\t\t\t\t\t\t\t// source for formated trace\r\n\t\tvariable traceAction;\t\t\t\t\t\t\t// action for formated trace\r\n\t\tvariable traceError;\t\t\t\t\t\t\t\t// error for formated trace\r\n\t\tvariable traceEx;\t\t\t\t\t\t\t\t\t// additional info for formated trace\r\n\r\n\t\t// initialize barcode reader library\r\n\t\tInitBarcodeReaderLibrary();\r\n\r\n\t\ttraceSource = StringTable::Load(stringID::traceSource);\r\n\t\ttraceAction = StringTable::Load(stringID::traceActionRead);\r\n\r\n\t\t// Trace start of Read\r\n\t\tFormatTrace(traceSource, traceAction, 1); \r\n\r\n\t\tmg_barcode = \"\";\r\n\r\n\t\tif(( GetSimulationMode() == 1 ) || mg_isSimulation)\r\n\t\t{\r\n\t\t\tmg_barcode = \"BC123456\";\r\n\r\n\t\t\t// Trace completion of Read\r\n\t\t\ttraceEx = StringTable::Load(stringID::traceAdditionalRead);\r\n\t\t\tStrReplace(traceEx, \"%s\", mg_barcode);\r\n\t\t\tFormatTrace(traceSource, traceAction, 2, traceEx); \r\n\r\n\t\t\treturn(mg_barcode);\r\n\t\t}\r\n\r\n\t\tcheckConsistency();\r\n\r\n\t\tonerror goto Unexpected;\r\n\t\trr = mg_port.ReadRecord();\r\n\t\tonerror goto 0;\r\n\r\n\t\t// show Error message\r\n\t\tif(0 == rr && 0 == mg_errRecovery)\r\n\t\t{\t\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorReadError);\r\n\t\t\tFormatTrace(traceSource, traceAction, 3, traceError); \r\n\t\t\tMessageBox(StringTable::Load(errorID::readError),\r\n\t\t\t\t\t\t\tStringTable::Load(stringID::messageBoxTitel),\r\n\t\t\t\t\t\t\thslError);\r\n\t\t\tFormatTrace(traceSource, traceAction, 5);\t\t\r\n\t\t\treturn(mg_barcode);\r\n\t\t}\r\n\r\n\t\t// show Input box for manual input of barcode\r\n\t\tif(0 == rr && 1 == mg_errRecovery)\r\n\t\t{\r\n\t\t\tvariable inputBarcode;\r\n\t\t\tstring traceRecovery;\r\n\t\t\tstring userName;\r\n\t\t\r\n\t\t\t// get name of current logged in user\r\n\t\t\tuserName = GetUserName();\r\n\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorReadError);\r\n\t\t\tFormatTrace(traceSource, traceAction, 3, traceError); \r\n\t\t\tinputBarcode = InputBox(StringTable::Load(stringID::userPrompt),\r\n\t\t\t\t\t\t\t\t\t\t\tStringTable::Load(stringID::inputBoxTitel),\r\n\t\t\t\t\t\t\t\t\t\t\thslString);\t\t\r\n\t\t\r\n\t\t\tif(isString(inputBarcode))\r\n\t\t\t{\r\n\t\t\t\tmg_barcode = inputBarcode;\r\n\t\t\t\t\r\n\t\t\t\ttraceRecovery = StringTable::Load(stringID::traceRecManEnteredBC);\r\n\t\t\t\tStrReplace(traceRecovery, \"%s1\", mg_barcode);\r\n\t\t\t\tStrReplace(traceRecovery, \"%s2\", userName);\r\n\t\t\t\tFormatTrace(traceSource, traceAction, 2, traceRecovery);\r\n\t\t\t}\r\n\t\t\telse // Input Dialog leaved with Cancel\r\n\t\t\t{\r\n\t\t\t\tmg_barcode = \"\";\r\n\r\n\t\t\t\ttraceRecovery = StringTable::Load(stringID::traceRecCancelPressed);\r\n\t\t\t\tStrReplace(traceRecovery, \"%s\", userName);\r\n\t\t\t\tFormatTrace(traceSource, traceAction, 2, traceRecovery);\t\t\r\n\t\t\t}\r\n\r\n\t\t\treturn(mg_barcode);\r\n\t\t}\r\n\r\n\t\t// return empty String\r\n\t\tif(0 == rr && 2 == mg_errRecovery)\r\n\t\t{\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorReadError);\r\n\t\t\tFormatTrace(traceSource, traceAction, 3, traceError); \r\n\t\t\tFormatTrace(traceSource, traceAction, 5);\t\t\r\n\t\t\treturn(mg_barcode);\r\n\t\t}\r\n\r\n\t\t// Trace completion of Read\r\n\t\ttraceEx = StringTable::Load(stringID::traceAdditionalRead);\r\n\t\tStrReplace(traceEx, \"%s\", mg_barcode);\r\n\t\tFormatTrace(traceSource, traceAction, 2, traceEx); \r\n\r\n\t\treturn(mg_barcode);\r\n\r\n\t\tUnexpected:\r\n\t\t{\t\r\n\t\t\tvariable errorDesc(\"\");\r\n\t\t\terrorDesc = StringTable::Load(errorID::readError);\r\n\t\t\tError::RaiseEx(errorID::readError, errorDesc, GetFileName(), GetFunctionName(), GetLineNumber());\r\n\t\t}\r\n\t}\t// end of Read()\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Set Error recovery\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tfunction SetErrorRecovery(variable errRecovery)\r\n\t{\t\r\n\t\tvariable traceSource;\t\t\t\t\t\t\t// source for formated trace\r\n\t\tvariable traceAction;\t\t\t\t\t\t\t// action for formated trace\r\n\t\tvariable traceError;\t\t\t\t\t\t\t\t// error for formated trace\r\n\t\tvariable traceEx;\t\t\t\t\t\t\t\t\t// additional info for formated trace\r\n\r\n\t\t// initialize barcode reader library\r\n\t\tInitBarcodeReaderLibrary();\r\n\r\n\t\ttraceSource = StringTable::Load(stringID::traceSource);\r\n\t\ttraceAction = StringTable::Load(stringID::traceActionSetErrorRecovery);\r\n\r\n\t\t// Trace start of SetErrorRecovery\r\n\t\tFormatTrace(traceSource, traceAction, 1); \r\n\t\r\n\t\t// check datatype\r\n\t\tif (!isNumber(errRecovery))\r\n\t\t{\t\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorInvalidDatatype);\r\n\t\t\tFormatTrace(traceSource, traceAction, 5, traceError); \r\n\t\t\treturn(1);\t// invalid datatype\r\n\t\t}\r\n\r\n\t\t// check if is valid value (0, 1 or 2 are valid values)\r\n\t\tif (0 > errRecovery || 2 < errRecovery)\r\n\t\t{\t\r\n\t\t\ttraceError = StringTable::Load(stringID::traceErrorInvalidArgument);\r\n\t\t\tFormatTrace(traceSource, traceAction, 5, traceError); \r\n\t\t\treturn(2);\t// invalid argument\r\n\t\t}\r\n\r\n\t\tmg_errRecovery = errRecovery;\r\n\r\n\t\t// Trace completion of Read\r\n\t\tif(mg_errRecovery == 0)\r\n\t\t\ttraceEx = StringTable::Load(stringID::traceAdditionalSetErrorRecovery_0);\r\n\t\telse if(mg_errRecovery == 1)\r\n\t\t\ttraceEx = StringTable::Load(stringID::traceAdditionalSetErrorRecovery_1);\r\n\t\telse if(mg_errRecovery == 2)\r\n\t\t\ttraceEx = StringTable::Load(stringID::traceAdditionalSetErrorRecovery_2);\r\n\r\n\t\tFormatTrace(traceSource, traceAction, 2, traceEx); \r\n\r\n\t\treturn(0);\r\n\t}\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Internal functions\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\t// check, if all variables have a value\r\n\tstatic function checkConsistency()\r\n\t{\r\n\t\tif (mg_baudRate == 0 )\r\n\t\t\tsetDefaultValues();\r\n\r\n\t\treturn(0);\r\n\t}\r\n\r\n\t// set variable default values\r\n\tstatic function setDefaultValues()\r\n\t{\r\n\t\tmg_baudRate = 9600;\r\n\t\t\r\n\t\tif(( GetSimulationMode() == 1 ) || mg_isSimulation)\r\n\t\t\tmg_baudRate = 0;\r\n\t\r\n\t\tif (mg_comPort == \"\")\r\n\t\t\tmg_comPort = \"COM2\";\r\n\t\r\n\t\tmg_comSetting = \"S,7,1,RTS/CTS,CR/LF\";\r\n\r\n\t\t// Set delimiters and record fields\r\n\t\tmg_port.SetDelimiter(hslAsciiText);\r\n\t\tif (0 == mg_port.AddField(1, mg_barcode, hslString))\r\n\t\t\t Error::Raise(errorID::fatalError, GetFileName(), GetFunctionName(), GetLineNumber());\r\n\r\n\t\topenPort();\r\n\t\treturn(0);\r\n\t}\r\n\r\n\t// Open com port\r\n\tstatic function openPort()\r\n\t{\r\n\t\tvariable errCode;\r\n\t\tvariable argument;\r\n\t\tvariable ReadTotalTimeoutConstant(mg_readTimeout);\r\n\r\n\t\tif(( GetSimulationMode() == 1 ) || mg_isSimulation)\r\n\t\t\treturn(0);\r\n\r\n\t\tmg_port.Close();\r\n\t\t\r\n\t\targument = mg_comPort + \" \" + IStr(mg_baudRate) + \",\" + mg_comSetting;\r\n\t\r\n\t\t#ifdef _DEBUG\r\n\t\t\tTrace(\"OpenPort: \", argument);\r\n\t\t\tTrace(\"ReadTotalTimeoutConstant: \", ReadTotalTimeoutConstant);\r\n\t\t#endif\r\n\r\n\t\tonerror goto Unexpected;\r\n\t\tmg_port.Open(argument, hslWrite);\r\n\t\tSetCommTimeouts(mg_port);\r\n\t\tonerror goto 0;\r\n\r\n\t\treturn(0);\r\n\r\n\t\tUnexpected:\r\n\t\t{\t\r\n\t\t\t Error::Raise(errorID::fatalError, GetFileName(), GetFunctionName(), GetLineNumber());\r\n\t\t}\r\n\t}\r\n\r\n\t// Check, if variable is string\r\n\tstatic function isString(variable var)\r\n\t{\r\n\t\treturn(hslString.Compare(GetType(var)) == 0);\r\n\t}\r\n\r\n\t// Check if variable is a number\r\n\tstatic function isNumber(variable var)\r\n\t{\r\n\t\treturn(hslString.Compare(GetType(var)) != 0);\r\n\t}\r\n\r\n} // end of name space HSLBarcodeReader\r\n\r\n#endif  // end of '#ifndef __HSLBarcodeReaderImpl_hsl__'\r\n// $$author=wbarmettler$$valid=1$$time=2013-06-24 11:47$$checksum=093404a7$$length=090$$"
  },
  {
    "path": "pyhamilton/library/HSLBarcodeReader.hsl",
    "content": "// ======================================================================\r\n// This is a part of the HSL File Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//\t\t2002-05-24: Remove PVCS header\r\n//\t\t2007-09-17\t ubernhard\t:\tDeclared new function SetSimulation\r\n// \r\n// ======================================================================\r\n\r\n#ifndef __HSLBarcodeReaderLib_hsl__\r\n#define __HSLBarcodeReaderLib_hsl__\t1\r\n\r\n// Comment out following line, when HSL library is ok (to speed up method editor)\r\n//#define FIL_DEVELOP\t\t1\r\n\r\n#ifdef FIL_DEVELOP\r\n\t#ifndef HSL_RUNTIME\r\n\t#define HSL_RUNTIME\t\t\t1\r\n\t#endif\r\n#endif\r\n\r\n// Interface to File library \r\n#ifndef HSL_RUNTIME\r\n\r\nnamespace HSLBarcodeReader\r\n{\r\n\tfunction SetSimulation(variable simulate) variable { return (0); }\r\n\r\n\tfunction SetTimeout(variable timeout) variable { return (0); }\r\n\r\n\tfunction DelComBuffer() void {}\r\n\r\n\tfunction Read() variable { return (\"\"); }\r\n\r\n\tfunction SetComPort(variable& comPort) variable { return (0); }\r\n\r\n\tfunction SetErrorRecovery(variable errRecovery) variable { return (0); }\r\n\r\n} // end of namespace HSLBarcodeReader\r\n\r\n#endif\r\n\r\n// ==========================================================================\r\n// Implementation of File library \r\n// ==========================================================================\r\n#ifdef HSL_RUNTIME\r\n#include \"HSLBarcodeReader.hs_\"\r\n#endif\r\n\r\n#endif /* end of #ifndef __HSLBarcodeReaderLib_hsl__ */\r\n// $$author=wbarmettler$$valid=1$$time=2013-06-24 11:47$$checksum=6c366e67$$length=090$$"
  },
  {
    "path": "pyhamilton/library/HSLBarcodeReaderStringTableEnu.hs_",
    "content": "// ======================================================================\r\n// This is the language dependant part of the BarcodeReader Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//\t\t2002-05-24: Remove PVCS header\r\n//\t\t2005-11-30: Add new IDs'Enhanced \r\n// \t2007-09-17 ubernhard: Add several new ID's\r\n//\r\n// ======================================================================\r\n\r\nfunction StringTable()\r\n{\r\n\tInsert(errorID::noError,\t\t\t\t\t\t\t\"No error.\"\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(errorID::fatalError,\t\t\t\t\t\t\"Fatal error.\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(errorID::readError,\t\t\t\t\t\t\t\"Cannot read barcode.\"\t\t\t\t\t\t\t\t);\r\n\t\r\n\tInsert(stringID::userPrompt,\t\t\t\t\t\t\"Cannot read barcode.\\n\\nPlease enter barcode information:\\ne.g. 76281070\");\r\n\tInsert(stringID::helpFileName,\t\t\t\t\t\"HSLBarcodeReaderEnu.chm\"\t\t\t\t\t\t\t);\r\n\tInsert(stringID::inputBoxTitel,\t\t\t\t\t\"Read error\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(stringID::messageBoxTitel,\t\t\t\t\"Read error\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\r\n\tInsert(stringID::traceSource,\t\t\t\t\t\t\"SYSTEM\"\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\r\n\t//traceAction\r\n\tInsert(stringID::traceActionSetComPort,\t\t\"HSLBarcodeReader::SetComPort\"\t\t\t\t\t);\r\n\tInsert(stringID::traceActionSetTimeout,\t\t\"HSLBarcodeReader::SetTimeout\"\t\t\t\t\t);\r\n\tInsert(stringID::traceActionSetErrorRecovery,\"HSLBarcodeReader::SetErrorRecovery\"\t\t\t);\r\n\tInsert(stringID::traceActionRead,\t\t\t\t\"HSLBarcodeReader::Read\"\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceActionDeleteComBuffer,\t\"HSLBarcodeReader::DelComBuffer\"\t\t\t\t\t);\r\n\tInsert(stringID::traceActionSetSimulation,\t\"HSLBarcodeReader::SetSimulation\"\t\t\t\t);\r\n\r\n\t// trace Additional Information\r\n\tInsert(stringID::traceAdditionalSetComPort,\t\t\t\" Com port: %s\"\t\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceAdditionalSetTimeout,\t\t\t\" Timeout: %s [s]\"\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceAdditionalSetTimeoutInfinite,\" Timeout: infinite\"\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceAdditionalSetErrorRecovery_0,\" Error recovery: (0) Show error message\"\t\t);\r\n\tInsert(stringID::traceAdditionalSetErrorRecovery_1,\" Error recovery: (1) Enter barcode manually\");\r\n\tInsert(stringID::traceAdditionalSetErrorRecovery_2,\" Error recovery: (2) Return empty string\"\t);\r\n\tInsert(stringID::traceAdditionalRead,\t\t\t\t\t\" Barcode read: %s\"\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceAdditionalSetSimulation,\t\t\" Simulation: %s\"\t\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceTextOn,\t\t\t\t\t\t\"On\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceTextOff,\t\t\t\t\t\"Off\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\r\n\t//traceError\r\n\tInsert(stringID::traceErrorInvalidDatatype,\t\"Invalid datatype\"\t\t\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceErrorInvalidComPort,\t\"Invalid Com port\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceErrorInvalidArgument,\t\"Invalid argument\"\t\t\t\t\t\t\t\t\t);\r\n\tInsert(stringID::traceErrorReadError,\t\t\t\"Barcode could not be read\"\t\t\t\t\t\t);\r\n\r\n\tInsert(stringID::traceRecManEnteredBC,\t\t\t\"Barcode '%s1' was manually entered by '%s2'.\");\r\n\tInsert(stringID::traceRecCancelPressed,\t\t\"Manual input of barcode cancelled by '%s'.\"\t);\r\n}\r\n// $$author=wbarmettler$$valid=1$$time=2013-06-24 11:47$$checksum=a7039df7$$length=090$$"
  },
  {
    "path": "pyhamilton/library/HSLDaisyChainCommunication.hsl",
    "content": "// ======================================================================\r\n// Interface of the Daisy Chained communication library.\r\n// This library is used for all daisy chained modules.\r\n//\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//\t\tV1.0, 2007-11-05, Ruedi Vogel, created\r\n//    V2.0, 2008-06-09, Ruedi Vogel,\r\n//       - new function TxRxReset() implemented, which has to be called \r\n//          as first function (\"command\") in initialisation of a module\r\n//    V2.1, 2008-10-01, Ruuedi Vogel:\r\n//       - in function DaisyChainedTxRxReset() ReadTimeout increased up\r\n//          to 5.0sec because some modules transmit their first message \r\n//          \"<NUL><CR><LF>\" after a software reset more then 2 seconds \r\n//          later (actual values were 2.7 sec).\r\n// ======================================================================\r\n\r\n#ifndef __HSL_DaisyChainCommunication_hsl__\r\n#define __HSL_DaisyChainCommunication_hsl__\t1\r\n\r\n\r\nnamespace HSLDaisyChainCommunication\r\n{\r\n\t/*********************************************************************\r\n\t*\r\n\t* Exported return constants\r\n\t*\r\n\t*********************************************************************/\r\n\tconst static variable CMD_START    ( 1 );\r\n\tconst static variable CMD_COMPLET  ( 2 );\r\n\tconst static variable CMD_ERROR    ( 5 );   // to prevent suspicious Phoenix error messages\r\n\tconst static variable CMD_PROGRESS ( 4 );\r\n\tconst static variable CMD_ERRCOMPL ( 5 );\r\n\r\n\tconst variable TRACE_LEVEL_NONE   ( 0 );\r\n\tconst variable TRACE_LEVEL_NORMAL ( 1 );\r\n   const variable TRACE_LEVEL_FULL   ( 2 );\r\n\r\n   const variable HSL_FALSE ( hslFalse );\r\n   const variable HSL_TRUE  ( hslTrue  );\r\n   \r\n   const static variable ERROR_NONE                    ( 0 );\r\n   const static variable ERROR_ALREADY_INITIALIZED     ( 1 );\r\n   const static variable ERROR_PARAMETER_OUT_OF_RANGE  ( 2 );\r\n   const static variable ERROR_FALSE_COMM_PORT         ( 3 );\r\n   const static variable ERROR_HSL_FUNCTION_FAILED     ( 4 );\r\n   const static variable ERROR_WRITE_RECORD_FAILED     ( 5 );\r\n   const static variable ERROR_READ_RECORD_FAILED      ( 6 );\r\n   const static variable ERROR_UNEXPECTED_TXRX_COMMAND ( 7 );\r\n   const static variable ERROR_UNEXPECTED_TXRX_RESET   ( 8 );\r\n\r\n   const static string ERROR_MSG_NONE                    ( \"No error.\" );\r\n   const static string ERROR_MSG_ALREADY_INITIALIZED     ( \"Assigned module already initialized!\" );\r\n   const static string ERROR_MSG_PARAMETER_OUT_OF_RANGE  ( \"Parameter out of range!\" );\r\n   const static string ERROR_MSG_FALSE_COMM_PORT         ( \"Assigned COM port false (must be the same as before assigned)!\" );\r\n   const static string ERROR_MSG_HSL_FUNCTION_FAILED     ( \"Any HSL function failed!\" );\r\n   const static string ERROR_MSG_WRITE_RECORD_FAILED     ( \"Writing to COM port failed!\" );\r\n   const static string ERROR_MSG_READ_RECORD_FAILED      ( \"Reading from COM port failed (e.g. timeout)!\" );\r\n   const static string ERROR_MSG_UNEXPECTED_TXRX_COMMAND ( \"Unexpected error in transmitting command/receiving response occurred!\" );\r\n   const static string ERROR_MSG_UNEXPECTED_TXRX_RESET   ( \"Unexpected error in transmitting software reset/receiving response occurred!\" );\r\n   const static string ERROR_MSG_UNKNOWN_ERROR_CODE      ( \"Unknown error code!\" );\r\n\r\n\r\n\t/*********************************************************************\r\n\t*\r\n\t* Module globale constants/variables\r\n\t*\r\n\t*********************************************************************/\r\n\r\n\tstatic global variable DaisyChainCommunication_trcLvl( TRACE_LEVEL_NORMAL );\r\n\tstatic global event    DaisyChainCommunication_criticalSection;\r\n\tstatic global variable DaisyChainCommunication_firstInitialize( 0 );\r\n\tstatic global file     DaisyChainCommunication_comPort;\r\n\tstatic global variable DaisyChainCommunication_comNumber;\r\n\tstatic global variable DaisyChainCommunication_comBuffer;\r\n\tstatic const variable  DaisyChainCommunication_comSettings( \"1200,E,8,1,N,CR/LF\" );\r\n\tstatic global variable DaisyChainCommunication_moduleNames[];\r\n\r\n\r\n\t/*********************************************************************\r\n\t*\r\n\t* Declarations\r\n\t*\r\n\t*********************************************************************/\r\n\r\n\tfunction InitializeDaisyChainCommunication( variable iModuleName, variable iPort, variable iTraceLevel ) variable;\r\n\tfunction TerminateDaisyChainCommunication( variable iModuleName ) variable;\t\r\n\tfunction DaisyChainedTxRxCommand( variable iModuleName, variable iCommand, variable iParameter, variable & oResponse ) variable;\r\n\tfunction EvaluateCommErrorMessage( variable iErrorCode ) string;\r\n\r\n\t\r\n\t/*********************************************************************\r\n\t*\r\n\t* Implementations\r\n\t*\r\n\t*********************************************************************/\r\n\r\n\tfunction InitializeDaisyChainCommunication( variable iModuleName, variable iPort, variable iTraceLevel ) variable \r\n\t{\r\n\t\tvariable ii;\r\n\t\t\r\n\t\tDaisyChainCommunication_trcLvl = iTraceLevel;\r\n\t\tif( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Initialize Daisy Chain on COM\", iPort, \" for module \", iModuleName);\r\n\t\t\r\n\t\tDaisyChainCommunication_firstInitialize++;\r\n\t\tfor ( ii = 0; ii < DaisyChainCommunication_moduleNames.GetSize(); ii++ )\r\n\t\t{\r\n\t\t\tif( DaisyChainCommunication_moduleNames.GetAt( ii ) == iModuleName )\r\n\t\t\t{\r\n\t\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter iModuleName #\", iModuleName, \" already initialized!\" );\r\n\t\t\t\treturn( ERROR_ALREADY_INITIALIZED );\r\n\t\t\t}\r\n\t\t}\r\n\t\tDaisyChainCommunication_moduleNames.AddAsLast( iModuleName );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iPort ) || ( 255 < iPort ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter comPort #\", iPort, \" out of range [1..255]!\" );\r\n\t\t\treturn( ERROR_PARAMETER_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\tif( 1 < DaisyChainCommunication_firstInitialize )\r\n\t\t{\r\n\t\t\tif( DaisyChainCommunication_comNumber != iPort )\r\n\t\t\t{\r\n\t\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter comPort #\", iPort, \" is not equal to already initialized port COM\", DaisyChainCommunication_comNumber, \"!\" );\r\n\t\t\t\treturn( ERROR_FALSE_COMM_PORT );\r\n\t\t\t}\r\n   \t\tif( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\tDaisyChainCommunication_comBuffer = \"\";\r\n\t\tDaisyChainCommunication_comNumber = iPort;\r\n\t\tDaisyChainCommunication_criticalSection.WaitEvent( hslInfinite );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// initialize communication port\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tDaisyChainCommunication_comPort.SetDelimiter( hslAsciiText );\r\n\t\tif( 0 == DaisyChainCommunication_comPort.AddField( 1, DaisyChainCommunication_comBuffer, hslString ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<AddField> failed!\" );\r\n\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\treturn( ERROR_HSL_FUNCTION_FAILED );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Open port\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t{\r\n\t\t\tvariable openString( \"COM\" + IStr(iPort) + \" \" +  DaisyChainCommunication_comSettings );\r\n\r\n\t\t\tif( 0 == DaisyChainCommunication_comPort.Open( openString, hslWrite ))\r\n\t\t\t{\r\n\t\t\t\tDaisyChainCommunication_comPort.RemoveFields();  // is evident for redundant inits!!\r\n\t\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<port.Open()> with [\" + openString + \"] failed!\" );\r\n\t\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\t\treturn( ERROR_HSL_FUNCTION_FAILED );\r\n\t\t\t}\r\n\t\t\tif( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_PROGRESS, \" port opened with [\" + openString + \"]\" );\r\n\t\t}\r\n\r\n      // -------------------------------------------------------------------------\r\n      // first configure short timeouts and transmit/receive an empty string to\r\n      // initiialize some Dell docking stations in a proper way!!!\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Configure Timeouts\r\n\t\t// Timeout settings for timeout within HSL-functions <file::ReadRecord> and \r\n\t\t// <file::WriteString>\r\n\t\t// These settings are used by the function <SetCommTimeouts>.\r\n\t\t// For more information see HSL Reference (document e253518b)\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t{\r\n\t\t\tvariable ReadIntervalTimeout( hslInfinite );\t\t\t   // maximum time between read chars\r\n\t\t\tvariable ReadTotalTimeoutMultiplier( hslInfinite );\t// mutiplier of characters\r\n\t\t\tvariable ReadTotalTimeoutConstant( 2.000 );\t      // constant in seconds\r\n\t\t\tvariable WriteTotalTimeoutMultiplier( 0.000 );\t\t\t// mutiplier of characters \r\n\t\t\tvariable WriteTotalTimeoutConstant( 1.000 );\t\t\t   // constant in seconds\r\n\t\t\tif( 0 == SetCommTimeouts( DaisyChainCommunication_comPort ))\r\n\t\t\t{\r\n\t\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\t\tTerminateDaisyChainCommunication( iModuleName );  \r\n\t\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<SetCommTimeouts> failed!\" );\r\n\t\t\t\treturn( ERROR_HSL_FUNCTION_FAILED );\r\n\t\t\t}\r\n\t\t}\r\n\t\tDaisyChainCommunication_comBuffer = \"\";\r\n\t\tDaisyChainCommunication_comPort.WriteRecord();\r\n\t\tDaisyChainCommunication_comPort.ReadRecord();\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Configure Timeouts\r\n\t\t// Timeout settings for timeout within HSL-functions <file::ReadRecord> and \r\n\t\t// <file::WriteString>\r\n\t\t// These settings are used by the function <SetCommTimeouts>.\r\n\t\t// For more information see HSL Reference (document e253518b)\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t{\r\n\t\t\tvariable ReadIntervalTimeout( hslInfinite );\t\t\t   // maximum time between read chars\r\n\t\t\tvariable ReadTotalTimeoutMultiplier( hslInfinite );\t// mutiplier of characters\r\n\t\t\tvariable ReadTotalTimeoutConstant( 120.000 );\t      // constant in seconds\r\n\t\t\tvariable WriteTotalTimeoutMultiplier( 0.000 );\t\t\t// mutiplier of characters \r\n\t\t\tvariable WriteTotalTimeoutConstant( 1.000 );\t\t\t   // constant in seconds\r\n\t\t\tif( 0 == SetCommTimeouts( DaisyChainCommunication_comPort ))\r\n\t\t\t{\r\n\t\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\t\tTerminateDaisyChainCommunication( iModuleName );  \r\n\t\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<SetCommTimeouts> failed!\" );\r\n\t\t\t\treturn( ERROR_HSL_FUNCTION_FAILED );\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\tif( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\t\r\n\tfunction TerminateDaisyChainCommunication( variable iModuleName ) variable\r\n\t{\r\n      variable ii;\r\n\t\tvariable response;\r\n\r\n\t\tif( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module \", iModuleName );\r\n\t\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// remove iModuleName from names list\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tfor( ii = 0; ii < DaisyChainCommunication_moduleNames.GetSize(); ii++ )\r\n\t\t{\r\n\t\t\tif( DaisyChainCommunication_moduleNames.GetAt( ii ) == iModuleName )\r\n\t\t\t{\r\n\t\t\t\tDaisyChainCommunication_moduleNames.RemoveElementAt( ii );\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// close comm. port\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tDaisyChainCommunication_firstInitialize--;\r\n\t\tif( 0 < DaisyChainCommunication_firstInitialize )\r\n      {\r\n   \t\tif( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\t\treturn( ERROR_NONE );\r\n      }\r\n\r\n\t\tDaisyChainCommunication_criticalSection.WaitEvent( hslInfinite );\r\n\t\tDaisyChainCommunication_comPort.RemoveFields();\r\n\t\tif( 0 != DaisyChainCommunication_comPort.Close())\r\n\t\t{\r\n   \t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" <port.Close()> failed!\" );\r\n\t\t\treturn( ERROR_HSL_FUNCTION_FAILED );\r\n\t\t}\r\n\r\n\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\tif( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tfunction DaisyChainedTxRxCommand( variable iModuleName, variable iCommand, variable iParameter, variable & oResponse ) variable\r\n\t{\r\n\t\tstring cmd;\r\n\t\r\n\t\tif( TRACE_LEVEL_NORMAL < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_START, \"Command to send: \", iModuleName, iCommand, iParameter );\r\n\r\n\t\t// Activate error handler\r\n\t\tonerror goto Unexpected;\r\n\t\t\r\n\t\toResponse = \"\";\r\n\t\tcmd = iModuleName;\r\n\t\tcmd = cmd + iCommand;\r\n\t\tcmd = cmd + iParameter;\r\n\r\n\t\tDaisyChainCommunication_criticalSection.WaitEvent( hslInfinite );\r\n\t\tDaisyChainCommunication_comBuffer = cmd;\r\n\t\tif( 0 == DaisyChainCommunication_comPort.WriteRecord())\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<WriteRecord()> failed!\" );\r\n\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\treturn( ERROR_WRITE_RECORD_FAILED );\r\n\t\t}\r\n\t\tif( 0 == DaisyChainCommunication_comPort.ReadRecord())\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<ReadRecord()> failed!\" );\r\n\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\treturn( ERROR_READ_RECORD_FAILED );\r\n\t\t}\r\n\t\toResponse = DaisyChainCommunication_comBuffer;\r\n\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\t\t\r\n\t\tif( TRACE_LEVEL_NORMAL < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_COMPLET, \"Response: \", oResponse );\r\n\t\treturn( ERROR_NONE );\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_PROGRESS, \"Unexpected: Command <\", iModuleName, iCommand, iParameter, \"> responsed with <\", oResponse, \">\" );\r\n\t\t\treturn( ERROR_UNEXPECTED_TXRX_COMMAND );\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\tfunction DaisyChainedTxRxReset( variable iModuleName, variable & oResponse ) variable\r\n\t{\r\n      variable response;\r\n\r\n\t\r\n\t\tif( TRACE_LEVEL_NORMAL < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" on system #\", iModuleName );\r\n\r\n\t\t// Activate error handler\r\n\t\tonerror goto Unexpected;\r\n\t\t\r\n\t\tresponse = \"\";\r\n\t\tDaisyChainCommunication_criticalSection.WaitEvent( hslInfinite );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Configure Timeouts\r\n\t\t// Timeout settings for timeout within HSL-functions <file::ReadRecord> and \r\n\t\t// <file::WriteString>\r\n\t\t// These settings are used by the function <SetCommTimeouts>.\r\n\t\t// For more information see HSL Reference (document e253518b)\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t{\r\n\t\t\tvariable ReadIntervalTimeout( hslInfinite );\t\t\t   // maximum time between read chars\r\n\t\t\tvariable ReadTotalTimeoutMultiplier( hslInfinite );\t// mutiplier of characters\r\n\t\t\tvariable ReadTotalTimeoutConstant( 5.000 );\t         // constant in seconds\r\n\t\t\tvariable WriteTotalTimeoutMultiplier( 0.000 );\t\t\t// mutiplier of characters \r\n\t\t\tvariable WriteTotalTimeoutConstant( 1.000 );\t\t\t   // constant in seconds\r\n\t\t\tif( 0 == SetCommTimeouts( DaisyChainCommunication_comPort ))\r\n\t\t\t{\r\n\t\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<SetCommTimeouts> failed!\" );\r\n\t\t\t\treturn( ERROR_HSL_FUNCTION_FAILED );\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n   \t// -------------------------------------------------------------------------\r\n      // send reset command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tDaisyChainCommunication_comBuffer = iModuleName + \"AI\";\r\n\t\tif( 0 == DaisyChainCommunication_comPort.WriteRecord())\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<WriteRecord on <\", iModuleName, \"AI> failed!\" );\r\n\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\treturn( ERROR_WRITE_RECORD_FAILED );\r\n\t\t}\r\n   \t// -------------------------------------------------------------------------\r\n      // wait for command's response\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif( 0 == DaisyChainCommunication_comPort.ReadRecord())\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<ReadRecord> on <\", iModuleName, \"AI> failed!\" );\r\n\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\treturn( ERROR_READ_RECORD_FAILED );\r\n\t\t}\r\n\t\tresponse = DaisyChainCommunication_comBuffer;\r\n\r\n   \t// -------------------------------------------------------------------------\r\n      // wait for empty message transmitted by software reset\r\n\t\t// -------------------------------------------------------------------------\r\n      DaisyChainCommunication_comPort.ReadRecord();\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Reconfigure Timeouts to normal settings\r\n\t\t// Timeout settings for timeout within HSL-functions <file::ReadRecord> and \r\n\t\t// <file::WriteString>\r\n\t\t// These settings are used by the function <SetCommTimeouts>.\r\n\t\t// For more information see HSL Reference (document e253518b)\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t{\r\n\t\t\tvariable ReadIntervalTimeout( hslInfinite );\t\t\t   // maximum time between read chars\r\n\t\t\tvariable ReadTotalTimeoutMultiplier( hslInfinite );\t// mutiplier of characters\r\n\t\t\tvariable ReadTotalTimeoutConstant( 120.000 );\t         // constant in seconds\r\n\t\t\tvariable WriteTotalTimeoutMultiplier( 0.000 );\t\t\t// mutiplier of characters \r\n\t\t\tvariable WriteTotalTimeoutConstant( 1.000 );\t\t\t   // constant in seconds\r\n\t\t\tif( 0 == SetCommTimeouts( DaisyChainCommunication_comPort ))\r\n\t\t\t{\r\n\t\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \"<SetCommTimeouts> failed!\" );\r\n\t\t\t\treturn( ERROR_HSL_FUNCTION_FAILED );\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n      oResponse = response;\r\n\r\n\t\tif( TRACE_LEVEL_NORMAL < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_COMPLET, \"Response: \", oResponse );\r\n\t\treturn( ERROR_NONE );\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\tDaisyChainCommunication_criticalSection.SetEvent();\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_PROGRESS, \"Unexpected: Command <\", iModuleName, \"AI> to system #\", iModuleName, \" responded with <\", oResponse, \">\" );\r\n\t\t\treturn( ERROR_UNEXPECTED_TXRX_RESET );\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\tfunction EvaluateCommErrorMessage( variable iErrorCode ) string\r\n\t{\r\n\t     if( iErrorCode == ERROR_NONE                    ) return( ERROR_MSG_NONE ); \r\n\telse if( iErrorCode == ERROR_ALREADY_INITIALIZED     ) return( ERROR_MSG_ALREADY_INITIALIZED );\r\n\telse if( iErrorCode == ERROR_PARAMETER_OUT_OF_RANGE  ) return( ERROR_MSG_PARAMETER_OUT_OF_RANGE );\r\n\telse if( iErrorCode == ERROR_FALSE_COMM_PORT         ) return( ERROR_MSG_FALSE_COMM_PORT );\r\n\telse if( iErrorCode == ERROR_HSL_FUNCTION_FAILED     ) return( ERROR_MSG_HSL_FUNCTION_FAILED );\r\n\telse if( iErrorCode == ERROR_WRITE_RECORD_FAILED     ) return( ERROR_MSG_WRITE_RECORD_FAILED );\r\n\telse if( iErrorCode == ERROR_READ_RECORD_FAILED      ) return( ERROR_MSG_READ_RECORD_FAILED );\r\n\telse if( iErrorCode == ERROR_UNEXPECTED_TXRX_COMMAND ) return( ERROR_MSG_UNEXPECTED_TXRX_COMMAND );\r\n\telse if( iErrorCode == ERROR_UNEXPECTED_TXRX_RESET   ) return( ERROR_MSG_UNEXPECTED_TXRX_RESET );\r\n\telse                                                   return( ERROR_MSG_UNKNOWN_ERROR_CODE );\r\n\t}\r\n\r\n\r\n\r\n}\t//end namespace \r\n\r\n\r\n/*\r\nvariable myModID(1);\r\nvariable myComPort(3);\r\nvariable myCellImagerX(\"XD\");\r\nvariable myCellImagerY(\"YD\");\r\nvariable myTraceLevel(HSLDaisyChainCommunication::TRACE_LEVEL_FULL);\r\n\r\n\r\nmethod main() void\r\n{\r\n\tvariable response;\r\n\r\n\tif( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::InitializeDaisyChainCommunication( myCellImagerX, myComPort, myTraceLevel ))\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"<InitializeDaisyChainCommunication()> for module \",myCellImagerX,\" failed!\" );\r\n\t}\r\n\r\n\tif( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::InitializeDaisyChainCommunication( myCellImagerY, myComPort, myTraceLevel ))\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"<InitializeDaisyChainCommunication()> for module \",myCellImagerY,\" failed!\" );\r\n\t}\r\n\r\n\t// transmit \"EI\", clear error, and ignore response\r\n\tHSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,\"EI\",\"\",response);\r\n\tHSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerY,\"EI\",\"\",response);\r\n\r\n\t// transmit \"RF\", request firmware version, command and ignore response\r\n\tHSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,\"RF\",\"\",response);\r\n\tHSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerY,\"RF\",\"\",response);\r\n\r\n\t// XDSI\r\n\tif( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,\"SI\",\"\",response))\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"<DaisyChainedTxRxCommand(\",myCellImagerX,\"SI)> failed!\" );\r\n\t}\r\n\tif( myCellImagerX+\"SIer00\" != response )\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"Initializing CellImager Module \",myCellImagerX,\" failed!\" );\r\n\t}\r\n\r\n\t// XDSA65 move to absolute position\r\n\tif( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,\"SA\",\"65\",response))\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"<DaisyChainedTxRxCommand(\",myCellImagerX,\"SA65)> failed!\" );\r\n\t}\r\n\tif( myCellImagerX+\"SAer00\" != response )\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"Initializing CellImager Module \",myCellImagerX,\" failed!\" );\r\n\t}\r\n\r\n\t// YDSI\r\n\tif( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerY,\"SI\",\"\",response))\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"<DaisyChainedTxRxCommand(\",myCellImagerY,\"SI)> failed!\" );\r\n\t}\r\n\tif( myCellImagerY+\"SIer00\" != response )\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"Initializing CellImager Module \",myCellImagerY,\" failed!\" );\r\n\t}\r\n\r\n\t// XDPO\r\n\tif( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,\"PO\",\"\",response)) \r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"<DaisyChainedTxRxCommand(\",myCellImagerX,\"PO)> failed!\" );\r\n\t}\r\n\r\n\t// YDPO\r\n\tif( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerY,\"PO\",\"\",response)) \r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"<DaisyChainedTxRxCommand(\",myCellImagerY,\"PO)> failed!\" );\r\n\t}\r\n\r\n\t// close comm. port\r\n\tHSLDaisyChainCommunication::TerminateDaisyChainCommunication(myCellImagerX);\r\n\tHSLDaisyChainCommunication::TerminateDaisyChainCommunication(myCellImagerY);\r\n}\r\n*/\r\n/*\r\nmethod main() void\r\n{\r\n   variable myComPort(3);\r\n   variable myPlatePresenter(\"00\");\r\n   variable myTraceLevel(HSLDaisyChainCommunication::TRACE_LEVEL_FULL);\r\n   variable errCode;\r\n   variable errMsg;\r\n\r\n   errCode = HSLDaisyChainCommunication::InitializeDaisyChainCommunication( myPlatePresenter, myComPort, myTraceLevel );\r\n\tif( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n\t{\r\n\t\tFormatTrace( GetFunctionName(),\"()\",HSLDaisyChainCommunication::CMD_ERROR, \"<InitializeDaisyChainCommunication()> for module \",myPlatePresenter,\" failed! (Error code = \", errCode, \", error message = \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n      HSLDaisyChainCommunication::TerminateDaisyChainCommunication( myPlatePresenter );\r\n\t}\r\n\r\n   HSLDaisyChainCommunication::TerminateDaisyChainCommunication( myPlatePresenter );\r\n}\r\n*/\r\n#endif\r\n// $$author=rvogel$$valid=0$$time=2008-10-01 12:20$$checksum=68fc3401$$length=085$$"
  },
  {
    "path": "pyhamilton/library/HSLDaisyChainedMediaLine.hsl",
    "content": "// ======================================================================\r\n// Interface of the Daisy Chained Media Line library \r\n//\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//\t\t2008-08-06, V1.0: Ruedi Vogel, created\r\n//    2009-02-05, V1.2: Ruedi Vogel\r\n//       - defines to control valves for water and ethanol exchanged\r\n//    2009-11-16, V1.3: Alex Redei\r\n//       - added commands to handle if the user does not want to init\r\n//       - the waste pump\r\n// ======================================================================\r\n\r\n#ifndef __HSL_DaisyChainedMediaLine_hsl__\r\n#define __HSL_DaisyChainedMediaLine_hsl__\t1\r\n\r\n#ifndef __HSLStrLib_hsl__\r\n#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSL_DaisyChainCommunication_hsl__\r\n#include \"HSLDaisyChainCommunication.hsl\"\r\n#endif\r\n\r\n\r\nnamespace HSLDaisyChainedMediaLineNEW\r\n{\r\n\t/*********************************************************************\r\n\t*\r\n\t* Exported return constants\r\n\t*\r\n\t*********************************************************************/\r\n\t\r\n\tconst static variable CMD_START   ( 1 );\r\n\tconst static variable CMD_COMPLET ( 2 );\r\n\tconst static variable CMD_ERROR   ( 5 );   // to prevent suspicious Phoenix error messages\r\n\tconst static variable CMD_PROGRESS( 4 );\r\n\tconst static variable CMD_ERRCOMPL( 5 );\r\n\r\n\tconst variable TRACE_LEVEL_NONE   ( 0 );\r\n\tconst variable TRACE_LEVEL_NORMAL ( 1 );\r\n   const variable TRACE_LEVEL_FULL   ( 2 );\r\n   const variable HSL_FALSE          ( hslFalse );\r\n   const variable HSL_TRUE           ( hslTrue );\r\n   \r\n\tconst variable ERROR_NONE                                         (  0 );\r\n   const variable ERROR_COMM_ALREADY_INIT                            (  1 );\r\n\tconst variable ERROR_PRM_OUT_OF_RANGE                             (  2 );\r\n\tconst variable ERROR_FALSE_COMM_PORT                              (  3 );\r\n\tconst variable ERROR_HSL_FUNCTION_FAILED                          (  4 );\r\n\tconst variable ERROR_WRITE_RECORD_FAILED                          (  5 );\r\n\tconst variable ERROR_READ_RECORD_FAILED                           (  6 );\r\n\tconst variable ERROR_UNEXPECTED_TXRX_COMMAND                      (  7 );\r\n\tconst variable ERROR_UNEXPECTED_TXRX_RESET                        (  8 );\r\n\tconst variable ERROR_INIT_NOT_FOUND                               (  9 );\r\n\tconst variable ERROR_STEP_LOST                                    ( 10 );\r\n\tconst variable ERROR_NOT_INITIALIZED                              ( 11 );\r\n\tconst variable ERROR_PARALLEL_ERROR                               ( 12 );\r\n\tconst variable ERROR_STEPPER_MOTOR_HW_DEFECTIVE                   ( 13 );\r\n\tconst variable ERROR_CMD_UNKNOWN                                  ( 14 );\r\n   const variable ERROR_UNKNOWN_DEVICE_NAME                          ( 15 );\r\n   const variable ERROR_PERISTALTIC_PUMP_OVERLOAD                    ( 16 );\r\n   const variable ERROR_PERISTALTIC_PUMP_TIMEOUT                     ( 17 );\r\n\tconst variable ERROR_UNKNOWN_ERROR_CODE                           ( 18 );\r\n\r\n\tconst static string ERROR_MSG_NONE                                ( \"No error.\" );\r\n   const static string ERROR_MSG_COMM_ALREADY_INIT                   ( HSLDaisyChainCommunication::ERROR_MSG_ALREADY_INITIALIZED );\r\n\tconst static string ERROR_MSG_PRM_OUT_OF_RANGE                    ( HSLDaisyChainCommunication::ERROR_MSG_PARAMETER_OUT_OF_RANGE );\r\n\tconst static string ERROR_MSG_FALSE_COMM_PORT                     ( HSLDaisyChainCommunication::ERROR_MSG_FALSE_COMM_PORT );\r\n\tconst static string ERROR_MSG_HSL_FUNCTION_FAILED                 ( HSLDaisyChainCommunication::ERROR_MSG_HSL_FUNCTION_FAILED );\r\n\tconst static string ERROR_MSG_WRITE_RECORD_FAILED                 ( HSLDaisyChainCommunication::ERROR_MSG_WRITE_RECORD_FAILED );\r\n\tconst static string ERROR_MSG_READ_RECORD_FAILED                  ( HSLDaisyChainCommunication::ERROR_MSG_READ_RECORD_FAILED );\r\n\tconst static string ERROR_MSG_UNEXPECTED_TXRX_COMMAND             ( HSLDaisyChainCommunication::ERROR_MSG_UNEXPECTED_TXRX_COMMAND );\r\n\tconst static string ERROR_MSG_UNEXPECTED_TXRX_RESET               ( HSLDaisyChainCommunication::ERROR_MSG_UNEXPECTED_TXRX_RESET );\r\n\tconst static string ERROR_MSG_INIT_NOT_FOUND                      ( \"Init position not found!\" );\r\n\tconst static string ERROR_MSG_STEP_LOST                           ( \"Steps lost (overload)!\" );\r\n\tconst static string ERROR_MSG_NOT_INITIALIZED                     ( \"Drive not initialized!\" );\r\n\tconst static string ERROR_MSG_PARALLEL_ERROR                      ( \"Parallel functions not allowed!\" );\r\n\tconst static string ERROR_MSG_STEPPER_MOTOR_HW_DEFECTIVE          ( \"Stepper motor power amp defective!\" );\r\n\tconst static string ERROR_MSG_CMD_UNKNOWN                         ( \"Unknown command!\" );\r\n   const static string ERROR_MSG_UNKNOWN_DEVICE_NAME                 ( \"Unknown device name (module identifier)!\" );\r\n   const static string ERROR_MSG_PERISTALTIC_PUMP_OVERLOAD           ( \"Peristaltic pump overload!\" );\r\n   const static string ERROR_MSG_PERISTALTIC_PUMP_TIMEOUT            ( \"Peristaltic pump timeout (Level sensor came not active)!\" );\r\n\tconst static string ERROR_MSG_UNKNOWN_ERROR_CODE                  ( \"Unknown error code!\" );\r\n\r\n   const static variable VALVE_MEDIUM ( \"5\" );\r\n   const static variable VALVE_WATER  ( \"6\" );\r\n   const static variable VALVE_ETHANOL( \"7\" );\r\n\r\n\r\n\t/*********************************************************************\r\n\t*\r\n\t* Module globale constants/variables\r\n\t*\r\n\t*********************************************************************/\r\n\r\n\tstatic global variable HSLdaisyChainedMediaLine_SimulationFlag( HSL_FALSE );\r\n\tstatic global variable HSLdaisyChainedMediaLine_TrcLvl( TRACE_LEVEL_NORMAL );\r\n\tstatic global variable bIsTheTroughFull (HSL_FALSE);\r\n\r\n\r\n   /*********************************************************************\r\n\t*\r\n\t* Overflow prevention arrays\r\n\t*\r\n\t*********************************************************************/\r\n   static global variable MediaLine_ComPorts[];\r\n   static global variable MediaLine_Modules[];\r\n\r\n\t/*********************************************************************\r\n\t*\r\n\t* Declarations\r\n\t*\r\n\t*********************************************************************/\r\n\r\n\tfunction Initialize( variable iModuleIndex, variable iComPort, variable iTraceLevel, variable iSimulate ) variable;\r\n\tfunction Terminate( variable iModuleIndex ) void;\t\r\n\tfunction Prime( variable iModuleIndex, variable iMediumType, variable iMediumPumpTime, variable iMediumPumpPower ) variable;\r\n   function ReversePrime( variable iModuleIndex, variable iMediumType, variable iMediumPumpTime, variable iMediumPumpPower ) variable;\r\n\tfunction Fill( variable iModuleIndex, variable iMediumType, variable iMediumPumpTimeout, variable iMediumPumpPower ) variable;\r\n   function FillWithTimeOut( variable iModuleIndex, variable iMediumPumpTimeout, variable iMediumPumpPower ) variable;\r\n   function RequestLevelSensor( variable iModuleIndex, variable & oLevelState ) variable;\r\n   function OpenValvesForMaintenance( variable iModuleIndex );\r\n\tfunction EvaluateErrorMessage( variable iErrorCode ) string;\r\n   function OnAbortMediaLine();\r\n\r\n\tstatic function DecodeMediaLineModuleErrorCode( variable iErrCode ) variable;\r\n\tstatic function DecodeCommunicationErrorCode( variable iErrCode ) variable;\r\n   static function TxRxCommand( variable iModuleIndex, variable iCommand, variable iParameter, variable & oResponse ) variable;\r\n   static function TxRxReset( variable iModuleIndex ) variable;\r\n   static function Delay( variable iTime ) void;\r\n   static function TerminateDueToAnError( variable iModuleIndex ) void;\r\n   static function AddToArray(variable iModuleString, variable iComPort) variable;\r\n\r\n\t\r\n\t/*********************************************************************\r\n\t*\r\n\t* Implementations\r\n\t*\r\n\t*********************************************************************/\r\n\r\n   function OnAbortMediaLine()\r\n   {\r\n   \tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n      variable iModuleIndex(1);\r\n      variable iComPort;\r\n      variable iModuleString;\r\n\r\n      onerror goto errorhandler;\r\n\r\n      if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_START, \"Abort method called! ***Forced shutdown *** of all media line stations!\" );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_PROGRESS, \" Media line module runs in simulation mode!\" );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n      //while(0 < MediaLine_ComPorts.GetSize());\r\n      //oInstrumentName.RemoveElementAt( 0 );\r\n      //oInstrumentName.AddAsLast( \"Simulation\" );\r\n      //oInstrumentName.GetAt(0);\r\n      \r\n      while(0 < MediaLine_ComPorts.GetSize() && 0 < MediaLine_Modules.GetSize())\r\n      {\r\n         iComPort = StrIVal(MediaLine_ComPorts.GetAt(0));\r\n         iModuleString = MediaLine_Modules.GetAt(0);\r\n         \r\n\r\n         Trace(\"Terminating any old connections on COM\", iComPort, \" for \", iModuleString);\r\n         \r\n         errCode = DecodeCommunicationErrorCode(HSLDaisyChainCommunication::TerminateDaisyChainCommunication(iModuleString));\r\n         Trace(\"Terminated daisy chain with error code [\", errCode, \"]\");\r\n\r\n         Trace(\"Initializing a new connection on COM\", iComPort, \" for \", iModuleString);\r\n         errCode = DecodeCommunicationErrorCode( HSLDaisyChainCommunication::InitializeDaisyChainCommunication( iModuleString, iComPort, HSLdaisyChainedMediaLine_TrcLvl ));\r\n\t      Trace(\"Done initializing (code: \", errCode, \")\");\r\n         if( HSLDaisyChainCommunication::ERROR_NONE == errCode )\r\n   \t   {\r\n            //Trace(\"Reset pump [\", iModuleIndex, \"]\");\r\n            //TxRxReset( \"M\" + IStr( iModuleIndex ));\r\n            //Trace(\"Finish rest pump\");\r\n\r\n   \t\t   // -------------------------------------------------------------------------\r\n   \t\t   // Stop medium pump\r\n   \t\t   // -------------------------------------------------------------------------\r\n   \t\t   command   = \"PA\";\r\n   \t\t   parameter = \"\";\r\n   \t\t   response  = \"\";\r\n   \t\t   errCode = TxRxCommand( iModuleString, command, parameter, response );\r\n   \t\t   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, \">)\" );\r\n\r\n   \t\t   // -------------------------------------------------------------------------\r\n   \t\t   // close all valves\r\n   \t\t   // -------------------------------------------------------------------------\r\n   \t\t   command   = \"PR\";\r\n   \t\t   parameter = \"\";\r\n   \t\t   response  = \"\";\r\n   \t\t   errCode = TxRxCommand( iModuleString, command, parameter, response );\r\n   \t\t   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, \">)\" );\r\n\r\n            // -------------------------------------------------------------------------\r\n   \t\t   // close comm. port\r\n   \t\t   // -------------------------------------------------------------------------\r\n            errCode = HSLDaisyChainCommunication::TerminateDaisyChainCommunication( iModuleString);\r\n   \t\t   if( HSLDaisyChainCommunication::ERROR_NONE != errCode && TRACE_LEVEL_NORMAL < HSLdaisyChainedMediaLine_TrcLvl )\r\n   \t\t   {\r\n   \t\t\t   FormatTrace( GetFunctionName(), \"()\", CMD_PROGRESS, \" <TerminateDaisyChainCommunication()> to media line module <M\", iModuleIndex, \"> failed! It is possible that there is no media pump on this line. (Communication error code = \", errCode, \", error message = \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n   \t\t   }\r\n            \r\n         }\r\n         \r\n         MediaLine_ComPorts.RemoveElementAt(0);\r\n         MediaLine_Modules.RemoveElementAt(0);\r\n         //iModuleIndex++;\r\n      }\r\n\r\n      if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \"***END Forced Shutdown***\" );\r\n      return;\r\n\r\n      errorhandler:\r\n      {\r\n         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!\");\r\n         if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \"***END Forced Shutdown***\" );\r\n         \r\n         return;\r\n      }\r\n\r\n\r\n   }\r\n\r\n\r\n\tfunction Initialize( variable iModuleIndex, variable iComPort, variable iTraceLevel, variable iSimulate ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\t\t\r\n\t\tHSLdaisyChainedMediaLine_SimulationFlag = iSimulate;\r\n\t\tHSLdaisyChainedMediaLine_TrcLvl = iTraceLevel;\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Initialize media line system #\", iModuleIndex, \" on COM\", iComPort );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iModuleIndex ) || ( 9 < iModuleIndex ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter module index #\", iModuleIndex, \" out of range [1..9]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 1 > iComPort) || ( 255 < iComPort ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter comPort #\", iComPort, \" out of range [1..255]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Media line module runs in simulation mode!\" );\r\n         return( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// initialize communication port\r\n\t\t// -------------------------------------------------------------------------\r\n      errCode = DecodeCommunicationErrorCode( HSLDaisyChainCommunication::InitializeDaisyChainCommunication( \"M\" + IStr( iModuleIndex ), iComPort, iTraceLevel ));\r\n\t   if( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n   \t{\r\n\t   \tFormatTrace( GetFunctionName(), \"()\", HSLDaisyChainCommunication::CMD_ERROR, \"<InitializeDaisyChainCommunication()> for media line module M\",iModuleIndex,\" failed! (Error code = \", errCode, \", error message = \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n         HSLDaisyChainCommunication::TerminateDaisyChainCommunication( \"M\" + IStr( iModuleIndex ));\r\n         return( errCode );\r\n\t   }\r\n\r\n     //*****************************************\r\n     // REFACTOR ME\r\n      AddToArray(\"M\" + IStr(iModuleIndex), IStr(iComPort));\r\n      //MediaLine_Modules.AddAsLast(\"M\" + IStr(iModuleIndex));\r\n      //MediaLine_ComPorts.AddAsLast(IStr(iComPort));\r\n\r\n\t\t\r\n\t\t //-------------------------------------------------------------------------\r\n\t\t //reset firmware (with configuring timeouts)\r\n\t\t //-------------------------------------------------------------------------\r\n\t\terrCode = TxRxReset( \"M\" + IStr( iModuleIndex ));\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Resetting firmware system of media line module failed! (System M\", iModuleIndex, \")\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit clear error command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"EI\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Resetting errors on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"RF\", request firmware version\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"RF\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Requesting firmware version of media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_PROGRESS, \"Firmware version of media line module <M\", iModuleIndex, \"> is \", response );\r\n\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"SI\", initialize, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t//command   = \"SI\";\r\n\t\t//parameter = \"\";\r\n\t\t//response  = \"\";\r\n\t\t//errCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\t//if( ERROR_NONE != errCode )\r\n\t\t//{\r\n\t\t//\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Initializing of media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t//\treturn( errCode );\r\n\t\t//}\r\n\r\n      //register the OnAbort error handler to prevent overflows.\r\n      if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl )\r\n      { \r\n          FormatTrace(GetFunctionName(), \"()\", CMD_PROGRESS, \"Registering the OnAbort error handler...\" );\r\n      }\r\n      RegisterAbortHandler(\"HSLDaisyChainedMediaLine::OnAbortMediaLine\");\r\n      if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_PROGRESS, \"Completed registering the OnAbort handler...\" );\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\t\r\n\tfunction Terminate(variable iModuleIndex) void\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleIndex );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iModuleIndex ) || ( 9 < iModuleIndex ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter module index #\", iModuleIndex, \" out of range [1..9]!\" );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Media line module runs in simulation mode!\" );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// stop pumps, close valves\r\n\t\t// -------------------------------------------------------------------------\r\n      TerminateDueToAnError( iModuleIndex );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// close comm. port\r\n\t\t// -------------------------------------------------------------------------\r\n      errCode = HSLDaisyChainCommunication::TerminateDaisyChainCommunication( \"M\" + IStr( iModuleIndex ));\r\n\t\tif( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" <TerminateDaisyChainCommunication()> to media line module <M\", iModuleIndex, \"> failed! (Communication error code = \", errCode, \", error message = \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn;\r\n\t}\r\n\r\n\r\n\r\n\tfunction Prime( variable iModuleIndex, variable iMediumType, variable iMediumPumpTime, variable iMediumPumpPower ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( 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 );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iModuleIndex ) || ( 9 < iModuleIndex ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter module index #\", iModuleIndex, \" out of range [1..9]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( \"M\" != iMediumType ) && ( \"W\" != iMediumType ) && ( \"E\" != iMediumType ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium type \\\"\", iMediumType, \"\\\" out of range [\\\"M\\\",\\\"W\\\",\\\"E\\\"]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 0 > iMediumPumpTime ) || ( 240 < iMediumPumpTime ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium pump time = \", iMediumPumpTime, \" out of range [0..240]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 50 > iMediumPumpPower ) || ( 80 < iMediumPumpPower ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium power = \", iMediumPumpPower, \" out of range [50%..80%]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Media line module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Open desired valve\r\n\t\t// -------------------------------------------------------------------------\r\n      // close all valves\r\n\t\tcommand   = \"PR\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" First closing all valves on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // open desired valve\r\n\t\tcommand   = \"PS\";\r\n           if( \"M\" == iMediumType ) parameter = VALVE_MEDIUM;\r\n      else if( \"W\" == iMediumType ) parameter = VALVE_WATER;\r\n      else                          parameter = VALVE_ETHANOL;\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Switching valve \\\"on\\\" on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Switching medium pump on\r\n\t\t// -------------------------------------------------------------------------\r\n      // set pumping power\r\n\t\tcommand   = \"PP\";\r\n\t\tparameter = IStr( Floor( iMediumPumpPower + 0.5 ));\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting pumping power on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // set pumping direction\r\n\t\tcommand   = \"PD\";\r\n\t\tparameter = \"0\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting pumping direction on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // start pump\r\n\t\tcommand   = \"PE\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Starting pump on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Wait desired time\r\n\t\t// -------------------------------------------------------------------------\r\n      Delay( iMediumPumpTime );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Turn medium pump in reversed direction for short time\r\n\t\t// -------------------------------------------------------------------------\r\n      // stop pump\r\n\t\tcommand   = \"PA\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Stopping pump on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // set reversed pump direction\r\n\t\tcommand   = \"PD\";\r\n\t\tparameter = \"1\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting reversed pump direction on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // start pump\r\n\t\tcommand   = \"PE\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Starting pump on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // wait short time\r\n      Delay( 1.0 );\r\n      // switch pump off\r\n\t\tcommand   = \"PA\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Stopping reversed pumping on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Switch valve off (don't care which was on)\r\n\t\t// -------------------------------------------------------------------------\r\n      // switch all valves off\r\n\t\tcommand   = \"PR\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Switching valve(s) \\\"off\\\" on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // wait a while\r\n      Delay( 5.0 );\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\tfunction ReversePrime( variable iModuleIndex, variable iMediumType, variable iMediumPumpTime, variable iMediumPumpPower ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( 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 );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iModuleIndex ) || ( 9 < iModuleIndex ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter module index #\", iModuleIndex, \" out of range [1..9]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( \"M\" != iMediumType ) && ( \"W\" != iMediumType ) && ( \"E\" != iMediumType ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium type \\\"\", iMediumType, \"\\\" out of range [\\\"M\\\",\\\"W\\\",\\\"E\\\"]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 0 > iMediumPumpTime ) || ( 240 < iMediumPumpTime ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium pump time = \", iMediumPumpTime, \" out of range [0..240]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 50 > iMediumPumpPower ) || ( 80 < iMediumPumpPower ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium power = \", iMediumPumpPower, \" out of range [50%..80%]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Media line module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Open desired valve\r\n\t\t// -------------------------------------------------------------------------\r\n      // close all valves\r\n\t\tcommand   = \"PR\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" First closing all valves on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // open desired valve\r\n\t\tcommand   = \"PS\";\r\n           if( \"M\" == iMediumType ) parameter = VALVE_MEDIUM;\r\n      else if( \"W\" == iMediumType ) parameter = VALVE_WATER;\r\n      else                          parameter = VALVE_ETHANOL;\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Switching valve \\\"on\\\" on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Switching medium pump on\r\n\t\t// -------------------------------------------------------------------------\r\n      // set pumping power\r\n\t\tcommand   = \"PP\";\r\n\t\tparameter = IStr( Floor( iMediumPumpPower + 0.5 ));\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting pumping power on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // set pumping direction\r\n\t\tcommand   = \"PD\";\r\n\t\tparameter = \"1\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting pumping direction on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // start pump\r\n\t\tcommand   = \"PE\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Starting pump on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Wait desired time\r\n\t\t// -------------------------------------------------------------------------\r\n      Delay( iMediumPumpTime );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Turn medium pump in reversed direction for short time\r\n\t\t// -------------------------------------------------------------------------\r\n      // stop pump\r\n\t\tcommand   = \"PA\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Stopping pump on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // set reversed pump direction\r\n\t\tcommand   = \"PD\";\r\n\t\tparameter = \"0\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting reversed pump direction on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // start pump\r\n\t\tcommand   = \"PE\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Starting pump on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // wait short time\r\n      Delay( 1.0 );\r\n      // switch pump off\r\n\t\tcommand   = \"PA\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Stopping reversed pumping on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Switch valve off (don't care which was on)\r\n\t\t// -------------------------------------------------------------------------\r\n      // switch all valves off\r\n\t\tcommand   = \"PR\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Switching valve(s) \\\"off\\\" on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // wait a while\r\n      Delay( 5.0 );\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tfunction FillWithTimeOut( variable iModuleIndex, variable iMediumPumpTimeout, variable iMediumPumpPower ) variable\r\n   {\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n      timer _hamiltonTimerToHandlePumpingLiquid;\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Media line module #\", iModuleIndex, \", medium pump timeout = \", iMediumPumpTimeout, \", medium pump power = \", iMediumPumpPower );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iModuleIndex ) || ( 9 < iModuleIndex ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter module index #\", iModuleIndex, \" out of range [1..9]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 0 > iMediumPumpTimeout ) || ( 240 < iMediumPumpTimeout ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium pump timeout = \", iMediumPumpTimeout, \" out of range [0..240]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 50 > iMediumPumpPower ) || ( 80 < iMediumPumpPower ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium power = \", iMediumPumpPower, \" out of range [50%..80%]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Media line module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Start medium pump\r\n\t\t// -------------------------------------------------------------------------\r\n      // set pumping power\r\n\t\tcommand   = \"PP\";\r\n\t\tparameter = IStr( Floor( iMediumPumpPower + 0.5 ));\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting pumping power on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t//we have come to the spot where we would normally fill the trough,\t\t\r\n\t\t//start a timer to measure how long the trough has been filling\r\n\r\n\t\t_hamiltonTimerToHandlePumpingLiquid.SetTimer(iMediumPumpTimeout);\r\n\r\n\t\t//start filling the trough\r\n\t\tcommand = \"PE\";\r\n\t\tparameter = \"\";\r\n\t\tresponse = \"\";\r\n\t\terrCode = TxRxCommand(\"M\" + IStr(iModuleIndex), command, parameter, response);\r\n\t\tif(ERROR_NONE != errCode)\r\n\t\t{\r\n\t\t\tFormatTrace(GetFunctionName(), \"()\", CMD_ERROR, \" Failed to start the pump to fill the trough. (System M\", iModuleIndex, \". TxRxCommand(\", command, parameter, \"), reponse = <\", response, \">\");\r\n\t\t\tTerminateDueToAnError(iModuleIndex);\r\n\t\t\treturn (errCode);\r\n\t\t}\r\n\r\n      if( 0 == _hamiltonTimerToHandlePumpingLiquid.WaitTimer(hslFalse, hslFalse) )\r\n      {\r\n          break; //immediate shut-off\r\n      }\r\n\r\n\t\t//finally, let's shut off the motor:\r\n\t\tcommand = \"PA\";\r\n\t\tparameter = \"\";\r\n\t\tresponse = \"\";\r\n\t\terrCode = TxRxCommand(\"M\" + IStr(iModuleIndex), command, parameter, response);\r\n\t\tif(ERROR_NONE != errCode)\r\n\t\t{\r\n\t\t\tFormatTrace(GetFunctionName(), \"()\", CMD_ERROR, \" Failed to shut off the motor. (System M\", iModuleIndex, \". TxRxCommand(\", command, parameter, \") response = <\", response, \">\");\r\n\t\t\tTerminateDueToAnError(iModuleIndex);\r\n\t\t\treturn (errCode);\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n   }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tfunction Fill( variable iModuleIndex, variable iMediumType, variable iMediumPumpTimeout, variable iMediumPumpPower ) variable\r\n   {\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\t\tvariable liquidLevel;\r\n\r\n\t\tif( 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 );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iModuleIndex ) || ( 9 < iModuleIndex ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter module index #\", iModuleIndex, \" out of range [1..9]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( \"M\" != iMediumType ) && ( \"W\" != iMediumType ) && ( \"E\" != iMediumType ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium type \\\"\", iMediumType, \"\\\" out of range [\\\"M\\\",\\\"W\\\",\\\"E\\\"]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 0 > iMediumPumpTimeout ) || ( 240 < iMediumPumpTimeout ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium pump timeout = \", iMediumPumpTimeout, \" out of range [0..240]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tif(( 50 > iMediumPumpPower ) || ( 80 < iMediumPumpPower ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter medium power = \", iMediumPumpPower, \" out of range [50%..80%]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Media line module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Open desired valve\r\n\t\t// -------------------------------------------------------------------------\r\n      // close all valves\r\n\t\tcommand   = \"PR\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" First closing all valves on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n      // open desired valve\r\n\t\tcommand   = \"PS\";\r\n           if( \"M\" == iMediumType ) parameter = VALVE_MEDIUM;\r\n      else if( \"W\" == iMediumType ) parameter = VALVE_WATER;\r\n      else                          parameter = VALVE_ETHANOL;\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Switching valve \\\"on\\\" on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Start medium pump\r\n\t\t// -------------------------------------------------------------------------\r\n      // set pumping power\r\n\t\tcommand   = \"PP\";\r\n\t\tparameter = IStr( Floor( iMediumPumpPower + 0.5 ));\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting pumping power on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t//we have come to the spot where we would normally fill the trough,\r\n\t\t//first, let's check that the trough is not already full\r\n\r\n\t\t//or use the request level sensor method\r\n\t\tRequestLevelSensor(iModuleIndex, liquidLevel);\r\n\t\t\r\n\t\tif(liquidLevel != \"full\")\r\n\t\t{\t\r\n\t\t\t//start a timer to measure how long the trough has been filling\r\n\t\t\ttimer _hamiltonTimerToHandlePumpingLiquid;\r\n\t\t\t_hamiltonTimerToHandlePumpingLiquid.SetTimer(iMediumPumpTimeout);\r\n\r\n\t\t\t//start filling the trough\r\n\t\t\tcommand = \"PE\";\r\n\t\t\tparameter = \"\";\r\n\t\t\tresponse = \"\";\r\n\t\t\terrCode = TxRxCommand(\"M\" + IStr(iModuleIndex), command, parameter, response);\r\n\t\t\tif(ERROR_NONE != errCode)\r\n\t\t\t{\r\n\t\t\t\tFormatTrace(GetFunctionName(), \"()\", CMD_ERROR, \" Failed to start the pump to fill the trough. (System M\", iModuleIndex, \". TxRxCommand(\", command, parameter, \"), reponse = <\", response, \">\");\r\n\t\t\t\tTerminateDueToAnError(iModuleIndex);\r\n\t\t\t\treturn (errCode);\r\n\t\t\t}\r\n\r\n\t\t\twhile(liquidLevel != \"full\")\r\n\t\t\t{\r\n\t\t\t\tif(_hamiltonTimerToHandlePumpingLiquid.GetElapsedTime() >  iMediumPumpTimeout)\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t//check that the trough is not full\r\n\t\t\t\tRequestLevelSensor(iModuleIndex, liquidLevel);\r\n\t\t\t}\r\n\r\n\r\n\t\t\t//finally, let's shut off the motor:\r\n\t\t\tcommand = \"PA\";\r\n\t\t\tparameter = \"\";\r\n\t\t\tresponse = \"\";\r\n\t\t\terrCode = TxRxCommand(\"M\" + IStr(iModuleIndex), command, parameter, response);\r\n\t\t\tif(ERROR_NONE != errCode)\r\n\t\t\t{\r\n\t\t\t\tFormatTrace(GetFunctionName(), \"()\", CMD_ERROR, \" Failed to shut off the motor. (System M\", iModuleIndex, \". TxRxCommand(\", command, parameter, \") response = <\", response, \">\");\r\n\t\t\t\tTerminateDueToAnError(iModuleIndex);\r\n\t\t\t\treturn (errCode);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n      // fill with movement and time out supervision\r\n\t\tcommand   = \"FM\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\t//errCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Pumping on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Close any valve\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PR\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Closing any valve on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n         TerminateDueToAnError( iModuleIndex );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n   }\r\n\r\n\r\n\r\n\r\n   function RequestLevelSensor( variable iModuleIndex, variable & oLevelState ) variable\r\n   {\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Media line module #\", iModuleIndex );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// initialize output parameters\r\n\t\t// -------------------------------------------------------------------------\r\n      oLevelState = \"\";\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iModuleIndex ) || ( 9 < iModuleIndex ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter module index #\", iModuleIndex, \" out of range [1..9]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Media line module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// request level sensor state\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"RC\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Requesting capacitive level sensor on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// decode level sensor state\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif( \"E\" == StrMid( response, 11, 1 ))\r\n\t\t\toLevelState = \"empty\";\r\n\t\telse\r\n\t\t\toLevelState = \"full\";\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Capacitive level sensor's state is \\\"\", oLevelState, \"\\\"\" );\r\n\t\treturn( ERROR_NONE );\r\n   }\r\n\r\n\r\n\r\n\r\n   function OpenValvesForMaintenance( variable iModuleIndex )\r\n   {\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Media line module #\", iModuleIndex );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iModuleIndex ) || ( 9 < iModuleIndex ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter module index #\", iModuleIndex, \" out of range [1..9]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Media line module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// open all valves (for medium, water, and ethanol)\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PS\";\r\n\t\tparameter = VALVE_MEDIUM;\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Opening valve for medium on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\t\tcommand   = \"PS\";\r\n\t\tparameter = VALVE_ETHANOL;\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Opening valve for ethanol on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\t\tcommand   = \"PS\";\r\n\t\tparameter = VALVE_WATER;\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Opening valve for water on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// hold valves open for 2 minutes\r\n\t\t// -------------------------------------------------------------------------\r\n      Delay( 120 );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// close all valves\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PR\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Closing all valves on media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n   }\r\n\r\n\r\n\r\n\r\n\tfunction EvaluateErrorMessage( variable iErrorCode ) string\r\n\t{\r\n   \t     if( iErrorCode == ERROR_NONE                                    ) return( ERROR_MSG_NONE );\r\n      else if( iErrorCode == ERROR_COMM_ALREADY_INIT                       ) return( ERROR_MSG_COMM_ALREADY_INIT );\r\n   \telse if( iErrorCode == ERROR_PRM_OUT_OF_RANGE                        ) return( ERROR_MSG_PRM_OUT_OF_RANGE );\r\n   \telse if( iErrorCode == ERROR_FALSE_COMM_PORT                         ) return( ERROR_MSG_FALSE_COMM_PORT );\r\n   \telse if( iErrorCode == ERROR_HSL_FUNCTION_FAILED                     ) return( ERROR_MSG_HSL_FUNCTION_FAILED );\r\n   \telse if( iErrorCode == ERROR_WRITE_RECORD_FAILED                     ) return( ERROR_MSG_WRITE_RECORD_FAILED );\r\n   \telse if( iErrorCode == ERROR_READ_RECORD_FAILED                      ) return( ERROR_MSG_READ_RECORD_FAILED );\r\n   \telse if( iErrorCode == ERROR_UNEXPECTED_TXRX_COMMAND                 ) return( ERROR_MSG_UNEXPECTED_TXRX_COMMAND );\r\n   \telse if( iErrorCode == ERROR_UNEXPECTED_TXRX_RESET                   ) return( ERROR_MSG_UNEXPECTED_TXRX_RESET );\r\n   \telse if( iErrorCode == ERROR_INIT_NOT_FOUND                          ) return( ERROR_MSG_INIT_NOT_FOUND );\r\n   \telse if( iErrorCode == ERROR_STEP_LOST                               ) return( ERROR_MSG_STEP_LOST );\r\n   \telse if( iErrorCode == ERROR_NOT_INITIALIZED                         ) return( ERROR_MSG_NOT_INITIALIZED );\r\n   \telse if( iErrorCode == ERROR_PARALLEL_ERROR                          ) return( ERROR_MSG_PARALLEL_ERROR );\r\n   \telse if( iErrorCode == ERROR_STEPPER_MOTOR_HW_DEFECTIVE              ) return( ERROR_MSG_STEPPER_MOTOR_HW_DEFECTIVE );\r\n   \telse if( iErrorCode == ERROR_CMD_UNKNOWN                             ) return( ERROR_MSG_CMD_UNKNOWN );\r\n      else if( iErrorCode == ERROR_UNKNOWN_DEVICE_NAME                     ) return( ERROR_MSG_UNKNOWN_DEVICE_NAME );\r\n      else if( iErrorCode == ERROR_PERISTALTIC_PUMP_OVERLOAD               ) return( ERROR_MSG_PERISTALTIC_PUMP_OVERLOAD );\r\n      else if( iErrorCode == ERROR_PERISTALTIC_PUMP_TIMEOUT                ) return( ERROR_MSG_PERISTALTIC_PUMP_TIMEOUT );\r\n   \telse if( iErrorCode == ERROR_UNKNOWN_ERROR_CODE                      ) return( ERROR_MSG_UNKNOWN_ERROR_CODE );\r\n   \telse                                                                   return( ERROR_MSG_UNKNOWN_ERROR_CODE );\r\n\t}\r\n\r\n\r\n\r\n\r\n\tstatic function DecodeMediaLineModuleErrorCode( variable iErrCode ) variable\r\n\t{\r\n\t\t     if(  0 == iErrCode ) return( ERROR_NONE );\r\n\t\telse if(  1 == iErrCode ) return( ERROR_INIT_NOT_FOUND );\r\n\t\telse if(  2 == iErrCode ) return( ERROR_STEP_LOST );\r\n\t\telse if(  3 == iErrCode ) return( ERROR_NOT_INITIALIZED );\r\n\t\telse if(  4 == iErrCode ) return( ERROR_PARALLEL_ERROR );\r\n\t\telse if(  5 == iErrCode ) return( ERROR_STEPPER_MOTOR_HW_DEFECTIVE );\r\n\t\telse if(  6 == iErrCode ) return( ERROR_PRM_OUT_OF_RANGE );\r\n\t\telse if(  7 == iErrCode ) return( ERROR_CMD_UNKNOWN );\r\n\t\telse if(  8 == iErrCode ) return( ERROR_PERISTALTIC_PUMP_OVERLOAD );\r\n\t\telse if(  9 == iErrCode ) return( ERROR_PERISTALTIC_PUMP_TIMEOUT );\r\n   \telse                      return( ERROR_UNKNOWN_ERROR_CODE );\r\n\t}\r\n\r\n\r\n\r\n\tstatic function DecodeCommunicationErrorCode( variable iErrCode ) variable\r\n\t{\r\n\t\t     if( HSLDaisyChainCommunication::ERROR_NONE                    == iErrCode ) return( ERROR_NONE );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_ALREADY_INITIALIZED     == iErrCode ) return( ERROR_COMM_ALREADY_INIT );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_PARAMETER_OUT_OF_RANGE  == iErrCode ) return( ERROR_PRM_OUT_OF_RANGE );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_FALSE_COMM_PORT         == iErrCode ) return( ERROR_FALSE_COMM_PORT );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_HSL_FUNCTION_FAILED     == iErrCode ) return( ERROR_HSL_FUNCTION_FAILED );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_WRITE_RECORD_FAILED     == iErrCode ) return( ERROR_WRITE_RECORD_FAILED );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_READ_RECORD_FAILED      == iErrCode ) return( ERROR_READ_RECORD_FAILED );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_UNEXPECTED_TXRX_COMMAND == iErrCode ) return( ERROR_UNEXPECTED_TXRX_COMMAND );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_UNEXPECTED_TXRX_RESET   == iErrCode ) return( ERROR_UNEXPECTED_TXRX_RESET );\r\n   \telse                                                                             return( ERROR_UNKNOWN_ERROR_CODE );\r\n\t}\r\n\r\n\r\n\r\n   static function TxRxCommand( variable iModuleIndex, variable iCommand, variable iParameter, variable & oResponse ) variable\r\n   {\r\n      variable errCode;\r\n\r\n      errCode = HSLDaisyChainCommunication::DaisyChainedTxRxCommand( iModuleIndex, iCommand, iParameter, oResponse );\r\n\t\tif( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Communication error occurred! (System #\", iModuleIndex, \", Error Text: \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n\t\t\treturn( DecodeCommunicationErrorCode( errCode ));\r\n\t\t}\r\n      if( StrGetLength( oResponse ) < 8 )\r\n      {\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Length of response too short! (System #\", iModuleIndex, \", Error Text: \", EvaluateErrorMessage( ERROR_UNKNOWN_DEVICE_NAME ), \")\" );\r\n         return( ERROR_UNKNOWN_DEVICE_NAME );\r\n      }\r\n\t\terrCode = DecodeMediaLineModuleErrorCode( IVal( StrMid( oResponse, 6, 2 )));\r\n      if( errCode != ERROR_NONE )\r\n      {\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Media line module error occurred! (System #\", iModuleIndex, \", Error Text: \", EvaluateErrorMessage( errCode ), \")\" );\r\n      }\r\n\t\treturn( errCode );\r\n   }\r\n\r\n\r\n\r\n   static function TxRxReset( variable iModuleIndex ) variable\r\n   {\r\n      variable errCode;\r\n      variable response;\r\n\r\n      errCode = HSLDaisyChainCommunication::DaisyChainedTxRxReset( iModuleIndex, response );\r\n\t\tif( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Communication error occurred! (System #\", iModuleIndex, \", Error Text: \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n\t\t\treturn( DecodeCommunicationErrorCode( errCode ));\r\n\t\t}\r\n      if( StrGetLength( response ) < 8 )\r\n      {\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Length of response too short! (System #\", iModuleIndex, \", Error Text: \", EvaluateErrorMessage( ERROR_UNKNOWN_DEVICE_NAME ), \")\" );\r\n         return( ERROR_UNKNOWN_DEVICE_NAME );\r\n      }\r\n\t\terrCode = DecodeMediaLineModuleErrorCode( IVal( StrMid( response, 6, 2 )));\r\n      if( errCode != ERROR_NONE )\r\n      {\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Media line module error occurred! (System #\", iModuleIndex, \", Error Text: \", EvaluateErrorMessage( errCode ), \")\" );\r\n      }\r\n\t\treturn( errCode );\r\n   }\r\n\r\n\r\n\r\n\r\n   static function Delay( variable iTime ) void\r\n   {\r\n      timer t1;\r\n\r\n      t1.SetTimer( iTime );\r\n      t1.WaitTimer( hslFalse, hslFalse );\r\n   }\r\n\r\n\r\n\r\n   static function TerminateDueToAnError( variable iModuleIndex ) void\r\n   {\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// Stop medium pump\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PA\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode ) FormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Stopping medium pump for media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// close all valves\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PR\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( \"M\" + IStr( iModuleIndex ), command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode ) FormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Closing all valves for media line module failed! (System M\", iModuleIndex, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n   }\r\n\r\n   static function AddToArray(variable iModuleString, variable iComPort) variable\r\n   {\r\n      variable index(0);\r\n      variable compareString(\"\");\r\n      while(index < MediaLine_Modules.GetSize())\r\n      {\r\n         compareString = MediaLine_Modules.GetAt(index);\r\n         if(compareString == iModuleString)\r\n         {\r\n           return (hslFalse);\r\n         }\r\n\r\n         index++;\r\n      }\r\n      \r\n      MediaLine_Modules.AddAsLast(iModuleString);\r\n      MediaLine_ComPorts.AddAsLast(iComPort);      \r\n      return (hslTrue);\r\n\r\n   }\r\n\r\n\r\n\r\n\r\n}\t//end namespace \r\n\r\n\r\n\r\n/*\r\n\r\nprivate function DisplayErrorAndTerminate( variable iSystemId, variable iErrorCode ) void \r\n{\r\n   dialog   d1;\r\n   variable errMsg;\r\n\r\n   errMsg = HSLDaisyChainedMediaLine::EvaluateErrorMessage( iErrorCode );\r\n   d1.SetOutput( \"Module #\", iSystemId, \" failed!\\nError code = \", iErrorCode, \": \", errMsg );\r\n   d1.ShowOutput( \"Error raised!\", hslOKOnly | hslInformation | hslDefButton1, hslInfinite );\r\n   HSLDaisyChainedMediaLine::Terminate( 1 );\r\n   HSLDaisyChainedMediaLine::Terminate( 2 );\r\n   HSLDaisyChainedMediaLine::Terminate( 3 );\r\n   abort;\r\n}\r\n\r\n\r\nmethod main( ) void\r\n{\r\n   variable errCode;\r\n   variable myModule;\r\n   variable myComPort( 3 );\r\n   variable myWater  ( \"W\" );\r\n   variable myEthanol( \"E\" );\r\n   variable myMedium ( \"M\" );\r\n   variable myPrimeTime( 5 );\r\n   variable myFillTimeout( 10 );\r\n   variable myPowerW( 66 );\r\n   variable myPowerE( 72 );\r\n   variable myPowerM( 52 );\r\n   variable mySelection;\r\n   variable myLevelStatus;\r\n   dialog   d1;\r\n\r\n\r\n   // initialize all modules\r\n   for( myModule = 1; myModule <= 3; myModule++ )\r\n   {\r\n      errCode = HSLDaisyChainedMediaLine::Initialize( myModule,\r\n                                                      myComPort,\r\n                                                      HSLDaisyChainedMediaLine::TRACE_LEVEL_FULL,\r\n                                                      HSLDaisyChainedMediaLine::HSL_FALSE);\r\n      if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode );\r\n   }\r\n\r\n\r\n   // request level sensors\r\n   for( myModule = 1; myModule <= 3; myModule++ )\r\n   {\r\n      mySelection = 6;\r\n      while( mySelection == 6 )\r\n      {\r\n         errCode = HSLDaisyChainedMediaLine::RequestLevelSensor( myModule, myLevelStatus );\r\n         if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode );\r\n         if( myLevelStatus == \"empty\" )\r\n         {\r\n            d1.SetOutput( \"The level sensor #\", myModule, \" did NOT detect a fluid.\\nDo you want to request level sensor of module #\", myModule, \" once again?\" );\r\n            mySelection = d1.ShowOutput( \"Level sensor\", hslYesNo | hslInformation | hslDefButton1, hslInfinite );\r\n         }\r\n         else\r\n         {\r\n            d1.SetOutput( \"The level sensor #\", myModule, \" detected a fluid.\\nDo you want to request level sensor of module #\", myModule, \" once again?\" );\r\n            mySelection = d1.ShowOutput( \"Level sensor\", hslYesNo | hslInformation | hslDefButton1, hslInfinite );\r\n         }\r\n      }\r\n   }\r\n\r\n\r\n   // prime all modules\r\n   for( myModule = 1; myModule <= 3; myModule++ )\r\n   {\r\n      if( myModule == 1 )\r\n         errCode = HSLDaisyChainedMediaLine::Prime( myModule, myWater,   myPrimeTime, myPowerW );\r\n      else if( myModule == 2 )\r\n         errCode = HSLDaisyChainedMediaLine::Prime( myModule, myEthanol, myPrimeTime, myPowerE );\r\n      else\r\n         errCode = HSLDaisyChainedMediaLine::Prime( myModule, myMedium,  myPrimeTime, myPowerM );\r\n      if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode );\r\n   }\r\n\r\n\r\n   // fill all modules\r\n   for( myModule = 1; myModule <= 3; myModule++ )\r\n   {\r\n      if( myModule == 1 )\r\n         errCode = HSLDaisyChainedMediaLine::Fill( myModule, myWater,   myFillTimeout, myPowerW );\r\n      else if( myModule == 2 )\r\n         errCode = HSLDaisyChainedMediaLine::Fill( myModule, myEthanol, myFillTimeout, myPowerE );\r\n      else\r\n         errCode = HSLDaisyChainedMediaLine::Fill( myModule, myMedium,  myFillTimeout, myPowerM );\r\n      if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode );\r\n   }\r\n\r\n\r\n   // do maintenance\r\n   for( myModule = 1; myModule <= 3; myModule++ )\r\n   {\r\n      errCode = HSLDaisyChainedMediaLine::OpenValvesForMaintenance( myModule );\r\n      if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode );\r\n   }\r\n\r\n\r\n   // terminate all modules\r\n   for( myModule = 1; myModule <= 3; myModule++ )\r\n   {\r\n      HSLDaisyChainedMediaLine::Terminate( myModule );\r\n   }\r\n}\r\n*/\r\n\r\n\r\n#endif\r\n// $$author=Kubala_S$$valid=0$$time=2017-02-14 13:05$$checksum=91ae1722$$length=087$$"
  },
  {
    "path": "pyhamilton/library/HSLDaisyChainedTiltModule.hsl",
    "content": "// ===========================================================================\r\n// Interface of the daisy chained Tilt-Module library \r\n//\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ===========================================================================\r\n//\r\n// Modification History\r\n//\t\t2008-07-08, V1.0: Ruedi Vogel, created, based on V1.4 Tilt-Module\r\n// \r\n// ===========================================================================\r\n\r\n#ifndef __HSLDaisyChainedTiltModule_hsl__\r\n#define __HSLDaisyChainedTiltModule_hsl__\t1\r\n\r\n#ifndef __HSLStrLib_hsl__\r\n#include \"HSLStrLib.hsl\"\r\n#endif\r\n#ifndef __HSLMthLib_hsl__\r\n#include \"HSLMthLib.hsl\"\r\n#endif\r\n#ifndef __HSL_DaisyChainCommunication_hsl__\r\n#include \"HSLDaisyChainCommunication.hsl\"\r\n#endif\r\n\r\n\r\nnamespace HSLDaisyChainedTiltModule\r\n{\r\n\t/*********************************************************************\r\n\t*\r\n\t* Exported return constants\r\n\t*\r\n\t*********************************************************************/\r\n\t\r\n\tconst static variable CMD_START   ( 1 );\r\n\tconst static variable CMD_COMPLET ( 2 );\r\n\tconst static variable CMD_ERROR   ( 5 );   // to prevent suspicious Phoenix error messages\r\n\tconst static variable CMD_PROGRESS( 4 );\r\n\tconst static variable CMD_ERRCOMPL( 5 );\r\n\r\n\tconst variable TRACE_LEVEL_NONE   ( 0 );\r\n\tconst variable TRACE_LEVEL_NORMAL ( 1 );\r\n   const variable TRACE_LEVEL_FULL   ( 2 );\r\n   const variable HSL_FALSE          ( hslFalse );\r\n   const variable HSL_TRUE           ( hslTrue );\r\n   \r\n\tconst variable ERROR_NONE                                         (  0 );\r\n   const variable ERROR_COMM_ALREADY_INIT                            (  1 );\r\n\tconst variable ERROR_PRM_OUT_OF_RANGE                             (  2 );\r\n\tconst variable ERROR_FALSE_COMM_PORT                              (  3 );\r\n\tconst variable ERROR_HSL_FUNCTION_FAILED                          (  4 );\r\n\tconst variable ERROR_WRITE_RECORD_FAILED                          (  5 );\r\n\tconst variable ERROR_READ_RECORD_FAILED                           (  6 );\r\n\tconst variable ERROR_UNEXPECTED_TXRX_COMMAND                      (  7 );\r\n\tconst variable ERROR_UNEXPECTED_TXRX_RESET                        (  8 );\r\n\tconst variable ERROR_INIT_NOT_FOUND                               (  9 );\r\n\tconst variable ERROR_STEP_LOST                                    ( 10 );\r\n\tconst variable ERROR_NOT_INITIALIZED                              ( 11 );\r\n\tconst variable ERROR_PARALLEL_ERROR                               ( 12 );\r\n\tconst variable ERROR_STEPPER_MOTOR_HW_DEFECTIVE                   ( 13 );\r\n\tconst variable ERROR_CMD_UNKNOWN                                  ( 14 );\r\n   const variable ERROR_TEMP_SENSOR_DEFECTIVE                        ( 15 );\r\n   const variable ERROR_TEMP_CONTROLLER_DEFECTIVE                    ( 16 );\r\n   const variable ERROR_UNKNOWN_DEVICE_NAME                          ( 17 );\r\n\tconst variable ERROR_UNKNOWN_ERROR_CODE                           ( 18 );\r\n\r\n\tconst static string ERROR_MSG_NONE                                ( \"No error.\" );\r\n   const static string ERROR_MSG_COMM_ALREADY_INIT                   ( HSLDaisyChainCommunication::ERROR_MSG_ALREADY_INITIALIZED );\r\n\tconst static string ERROR_MSG_PRM_OUT_OF_RANGE                    ( HSLDaisyChainCommunication::ERROR_MSG_PARAMETER_OUT_OF_RANGE );\r\n\tconst static string ERROR_MSG_FALSE_COMM_PORT                     ( HSLDaisyChainCommunication::ERROR_MSG_FALSE_COMM_PORT );\r\n\tconst static string ERROR_MSG_HSL_FUNCTION_FAILED                 ( HSLDaisyChainCommunication::ERROR_MSG_HSL_FUNCTION_FAILED );\r\n\tconst static string ERROR_MSG_WRITE_RECORD_FAILED                 ( HSLDaisyChainCommunication::ERROR_MSG_WRITE_RECORD_FAILED );\r\n\tconst static string ERROR_MSG_READ_RECORD_FAILED                  ( HSLDaisyChainCommunication::ERROR_MSG_READ_RECORD_FAILED );\r\n\tconst static string ERROR_MSG_UNEXPECTED_TXRX_COMMAND             ( HSLDaisyChainCommunication::ERROR_MSG_UNEXPECTED_TXRX_COMMAND );\r\n\tconst static string ERROR_MSG_UNEXPECTED_TXRX_RESET               ( HSLDaisyChainCommunication::ERROR_MSG_UNEXPECTED_TXRX_RESET );\r\n\tconst static string ERROR_MSG_INIT_NOT_FOUND                      ( \"Init position not found!\" );\r\n\tconst static string ERROR_MSG_STEP_LOST                           ( \"Steps lost (overload)!\" );\r\n\tconst static string ERROR_MSG_NOT_INITIALIZED                     ( \"Drive not initialized!\" );\r\n\tconst static string ERROR_MSG_PARALLEL_ERROR                      ( \"Parallel functions not allowed!\" );\r\n\tconst static string ERROR_MSG_STEPPER_MOTOR_HW_DEFECTIVE          ( \"Stepper motor power amp defective!\" );\r\n\tconst static string ERROR_MSG_CMD_UNKNOWN                         ( \"Unknown command!\" );\r\n   const static string ERROR_MSG_TEMP_SENSOR_DEFECTIVE               ( \"Temperature sensor defective!\" );\r\n   const static string ERROR_MSG_TEMP_CONTROLLER_DEFECTIVE           ( \"Temperature controoller defective!\" );\r\n   const static string ERROR_MSG_UNKNOWN_DEVICE_NAME                 ( \"Unknown device name (module identifier)!\" );\r\n\tconst static string ERROR_MSG_UNKNOWN_ERROR_CODE                  ( \"Unknown error code!\" );\r\n\r\n\r\n\r\n\t/*********************************************************************\r\n\t*\r\n\t* Module globale constants/variables\r\n\t*\r\n\t*********************************************************************/\r\n\r\n\tstatic global variable HSLdaisyChainedTiltModule_SimulationFlag( HSL_FALSE );\r\n\tstatic global variable HSLdaisyChainedTiltModule_TrcLvl( TRACE_LEVEL_NORMAL );\r\n\r\n\r\n\t/*********************************************************************\r\n\t*\r\n\t* Declarations\r\n\t*\r\n\t*********************************************************************/\r\n\r\n\tfunction Initialize( variable iModuleName, variable iComPort, variable iTraceLevel, variable iSimulate ) variable;\r\n\tfunction Terminate( variable iModuleName ) variable;\t\r\n\tfunction MoveToPosition( variable iModuleName, variable iAngle ) variable;\r\n\tfunction StartTempCntr( variable iModuleName, variable iTemperature ) variable;\r\n\tfunction StopTempCntr( variable iModuleName ) variable;\r\n\tfunction RequestTemp( variable iModuleName, variable & oTemperature1, variable & oTemperature2 ) variable;\r\n\tfunction EvaluateErrorMessage( variable iErrorCode ) string;\r\n\r\n\tprivate function ValveOn( variable iModuleName, variable iValve ) variable;\r\n\tprivate function ValveOff( variable iModuleName, variable iValve ) variable;\r\n\tprivate function SetPort( variable iModuleName, variable iPort ) variable;\r\n\tprivate function ClearPort( variable iModuleName, variable iPort ) variable;\r\n\r\n\tstatic function DecodeTiltModuleErrorCode( variable iErrCode ) variable;\r\n\tstatic function DecodeCommunicationErrorCode( variable iErrCode ) variable;\r\n   static function TxRxCommand( variable iModuleName, variable iCommand, variable iParameter, variable & oResponse ) variable;\r\n   static function TxRxReset( variable iModuleName ) variable;\r\n\r\n\t\r\n\t/*********************************************************************\r\n\t*\r\n\t* Implementations\r\n\t*\r\n\t*********************************************************************/\r\n\r\n\tfunction Initialize( variable iModuleName, variable iComPort, variable iTraceLevel, variable iSimulate ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\t\t\r\n\t\tHSLdaisyChainedTiltModule_SimulationFlag = iSimulate;\r\n\t\tHSLdaisyChainedTiltModule_TrcLvl = iTraceLevel;\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Initialize system #\", iModuleName, \" on COM\", iComPort );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iComPort) || ( 255 < iComPort ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter comPort #\", iComPort, \" out of range [1..255]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// initialize communication port\r\n\t\t// -------------------------------------------------------------------------\r\n      errCode = DecodeCommunicationErrorCode( HSLDaisyChainCommunication::InitializeDaisyChainCommunication( iModuleName, iComPort, iTraceLevel ));\r\n\t   if( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n   \t{\r\n\t   \tFormatTrace( GetFunctionName(), \"()\", HSLDaisyChainCommunication::CMD_ERROR, \"<InitializeDaisyChainCommunication()> for module \",iModuleName,\" failed! (Error code = \", errCode, \", error message = \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n         HSLDaisyChainCommunication::TerminateDaisyChainCommunication( iModuleName );\r\n         return( errCode );\r\n\t   }\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// reset firmware (with configuring timeouts)\r\n\t\t// -------------------------------------------------------------------------\r\n\t\terrCode = TxRxReset( iModuleName );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Resetting firmware system of tilt module failed! (System #\", iModuleName, \")\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit clear error command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"EI\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Resetting errors on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"RF\", request firmware version, command and ignore response\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"RF\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Requesting firmware version of tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_PROGRESS, \"Firmware version of tilt module <\", iModuleName, \"> is \", response );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"SI\", initialize, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"SI\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Initializing of tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\t\r\n\tfunction Terminate( variable iModuleName ) variable\r\n\t{\r\n      variable ret( 0 );\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"GP0\", Go to horizontal position, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"GP\";\r\n\t\tparameter = \"0\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Moving to zero position on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\tret++;\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"PO\", Power off, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PO\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Powering off of tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\tret++;\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"TO\", Temperature controller off, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"TO\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Switching temperature controller off of tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\tret++;\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// close comm. port\r\n\t\t// -------------------------------------------------------------------------\r\n      errCode = HSLDaisyChainCommunication::TerminateDaisyChainCommunication( iModuleName );\r\n\t\tif( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" <TerminateDaisyChainCommunication()> to tilt module <\", iModuleName, \"> failed! (Communication error code = \", errCode, \", error message = \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n\t\t\tret++;\r\n\t\t}\r\n\r\n\t\tif( 0 < ret ) return( ERROR_UNKNOWN_ERROR_CODE );\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tfunction MoveToPosition( variable iModuleName, variable iAngle ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName, \"to position: angle = \", iAngle );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 0 > iAngle) || ( 10 < iAngle ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter angle = \", iAngle, \" out of range [0..10]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"GP\", go to position, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"GP\";\r\n\t\tparameter = IStr( iAngle );\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Moving tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tfunction StartTempCntr( variable iModuleName, variable iTemperature ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName, \"to temperature = \", iTemperature );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 10.0 > iTemperature) || ( 50.0 < iTemperature ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter temperature = \", iTemperature, \" out of range [10.0..50.0]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"ST\", set temperature, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"ST\";\r\n\t\tparameter = IStr( MthFloor( iTemperature * 10 ));\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Starting temperature controller on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tfunction StopTempCntr( variable iModuleName ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"TO\", temperature controller off, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"TO\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Stopping temperature controller on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tfunction RequestTemp( variable iModuleName, variable & oTemperature1, variable & oTemperature2 ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName );\r\n      oTemperature1 = 0.0;\r\n      oTemperature2 = 0.0;\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"RT\", request temperature, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"RT\";\r\n\t\tparameter = \"\";\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Requesting temperature sensors on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// evaluate both temperature sensors values\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tresponse = StrMid( response, 8, StrGetLength( response ));\r\n\t\toTemperature1 = StrFVal( StrLeft( response, StrFind( response, \" \" ))) / 10;\r\n\t\toTemperature2 = StrFVal( StrRight( response, StrGetLength( response ) - StrFind( response, \" \" ) - 1 )) / 10;\r\n\t\t\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Values of temperature sensors: T1 = \", oTemperature1, \"C, T2 = \", oTemperature2, \"C\" );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tfunction EvaluateErrorMessage( variable iErrorCode ) string\r\n\t{\r\n   \t     if( iErrorCode == ERROR_NONE                                    ) return( ERROR_MSG_NONE );\r\n      else if( iErrorCode == ERROR_COMM_ALREADY_INIT                       ) return( ERROR_MSG_COMM_ALREADY_INIT );\r\n   \telse if( iErrorCode == ERROR_PRM_OUT_OF_RANGE                        ) return( ERROR_MSG_PRM_OUT_OF_RANGE );\r\n   \telse if( iErrorCode == ERROR_FALSE_COMM_PORT                         ) return( ERROR_MSG_FALSE_COMM_PORT );\r\n   \telse if( iErrorCode == ERROR_HSL_FUNCTION_FAILED                     ) return( ERROR_MSG_HSL_FUNCTION_FAILED );\r\n   \telse if( iErrorCode == ERROR_WRITE_RECORD_FAILED                     ) return( ERROR_MSG_WRITE_RECORD_FAILED );\r\n   \telse if( iErrorCode == ERROR_READ_RECORD_FAILED                      ) return( ERROR_MSG_READ_RECORD_FAILED );\r\n   \telse if( iErrorCode == ERROR_UNEXPECTED_TXRX_COMMAND                 ) return( ERROR_MSG_UNEXPECTED_TXRX_COMMAND );\r\n   \telse if( iErrorCode == ERROR_UNEXPECTED_TXRX_RESET                   ) return( ERROR_MSG_UNEXPECTED_TXRX_RESET );\r\n   \telse if( iErrorCode == ERROR_INIT_NOT_FOUND                          ) return( ERROR_MSG_INIT_NOT_FOUND );\r\n   \telse if( iErrorCode == ERROR_STEP_LOST                               ) return( ERROR_MSG_STEP_LOST );\r\n   \telse if( iErrorCode == ERROR_NOT_INITIALIZED                         ) return( ERROR_MSG_NOT_INITIALIZED );\r\n   \telse if( iErrorCode == ERROR_PARALLEL_ERROR                          ) return( ERROR_MSG_PARALLEL_ERROR );\r\n   \telse if( iErrorCode == ERROR_STEPPER_MOTOR_HW_DEFECTIVE              ) return( ERROR_MSG_STEPPER_MOTOR_HW_DEFECTIVE );\r\n   \telse if( iErrorCode == ERROR_CMD_UNKNOWN                             ) return( ERROR_MSG_CMD_UNKNOWN );\r\n      else if( iErrorCode == ERROR_TEMP_SENSOR_DEFECTIVE                   ) return( ERROR_MSG_TEMP_SENSOR_DEFECTIVE );\r\n      else if( iErrorCode == ERROR_TEMP_CONTROLLER_DEFECTIVE               ) return( ERROR_MSG_TEMP_CONTROLLER_DEFECTIVE );\r\n      else if( iErrorCode == ERROR_UNKNOWN_DEVICE_NAME                     ) return( ERROR_MSG_UNKNOWN_DEVICE_NAME );\r\n   \telse if( iErrorCode == ERROR_UNKNOWN_ERROR_CODE                      ) return( ERROR_MSG_UNKNOWN_ERROR_CODE );\r\n   \telse                                                                   return( ERROR_MSG_UNKNOWN_ERROR_CODE );\r\n\t}\r\n\r\n\r\n\r\n\r\n\tprivate function ValveOn( variable iModuleName, variable iValve ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName, \" valve #\", iValve );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iValve) || ( 6 < iValve ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter valve = \", iValve, \" out of range [1..6]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tiValve = iValve + 2;\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"PS\", port set, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PS\";\r\n\t\tparameter = IStr( iValve );\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Switching valve \\\"on\\\" on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tprivate function ValveOff( variable iModuleName, variable iValve ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName, \" valve #\", iValve );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iValve) || ( 6 < iValve ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter valve = \", iValve, \" out of range [1..6]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\t\tiValve = iValve + 2;\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"PC\", port clear, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PC\";\r\n\t\tparameter = IStr( iValve );\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Switching valve \\\"off\\\" on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tprivate function SetPort( variable iModuleName, variable iPort ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName, \" port #\", iPort );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iPort) || ( 8 < iPort ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter port #\", iPort, \" out of range [1.8]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"PS\", port set, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PS\";\r\n\t\tparameter = IStr( iPort );\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Setting port on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tprivate function ClearPort( variable iModuleName, variable iPort ) variable\r\n\t{\r\n\t\tvariable command;\r\n\t\tvariable parameter;\r\n\t\tvariable response;\r\n\t\tvariable errCode;\r\n\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), \"()\", CMD_START, \" Module #\", iModuleName, \" port #\", iPort );\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check parameters\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( 1 > iPort) || ( 8 < iPort ))\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Parameter port #\", iPort, \" out of range [1.8]!\" );\r\n\t\t\treturn( ERROR_PRM_OUT_OF_RANGE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// check simulation mode\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tif(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag ))\r\n\t\t{\r\n\t\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET, \" Tilt module runs in simulation mode!\" );\r\n\t\t\treturn( ERROR_NONE );\r\n\t\t}\r\n\r\n\t\t// -------------------------------------------------------------------------\r\n\t\t// transmit \"PC\", port clear, command\r\n\t\t// -------------------------------------------------------------------------\r\n\t\tcommand   = \"PC\";\r\n\t\tparameter = IStr( iPort );\r\n\t\tresponse  = \"\";\r\n\t\terrCode = TxRxCommand( iModuleName, command, parameter, response );\r\n\t\tif( ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Clearing port on tilt module failed! (System #\", iModuleName, \", TxRxCommand(\", command, parameter, \"), response = <\", response, \">)\" );\r\n\t\t\treturn( errCode );\r\n\t\t}\r\n\r\n\t\tif( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), \"()\", CMD_COMPLET );\r\n\t\treturn( ERROR_NONE );\r\n\t}\r\n\r\n\r\n\r\n\tstatic function DecodeTiltModuleErrorCode( variable iErrCode ) variable\r\n\t{\r\n\t\t     if(  0 == iErrCode ) return( ERROR_NONE );\r\n\t\telse if(  1 == iErrCode ) return( ERROR_INIT_NOT_FOUND );\r\n\t\telse if(  2 == iErrCode ) return( ERROR_STEP_LOST );\r\n\t\telse if(  3 == iErrCode ) return( ERROR_NOT_INITIALIZED );\r\n\t\telse if(  4 == iErrCode ) return( ERROR_PARALLEL_ERROR );\r\n\t\telse if(  5 == iErrCode ) return( ERROR_STEPPER_MOTOR_HW_DEFECTIVE );\r\n\t\telse if(  6 == iErrCode ) return( ERROR_PRM_OUT_OF_RANGE );\r\n\t\telse if(  7 == iErrCode ) return( ERROR_CMD_UNKNOWN );\r\n\t\telse if(  8 == iErrCode ) return( ERROR_TEMP_SENSOR_DEFECTIVE );\r\n\t\telse if(  9 == iErrCode ) return( ERROR_TEMP_CONTROLLER_DEFECTIVE );\r\n   \telse                      return( ERROR_UNKNOWN_ERROR_CODE );\r\n\t}\r\n\r\n\r\n\r\n\tstatic function DecodeCommunicationErrorCode( variable iErrCode ) variable\r\n\t{\r\n\t\t     if( HSLDaisyChainCommunication::ERROR_NONE                    == iErrCode ) return( ERROR_NONE );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_ALREADY_INITIALIZED     == iErrCode ) return( ERROR_COMM_ALREADY_INIT );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_PARAMETER_OUT_OF_RANGE  == iErrCode ) return( ERROR_PRM_OUT_OF_RANGE );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_FALSE_COMM_PORT         == iErrCode ) return( ERROR_FALSE_COMM_PORT );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_HSL_FUNCTION_FAILED     == iErrCode ) return( ERROR_HSL_FUNCTION_FAILED );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_WRITE_RECORD_FAILED     == iErrCode ) return( ERROR_WRITE_RECORD_FAILED );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_READ_RECORD_FAILED      == iErrCode ) return( ERROR_READ_RECORD_FAILED );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_UNEXPECTED_TXRX_COMMAND == iErrCode ) return( ERROR_UNEXPECTED_TXRX_COMMAND );\r\n\t\telse if( HSLDaisyChainCommunication::ERROR_UNEXPECTED_TXRX_RESET   == iErrCode ) return( ERROR_UNEXPECTED_TXRX_RESET );\r\n   \telse                                                                             return( ERROR_UNKNOWN_ERROR_CODE );\r\n\t}\r\n\r\n\r\n\r\n   static function TxRxCommand( variable iModuleName, variable iCommand, variable iParameter, variable & oResponse ) variable\r\n   {\r\n      variable errCode;\r\n\r\n      errCode = HSLDaisyChainCommunication::DaisyChainedTxRxCommand( iModuleName, iCommand, iParameter, oResponse );\r\n\t\tif( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Communication error occurred! (System #\", iModuleName, \", Error Text: \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n\t\t\treturn( DecodeCommunicationErrorCode( errCode ));\r\n\t\t}\r\n      if( StrGetLength( oResponse ) < 8 )\r\n      {\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Length of response too short! (System #\", iModuleName, \", Error Text: \", EvaluateErrorMessage( ERROR_UNKNOWN_DEVICE_NAME ), \")\" );\r\n         return( ERROR_UNKNOWN_DEVICE_NAME );\r\n      }\r\n\t\terrCode = DecodeTiltModuleErrorCode( IVal( StrMid( oResponse, 6, 2 )));\r\n      if( errCode != ERROR_NONE )\r\n      {\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Tilt module error occurred! (System #\", iModuleName, \", Error Text: \", EvaluateErrorMessage( errCode ), \")\" );\r\n      }\r\n\t\treturn( errCode );\r\n   }\r\n\r\n\r\n\r\n   static function TxRxReset( variable iModuleName ) variable\r\n   {\r\n      variable errCode;\r\n      variable response;\r\n\r\n      errCode = HSLDaisyChainCommunication::DaisyChainedTxRxReset( iModuleName, response );\r\n\t\tif( HSLDaisyChainCommunication::ERROR_NONE != errCode )\r\n\t\t{\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Communication error occurred! (System #\", iModuleName, \", Error Text: \", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), \")\" );\r\n\t\t\treturn( DecodeCommunicationErrorCode( errCode ));\r\n\t\t}\r\n      if( StrGetLength( response ) < 8 )\r\n      {\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Length of response too short! (System #\", iModuleName, \", Error Text: \", EvaluateErrorMessage( ERROR_UNKNOWN_DEVICE_NAME ), \")\" );\r\n         return( ERROR_UNKNOWN_DEVICE_NAME );\r\n      }\r\n\t\terrCode = DecodeTiltModuleErrorCode( IVal( StrMid( response, 6, 2 )));\r\n      if( errCode != ERROR_NONE )\r\n      {\r\n\t\t\tFormatTrace( GetFunctionName(), \"()\", CMD_ERROR, \" Tilt module error occurred! (System #\", iModuleName, \", Error Text: \", EvaluateErrorMessage( errCode ), \")\" );\r\n      }\r\n\t\treturn( errCode );\r\n   }\r\n\r\n\r\n\r\n\r\n}\t//end namespace \r\n#endif\r\n// $$author=rvogel$$valid=0$$time=2008-07-08 10:01$$checksum=e793eb0b$$length=085$$"
  },
  {
    "path": "pyhamilton/library/HSLInhecoTEC/HSLInhecoTECLib.hsl",
    "content": "// ===========================================================================\r\n// Library for use with Inheco Single and Multi TEC Controllers\r\n//\r\n// Copyright (C) 2010 by HAMILTON Bonaduz, CH\r\n// All rights reserved.\r\n// ===========================================================================\r\n//\r\n// Inspired by the code from Inheco MTECController by Steve Griffin\r\n//\r\n// 2010-06-25 v1.0  Dirk Hollstein\r\n// 2012-10-22 v1.1  Bernd Huf reworked for better readability\r\n// 2013-01-25 v1.2  Bernd Huf extended function _SendCommandToController to resend a command\r\n//                            MAXNUMBEROFRETRIES times in case of error (solved problem setting\r\n//                            temperature in seldom cases)\r\n// 2013-03-13 v1.3  Bernd Huf set function SendCommand from private to public (implementation part)\r\n//                            new function SetTouchscreen\r\n//                            changed output value in functions GetActualDeviceTemperature and GetTargetTemperature to integer\r\n//                            changed output value in functions GetHeaterEnableStatus and GetReservoirStatus to integer\r\n//                            changed output value in functions GetShakerRevolutions and GetShakerShape to integer\r\n//                            changed output value in functions GetShakerStatus and GetDeviceType to integer\r\n//                            check if integer for parameter iFlag in function GetActualDeviceTemperature\r\n//                            removed unneccessary input checks (_CheckInteger is included in _CheckIntegerRange)\r\n//                            fixed error in function GetSensorValues (allowed values set to 0..9 instead of 0..4)\r\n// 2013-04-11 v1.4  DKa       corrected counter (line 1786) 1-6\r\n// 2013-08-27 v1.5  Bernd Huf clear last error after call to function 'GetLastError'\r\n// 2013-09-03 v1.6  Bernd Huf combined hsl_ and hsl in one file\r\n//                            fixed error in function 'GetDeviceType'\r\n//                            fixed error in function 'Terminate'\r\n//                            function 'Terminate' with parameter to enable/disable stopping of slots\r\n//                            changed values for temperature get and set functions to float values (no longer 1/10 degree integer)\r\n//                            reworked whole library to comply with AAW 650410\r\n//                            new private function _CheckFloatRange\r\n// 2013-12-17 v1.7  Bernd Huf fixed bug in function SetTargetTemperature (float/int conversion)\r\n// 2015-06-02 v1.8  Bernd Huf fixed bug in function SetTouchscreen (send command to controller instead of device)\r\n//                            --> removed unneeded parameter i_intDeviceID\r\n//\r\n// ===========================================================================\r\n\r\n#ifndef __HSLMTec_Impl__\r\n  #define __HSLMTec_Impl__ 1\r\n\r\n  #ifndef __ASWGLOBAL_hsl__\r\n    #include \"ASWStandard/ASWGlobal/ASWGlobal.hsl\"\r\n  #endif\r\n\r\n  #ifndef __TraceLevel_hsl__\r\n    #include \"ASWStandard/TraceLevel/TraceLevel.hsl\"\r\n  #endif\r\n\r\n  namespace HSLInhecoTECLib\r\n  {\r\n    // Exported return constants\r\n    const static variable CMD_FAIL                                        (0);\r\n    const static variable CMD_START                                       (1);\r\n    const static variable CMD_COMPLETE                                    (2);\r\n    const static variable CMD_ERROR                                       (3);\r\n    const static variable CMD_PROGRESS                                    (4);\r\n    const static variable CMD_ERRCOMPLETE                                 (5);\r\n\r\n    // Adaptable settings\r\n    const variable LOWERDEVICEBOUND                                       (1);\r\n    const variable UPPERDEVICEBOUND                                       (6);\r\n    const variable LOWERCONTROLLERBOUND                                   (0);\r\n    const variable UPPERCONTROLLERBOUND                                   (7);\r\n    const variable MAXNUMBEROFRETRIES                                     (1);\r\n\r\n    // exported constants\r\n    namespace DEVICE_TYPE\r\n    {\r\n      const variable Thermoshake                                          (0);\r\n      const variable CPAC                                                 (1);\r\n      const variable Teleshake                                            (2);\r\n      const variable CPAC_Ultraflat                                       (4);\r\n    }\r\n\r\n    namespace CONTROLLER_TYPE\r\n    {\r\n      const variable STC                                                  (0);\r\n      const variable MTC                                                  (1);\r\n    }\r\n\r\n    // constants\r\n    const static variable _strCMD_SET_SHAKER                              (\"ASE\");\r\n    const static variable _strCMD_GET_CALIBRATION_DATE                    (\"RCM\");\r\n    const static variable _strCMD_GET_FIRMWARE_VERSION                    (\"RFV\");\r\n    const static variable _strCMD_GET_SENSOR_VALUES                       (\"RHV\");\r\n    const static variable _strCMD_GET_SERIAL_NUMBER                       (\"RSN\");\r\n    const static variable _strCMD_GET_DEVICE_TYPE                         (\"RTD\");\r\n    const static variable _strCMD_GET_RESERVOIR_STATUS                    (\"RRS\");\r\n    const static variable _strCMD_GET_ACTUAL_TEMPERATURE                  (\"RAT\");\r\n    const static variable _strCMD_GET_TARGET_TEMPERATURE                  (\"RTT\");\r\n    const static variable _strCMD_GET_HEATER_ENABLED_STATUS               (\"RHE\");\r\n    const static variable _strCMD_GET_SHAKER_REVOLUTIONS                  (\"RSR\");\r\n    const static variable _strCMD_GET_SHAKER_SHAPE                        (\"RSS\");\r\n    const static variable _strCMD_GET_SHAKER_STATUS                       (\"RSE\");\r\n    const static variable _strCMD_SET_TARGET_TEMPERATURE                  (\"STT\");\r\n    const static variable _strCMD_SET_TEMPERATURE_CONTROL                 (\"ATE\");\r\n    const static variable _strCMD_SET_SHAKER_REVOLUTIONS                  (\"SSR\");\r\n    const static variable _strCMD_SET_SHAKER_SHAPE                        (\"SSS\");\r\n    const static variable _strCMD_SET_TOUCHSCREEN                         (\"ADD\");\r\n\r\n    // Static variables\r\n    global static variable  gHSLInhecoTECLib_strErrorCode                 (\"000\");\r\n    global static variable  gHSLInhecoTECLib_strLibraryLastError          (\"\");\r\n    global static variable  gHSLInhecoTECLib_intLibraryTraceLevel         (TRACE_LEVEL_DEBUG);\r\n    global static variable  gHSLInhecoTECLib_strLibraryModuleName         (\"HSLInhecoTECLib\");\r\n    global static variable  gHSLInhecoTECLib_blnLibrarySimulationMode     (hslFalse);\r\n\r\n    global static object    gHSLInhecoTECLib_objTECController;\r\n    global static variable  gHSLInhecoTECLib_blnTECControllerConnected[]  (8);\r\n\r\n    static global event     gHSLInhecoTECLib_hdlSemaphore;\r\n    static global variable  gHSLInhecoTECLib_blnLibraryInitialized        (hslFalse);\r\n\r\n    // exported functions\r\n    function Initialize(variable i_intControllerID,\r\n                        variable i_blnSimulationMode,\r\n                        variable& o_strErrorCode) variable;\r\n\r\n    function SetTraceLevel(variable i_intTraceLevel) variable;\r\n\r\n    function GetTraceLevel(variable& o_intTraceLevel) void;\r\n\r\n    function Terminate(variable i_blnStopAllDevices) variable;\r\n\r\n    function GetCalibrationDate(variable i_intControllerID,\r\n                                variable i_intDeviceID,\r\n                                variable& o_strCalibrationDate,\r\n                                variable& o_strErrorCode) variable;\r\n\r\n    function GetFirmwareVersion(variable i_intControllerID,\r\n                                variable i_intSelector,\r\n                                variable& o_strFirmwareInformation,\r\n                                variable& o_strErrorCode) variable;\r\n\r\n    function GetSensorValues(variable i_intControllerID,\r\n                             variable i_intSelector,\r\n                             variable& o_strSensorValues,\r\n                             variable& o_strErrorCode) variable;\r\n\r\n    function GetDeviceSerialNumber(variable i_intControllerID,\r\n                                   variable i_intDeviceID,\r\n                                   variable& o_strDeviceSerialNumber,\r\n                                   variable& o_strErrorCode) variable;\r\n\r\n    function GetDeviceType(variable i_intControllerID,\r\n                           variable i_intDeviceID,\r\n                           variable& o_intDeviceType,\r\n                           variable& o_strErrorCode) variable;\r\n\r\n    function GetReservoirStatus(variable i_intControllerID,\r\n                                variable i_intDeviceID,\r\n                                variable& o_intReservoirStatus,\r\n                                variable& o_strErrorCode) variable;\r\n\r\n    function GetActualDeviceTemperature(variable i_intControllerID,\r\n                                        variable i_intDeviceID,\r\n                                        variable i_intFlag,\r\n                                        variable& o_fltActualTemperature,\r\n                                        variable& o_strErrorCode) variable;\r\n\r\n    function GetTargetTemperature(variable i_intControllerID,\r\n                                  variable i_intDeviceID,\r\n                                  variable& o_fltTargetTemperature,\r\n                                  variable& o_strErrorCode) variable;\r\n\r\n    function SetTargetTemperature(variable i_intControllerID,\r\n                                  variable i_intDeviceID,\r\n                                  variable i_fltTargetTemperature,\r\n                                  variable& o_strErrorCode) variable;\r\n\r\n    function GetHeaterEnableStatus(variable i_intControllerID,\r\n                                   variable i_intDeviceID,\r\n                                   variable& i_intFlag,\r\n                                   variable& o_intHeatingStatus,\r\n                                   variable& o_strErrorCode) variable;\r\n\r\n    function StartTemperatureControl(variable i_intControllerID,\r\n                                     variable i_intDeviceID,\r\n                                     variable& o_strErrorCode) variable;\r\n\r\n    function StopTemperatureControl(variable i_intControllerID,\r\n                                    variable i_intDeviceID,\r\n                                    variable& o_strErrorCode) variable;\r\n\r\n    function SetShakerRevolutions(variable i_intControllerID,\r\n                                  variable i_intDeviceID,\r\n                                  variable i_intShakerRevolutions,\r\n                                  variable& o_strErrorCode) variable;\r\n\r\n    function GetShakerRevolutions(variable i_intControllerID,\r\n                                  variable i_intDeviceID,\r\n                                  variable& o_intShakerRevolutions,\r\n                                  variable& o_strErrorCode) variable;\r\n\r\n    function SetShakerShape(variable i_intControllerID,\r\n                            variable i_intDeviceID,\r\n                            variable i_intShakerShape,\r\n                            variable& o_strErrorCode) variable;\r\n\r\n    function GetShakerShape(variable i_intControllerID,\r\n                            variable i_intDeviceID,\r\n                            variable& o_intShakerShape,\r\n                            variable& o_strErrorCode) variable;\r\n\r\n    function GetShakerStatus(variable i_intControllerID,\r\n                             variable i_intDeviceID,\r\n                             variable& o_intStatus,\r\n                             variable& o_strErrorCode) variable;\r\n\r\n    function StartShaker(variable i_intControllerID,\r\n                         variable i_intDeviceID,\r\n                         variable& o_strErrorCode) variable;\r\n\r\n    function StopShaker(variable i_intControllerID,\r\n                        variable i_intDeviceID,\r\n                        variable& o_strErrorCode) variable;\r\n\r\n    function GetLastError(variable& o_strLastError) void;\r\n\r\n    function GetDescriptionForErrorCode(variable& i_strErrorCode,\r\n                                        variable& o_strDescription) variable;\r\n\r\n    function SendCommandString(variable i_intControllerID,\r\n                               variable i_strCommand,\r\n                               variable& o_strResponse) variable;\r\n\r\n    function SetTouchscreen(variable i_intControllerID,\r\n                            variable i_blnEnabled,\r\n                            variable& o_strErrorCode) variable;\r\n\r\n    // Helper functions\r\n    private function _HandleError(variable i_intDeviceID,\r\n                                  variable i_intControllerID,\r\n                                  variable i_strCommand,\r\n                                  variable i_strDescription,\r\n                                  variable i_strFunctionName,\r\n                                  variable& o_strErrorCode) void;\r\n\r\n    private function _ExtractAnswer(string i_strControllerResponse) variable;\r\n\r\n    private function _CheckForInitialization(variable i_intControllerID,\r\n                                             variable i_strFunctionName) variable;\r\n\r\n    private function _CheckBool(variable i_varVariable,\r\n                                variable i_strTraceEntry,\r\n                                variable i_strFunctionName) variable;\r\n\r\n    private function _CheckInteger(variable i_varVariable,\r\n                                   variable i_strTraceEntry,\r\n                                   variable i_strFunctionName) variable;\r\n\r\n    private function _CheckIntegerRange(variable i_varVariable,\r\n                                        variable i_strTraceEntry,\r\n                                        variable i_intMin,\r\n                                        variable i_intMax,\r\n                                        variable i_strFunctionName) variable;\r\n\r\n    private function _CheckFloatRange(variable i_varVariable,\r\n                                       variable i_strTraceEntry,\r\n                                       variable i_fltMin,\r\n                                       variable i_fltMax,\r\n                                       variable i_strFunctionName) variable;\r\n\r\n    private function _SendCommandToController(variable i_strCommand,\r\n                                              variable i_intControllerID,\r\n                                              variable i_strFunctionName,\r\n                                              variable& o_strControllerResponse,\r\n                                              variable& o_strErrorCode) variable;\r\n\r\n    private function _StatusTrace(variable i_intState,\r\n                                  variable i_intTraceLevel,\r\n                                  variable i_strTraceEntry,\r\n                                  variable i_strFunctionName) void;\r\n\r\n    private function _CheckString(variable i_varVariable,\r\n                                  variable i_strTraceEntry,\r\n                                  variable i_strFunctionName) variable;\r\n\r\n    private function _CheckSimulationMode(variable i_strFunctionName) variable;\r\n\r\n    private function _ReverseFind(string i_strStringToParse,\r\n                                  string i_strSubstringToFind) variable;\r\n\r\n    private function _ExtractFunctionName(variable i_strFunctionName) variable;\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function Initialize\r\n    //----------------------------------------------------------------------------------------------\r\n    function Initialize(variable i_intControllerID,\r\n                        variable i_blnSimulationMode,\r\n                        variable& o_strErrorCode) variable\r\n    {\r\n      variable intLoopCounterControllers(0), intResult(0);\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      gHSLInhecoTECLib_intLibraryTraceLevel = TRACELEVEL::GetTraceLevel();\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckBool(i_blnSimulationMode, \"i_blnSimulationMode\", strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      gHSLInhecoTECLib_blnLibrarySimulationMode = i_blnSimulationMode;\r\n\r\n      if(gHSLInhecoTECLib_blnLibrarySimulationMode == ASWGLOBAL::BOOL::TRUE)\r\n      {\r\n        _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_RELEASE, \"HSLTECLib running in simulation mode.\", strFunctionName);\r\n        gHSLInhecoTECLib_blnLibraryInitialized = hslTrue;\r\n        gHSLInhecoTECLib_blnTECControllerConnected.SetAt(i_intControllerID, hslTrue);\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      if(!gHSLInhecoTECLib_blnLibraryInitialized)\r\n      {\r\n        for (intLoopCounterControllers = LOWERCONTROLLERBOUND; intLoopCounterControllers < UPPERCONTROLLERBOUND + 1; intLoopCounterControllers++)\r\n          gHSLInhecoTECLib_blnTECControllerConnected.SetAt(intLoopCounterControllers, hslFalse);\r\n        gHSLInhecoTECLib_blnLibraryInitialized = hslTrue;\r\n      }\r\n\r\n      if(gHSLInhecoTECLib_blnTECControllerConnected.ElementAt(i_intControllerID))\r\n      {\r\n        // Controller is already connected\r\n        _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_NONE, \"ControllerID \" + IStr(i_intControllerID) + \" is already connected.\", strFunctionName);\r\n        gHSLInhecoTECLib_strErrorCode = \"004\";\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return (ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n      else\r\n      {\r\n        // Connect to Controller\r\n        if(gHSLInhecoTECLib_objTECController.IsNull())\r\n        {\r\n          gHSLInhecoTECLib_objTECController.CreateObject(\"InhecoMTCdll.GlobCom\");\r\n          if(gHSLInhecoTECLib_objTECController.IsNull())\r\n          {\r\n            gHSLInhecoTECLib_blnTECControllerConnected.SetAt(i_intControllerID, hslFalse);\r\n            gHSLInhecoTECLib_strErrorCode = \"002\";\r\n            o_strErrorCode    = gHSLInhecoTECLib_strErrorCode;\r\n            gHSLInhecoTECLib_strLibraryLastError = \"Failed to create communication object from InhecoMTCdll.dll!\";\r\n            _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, strFunctionName);\r\n            return(ASWGLOBAL::BOOL::FALSE);\r\n          }\r\n          gHSLInhecoTECLib_objTECController.InitDll();\r\n          gHSLInhecoTECLib_hdlSemaphore.SetEvent();\r\n        }\r\n\r\n        intResult = gHSLInhecoTECLib_objTECController.FindTheUniversalControl(i_intControllerID);\r\n\r\n        if(intResult == 0)\r\n        {\r\n          // Failed to connect to controller\r\n          gHSLInhecoTECLib_blnTECControllerConnected.SetAt(i_intControllerID, hslFalse);\r\n          gHSLInhecoTECLib_strErrorCode = \"003\";\r\n          o_strErrorCode    = gHSLInhecoTECLib_strErrorCode;\r\n          gHSLInhecoTECLib_strLibraryLastError = \"Failed to find the controller for ControllerID \" + IStr(i_intControllerID) + \"!\";\r\n          _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, strFunctionName);\r\n          return(ASWGLOBAL::BOOL::FALSE);\r\n        }\r\n        else if(intResult == 1)\r\n        {\r\n          // Succeeded to connect to controller\r\n          gHSLInhecoTECLib_blnTECControllerConnected.SetAt(i_intControllerID, hslTrue);\r\n          gHSLInhecoTECLib_strErrorCode = \"000\";\r\n          o_strErrorCode    = gHSLInhecoTECLib_strErrorCode;\r\n          _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"Controller ID \" + IStr(i_intControllerID) + \" is successfully connected.\", strFunctionName);\r\n          return(ASWGLOBAL::BOOL::TRUE);\r\n        }\r\n      }\r\n      return(ASWGLOBAL::BOOL::FALSE);\r\n    } // Initialize\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function SetTraceLevel\r\n    //----------------------------------------------------------------------------------------------\r\n    function SetTraceLevel(variable i_intTraceLevel) variable\r\n    {\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intTraceLevel, \"i_intTraceLevel\", TRACE_LEVEL_NONE, TRACE_LEVEL_DEBUG, strFunctionName)) return(ASWGLOBAL::BOOL::FALSE);\r\n\r\n      _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_intTraceLevel = \" + IStr(i_intTraceLevel), strFunctionName);\r\n\r\n      gHSLInhecoTECLib_intLibraryTraceLevel = i_intTraceLevel;\r\n\r\n      _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // SetTraceLevel\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetTraceLevel\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetTraceLevel(variable& o_intTraceLevel) void\r\n    {\r\n      o_intTraceLevel = gHSLInhecoTECLib_intLibraryTraceLevel;\r\n    }// GetTraceLevel\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function Terminate\r\n    //----------------------------------------------------------------------------------------------\r\n    function Terminate(variable i_blnStopAllDevices) variable\r\n    {\r\n      variable intLoopCounterActualDevice(0), intLoopCounterActualController(0);\r\n      variable strCommand(\"\"), strResponse(\"\"), strErrorCode(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!gHSLInhecoTECLib_blnLibraryInitialized)\r\n      {\r\n        _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_RELEASE, \"Library not initialized!\", strFunctionName);\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      if(gHSLInhecoTECLib_blnLibrarySimulationMode)\r\n      {\r\n        _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_RELEASE, \"Running in simulation mode\", strFunctionName);\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_blnStopAllDevices = \" + IStr(i_blnStopAllDevices), strFunctionName);\r\n\r\n      if(i_blnStopAllDevices == ASWGLOBAL::BOOL::TRUE)\r\n      {\r\n        _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Stopping all Inheco TEC device activities!\", strFunctionName);\r\n\r\n      for (intLoopCounterActualController = LOWERCONTROLLERBOUND; intLoopCounterActualController < UPPERCONTROLLERBOUND; intLoopCounterActualController++)\r\n      {\r\n        // Access all controllers\r\n        if(gHSLInhecoTECLib_blnTECControllerConnected.ElementAt(intLoopCounterActualController))\r\n        {\r\n            // Reset all attached devices\r\n            gHSLInhecoTECLib_objTECController.FindTheUniversalControl(intLoopCounterActualController);\r\n            for (intLoopCounterActualDevice = 1; intLoopCounterActualDevice <= 6; intLoopCounterActualDevice++)\r\n            {\r\n              //stop shaking\r\n              strCommand = IStr(intLoopCounterActualDevice) + _strCMD_SET_SHAKER + \"0\";\r\n\r\n              if(_SendCommandToController(strCommand, intLoopCounterActualController, strFunctionName, strResponse, strErrorCode))\r\n                _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_NONE, \"Device \" + IStr(intLoopCounterActualDevice) + \" @controller \" + IStr(intLoopCounterActualController) + \": Shaker stopped.\", strFunctionName);\r\n\r\n              //stop heating\r\n              strCommand = IStr(intLoopCounterActualDevice) + _strCMD_SET_TEMPERATURE_CONTROL + \"0\";\r\n\r\n              if(_SendCommandToController(strCommand, intLoopCounterActualController, strFunctionName, strResponse, strErrorCode))\r\n                _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_NONE, \"Device \" + IStr(intLoopCounterActualDevice) + \" @controller \" + IStr(intLoopCounterActualController) + \": Heater stopped.\", strFunctionName);\r\n            }\r\n\r\n            _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_NONE, \"Devices stopped!\", strFunctionName);\r\n          }\r\n        }\r\n      }\r\n\r\n      gHSLInhecoTECLib_hdlSemaphore.WaitEvent(hslInfinite);\r\n      gHSLInhecoTECLib_objTECController.ReleaseObject();\r\n      gHSLInhecoTECLib_blnLibrarySimulationMode = ASWGLOBAL::BOOL::FALSE;\r\n      gHSLInhecoTECLib_blnLibraryInitialized = hslFalse;\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // Terminate\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetCalibrationDate\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetCalibrationDate(variable i_intControllerID,\r\n                                variable i_intDeviceID,\r\n                                variable& o_strCalibrationDate,\r\n                                variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) + \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intControllerID) + _strCMD_GET_CALIBRATION_DATE + IStr(i_intDeviceID);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get calibration date\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_strCalibrationDate = _ExtractAnswer(strTemp);\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strCalibrationDate = '\" + o_strCalibrationDate + \"', o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetCalibrationDate\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetFirmwareVersion\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetFirmwareVersion(variable i_intControllerID,\r\n                                variable i_intSelector,\r\n                                variable& o_strFirmwareInformation,\r\n                                variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\"), strSelector(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intSelector, \"i_intSelector\", 0, 4, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) + \", i_intSelector = \" + IStr(i_intSelector),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      if(i_intSelector == 0) strSelector = \"bootstrap version\";\r\n      if(i_intSelector == 1) strSelector = \"application version\";\r\n      if(i_intSelector == 2) strSelector = \"serial number\";\r\n      if(i_intSelector == 3) strSelector = \"actual hardware version\";\r\n      if(i_intSelector == 4) strSelector = \"Inheco copyright\";\r\n\r\n      strCommand = IStr(i_intControllerID) + _strCMD_GET_FIRMWARE_VERSION + IStr(i_intSelector);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(-1, i_intControllerID, strCommand, \"get \" + strSelector, strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n      \r\n      o_strFirmwareInformation = _ExtractAnswer(strTemp);\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strFirmwareInformation = '\" + o_strFirmwareInformation + \"', o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetFirmwareVersion\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetSensorValues\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetSensorValues(variable i_intControllerID,\r\n                             variable i_intSelector,\r\n                             variable& o_strSensorValues,\r\n                             variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\"), strSelector(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      // Checking DeviceID on valid range for value\r\n      if(!_CheckIntegerRange(i_intSelector, \"i_intSelector\", 0, 9, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) + \", i_intSelector = \" + IStr(i_intSelector),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      if(i_intSelector == 0) strSelector = \"Value Power Supply [1/10 V]\";\r\n      if(i_intSelector == 1) strSelector = \"Housing Fan [on / off]\";\r\n      if(i_intSelector == 2) strSelector = \"Temperature Sensor 1 (Housing) [1/10 C]\";\r\n      if(i_intSelector == 3) strSelector = \"relative Humidity Sensor 1 (Housing) [1/10 %]\";\r\n      if(i_intSelector == 4) strSelector = \"Temperature Sensor 2 (Housing) [1/10 C]\";\r\n      if(i_intSelector == 5) strSelector = \"Temperature Sensor 1 (External) [1/10 C]\";\r\n      if(i_intSelector == 6) strSelector = \"relative Humidity Sensor (External) [1/10 %]\";\r\n      if(i_intSelector == 7) strSelector = \"Analogue Sensor 1 (External) [1/10 %]\";\r\n      if(i_intSelector == 8) strSelector = \"Analogue Sensor 2 (External) [1/10 %]\";\r\n      if(i_intSelector == 9) strSelector = \"Maximum measured temperature [1/10 %]\";\r\n\r\n      strCommand = IStr(i_intControllerID) + _strCMD_GET_FIRMWARE_VERSION + IStr(i_intSelector);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(-1, i_intControllerID, strCommand, \"get \" + strSelector, strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n      \r\n      o_strSensorValues = _ExtractAnswer(strTemp);\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strSensorValues = '\" + o_strSensorValues + \"', o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetSensorValues\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetDeviceSerialNumber\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetDeviceSerialNumber(variable i_intControllerID,\r\n                                   variable i_intDeviceID,\r\n                                   variable& o_strDeviceSerialNumber,\r\n                                   variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) + \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intControllerID) + _strCMD_GET_SERIAL_NUMBER + IStr(i_intDeviceID);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get serial number\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_strDeviceSerialNumber = _ExtractAnswer(strTemp);\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strDeviceSerialNumber = '\" + o_strDeviceSerialNumber + \"', o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetDeviceSerialNumber\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetDeviceType\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetDeviceType(variable i_intControllerID,\r\n                           variable i_intDeviceID,\r\n                           variable& o_intDeviceType,\r\n                           variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) + \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intControllerID) + _strCMD_GET_DEVICE_TYPE + IStr(i_intDeviceID);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get device type\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_intDeviceType = IVal(_ExtractAnswer(strTemp));\r\n\r\n      if(i_intDeviceID == 0)\r\n      { // asking for controller device\r\n        if(o_intDeviceType == 0) strDescription = \"Controller \" + IStr(i_intControllerID) + \" is of SingleTEC kind\";\r\n        if(o_intDeviceType == 1) strDescription = \"Controller \" + IStr(i_intControllerID) + \" is of MultiTEC kind\";\r\n      }\r\n      else\r\n      { // asking for external devices connected to the slot\r\n        strDescription = \" unknown.\";\r\n        if(o_intDeviceType == 0) strDescription = \"Thermoshake.\";\r\n        if(o_intDeviceType == 1) strDescription = \"CPAC.\";\r\n        if(o_intDeviceType == 2) strDescription = \"Teleshake.\";\r\n        if(o_intDeviceType == 4) strDescription = \"CPAC Ultraflat 2TEC.\";\r\n        strDescription = \"Device \" + IStr(i_intDeviceID) + \" on controller \" + IStr(i_intControllerID) + \" is of type \" + strDescription;\r\n      }\r\n\r\n      _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, strFunctionName);\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_intDeviceType = \" + IStr(o_intDeviceType) + \", o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetDeviceType\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetReservoirStatus\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetReservoirStatus(variable i_intControllerID,\r\n                                variable i_intDeviceID,\r\n                                variable& o_intReservoirStatus,\r\n                                variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) + \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_GET_RESERVOIR_STATUS;\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get reservoir status\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_intReservoirStatus = IVal(_ExtractAnswer(strTemp));\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_intReservoirStatus = \" + IStr(o_intReservoirStatus) + \", o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetReservoirStatus\r\n\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetActualDeviceTemperature\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetActualDeviceTemperature(variable i_intControllerID,\r\n                                        variable i_intDeviceID,\r\n                                        variable i_intFlag,\r\n                                        variable& o_fltActualTemperature,\r\n                                        variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckInteger(i_intFlag, \"i_intFlag\", strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID) +\r\n                   \", i_intFlag = \" + IStr(i_intFlag),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_GET_ACTUAL_TEMPERATURE + IStr(i_intFlag);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get actual temperature\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_fltActualTemperature = IVal(_ExtractAnswer(strTemp));\r\n      o_fltActualTemperature = o_fltActualTemperature * 0.1;\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_fltActualTemperature = \" + FStr(o_fltActualTemperature) + \", o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetActualDeviceTemperature\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetTargetTemperature\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetTargetTemperature(variable i_intControllerID,\r\n                                  variable i_intDeviceID,\r\n                                  variable& o_fltTargetTemperature,\r\n                                  variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_GET_TARGET_TEMPERATURE;\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get target temperature\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_fltTargetTemperature = IVal(_ExtractAnswer(strTemp));\r\n      o_fltTargetTemperature = o_fltTargetTemperature * 0.1;\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_fltTargetTemperature = \" + FStr(o_fltTargetTemperature) + \", o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetTargetTemperature\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function SetTargetTemperature\r\n    //----------------------------------------------------------------------------------------------\r\n    function SetTargetTemperature(variable i_intControllerID,\r\n                                  variable i_intDeviceID,\r\n                                  variable i_fltTargetTemperature,\r\n                                  variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      variable intTemperature(0);\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckFloatRange(i_fltTargetTemperature, \"i_fltTargetTemperature\", 0.0, 199.9, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID) +\r\n                   \", i_fltTargetTemperature = \" + FStr(i_fltTargetTemperature),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      intTemperature = Floor(i_fltTargetTemperature * 10);\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_SET_TARGET_TEMPERATURE + IStr(intTemperature);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"set target temperature\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // SetTargetTemperature\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function SetTouchscreen\r\n    //----------------------------------------------------------------------------------------------\r\n    function SetTouchscreen(variable i_intControllerID,\r\n                            variable i_blnEnabled,\r\n                            variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckBool(i_blnEnabled, \"i_blnEnabled\", strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_blnEnabled = \" + IStr(i_blnEnabled),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      if(i_blnEnabled == ASWGLOBAL::BOOL::TRUE)\r\n        strCommand = IStr(i_intControllerID) + _strCMD_SET_TOUCHSCREEN + \"1\";\r\n      else\r\n        strCommand = IStr(i_intControllerID) + _strCMD_SET_TOUCHSCREEN + \"0\";\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(-1, i_intControllerID, strCommand, \"set touchscreen\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // SetTouchscreen\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetHeaterEnableStatus\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetHeaterEnableStatus(variable i_intControllerID,\r\n                                   variable i_intDeviceID,\r\n                                   variable& i_intFlag,\r\n                                   variable& o_intHeatingStatus,\r\n                                   variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckInteger(i_intFlag, \"i_intFlag\", strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID) +\r\n                   \", i_intFlag = \" + IStr(i_intFlag),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_GET_HEATER_ENABLED_STATUS;\r\n      \r\n      if(i_intFlag == 1) strCommand = strCommand + IStr(i_intFlag);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get heating status\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_intHeatingStatus = IVal(_ExtractAnswer(strTemp));\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_intHeatingStatus = \" + IStr(o_intHeatingStatus) + \", o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetHeaterEnableStatus\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function StartTemperatureControl\r\n    //----------------------------------------------------------------------------------------------\r\n    function StartTemperatureControl(variable i_intControllerID,\r\n                                     variable i_intDeviceID,\r\n                                     variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_SET_TEMPERATURE_CONTROL + \"1\";\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"start temperature control\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // StartTemperatureControl\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function StopTemperatureControl\r\n    //----------------------------------------------------------------------------------------------\r\n    function StopTemperatureControl(variable i_intControllerID,\r\n                                    variable i_intDeviceID,\r\n                                    variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_SET_TEMPERATURE_CONTROL + \"0\";\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"stop temperature control\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // StopTemperatureControl\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function SetShakerRevolutions\r\n    //----------------------------------------------------------------------------------------------\r\n    function SetShakerRevolutions(variable i_intControllerID,\r\n                                  variable i_intDeviceID,\r\n                                  variable i_intShakerRevolutions,\r\n                                  variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intShakerRevolutions, \"i_intShakerRevolutions\", 60, 2000, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID) +\r\n                   \", i_intShakerRevolutions = \" + IStr(i_intShakerRevolutions),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID,strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_SET_SHAKER_REVOLUTIONS + IStr(i_intShakerRevolutions);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"set shaker revolutions\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // SetShakerRevolutions\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetShakerRevolutions\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetShakerRevolutions(variable i_intControllerID,\r\n                                  variable i_intDeviceID,\r\n                                  variable& o_intShakerRevolutions,\r\n                                  variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_GET_SHAKER_REVOLUTIONS;\r\n      \r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get shaker revolutions\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_intShakerRevolutions = IVal(_ExtractAnswer(strTemp));\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_intShakerRevolutions = \" + IStr(o_intShakerRevolutions) + \", o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetShakerRevolutions\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function SetShakerShape\r\n    //----------------------------------------------------------------------------------------------\r\n    function SetShakerShape(variable i_intControllerID,\r\n                            variable i_intDeviceID,\r\n                            variable i_intShakerShape,\r\n                            variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intShakerShape, \"i_intShakerShape\", 0, 5, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID) +\r\n                   \", i_intShakerShape = \" + IStr(i_intShakerShape),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_SET_SHAKER_SHAPE + IStr(i_intShakerShape);\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"set shaker shape\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // SetShakerShape\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetShakerShape\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetShakerShape(variable i_intControllerID,\r\n                            variable i_intDeviceID,\r\n                            variable& o_intShakerShape,\r\n                            variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_GET_SHAKER_SHAPE;\r\n      \r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get shaker shape\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_intShakerShape = IVal(_ExtractAnswer(strTemp));\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_intShakerShape = \" + IStr(o_intShakerShape) + \", o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetShakerShape\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetShakerStatus\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetShakerStatus(variable i_intControllerID,\r\n                             variable i_intDeviceID,\r\n                             variable& o_intStatus,\r\n                             variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_GET_SHAKER_STATUS;\r\n      \r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"get shaker status\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      o_intStatus = IVal(_ExtractAnswer(strTemp));\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_intStatus = \" + IStr(o_intStatus) + \", o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // GetShakerStatus\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function StartShaker\r\n    //----------------------------------------------------------------------------------------------\r\n    function StartShaker(variable i_intControllerID,\r\n                         variable i_intDeviceID,\r\n                         variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_SET_SHAKER + \"1\";\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"start shaker\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // StartShaker\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function StopShaker\r\n    //----------------------------------------------------------------------------------------------\r\n    function StopShaker(variable i_intControllerID,\r\n                        variable i_intDeviceID,\r\n                        variable& o_strErrorCode) variable\r\n    {\r\n      variable strCommand(\"\"), strDescription(\"\");\r\n      string strTemp(\"\");\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(!_CheckIntegerRange(i_intDeviceID, \"DeviceID\", 0, UPPERDEVICEBOUND, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_intDeviceID = \" + IStr(i_intDeviceID),\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n      {\r\n        o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      }\r\n\r\n      strCommand = IStr(i_intDeviceID) + _strCMD_SET_SHAKER + \"0\";\r\n\r\n      if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode))\r\n      {\r\n        _HandleError(i_intDeviceID, i_intControllerID, strCommand, \"stop shaker\", strFunctionName, o_strErrorCode);\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n      }\r\n\r\n      _StatusTrace(CMD_COMPLETE,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"o_strErrorCode = '\" + o_strErrorCode + \"'\",\r\n                   strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // StopShaker\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetLastError\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetLastError(variable& o_strLastError) void\r\n    {\r\n        o_strLastError = gHSLInhecoTECLib_strLibraryLastError;\r\n\r\n        gHSLInhecoTECLib_strLibraryLastError = \"\";\r\n    } // GetLastError\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function GetDescriptionForErrorCode\r\n    //----------------------------------------------------------------------------------------------\r\n    function GetDescriptionForErrorCode(variable& i_strErrorCode,\r\n                                        variable& o_strDescription) variable\r\n    {\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckString(i_strErrorCode, \"i_strErrorCode\", strFunctionName))\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n\r\n      o_strDescription = \"\";\r\n      if(i_strErrorCode == \"000\") o_strDescription = \"No error\";\r\n      if(i_strErrorCode == \"001\") o_strDescription = \"Library in simulation mode\";\r\n      if(i_strErrorCode == \"002\") o_strDescription = \"Failed to create communication object from InhecoMTCdll.dll\";\r\n      if(i_strErrorCode == \"003\") o_strDescription = \"Failed to find the controller for the specified ControllerID\";\r\n      if(i_strErrorCode == \"004\") o_strDescription = \"Trying to initialize a controller that is already initialized\";\r\n      if(i_strErrorCode == \"005\") o_strDescription = \"Trying to send a command to a controller that is not initialized\";\r\n      if(i_strErrorCode == \"006\") o_strDescription = \"Shaker did not answer\";\r\n      if(i_strErrorCode == \"007\") o_strDescription = \"Controller did not answer\";\r\n\r\n      if(i_strErrorCode == \"201\") o_strDescription = \"Value is not a bool\";\r\n      if(i_strErrorCode == \"202\") o_strDescription = \"Value is not an integer\";\r\n      if(i_strErrorCode == \"203\") o_strDescription = \"Value is not an integer or outside the range bounds\";\r\n      if(i_strErrorCode == \"204\") o_strDescription = \"Value is not a string\";\r\n      if(i_strErrorCode == \"205\") o_strDescription = \"Value is not a float or outside the range bounds\";\r\n\r\n      if(i_strErrorCode == \"TEC_0\") o_strDescription = \"inheco TEC: Normal return message. Command successfull\";\r\n      if(i_strErrorCode == \"TEC_1\") o_strDescription = \"inheco TEC: External message protocol violation.\";\r\n      if(i_strErrorCode == \"TEC_2\") o_strDescription = \"inheco TEC: Internal message protocol violation.\";\r\n      if(i_strErrorCode == \"TEC_3\") o_strDescription = \"inheco TEC: Command not executable.\";\r\n      if(i_strErrorCode == \"TEC_4\") o_strDescription = \"inheco TEC: Command unknown.\";\r\n      if(i_strErrorCode == \"TEC_5\") o_strDescription = \"inheco TEC: Wrong parameter.\";\r\n      if(i_strErrorCode == \"TEC_6\") o_strDescription = \"inheco TEC: Reset detected.\";\r\n      if(i_strErrorCode == \"TEC_7\") o_strDescription = \"inheco TEC: Slot Id unknown.\";\r\n      if(i_strErrorCode == \"TEC_8\") o_strDescription = \"inheco TEC: Wrong keyword.\";\r\n      if(i_strErrorCode == \"TEC_9\") o_strDescription = \"inheco TEC: Timeout from slot-module.\";\r\n      if(i_strErrorCode == \"TEC_A\") o_strDescription = \"inheco TEC: Busy with an action command or startup.\";\r\n      if(i_strErrorCode == \"TEC_B\") o_strDescription = \"inheco TEC: Reserved.\";\r\n      if(i_strErrorCode == \"TEC_C\") o_strDescription = \"inheco TEC: Housing temperature not OK.\";\r\n      if(i_strErrorCode == \"TEC_D\") o_strDescription = \"inheco TEC: Response time too long.\";\r\n      if(i_strErrorCode == \"TEC_E\") o_strDescription = \"inheco TEC: Voltage power supply not OK.\";\r\n      if(i_strErrorCode == \"TEC_F\") o_strDescription = \"inheco TEC: Housing fan not OK.\";\r\n      if(i_strErrorCode == \"TEC_G\") o_strDescription = \"inheco TEC: Device temp not OK.\";\r\n      if(i_strErrorCode == \"TEC_H\") o_strDescription = \"inheco TEC: RPM too high.\";\r\n      if(i_strErrorCode == \"TEC_I\") o_strDescription = \"inheco TEC: CPAC voltage not OK.\";\r\n      if(i_strErrorCode == \"TEC_K\") o_strDescription = \"inheco TEC: TEC current too low.\";\r\n      if(i_strErrorCode == \"TEC_R\") o_strDescription = \"inheco TEC: Cable Break or Shortcut PT100.\";\r\n      if(i_strErrorCode == \"TEC_T\") o_strDescription = \"inheco TEC: Delta T too high.\";\r\n      if(i_strErrorCode == \"TEC_W\") o_strDescription = \"inheco TEC: Wrong device connected.\";\r\n\r\n      if(o_strDescription != \"\") return(ASWGLOBAL::BOOL::TRUE);\r\n      return(ASWGLOBAL::BOOL::FALSE);  \r\n    } // GetDescriptionForErrorCode\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // function SendCommandString\r\n    //----------------------------------------------------------------------------------------------\r\n    function SendCommandString(variable i_intControllerID,\r\n                               variable i_strCommand,\r\n                               variable& o_strResponse) variable\r\n    {\r\n      variable strDescription(\"\");\r\n      timer hdlDelay;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = _ExtractFunctionName(GetFunctionName());\r\n\r\n      if(!_CheckIntegerRange(i_intControllerID, \"i_intControllerID\", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) return(ASWGLOBAL::BOOL::FALSE);\r\n      if(!_CheckString(i_strCommand, \"i_strCommand\", strFunctionName))  return(ASWGLOBAL::BOOL::FALSE);\r\n\r\n      _StatusTrace(CMD_START,\r\n                   TRACE_LEVEL_DEBUG,\r\n                   \"i_intControllerID = \" + IStr(i_intControllerID) +\r\n                   \", i_strCommand = '\" + i_strCommand + \"'\",\r\n                   strFunctionName);\r\n\r\n      if(!_CheckForInitialization(i_intControllerID, strFunctionName))\r\n        return(ASWGLOBAL::BOOL::FALSE);\r\n\r\n      if(_CheckSimulationMode(strFunctionName))\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      // Checks end\r\n\r\n      gHSLInhecoTECLib_hdlSemaphore.WaitEvent(hslInfinite);\r\n\r\n      hdlDelay.SetTimer(0.1, 0);\r\n      hdlDelay.WaitTimer(hslFalse, hslFalse);\r\n      gHSLInhecoTECLib_objTECController.FindTheUniversalControl(i_intControllerID);\r\n      gHSLInhecoTECLib_objTECController.WriteOnly(i_strCommand);\r\n      strDescription = \"Sent command '\" + i_strCommand + \"' to Controller \" + IStr(i_intControllerID);\r\n      _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, strDescription, strFunctionName);\r\n\r\n      hdlDelay.SetTimer(0.1, 0);\r\n      hdlDelay.WaitTimer(hslFalse, hslFalse);\r\n      o_strResponse = gHSLInhecoTECLib_objTECController.ReadSync();\r\n\r\n      strDescription = \"Received '\" + o_strResponse + \"' from Controller \" + IStr(i_intControllerID);\r\n      _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, strFunctionName);\r\n\r\n      gHSLInhecoTECLib_hdlSemaphore.SetEvent();\r\n\r\n      _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"o_strResponse = '\" + o_strResponse + \"'\", strFunctionName);\r\n      return(ASWGLOBAL::BOOL::TRUE);\r\n    } // SendCommandString\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _CheckForInitialization\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _CheckForInitialization(variable i_intControllerID,\r\n                                             variable i_strFunctionName) variable\r\n    {\r\n      if(gHSLInhecoTECLib_blnTECControllerConnected.ElementAt(i_intControllerID)) return (hslTrue);\r\n\r\n      i_strFunctionName = i_strFunctionName + \" - \" + _ExtractFunctionName(GetFunctionName());\r\n      _StatusTrace(CMD_FAIL, TRACE_LEVEL_RELEASE, \"ControllerID\" + IStr(i_intControllerID) + \" is not initialized!\", i_strFunctionName);\r\n      gHSLInhecoTECLib_strLibraryLastError = \"ControllerID\" + IStr(i_intControllerID) + \" is not initialized!\";\r\n      gHSLInhecoTECLib_strErrorCode = \"005\";\r\n      return(hslFalse);\r\n    } // _CheckForInitialization\r\n \r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _CheckBool\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _CheckBool(variable i_varVariable,\r\n                               variable i_strTraceEntry,\r\n                               variable i_strFunctionName) variable\r\n    {\r\n      if(GetType(i_varVariable) == \"i\")\r\n        if(i_varVariable == ASWGLOBAL::BOOL::TRUE || i_varVariable == ASWGLOBAL::BOOL::FALSE)\r\n          return(ASWGLOBAL::BOOL::TRUE);\r\n      gHSLInhecoTECLib_strLibraryLastError = \"Input parameter \" + i_strTraceEntry + \" is not of type bool\";\r\n      gHSLInhecoTECLib_strErrorCode = \"201\";\r\n      _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName);\r\n      return(ASWGLOBAL::BOOL::FALSE);\r\n    } // _CheckBool\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _CheckInteger\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _CheckInteger(variable i_varVariable,\r\n                                  variable i_strTraceEntry,\r\n                                  variable i_strFunctionName) variable\r\n    {\r\n      if(GetType(i_varVariable) == \"i\")\r\n        return(ASWGLOBAL::BOOL::TRUE);\r\n      gHSLInhecoTECLib_strLibraryLastError = \"Input parameter \" + i_strTraceEntry + \" is not of type integer\";\r\n      gHSLInhecoTECLib_strErrorCode = \"202\";\r\n      _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName);\r\n      return(ASWGLOBAL::BOOL::FALSE);\r\n    } // _CheckInteger\r\n\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _CheckInteger\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _CheckIntegerRange(variable i_varVariable,\r\n                                       variable i_strTraceEntry,\r\n                                       variable i_intMin,\r\n                                       variable i_intMax,\r\n                                       variable i_strFunctionName) variable\r\n    {\r\n      if(GetType(i_varVariable) == \"i\")\r\n        if(i_varVariable >= i_intMin && i_varVariable <= i_intMax)\r\n          return(ASWGLOBAL::BOOL::TRUE);\r\n        else\r\n          gHSLInhecoTECLib_strLibraryLastError = \"Parameter \" + i_strTraceEntry + \" is out of range(\"+ IStr(i_intMin) + \"..\" + IStr(i_intMax) + \")!\";\r\n      else\r\n        gHSLInhecoTECLib_strLibraryLastError = \"Input parameter \" + i_strTraceEntry + \" is not of type integer\";\r\n      gHSLInhecoTECLib_strErrorCode = \"203\";\r\n      _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName);\r\n      return(ASWGLOBAL::BOOL::FALSE);\r\n    } // _CheckIntegerRange\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _CheckInteger\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _CheckFloatRange(variable i_varVariable,\r\n                                       variable i_strTraceEntry,\r\n                                       variable i_fltMin,\r\n                                       variable i_fltMax,\r\n                                       variable i_strFunctionName) variable\r\n    {\r\n      if(GetType(i_varVariable) == \"f\")\r\n        if(i_varVariable >= i_fltMin && i_varVariable <= i_fltMax)\r\n          return(ASWGLOBAL::BOOL::TRUE);\r\n        else\r\n          gHSLInhecoTECLib_strLibraryLastError = \"Parameter \" + i_strTraceEntry + \" is out of range(\"+ FStr(i_fltMin) + \"..\" + FStr(i_fltMax) + \")!\";\r\n      else\r\n        gHSLInhecoTECLib_strLibraryLastError = \"Input parameter \" + i_strTraceEntry + \" is not of type float\";\r\n      gHSLInhecoTECLib_strErrorCode = \"205\";\r\n      _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName);\r\n      return(ASWGLOBAL::BOOL::FALSE);\r\n    } // _CheckFloatRange\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _HandleError\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _HandleError(variable i_intDeviceID,\r\n                                  variable i_intControllerID,\r\n                                  variable i_strCommand,\r\n                                  variable i_strDescription,\r\n                                  variable i_strFunctionName,\r\n                                  variable& o_strErrorCode) void\r\n    {\r\n      variable strDescription(\"\");\r\n\r\n      strDescription = \"Cannot \" + i_strDescription;\r\n      if(i_intDeviceID > 0) strDescription = strDescription + \" of device \" + IStr(i_intDeviceID);\r\n      strDescription = strDescription + \" on controller \" + IStr(i_intControllerID) + \" with command '\" + i_strCommand + \"'\";\r\n\r\n      _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, strDescription, i_strFunctionName);\r\n      gHSLInhecoTECLib_strLibraryLastError = strDescription;\r\n      o_strErrorCode = gHSLInhecoTECLib_strErrorCode;\r\n    } // _HandleError\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _ExtractAnswer\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _ExtractAnswer(string i_strControllerResponse) variable\r\n    {\r\n      return(i_strControllerResponse.Mid(5, i_strControllerResponse.GetLength()));\r\n    } // _ExtractAnswer\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _SendCommandToController\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _SendCommandToController(variable i_strCommand,\r\n                                              variable i_intControllerID,\r\n                                              variable i_strFunctionName,\r\n                                              variable& o_strResponse,\r\n                                              variable& o_strErrorCode) variable\r\n    {\r\n      variable strDescription(\"\");\r\n      string strResponse(\"\"), strError(\"\");\r\n      variable intLoopCounterRetry(0);\r\n      timer hdlDelay;\r\n\r\n      i_strFunctionName = i_strFunctionName + \" - \" + _ExtractFunctionName(GetFunctionName());\r\n\r\n      // retry loop - in case of wrong return value from controller try again (MAXNUMBEROFRETRIES) before returnng unsuccessful\r\n      while(hslTrue)\r\n      {\r\n        intLoopCounterRetry++;\r\n        gHSLInhecoTECLib_hdlSemaphore.WaitEvent(hslInfinite);\r\n\r\n        gHSLInhecoTECLib_objTECController.FindTheUniversalControl(i_intControllerID);\r\n        gHSLInhecoTECLib_objTECController.WriteOnly(i_strCommand);\r\n        strDescription = \"Sent command '\" + i_strCommand + \"' to Controller \" + IStr(i_intControllerID);\r\n        _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, i_strFunctionName);\r\n\r\n        hdlDelay.SetTimer(0.1, 0);\r\n        hdlDelay.WaitTimer(hslFalse, hslFalse);\r\n        strResponse = gHSLInhecoTECLib_objTECController.ReadSync();\r\n\r\n        o_strResponse = strResponse;\r\n\r\n        strDescription = \"Received '\" + o_strResponse + \"' from Controller \" + IStr(i_intControllerID);\r\n        _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, i_strFunctionName);\r\n\r\n        gHSLInhecoTECLib_hdlSemaphore.SetEvent();\r\n\r\n        // check whether controller sent status reply\r\n        if(strResponse.GetLength() > 0)\r\n        {\r\n          // controller gave answer\r\n          if(strResponse.GetLength() >= 5)\r\n          {\r\n            strError = strResponse.Mid(4,1);\r\n          }\r\n        }\r\n        else\r\n        {\r\n          // no answer from controller\r\n          gHSLInhecoTECLib_strErrorCode = \"007\";\r\n          o_strErrorCode    = gHSLInhecoTECLib_strErrorCode;\r\n          strDescription = \"Controller \" + IStr(i_intControllerID) + \" did not answer !\";\r\n          gHSLInhecoTECLib_strLibraryLastError = strDescription;\r\n          _StatusTrace(CMD_FAIL, TRACE_LEVEL_NONE, strDescription, i_strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n\r\n        if(0 == strError.Compare(\"0\"))\r\n        {\r\n          gHSLInhecoTECLib_strErrorCode = \"TEC_0\";\r\n          o_strErrorCode    = gHSLInhecoTECLib_strErrorCode;\r\n          strDescription = \"Command '\" + i_strCommand + \"' for Controller \" + IStr(i_intControllerID) + \" succeeded with response '\" + o_strResponse + \"'\";\r\n          _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, strDescription, i_strFunctionName);\r\n          return(hslTrue);\r\n        }\r\n        else if(0 == strError.Compare(\"6\"))\r\n        {\r\n          gHSLInhecoTECLib_strErrorCode    = \"TEC_0\";\r\n          o_strErrorCode    = gHSLInhecoTECLib_strErrorCode;\r\n          strDescription = \"Reset detected.\";\r\n          _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, i_strFunctionName); \r\n          return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          if(intLoopCounterRetry > MAXNUMBEROFRETRIES)\r\n          {\r\n            o_strErrorCode = strError;\r\n            gHSLInhecoTECLib_strErrorCode    = \"TEC_\" + o_strErrorCode;\r\n            o_strErrorCode    = gHSLInhecoTECLib_strErrorCode;\r\n            strDescription = \"Command '\" + i_strCommand + \"' for Controller \" + IStr(i_intControllerID) + \" failed with response '\" + o_strResponse + \"'\";\r\n            gHSLInhecoTECLib_strLibraryLastError = strDescription;\r\n            _StatusTrace(CMD_FAIL, TRACE_LEVEL_NONE, strDescription, i_strFunctionName);\r\n            return(hslFalse);\r\n          }\r\n        }\r\n        hdlDelay.SetTimer(2.0, 0);\r\n        hdlDelay.WaitTimer(hslFalse, hslFalse);\r\n      }\r\n    } // _SendCommandToController\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _CheckString\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _CheckString(variable i_varVariable,\r\n                                  variable i_strTraceEntry,\r\n                                  variable i_strFunctionName) variable\r\n    {\r\n      if(GetType(i_varVariable) == \"s\") return(hslTrue);\r\n\r\n      gHSLInhecoTECLib_strErrorCode = \"204\";\r\n      gHSLInhecoTECLib_strLibraryLastError = \"Parameter \" + i_strTraceEntry + \" is not of type string!\";\r\n      _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName);\r\n      return(hslFalse);\r\n    } // _CheckString\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _CheckSimulationMode\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _CheckSimulationMode(variable i_strFunctionName) variable\r\n    {\r\n      if(gHSLInhecoTECLib_blnLibrarySimulationMode)\r\n      {\r\n        i_strFunctionName = i_strFunctionName + \" - \" + _ExtractFunctionName(GetFunctionName());\r\n        gHSLInhecoTECLib_strErrorCode = \"001\";\r\n        gHSLInhecoTECLib_strLibraryLastError = \"Inheco TEC-Library in simulation mode.\";\r\n        _StatusTrace(CMD_START, TRACE_LEVEL_NONE, \"Inheco TEC-Library in simulation mode.\", i_strFunctionName);\r\n        return(hslTrue);\r\n      }\r\n      else return (hslFalse);\r\n    }\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _StatusTrace\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _StatusTrace(variable i_intState,\r\n                                  variable i_intTraceLevel,\r\n                                  variable i_strTraceEntry,\r\n                                  variable i_strFunctionName) void\r\n    {\r\n      if(i_intTraceLevel <= gHSLInhecoTECLib_intLibraryTraceLevel)\r\n      {\r\n        i_strFunctionName = _ExtractFunctionName(i_strFunctionName);\r\n        FormatTrace(\"LIBRARY: \" + gHSLInhecoTECLib_strLibraryModuleName, i_strFunctionName, i_intState, \" \", i_strTraceEntry);\r\n      }\r\n    }// _StatusTrace\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _ReverseFind\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _ReverseFind(string i_strStringToParse,\r\n                                  string i_strSubstringToFind) variable\r\n    {\r\n      variable intIndex;\r\n      variable intResult(-1);\r\n      variable intStringLength;\r\n      string strTempString;\r\n\r\n      strTempString = i_strStringToParse;\r\n      intStringLength = strTempString.GetLength();\r\n      for (intIndex = strTempString.Find(i_strSubstringToFind); intIndex != -1; intIndex = strTempString.Find(i_strSubstringToFind))\r\n      {\r\n        intResult = intResult + intIndex + 1;\r\n        strTempString = strTempString.Mid(intIndex + 1, intStringLength);\r\n      }\r\n      return(intResult);\r\n    } // _ReverseFind\r\n\r\n    //----------------------------------------------------------------------------------------------\r\n    // private function _ExtractFunctionName\r\n    //----------------------------------------------------------------------------------------------\r\n    private function _ExtractFunctionName(variable i_strFunctionName) variable\r\n    {\r\n      string strFunctionName(i_strFunctionName);\r\n\r\n      return(strFunctionName.Mid(_ReverseFind(i_strFunctionName, \":\") + 1, strFunctionName.GetLength()));\r\n    } // _ExtractFunctionName\r\n  } // namespace HSLInhecoTECLib\r\n#endif\r\n// $$author=bhuf$$valid=1$$time=2015-06-03 09:23$$checksum=91c6826e$$length=083$$"
  },
  {
    "path": "pyhamilton/library/HSLLabwareStateLib.hsl",
    "content": "// ======================================================================\r\n// This is a part of the HSL Labware State Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n// 2005-05-03  mhosang : Initial file creation\r\n//\r\n// ======================================================================\r\n\r\n#ifndef __HSLLabwareStateLib_hsl__\r\n#define __HSLLabwareStateLib_hsl__\t1\r\n\r\n// ---------------------------------------------------------------------------------------\r\n// Interface to the HSL Labware State Library\r\n// ---------------------------------------------------------------------------------------\r\n\r\n#ifndef HSL_RUNTIME\r\nnamespace HSLLabwState\r\n{\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareID\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the labware ID of the labware at the current position of the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe labware id of the labware (string)\r\n\t//****************************************************************************************\r\n\t\r\n\tfunction GetLabwareID(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence) variable { return (\"\"); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareBarcode\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the barcode of the labware at the current position of the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tLabwareLevel\t[in] the labware level to be used\r\n\t//                        must be a value out of the namespace LabwareLevels\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe barcode of the labware (string)\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareBarcode(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel) variable { return (\"\"); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function SetLabwareBarcode\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tOverwrites the barcode of the labware at the current position of the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tLabwareLevel\t[in] the labware level to be used\r\n\t//\t\t\t\t\t\t\t     must be a value out of the namespace LabwareLevels\r\n\t//\t\tBarcode\t\t\t[in] the barcode to be set (string)\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tNone. The function throws an error if it fails.\r\n\t//****************************************************************************************\r\n\tfunction SetLabwareBarcode(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel,\r\n\t\tvariable&\tBarcode) void {}\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareBarcodeMask\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the barcode mask of the labware at the current position of the given\r\n\t//    sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tLabwareLevel\t[in] the labware level to be used\r\n\t//\t\t\t\t\t\t\t     must be a value out of the namespace LabwareLevels\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe barcode mask of the labware (string)\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareBarcodeMask(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel) variable { return (\"\"); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function SetLabwareBarcodeMask\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tOverwrites the barcode mask of the labware at the current position of the given\r\n\t//\t\tsequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tLabwareLevel\t[in] the labware level to be used\r\n\t//\t\t\t\t\t\t\t     must be a value out of the namespace LabwareLevels\r\n\t//\t\tBarcodeMask\t\t[in] the barcode mask to be set (string)\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tNone. The function throws an error if it fails.\r\n\t//****************************************************************************************\r\n\tfunction SetLabwareBarcodeMask(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel,\r\n\t\tvariable&\tBarcodeMask) void {}\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareSourceBarcodes\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns an array filled with all source barcodes of the labware at the current\r\n\t//\t\tposition of the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tListType\t\t\t[in] the type of the source barcode list\r\n\t//\t\t\t\t\t\t\t\t  must be a valid barcode list type out of the namespace\r\n\t//\t\t\t\t\t\t\t\t  STrackerConst\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tAn array filled with historical ordered source barcodes\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareSourceBarcodes(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tListType) variable[] { variable retVal[]; return (retVal); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareLastSourceBarcode\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the last known source barcode of the labware at the current position of the\r\n\t//\t\tgiven sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe last known source barcode as a string\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareLastSourceBarcode(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence) variable { return (\"\"); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function AddLabwareSourceBarcode\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tAdds a specific barcode to the source barcodes of the labware at the current\r\n\t//\t\tposition of the given sequence.\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tBarcode\t\t\t[in] the barcode to be added\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe last known source barcode as a string\r\n\t//****************************************************************************************\r\n\tfunction AddLabwareSourceBarcode(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tBarcode) void {}\r\n\r\n\t//****************************************************************************************\r\n\t// Library function SetLabwareSummaryState\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tOverwrites the summary state of the labware at the current position of the given\r\n\t//\t\tsequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tSummaryState\t[in] the summary state to be set\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tNone. The function throws an error if it fails.\r\n\t//****************************************************************************************\r\n\tfunction SetLabwareSummaryState(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tSummaryState) void {}\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareSummaryState\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the summary state of the labware at the current position of the given\r\n\t//\t\tsequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe summary state of the labware as an integer\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareSummaryState(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence) variable { return (0); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareLastActionState\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the action state of the last action for the labware at the current position\r\n\t//\t\tof the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe last action state of the labware as an integer\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareLastActionState(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence) variable { return (0); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function SetLabwareExpNumOfProcSteps\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tSets the expected number of processed steps for the labware at the current position\r\n\t//\t\tof the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tNumOfProcSteps\t[in] the number of processed steps\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe last known source barcode as a string\r\n\t//****************************************************************************************\r\n\tfunction SetLabwareExpNumOfProcSteps(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tNumOfProcSteps) void {}\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareExpNumOfProcSteps\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the expected number of processed steps for the labware at the current\r\n\t//\t\tposition of the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe last known source barcode as a string\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareExpNumOfProcSteps(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence) variable { return (0); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareNumOfProcSteps\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the number of processed steps for the labware at the current position\r\n\t//\t\tof the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe last known source barcode as a string\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareNumOfProcSteps(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence) variable { return (0); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function SetLabwareVolume\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tSets the volume of the labware at the current position of the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tVolume\t\t\t[in] the volume to be set\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tNone. The function throws an error if it fails.\r\n\t//****************************************************************************************\r\n\tfunction SetLabwareVolume(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tVolume) void {}\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareVolume\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the volume of the labware at the current position of the given sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe volume of the labware as an integer\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareVolume(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence) variable { return (0); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareRelation\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the labware id of the choosen labware level at the current position of the\r\n\t//\t\tgiven sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tLabwareLevel\t[in] the labware level to be used\r\n\t//\t\t\t\t\t\t\t\t  must be a value out of the namespace LabwareLevels\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe last known source barcode as a string\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareRelation(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel) variable { return (\"\"); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function SetLabwareVisibility\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tSets the visibility of the choosen labware level at the current position of the\r\n\t//\t\tgiven sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tLabwareLevel\t[in] the labware level to be used\r\n\t//\t\t\t\t\t\t\t\t  must be a value out of the namespace LabwareLevels\r\n\t//\t\tVisibility\t\t[in] the visibility to be set [hslTrue|hslFalse]\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tNone. The function throws an error if it fails.\r\n\t//****************************************************************************************\r\n\tfunction SetLabwareVisibility(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel,\r\n\t\tvariable&\tVisibility) void {}\r\n\r\n\t//****************************************************************************************\r\n\t// Library function GetLabwareVisibility\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns the visibility of the choosen labware level at the current position of the\r\n\t//\t\tgiven sequence\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\t\tLabwareLevel\t[in] the labware level to be used\r\n\t//\t\t\t\t\t\t\t\t  must be a value out of the namespace LabwareLevels\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tThe visibility of the labware. (integer)\r\n\t//****************************************************************************************\r\n\tfunction GetLabwareVisibility(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel) variable { return (0); }\r\n\r\n\t//****************************************************************************************\r\n\t// Library function IsLabwareConnected\r\n\t//****************************************************************************************\r\n\t//\r\n\t// Description:\r\n\t//\t\tReturns hslTrue, if the labware at the current position of the given sequence is\r\n\t//\t\tpart of a connected container, else hslFalse\r\n\t//\r\n\t// Parameter:\r\n\t//\t\tDevice\t\t\t[in] the device to be used\r\n\t// \tSequence\t\t\t[in] the sequence where the current position specifies a labware\r\n\t//\r\n\t//\tReturn value:\r\n\t//\t\tReturns hslTrue, if part of a connected container, else hslFalse\r\n\t//****************************************************************************************\r\n\tfunction IsLabwareConnected(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence) variable { return (hslFalse); }\r\n\r\n} // end of namespace HSLLabwState\r\n#endif\r\n\r\n// --------------------------------------------------------------------------------------\r\n// Implementation of the HSL Labware State Library\r\n// --------------------------------------------------------------------------------------\r\n#ifdef HSL_RUNTIME\r\n#include \"HSLLabwareStateLibImpl.hs_\"\r\n#endif\r\n\r\n#endif\r\n// $$author=wbarmettler$$valid=1$$time=2017-03-09 07:27$$checksum=00b519d6$$length=090$$"
  },
  {
    "path": "pyhamilton/library/HSLLabwareStateLibImpl.hs_",
    "content": "// ======================================================================\r\n// This is a part of the HSL Labware State Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n// 2005-05-04  mhosang : Initial file creation\r\n// 2006-09-04  ljegher : Adapt implementation for VectorDb\r\n// 2009-12-10  mhosang : Updated SetLabwareVisibility() to match HxLabwr3\r\n//                       implementation\r\n//\r\n// ======================================================================\r\n\r\n// include guard\r\n#pragma once\r\n\r\n// necessary includes\r\n#ifndef __HSLStrLib_hsl__\r\n#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLSynLib_hsl__\r\n#include \"HSLSynLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLUtilLib_hsl__\r\n#include \"HSLUtilLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLSeqLib_hsl__\r\n#include \"HSLSeqLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLMthLib_hsl__\r\n#include \"HSLMthLib.hsl\"\r\n#endif\r\n\r\n// --------------------------------------------------------------------------------------\r\n// Implementation of the HSL Labware State Library\r\n// --------------------------------------------------------------------------------------\r\nnamespace HSLLabwState\r\n{\r\n\t#ifndef __HSLStringTableLib_hsl__\r\n\t#include \"HSLStringTableLib.hs_\"\r\n\t#endif\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Library Data\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\t//declaration of global member data\r\n\tglobal variable mg_HSLLabwState_IsSampleTrackingEnabled(hslFalse);\t// false, if sample tracking is OFF\r\n\tglobal object mg_HSLLabwState_trackerObject;\t\t\t\t\t\t\t\t\t// the one and only sample tracker object, instantiated from executor\r\n\tglobal variable mg_HSLLabwState_cs(0);\t\t\t\t\t\t\t\t\t\t\t// critical section\r\n\r\n\t//declaration of member data valid within namespace of process\r\n\tvariable m_initializedLib(hslFalse);\t\t\t\t\t\t\t\t\t\t\t// initialization state of the HSL Mapping Report library\r\n\t\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Debugging\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\t//#define _DEBUG\t\t1\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// specifies the debug version of the library\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Labware Levels\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace LabwareLevels\r\n\t{\r\n\t\t// the labware levels must be in the following order:\r\n\t\t// min  <----------------------> max\r\n\t\t// deck <----------------------> container\r\n\t\tconst variable deck(100);\r\n\t\tconst variable template(200);\r\n\t\tconst variable rack(300);\r\n\t\tconst variable container(400);\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Interfaces\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace Interfaces\r\n\t{\r\n\t\t// these are the used interfaces\r\n\t\tconst variable IEditLabware\t(\"IEditLabware6\");\r\n\t\tconst variable IRectRack\t\t(\"IRectRack2\");\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Tracing\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace TraceStatus\r\n\t{\r\n\t\tconst variable start\t\t\t\t\t\t\t\t\t\t\t\t\t(1);\t\t\t\t\t// action status for formatted trace\r\n\t\tconst variable complete\t\t\t\t\t\t\t\t\t\t\t\t(2);\t\t\t\t\t// action status for formatted trace\r\n\t\tconst variable error_\t\t\t\t\t\t\t\t\t\t\t\t(3);\t\t\t\t\t// action status for formatted trace\r\n\t\tconst variable progress\t\t\t\t\t\t\t\t\t\t\t\t(4);\t\t\t\t\t// action status for formatted trace\r\n\t\tconst variable completeWithError\t\t\t\t\t\t\t\t\t(5);\t\t\t\t\t// action status for formatted trace\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Error Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDE\r\n\t{\r\n\t\tconst variable first\t\t\t\t\t\t\t\t\t\t\t\t\t(0);\t\t\t\t\t// guard\r\n\t\tconst variable noError\t\t\t\t\t\t\t\t\t\t\t\t(first);\t\t\t\t// No error.\r\n\t\tconst variable fatalError\t\t\t\t\t\t\t\t\t\t\t(first + 1);\t\t// General unspecific error\r\n\t\tconst variable invalidParameter\t\t\t\t\t\t\t\t\t(first + 2);\t\t// Invalid parameter\r\n\t\tconst variable sampleTrackingDisabled\t\t\t\t\t\t\t(first + 3);\t\t// Sample tracking is disabled.\r\n\t\tconst variable invalidLabwareLevel\t\t\t\t\t\t\t\t(first + 4);\t\t// Invalid labware level.\r\n\t\tconst variable invalidBarcodeListType\t\t\t\t\t\t\t(first + 5);\t\t// Invalid barcode list type.\r\n\t\tconst variable invalidBarcode\t\t\t\t\t\t\t\t\t\t(first + 6);\t\t// Invalid barcode.\r\n\t\tconst variable invalidBarcodeMask\t\t\t\t\t\t\t\t(first + 7);\t\t// Invalid barcode mask.\r\n\t\tconst variable invalidSummaryState\t\t\t\t\t\t\t\t(first + 8);\t\t// Invalid summary state.\r\n\t\tconst variable invalidNumberOfProcessedSteps\t\t\t\t\t(first + 9);\t\t// Invalid number of processed steps.\r\n\t\tconst variable invalidVolume\t\t\t\t\t\t\t\t\t\t(first + 10);\t\t// Invalid volume.\r\n\t\tconst variable invalidVisibility\t\t\t\t\t\t\t\t\t(first + 11);\t\t// Invalid visibility.\r\n\t\tconst variable invalidSequencePosition\t\t\t\t\t\t\t(first + 12);\t\t// Invalid sequence position.\r\n\t\tconst variable noCarrierFound\t\t\t\t\t\t\t\t\t\t(first + 13);\t\t//\tNo carrier found for the given sequence.\r\n\t\tconst variable last\t\t\t\t\t\t\t\t\t\t\t\t\t(first + 13);\t\t// guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// String Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDS\r\n\t{\r\n\t\t//private\r\n\t\tconst variable first\t\t\t\t\t\t\t\t\t\t\t\t\t(IDE::last + 1);\t// guard\r\n\t\tconst variable helpFileName\t\t\t\t\t\t\t\t\t\t(first);\t\t\t\t// help file name\r\n\t\tconst variable traceSource\t\t\t\t\t\t\t\t\t\t\t(first + 1);\t\t// trace source\r\n\t\tconst variable traceActionGetLabwareID\t\t\t\t\t\t\t(first + 2);\t\t// GetLabwareID\r\n\t\tconst variable traceActionGetLabwareBarcode\t\t\t\t\t(first + 3);\t\t// GetLabwareBarcode\r\n\t\tconst variable traceActionSetLabwareBarcode\t\t\t\t\t(first + 4);\t\t// SetLabwareBarcode\r\n\t\tconst variable traceActionGetLabwareBarcodeMask\t\t\t\t(first + 5);\t\t// GetLabwareBarcodeMask\r\n\t\tconst variable traceActionSetLabwareBarcodeMask\t\t\t\t(first + 6);\t\t// SetLabwareBarcodeMask\r\n\t\tconst variable traceActionGetLabwareSourceBarcodes\t\t\t(first + 7);\t\t// GetLabwareSourceBarcodes\r\n\t\tconst variable traceActionGetLabwareLastSourceBarcode\t\t(first + 8);\t\t// GetLabwareLastSourceBarcode\r\n\t\tconst variable traceActionAddLabwareSourceBarcode\t\t\t(first + 9);\t\t// AddLabwareSourceBarcode\r\n\t\tconst variable traceActionSetLabwareSummaryState\t\t\t(first + 10);\t\t// SetLabwareSummaryState\r\n\t\tconst variable traceActionGetLabwareSummaryState\t\t\t(first + 11);\t\t// GetLabwareSummaryState\r\n\t\tconst variable traceActionGetLabwareLastActionState\t\t(first + 12);\t\t// GetLabwareLastActionState\r\n\t\tconst variable traceActionSetLabwareExpNumOfProcSteps\t\t(first + 13);\t\t// SetLabwareExpNumOfProcSteps\r\n\t\tconst variable traceActionGetLabwareExpNumOfProcSteps\t\t(first + 14);\t\t// GetLabwareExpNumOfProcSteps\r\n\t\tconst variable traceActionGetLabwareNumOfProcSteps\t\t\t(first + 15);\t\t// GetLabwareNumOfProcSteps\r\n\t\tconst variable traceActionSetLabwareVolume\t\t\t\t\t(first + 16);\t\t// SetLabwareVolume\r\n\t\tconst variable traceActionGetLabwareVolume\t\t\t\t\t(first + 17);\t\t// GetLabwareVolume\r\n\t\tconst variable traceActionGetLabwareRelation\t\t\t\t\t(first + 18);\t\t// GetLabwareRelation\r\n\t\tconst variable traceActionSetLabwareVisibility\t\t\t\t(first + 19);\t\t// SetLabwareVisibility\r\n\t\tconst variable traceActionGetLabwareVisibility\t\t\t\t(first + 20);\t\t// GetLabwareVisibility\r\n\t\tconst variable traceActionIsLabwareConnected\t\t\t\t\t(first + 21);\t\t// IsLabwareConnected\r\n\r\n\t\tconst variable enableSampleTracking\t\t\t\t\t\t\t\t(first + 22);\t\t// Sample tracking must be enabled\r\n\r\n\t\tconst variable functionGetLabwareIDFailed\t\t\t\t\t\t(first + 24);\t\t// Could not determine labware id\r\n\t\tconst variable functionGetLabwareBarcodeFailed\t\t\t\t(first + 25);\t\t// Could not determine labware barcode\r\n\t\tconst variable functionSetLabwareBarcodeFailed\t\t\t\t(first + 26);\t\t// Could not set labware barcode\r\n\t\tconst variable functionGetLabwareBarcodeMaskFailed\t\t\t(first + 27);\t\t// Could not determine labware barcode mask\r\n\t\tconst variable functionSetLabwareBarcodeMaskFailed\t\t\t(first + 28);\t\t// Could not set labware barcode mask\r\n\t\tconst variable functionGetLabwareSourceBarcodesFailed\t\t(first + 29);\t\t// Could not determine labware source barcodes\r\n\t\tconst variable functionGetLabwareLastSourceBarcodeFailed\t(first + 30);\t\t// Could not determine labware's last source barcode\r\n\t\tconst variable functionAddLabwareSourceBarcodeFailed\t\t(first + 31);\t\t// Could not add source barcode to labware\r\n\t\tconst variable functionSetLabwareSummaryStateFailed\t\t(first + 32);\t\t// Could not set labware's summary state\r\n\t\tconst variable functionGetLabwareSummaryStateFailed\t\t(first + 33);\t\t// Could not determine labware's summary state\r\n\t\tconst variable functionGetLabwareLastActionStateFailed\t(first + 34);\t\t// Could not determine labware's last action state\r\n\t\tconst variable functionSetLabwareExpNumOfProcStepsFailed\t(first + 35);\t\t// Could not set labware's expected number of processed steps\r\n\t\tconst variable functionGetLabwareExpNumOfProcStepsFailed\t(first + 36);\t\t// Could not determine the expected number of processed steps\r\n\t\tconst variable functionGetLabwareNumOfProcStepsFailed\t\t(first + 37);\t\t// Could not determine the number of procecssed steps\r\n\t\tconst variable functionSetLabwareVolumeFailed\t\t\t\t(first + 38);\t\t// Could not set labware's volume\r\n\t\tconst variable functionGetLabwareVolumeFailed\t\t\t\t(first + 39);\t\t// Could not determine labware's volume\r\n\t\tconst variable functionGetLabwareRelationFailed\t\t\t\t(first + 40);\t\t// Could not determine labware relation\r\n\t\tconst variable functionSetLabwareVisibilityFailed\t\t\t(first + 41);\t\t// Could not set the visibility of the labware\r\n\t\tconst variable functionGetLabwareVisibilityFailed\t\t\t(first + 42);\t\t// Could not determine the visibility of the labware\r\n\t\tconst variable functionIsLabwareConnectedFailed\t\t\t\t(first + 43);\t\t// Could not determine if labware is connected\r\n\t\tconst variable last\t\t\t\t\t\t\t\t\t\t\t\t\t(first + 43);\t\t// guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// String constants\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace StrConst\r\n\t{\r\n\t\tconst variable libraryImplFileName\t\t(\"HSLLabwareStateLibImpl\");\t\t\t// Library implementation file name\r\n\t\tconst variable libraryImplFullFileName\t(\"HSLLabwareStateLibImp.hs_\");\r\n\r\n\t\tconst variable templateDefaultName\t\t(\"default\");\t\t\t\t\t\t\t\t// template default name\r\n\t\t\r\n\t\tconst variable elementNameDivider\t\t(\"\\\\\");\r\n\r\n\t\tconst variable emptyString\t\t\t\t\t(\"\");\r\n\t\tconst variable blank\t\t\t\t\t\t\t(\" \");\r\n\t\tconst variable underscore\t\t\t\t\t(\"_\");\t\r\n\t\tconst variable semicolon\t\t\t\t\t(\";\");\r\n\t\t\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Number constants\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace STrackerConst\r\n\t{\r\n\t\t// action states\r\n\t\tconst variable actionState_NoError\t(0);\r\n\t\tconst variable actionState_Fatal\t\t(1);\r\n\t\tconst variable actionState_Error\t\t(2);\r\n\t\tconst variable actionState_Warning\t(3);\r\n\r\n\t\t// element actions\r\n\t\tconst variable elementAction_Load\t\t\t\t\t\t\t\t\t\t(100);\r\n\t\tconst variable elementAction_Remove\t\t\t\t\t\t\t\t\t\t(101);\r\n\t\tconst variable elementAction_Move\t\t\t\t\t\t\t\t\t\t(102);\r\n\t\tconst variable elementAction_Import\t\t\t\t\t\t\t\t\t\t(103);\r\n\t\tconst variable elementAction_Overlap\t\t\t\t\t\t\t\t\t(104);\r\n\t\tconst variable elementAction_VolumeMove\t\t\t\t\t\t\t\t(105);\r\n\t\tconst variable elementAction_VolumeSet\t\t\t\t\t\t\t\t\t(106);\r\n\t\tconst variable elementAction_BarcodeSet\t\t\t\t\t\t\t\t(107);\r\n\t\tconst variable elementAction_NameSet\t\t\t\t\t\t\t\t\t(108);\r\n\t\tconst variable elementAction_Wash\t\t\t\t\t\t\t\t\t\t(109);\r\n\t\tconst variable elementAction_SummaryStateSet\t\t\t\t\t\t\t(110);\r\n\t\tconst variable elementAction_ExpectedNumberOfProcessedStepsSet\t(111);\r\n\t\tconst variable elementAction_AddElementVariables\t\t\t\t\t(112);\r\n\t\tconst variable elementAction_AddElementTrackerVariables\t\t\t(113);\r\n\r\n\t\t// shape of racktype\r\n\t\tconst variable shape_Rectangular\t(0);\r\n\t\tconst variable shape_Circular\t\t(1);\r\n\t\tconst variable shape_Irregular\t(2);\r\n\r\n\t\t// directions\r\n\t\tconst variable direction_ByRows\t\t(0);\r\n\t\tconst variable direction_ByColumns\t(1);\r\n\t\tconst variable direction_Irregular\t(2);\r\n\r\n\t\t// first position\r\n\t\tconst variable firstPosition_InBack\t\t(0);\r\n\t\tconst variable firstPosition_InFront\t(1);\r\n\r\n\t\t// parameters\r\n\t\tconst variable parameter_SampleTrackerInternal\t (0);\r\n\t\tconst variable parameter_ActionState\t\t\t\t (1);\r\n\t\tconst variable parameter_SourceAccessName\t\t\t (2);\r\n\t\tconst variable parameter_TargetAccessName\t\t\t (3);\r\n\t\tconst variable parameter_ActionVolume\t\t\t\t (4);\r\n\t\tconst variable parameter_UseMixing\t\t\t\t\t (5);\r\n\t\tconst variable parameter_MixVolume\t\t\t\t\t (6);\r\n\t\tconst variable parameter_SourceVolume\t\t\t\t (7);\r\n\t\tconst variable parameter_TargetVolume\t\t\t\t (8);\r\n\t\tconst variable parameter_BaseName\t\t\t\t\t (9);\r\n\t\tconst variable parameter_ElementNames\t\t\t\t(10);\r\n\t\tconst variable parameter_Rows\t\t\t\t\t\t\t(11);\r\n\t\tconst variable parameter_Columns\t\t\t\t\t\t(12);\r\n\t\tconst variable parameter_FirstPosition\t\t\t\t(13);\r\n\t\tconst variable parameter_Direction\t\t\t\t\t(14);\r\n\t\tconst variable parameter_Shape\t\t\t\t\t\t(15);\r\n\t\tconst variable parameter_ElementType\t\t\t\t(16);\r\n\t\tconst variable parameter_Barcode\t\t\t\t\t\t(17);\r\n\t\tconst variable parameter_AltAccessName\t\t\t\t(18);\r\n\t\tconst variable parameter_DisplayName\t\t\t\t(19);\r\n\t\tconst variable parameter_SummaryState\t\t\t\t(20);\r\n\t\tconst variable parameter_ExpectedNumberOfProcessedSteps\t(21);\r\n\t\tconst variable parameter_ActionID\t\t\t\t\t(22);\r\n\t\tconst variable parameter_ActionSubID\t\t\t\t(23);\r\n\t\tconst variable parameter_ElementAction\t\t\t\t(24);\r\n\t\tconst variable parameter_AdditionalVariables\t\t(25);\r\n\r\n\t\t// summary states\r\n\t\tconst variable summaryState_NoError\t(0);\r\n\t\tconst variable summaryState_Error\t(3);\r\n\t\tconst variable summaryState_Warning\t(4);\r\n\t\tconst variable summaryState_NotUsed\t(5);\r\n\r\n\t\t// barcode list types\r\n\t\tconst variable barcodeListType_Full\t\t\t(0);\r\n\t\tconst variable barcodeListType_Simplified\t(1);\r\n\r\n\r\n\t\t// element type2\r\n\t\tconst variable elementType2_Undefined\t\t\t\t\t(0);\r\n\t\tconst variable elementType2_Rack\t\t\t\t\t\t\t(1);\r\n\t\tconst variable elementType2_TipRack\t\t\t\t\t\t(2);\r\n\t\tconst variable elementType2_ConnectedContainerRack\t(3);\r\n\t\tconst variable elementType2_ConnectedContainer\t\t(4);\r\n\t}\r\n\r\n\tnamespace LabwareConst\r\n\t{\r\n\t\tconst variable barcodeValue\t(\"Labwr_Barcode\");\r\n\t\tconst variable positionID\t\t(\"Labwr_PosId\");\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Exception Handling\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace Error\r\n\t{\r\n\t\tstatic function Raise(\t\t\t\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] error id, one of IDE\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\r\n\t\t\t// set error description\r\n\t\t\tdescription = fileName + \" (\" + lineNumber + \") : \" + funcName + \"()\\n\" + StringTable::Load(errorId);\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), StringTable::Load(IDS::helpFileName));\r\n\t\t}\r\n\r\n\t\tfunction RaiseEx(\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] error id, one of IDE\r\n\t\t\tvariable errorDesc,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] error description\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t\t\t// [in] line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\r\n\t\t\t// set error description\r\n\t\t\tif (\"\" == funcName)\r\n\t\t\t\tdescription = fileName + \" (\" + lineNumber + \") : \" + errorDesc;\r\n\t\t\telse\r\n\t\t\t\tdescription = fileName + \" (\" + lineNumber + \") : \" + funcName + \"()\\n\" + errorDesc;\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), StringTable::Load(IDS::helpFileName));\r\n\t\t}\r\n\r\n\t\tfunction RaiseLast()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// re-throws the last runtime error\r\n\t\t{\r\n\t\t\t// re-raise error\r\n\t\t\terr.Raise();\r\n\t\t}\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Declaration of static functions\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tstatic function InitLabwareStateLibrary();\r\n\r\n\tstatic function IsSampleTrackerOn();\t\t\t// returns hslTrue, if sample tracker is switched ON\r\n\r\n\tstatic function IsValidLabwareLevel(\t\t\t// returns hslTrue, if labware level is valid, else hslFalse\r\n\t\tvariable&\tLabwareLevel,\r\n\t\tvariable&\tminLabwareLevel);\r\n\r\n\tstatic function IsValidBarcodeListType(\t\t// returns hslTrue, if list type is valid, else hslFalse\r\n\t\tvariable&\tListType);\r\n\r\n\tstatic function IsValidBarcode(\t\t\t\t\t// returns hslTrue, if barcode is valid, else hslFalse\r\n\t\tvariable&\tBarcode);\r\n\r\n\tstatic function IsValidBarcodeMask(\t\t\t\t// returns hslTrue, if barcode mask is valid, else hslFalse\r\n\t\tvariable&\tBarcodeMask);\r\n\r\n\tstatic function IsValidSummaryState(\t\t\t// returns hslTrue, if summary state is valid, else hslFalse\r\n\t\tvariable&\tSummaryState);\r\n\r\n\tstatic function IsValidNumOfProcSteps(\t\t\t// returns hslTrue, if number of processed steps is valid, else hslFalse\r\n\t\tvariable&\tNumOfProcSteps);\r\n\r\n\tstatic function IsValidVolume(\t\t\t\t\t// returns hslTrue, if volume is valid, else hslFalse\r\n\t\tvariable&\tVolume);\r\n\r\n\tstatic function IsValidVisibility(\t\t\t\t// returns hslTrue, if visibility is valid, else hslFalse\r\n\t\tvariable&\tVisibility);\r\n\r\n\tstatic function IsValidSequencePosition(\t\t// returns hslTrue, if the current position of the sequence is valid, else hslFalse\r\n\t\tsequence&\tSequence);\r\n\r\n\tstatic function NormalizeVolume(\t\t\t\t\t// normalizes the given volume from 1 ul to 0.1 ul\r\n\t\tvariable&\tVolume);\r\n\r\n\tstatic function DeNormalizeVolume(\t\t\t\t// de-normalizes the given volume from 0.1 ul to 1 ul\r\n\t\tvariable&\tVolume);\r\n\r\n\tstatic function GetLabwareHierarchy(\r\n\t\tdevice&\t\tdevice_,\r\n\t\tsequence&\tsequence_,\r\n\t\tvariable&\tlabwareLevel_);\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Implementation of static functions\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tstatic function InitLabwareStateLibrary()\r\n\t{\r\n\t\t// initialize the HSL Labware State library once only\r\n\t\tif (!m_initializedLib)\r\n\t\t{\r\n\t\t\t// load string table\r\n\t\t\tStringTable::Init(StrConst::libraryImplFileName);\r\n\t\t\t\r\n\t\t\t#ifdef _DEBUG\r\n\t\t\t\tStringTable::Dump();\r\n\t\t\t#endif\r\n\r\n\t\t\tif(0 == mg_HSLLabwState_cs)\r\n\t\t\t\tmg_HSLLabwState_cs = SynInitializeCriticalSection();\r\n\r\n\t\t\tif(mg_HSLLabwState_trackerObject.IsNull())\r\n\t\t\t\tmg_HSLLabwState_trackerObject = GetVectorDbTrackerObject();\r\n\r\n\t\t\tmg_HSLLabwState_IsSampleTrackingEnabled = IsSampleTrackerOn();\r\n\r\n\t\t\tm_initializedLib = hslTrue;\r\n\t\t}\r\n\t\treturn(m_initializedLib);\r\n\t}\r\n\r\n\tstatic function IsSampleTrackerOn()\r\n\t{\r\n\r\n\t\tvariable retVal (hslFalse);\r\n\t\tvariable sampleTrackerOn (0);\r\n\r\n\t\t// test, if already initialized\r\n\t\tif (m_initializedLib == hslTrue)\r\n\t\t{\r\n\t\t\t// return cached setting\r\n\t\t\tretVal = mg_HSLLabwState_IsSampleTrackingEnabled;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t// get the setting from the sample tracker object\r\n\t\t\tsampleTrackerOn = mg_HSLLabwState_trackerObject.Enabled();\r\n\r\n\t\t\tif (sampleTrackerOn == 1)\r\n\t\t\t\tretVal = hslTrue;\r\n\t\t\telse\r\n\t\t\t\tretVal = hslFalse;\r\n\t\t}\r\n\t\treturn (retVal);\r\n\t}\r\n\r\n\tstatic function IsValidLabwareLevel(\r\n\t\tvariable& LabwareLevel,\r\n\t\tvariable& minLabwareLevel)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if labware level is an integer\r\n\t\tif (Util::IsInteger(LabwareLevel) == hslTrue)\r\n\t\t{\r\n\t\t\t// test, if labware level is in specified range\r\n\t\t\tif (minLabwareLevel <= LabwareLevel)\r\n\t\t\t{\r\n\t\t\t\t// test, if labware level is valid\r\n\t\t\t\tif (  (LabwareLevel == LabwareLevels::deck)\r\n\t\t\t\t\t|| (LabwareLevel == LabwareLevels::template)\r\n\t\t\t\t\t|| (LabwareLevel == LabwareLevels::rack)\r\n\t\t\t\t\t|| (LabwareLevel == LabwareLevels::container)\r\n\t\t\t\t\t)\r\n\t\t\t\t{\r\n\t\t\t\t\t// labware level is valid\r\n\t\t\t\t\tisValid = hslTrue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function IsValidBarcodeListType(\r\n\t\tvariable& ListType)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if barcode list type is an integer\r\n\t\tif (Util::IsInteger(ListType) == hslTrue)\r\n\t\t{\r\n\t\t\t// test, if barcode list type is valid\r\n\t\t\tif (  (ListType == STrackerConst::barcodeListType_Full)\r\n\t\t\t\t|| (ListType == STrackerConst::barcodeListType_Simplified)\r\n\t\t\t\t)\r\n\t\t\t{\r\n\t\t\t\t// barcode list type is valid\r\n\t\t\t\tisValid = hslTrue;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function IsValidBarcode(\r\n\t\tvariable& Barcode)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if barcode is a string\r\n\t\tif (Util::IsString(Barcode) == hslTrue)\r\n\t\t{\r\n\t\t\t// barcode is valid\r\n\t\t\tisValid = hslTrue;\r\n\t\t}\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function IsValidBarcodeMask(\r\n\t\tvariable& BarcodeMask)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if barcode mask is a string\r\n\t\tif (Util::IsString(BarcodeMask) == hslTrue)\r\n\t\t{\r\n\t\t\t// barcode mask is valid\r\n\t\t\tisValid = hslTrue;\r\n\t\t}\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function IsValidSummaryState(\r\n\t\tvariable& SummaryState)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if summary state is an integer\r\n\t\tif (Util::IsInteger(SummaryState) == hslTrue)\r\n\t\t{\r\n\t\t\t// test, if summary state is valid\r\n\t\t\tif (  (SummaryState == STrackerConst::summaryState_NoError)\r\n\t\t\t\t|| (SummaryState == STrackerConst::summaryState_Error)\r\n\t\t\t\t|| (SummaryState == STrackerConst::summaryState_Warning)\r\n\t\t\t\t|| (SummaryState == STrackerConst::summaryState_NotUsed)\r\n\t\t\t\t)\r\n\t\t\t{\r\n\t\t\t\t// summary state is valid\r\n\t\t\t\tisValid = hslTrue;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function IsValidNumOfProcSteps(\r\n\t\tvariable& NumOfProcSteps)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if number of processed steps is an integer\r\n\t\tif (Util::IsInteger(NumOfProcSteps) == hslTrue)\r\n\t\t{\r\n\t\t\t// test, if number of processed steps is positive\r\n\t\t\tif (Util::IsNegative(NumOfProcSteps) == hslFalse)\r\n\t\t\t{\r\n\t\t\t\t// number of processed steps is valid\r\n\t\t\t\tisValid = hslTrue;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function IsValidVolume(\r\n\t\tvariable& Volume)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if volume is a number\r\n\t\tif (Util::IsNumber(Volume) == hslTrue)\r\n\t\t{\r\n\t\t\t// test, if volume is positive\r\n\t\t\tif (Util::IsNegative(Volume) == hslFalse)\r\n\t\t\t{\r\n\t\t\t\t// volume is valid\r\n\t\t\t\tisValid = hslTrue;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function IsValidVisibility(\r\n\t\tvariable& Visibility)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if visibility is an integer\r\n\t\tif (Util::IsInteger(Visibility) == hslTrue)\r\n\t\t{\r\n\t\t\t// test, if visibility is a valid boolean\r\n\t\t\tif (  (Visibility == hslFalse)\r\n\t\t\t\t|| (Visibility == hslTrue)\r\n\t\t\t\t)\r\n\t\t\t{\r\n\t\t\t\t// value is a valid boolean\r\n\t\t\t\tisValid = hslTrue;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function IsValidSequencePosition(\r\n\t\tsequence& Sequence)\r\n\t{\r\n\t\tvariable isValid (hslFalse);\r\n\r\n\t\t// test, if current position is valid\r\n\t\tif (Sequence.GetCurrentPosition() > 0)\r\n\t\t{\r\n\t\t\t// current position is valid\r\n\t\t\tisValid = hslTrue;\r\n\t\t}\r\n\t\treturn (isValid);\r\n\t}\r\n\r\n\tstatic function NormalizeVolume(\r\n\t\tvariable&\tVolume)\r\n\t{\r\n\t\t// implementation taken from HxGruCommand\r\n\t\tvariable retVolume (0);\r\n\t\tvariable tmpVolume (0.0);\r\n\r\n\t\tif (Volume > 0)\r\n\t\t\ttmpVolume = Volume + 0.005;\r\n\t\telse\r\n\t\t\ttmpVolume = Volume - 0.005;\r\n\r\n\t\tretVolume = MthFloor(((tmpVolume * 100) / 10));\r\n\t\t\r\n\t\treturn (retVolume);\r\n\t}\r\n\r\n\tstatic function DeNormalizeVolume(\r\n\t\tvariable&\tVolume)\r\n\t{\r\n\t\t// implementation taken from HxGruCommand\r\n\t\tvariable retVolume (0.0);\r\n\r\n\t\t// round to one decimal place to prevent errors\r\n\t\tretVolume = MthRound((Volume / 10.0), 1);\r\n\r\n\t\treturn (retVolume);\r\n\t}\r\n\r\n\tstatic function GetLabwareHierarchy(\r\n\t\tdevice&\t\tdevice_,\r\n\t\tsequence&\tsequence_,\r\n\t\tvariable&\tlabwareLevel_)\r\n\t{\r\n\t\tvariable templateNames[];\r\n\t\tvariable labwareNames[];\r\n\t\tvariable instrumentName\t\t\t(\"\");\r\n\t\tvariable labware_id_Carrier\t(\"\");\r\n\t\tvariable labware_id_Plate\t\t(\"\");\r\n\t\tvariable labware_id_Well\t\t(\"\");\r\n\t\tvariable size\t\t\t\t\t\t(0);\r\n\t\tvariable index\t\t\t\t\t\t(0);\r\n\t\tvariable labwareHierarchie\t\t(\"\");\r\n\r\n\t\tif (IsValidLabwareLevel(labwareLevel_, LabwareLevels::deck) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, \"\", GetLineNumber());\r\n\r\n\t\tlabware_id_Well = SeqGetPositionId(sequence_);\r\n\t\tlabware_id_Plate = SeqGetLabwareId(sequence_);\r\n\r\n\t\t// Search Template name depending on the labware_id_Plate\r\n\t\tdevice_.GetTemplateLabwareNames(templateNames, labwareNames);\r\n\t\tsize = labwareNames.GetSize();\r\n\t\tfor (index = 0; index < size; index ++)\r\n\t\t\tif (labwareNames.GetAt(index) == labware_id_Plate)\r\n\t\t\t\tbreak;\r\n\r\n\t\t// if labware name exist\r\n\t\tif (index < size)\r\n\t\t{\r\n\t\t\tlabware_id_Carrier = templateNames[index];\t\t// Assign template name\r\n\t\t\tinstrumentName = device_.GetInstrumentName();\t// Get instrument name\r\n\r\n\r\n\t\t\tif (labwareLevel_ == LabwareLevels::deck)\r\n\t\t\t{\r\n\t\t\t\tlabwareHierarchie = instrumentName;\r\n\t\t\t}\r\n\t\t\telse if (labwareLevel_ == LabwareLevels::template)\r\n\t\t\t{\r\n\t\t\t\tif (labware_id_Carrier == StrConst::templateDefaultName)\r\n\t\t\t\t{\r\n\t\t\t\t\tError::RaiseEx(IDE::noCarrierFound, StringTable::Load(IDE::noCarrierFound), StrConst::libraryImplFullFileName, \"\", GetLineNumber());\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlabwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Carrier;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (labwareLevel_ == LabwareLevels::rack)\r\n\t\t\t{\r\n\t\t\t\tif (labware_id_Carrier == StrConst::templateDefaultName)\r\n\t\t\t\t{\r\n\t\t\t\t\tlabwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Plate;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlabwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Carrier + StrConst::elementNameDivider + labware_id_Plate;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (labwareLevel_ == LabwareLevels::container)\r\n\t\t\t{\r\n\t\t\t\tif (labware_id_Carrier == StrConst::templateDefaultName)\r\n\t\t\t\t{\r\n\t\t\t\t\tlabwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Plate + StrConst::elementNameDivider + labware_id_Well;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlabwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Carrier + StrConst::elementNameDivider + labware_id_Plate + StrConst::elementNameDivider + labware_id_Well;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t// the labware could not be found on the deck, maybe it's an alias\r\n\t\t\tlabwareHierarchie = labware_id_Plate;\r\n\t\t}\r\n\t\treturn (labwareHierarchie);\r\n\t}\r\n\r\n\tstatic function GetDummyCharacters(\t\t\t\t\t\t// function returns a string of given characters and length\r\n\t\tvariable nbrOfCharcters,\t\t\t\t\t\t\t\t//  [in] the length of the string as integer\r\n\t\tstring character)\t\t\t\t\t\t\t\t\t\t\t//  [in] the wished character\r\n\t{\r\n\t\tvariable i;\r\n\t\tstring s;\r\n\r\n\t\tfor (i = 0; i < nbrOfCharcters; i++)\r\n\t\t{\r\n\t\t\ts = s + character;\r\n\t\t}\r\n\r\n\t\treturn (s);\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Interface functions\r\n\t// --------------------------------------------------------------------------------------\r\n\t\r\n\tfunction GetLabwareID(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence)\r\n\t{\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareID);\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (SeqGetLabwareId(Sequence));\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareIDFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareBarcode(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tvariable labwBarcode (\"\");\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareBarcode);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidLabwareLevel(LabwareLevel, LabwareLevels::template) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevel);\r\n\r\n\t\tlabwBarcode = mg_HSLLabwState_trackerObject.GetLabwareBarcode(accessName);\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (labwBarcode);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareBarcodeFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction SetLabwareBarcode(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel,\r\n\t\tvariable&\tBarcode)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tobject pars;\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionSetLabwareBarcode);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidLabwareLevel(LabwareLevel, LabwareLevels::template) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidBarcode(Barcode) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidBarcode, StringTable::Load(IDE::invalidBarcode), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevel);\r\n\r\n\t\tpars.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\t\tpars.Add( 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionCount);\r\n      pars.Add( accessName,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Target);\r\n      pars.Add( mg_HSLLabwState_trackerObject.HxVectorDbLabwareHandling_IfNotExists_Error, // handling as in old library\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_TargetLabwareHandling);\r\n      pars.Add( Barcode,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Barcode);\r\n      pars.Add( STrackerConst::actionState_NoError,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionState);\r\n      pars.Add( hslFalse,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ErrorAvailable);\r\n\t\t          \r\n\t\tmg_HSLLabwState_trackerObject.TrackAction_SetBarcode( pars);\r\n\t\tpars.ReleaseObject();\r\n\t\t\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareBarcodeFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareBarcodeMask(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel)\r\n\t{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject editLabware;\r\n\t\tobject pars;\r\n\t\tvariable barcodeMask (\"\");\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareBarcodeMask);\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidLabwareLevel(LabwareLevel, LabwareLevels::rack) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tdecklayout = Device.GetDeckLayoutObject();\r\n\t\t\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(SeqGetLabwareId(Sequence));\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(Interfaces::IEditLabware, editLabware);\r\n\t\t\t\tif ( !editLabware.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tpars.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\t\t\t\t\tif ( !pars.IsNull() )\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpars.Add(\"\", LabwareConst::barcodeValue);\r\n\t\t\t\t\t\tif (LabwareLevel == LabwareLevels::container)\r\n\t\t\t\t\t\t\tpars.Add(SeqGetPositionId(Sequence), LabwareConst::positionID);\r\n\t\t\t\t\t\teditLabware.GetBarcodeProperties(pars);\r\n\t\t\t\t\t\tbarcodeMask = pars.Item1(LabwareConst::barcodeValue);\r\n\t\t\t\t\t\tpars.ReleaseObject();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t\t\t}\r\n\t\t\t\t\teditLabware.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t}\r\n\t\t\tdecklayout.ReleaseObject();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t}\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (barcodeMask);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareBarcodeMaskFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction SetLabwareBarcodeMask(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel,\r\n\t\tvariable&\tBarcodeMask)\r\n\t{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject editLabware;\r\n\t\tobject pars;\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionSetLabwareBarcodeMask);\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidLabwareLevel(LabwareLevel, LabwareLevels::rack) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidBarcodeMask(BarcodeMask) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidBarcodeMask, StringTable::Load(IDE::invalidBarcodeMask), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\r\n\t\tdecklayout = Device.GetDeckLayoutObject();\r\n\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(SeqGetLabwareId(Sequence));\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(Interfaces::IEditLabware, editLabware);\r\n\t\t\t\tif ( !editLabware.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tpars.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\t\t\t\t\tif ( !pars.IsNull() )\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpars.Add(BarcodeMask, LabwareConst::barcodeValue);\r\n\t\t\t\t\t\tif (LabwareLevel == LabwareLevels::container)\r\n\t\t\t\t\t\t\tpars.Add(SeqGetPositionId(Sequence), LabwareConst::positionID);\r\n\t\t\t\t\t\teditLabware.SetBarcodeProperties(pars);\r\n\t\t\t\t\t\tpars.ReleaseObject();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t\t\t}\r\n\t\t\t\t\teditLabware.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t}\r\n\t\t\tdecklayout.ReleaseObject();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t}\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\t\t\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionSetLabwareBarcodeMaskFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareSourceBarcodes(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tListType)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tvariable size;\r\n\t\tvariable index;\r\n\t\tvariable barcode;\r\n\t\tvariable sourceBarcodes[];\r\n\t\tvariable vectorDbListType;                      // mapping the enum value to HxVectorDbSourceBarcodeListType\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareSourceBarcodes);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidBarcodeListType(ListType) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidBarcodeListType, StringTable::Load(IDE::invalidBarcodeListType), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\t// map the Barcode List Type to HxVectorDbSourceBarcodeListType\r\n\t\tif (ListType == STrackerConst::barcodeListType_Full) {\r\n\t\t\tvectorDbListType = mg_HSLLabwState_trackerObject.HxVectorDbSourceBarcodeListType_Full;\r\n\t\t}\r\n\t\telse if (ListType == STrackerConst::barcodeListType_Simplified) {\r\n\t\t\tvectorDbListType = mg_HSLLabwState_trackerObject.HxVectorDbSourceBarcodeListType_Simplified;\r\n\t\t}\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\r\n\t\tsourceBarcodes = mg_HSLLabwState_trackerObject.GetLabwareSourceBarcodeList(accessName, vectorDbListType);\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (sourceBarcodes);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareSourceBarcodesFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareLastSourceBarcode(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tvariable lastSourceBarcode (\"\");\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareLastSourceBarcode);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\t\tlastSourceBarcode = mg_HSLLabwState_trackerObject.GetLabwareLastSourceBarcode(accessName);\r\n\t\t\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (lastSourceBarcode);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareLastSourceBarcodeFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction AddLabwareSourceBarcode(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tBarcode)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\t\tobject   pars;\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionAddLabwareSourceBarcode);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidBarcode(Barcode) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidBarcode, StringTable::Load(IDE::invalidBarcode), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\r\n\t\tpars.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\t\tpars.Add( 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionCount);\r\n      pars.Add( accessName,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Target);\r\n      pars.Add( mg_HSLLabwState_trackerObject.HxVectorDbLabwareHandling_IfNotExists_Error, // handling as in old library\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_TargetLabwareHandling);\r\n      pars.Add( Barcode,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Barcode);\r\n      pars.Add( hslFalse,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ErrorAvailable);\r\n\t\tmg_HSLLabwState_trackerObject.TrackAction_AddSourceBarcode( pars);\r\n\t\tpars.ReleaseObject();\r\n\t\t\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionAddLabwareSourceBarcodeFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction SetLabwareSummaryState(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tSummaryState)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tobject pars;\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionSetLabwareSummaryState);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSummaryState(SummaryState) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSummaryState, StringTable::Load(IDE::invalidSummaryState), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\r\n\t\tpars.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\t\tpars.Add( 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionCount);\r\n      pars.Add( accessName,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Target);\r\n      pars.Add( mg_HSLLabwState_trackerObject.HxVectorDbLabwareHandling_IfNotExists_Error, // handling as in old library\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_TargetLabwareHandling);\r\n      pars.Add( SummaryState,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_LabwareState);\r\n      pars.Add( hslFalse,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ErrorAvailable);\r\n\t\tmg_HSLLabwState_trackerObject.TrackAction_SetLabwareState( pars);\r\n\t\tpars.ReleaseObject();\r\n\t\t\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionSetLabwareSummaryStateFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareSummaryState(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tvariable summaryState (STrackerConst::summaryState_Error);\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\t\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareSummaryState);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\t\tsummaryState = mg_HSLLabwState_trackerObject.GetLabwareState(accessName);\r\n\t\t\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (summaryState);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareSummaryStateFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareLastActionState(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tvariable lastActionState (STrackerConst::actionState_Fatal);\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareLastActionState);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\t\tlastActionState = mg_HSLLabwState_trackerObject.GetLabwareLastActionState(accessName);\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (lastActionState);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareLastActionStateFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction SetLabwareExpNumOfProcSteps(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tNumOfProcSteps)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionSetLabwareExpNumOfProcSteps);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidNumOfProcSteps(NumOfProcSteps) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidNumberOfProcessedSteps, StringTable::Load(IDE::invalidNumberOfProcessedSteps), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\t\tmg_HSLLabwState_trackerObject.SetLabwareExpectedNumberOfProcessedSteps(accessName, NumOfProcSteps);\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionSetLabwareExpNumOfProcStepsFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareExpNumOfProcSteps(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tvariable expNumOfProcSteps (0);\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareExpNumOfProcSteps);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\t\texpNumOfProcSteps = mg_HSLLabwState_trackerObject.GetLabwareExpectedNumberOfProcessedSteps(accessName);\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (expNumOfProcSteps);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareExpNumOfProcStepsFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareNumOfProcSteps(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tvariable numOfProcSteps (0);\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareNumOfProcSteps);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\t\tnumOfProcSteps = mg_HSLLabwState_trackerObject.GetLabwareNumberOfProcessedSteps(accessName);\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (numOfProcSteps);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareNumOfProcStepsFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction SetLabwareVolume(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tVolume)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tobject pars;\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionSetLabwareVolume);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidVolume(Volume) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidVolume, StringTable::Load(IDE::invalidVolume), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\t\tpars.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\t\tpars.Add( 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionCount);\r\n      pars.Add( accessName,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Target);\r\n      pars.Add( mg_HSLLabwState_trackerObject.HxVectorDbLabwareHandling_IfNotExists_Error, // handling as in old library\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_TargetLabwareHandling);\r\n      pars.Add( Volume,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_LabwareVolume);\r\n      pars.Add( hslFalse,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions,\r\n\t\t\t\t\t 1,\r\n\t\t\t\t\t mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ErrorAvailable);\r\n\r\n\t\tmg_HSLLabwState_trackerObject.TrackAction_SetVolume( pars);\r\n\t\tpars.ReleaseObject();\r\n\t\t\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionSetLabwareVolumeFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareVolume(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence)\r\n\t{\r\n\t\tvariable accessName (\"\");\r\n\t\tvariable volume (0.0);\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareVolume);\r\n\r\n\t\tif (IsSampleTrackerOn() == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\taccessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container);\r\n\t\tvolume = mg_HSLLabwState_trackerObject.GetLabwareVolume(accessName);\r\n\t\t\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (volume);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareVolumeFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareRelation(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel)\r\n\t{\r\n\t\tvariable labware (\"\");\r\n\r\n\t\tvariable instrumentName;\r\n\t\tvariable templateNames[];\r\n\t\tvariable labwareNames[];\r\n\t\tvariable labware_id_Carrier;\r\n\t\tvariable labware_id_Plate;\r\n\t\tvariable labware_id_Well;\r\n\t\tvariable size;\r\n\t\tvariable index;\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareRelation);\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidLabwareLevel(LabwareLevel, LabwareLevels::deck) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tinstrumentName = Device.GetInstrumentName();\r\n\t\tlabware_id_Plate = SeqGetLabwareId(Sequence);\r\n\t\tlabware_id_Well = SeqGetPositionId(Sequence);\r\n\r\n\t\tDevice.GetTemplateLabwareNames(templateNames, labwareNames);\r\n\t\tsize = labwareNames.GetSize();\r\n\r\n\t\tfor (index = 0; index < size; index ++)\r\n\t\t\tif (labwareNames.GetAt(index) == labware_id_Plate)\r\n\t\t\t\tbreak;\r\n\r\n\t\t// if Labware exist\r\n\t\tif (index < size)\r\n\t\t{\r\n\t\t\tlabware_id_Carrier = templateNames[index];\t// Assign Template Name\r\n\t\t}\r\n\r\n\t\tif (LabwareLevel == LabwareLevels::deck)\r\n\t\t\tlabware = instrumentName;\r\n\t\telse if (LabwareLevel == LabwareLevels::template)\r\n\t\t\tlabware = labware_id_Carrier;\r\n\t\telse if (LabwareLevel == LabwareLevels::rack)\r\n\t\t\tlabware = labware_id_Plate;\r\n\t\telse if (LabwareLevel == LabwareLevels::container)\r\n\t\t\tlabware = labware_id_Well;\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (labware);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareRelationFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction SetLabwareVisibility(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel,\r\n\t\tvariable&\tVisibility)\r\n\t{\r\n\t\tobject decklayout;\r\n\t\t//object labware;\r\n\t\t//object editLabware;\r\n      object parsPackage;\r\n\r\n\t\tvariable templateNames[];\r\n\t\tvariable labwareNames[];\r\n\t\tvariable labware_id_Carrier;\r\n\t\tvariable labware_id_Plate;\r\n\t\tvariable labware_id_Well;\r\n\t\tvariable size;\r\n\t\tvariable index;\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionSetLabwareVisibility);\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidLabwareLevel(LabwareLevel, LabwareLevels::template) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\t// not possible to make a well invisible - only full plates are possible\r\n\t\tif (LabwareLevel == LabwareLevels::container)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidVisibility(Visibility) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidVisibility, StringTable::Load(IDE::invalidVisibility), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tdecklayout = Device.GetDeckLayoutObject();\r\n\t\tlabware_id_Plate = SeqGetLabwareId(Sequence);\r\n\t\tlabware_id_Well = SeqGetPositionId(Sequence);\r\n\r\n\t\tDevice.GetTemplateLabwareNames(templateNames, labwareNames);\r\n\t\tsize = labwareNames.GetSize();\r\n\r\n\t\tfor (index = 0; index < size; index ++)\r\n\t\t\tif (labwareNames.GetAt(index) == labware_id_Plate)\r\n\t\t\t\tbreak;\r\n\r\n\t\t// if Labware exist\r\n\t\tif (index < size)\r\n\t\t{\r\n\t\t\tlabware_id_Carrier = templateNames[index];\t// Assign Template Name\r\n\t\t}\r\n\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tif (LabwareLevel == LabwareLevels::template)\r\n\t\t\t{\r\n            parsPackage.CreateObject(\"HXPARAMSLib.HxPars\");\r\n            if (Visibility == hslTrue)\r\n               parsPackage.Add(/*decklayout.CommonLoadState_lwclsLoaded*/ 1, labware_id_Carrier);\r\n            else\r\n            {\r\n               parsPackage.Add(/*decklayout.CommonLoadState_lwclsUnloaded*/ 0, labware_id_Carrier);\r\n\r\n\r\n               for (index = 0; index < size; index ++)\r\n               {\r\n                  if (templateNames.GetAt(index) == labware_id_Carrier)\r\n                     parsPackage.Add(/*decklayout.CommonLoadState_lwclsUnloaded*/ 0, labwareNames.GetAt(index));\r\n               }\r\n            }\r\n\r\n            decklayout.LoadedLabware = parsPackage;\r\n            parsPackage.ReleaseObject();\r\n\t\t\t}\r\n\t\t\telse if (LabwareLevel == LabwareLevels::rack)\r\n\t\t\t{\r\n            parsPackage.CreateObject(\"HXPARAMSLib.HxPars\");\r\n            if (Visibility == hslTrue)\r\n               parsPackage.Add(/*decklayout.CommonLoadState_lwclsLoaded*/ 1, labware_id_Plate);\r\n            else\r\n               parsPackage.Add(/*decklayout.CommonLoadState_lwclsUnloaded*/ 0, labware_id_Plate);\r\n\r\n            decklayout.LoadedLabware = parsPackage;\r\n            parsPackage.ReleaseObject();\r\n\t\t\t}\r\n\t\t\tdecklayout.RequestRefresh();\r\n\t\t\tdecklayout.ReleaseObject();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t}\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionSetLabwareVisibilityFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw last error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GetLabwareVisibility(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence,\r\n\t\tvariable&\tLabwareLevel)\r\n\t{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject editLabware;\r\n\t\tvariable tempVisibility (hslFalse);\r\n\t\tvariable visibility (hslFalse);\r\n\r\n\t\tvariable templateNames[];\r\n\t\tvariable labwareNames[];\r\n\t\tvariable labware_id_Carrier;\r\n\t\tvariable labware_id_Plate;\r\n\t\tvariable labware_id_Well;\r\n\t\tvariable size;\r\n\t\tvariable index;\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionGetLabwareVisibility);\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tif (IsValidLabwareLevel(LabwareLevel, LabwareLevels::template) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\t// not possible to get the visibility of a well - only full plates are possible\r\n\t\tif (LabwareLevel == LabwareLevels::container)\r\n\t\t\tError::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\tdecklayout = Device.GetDeckLayoutObject();\r\n\t\tlabware_id_Plate = SeqGetLabwareId(Sequence);\r\n\t\tlabware_id_Well = SeqGetPositionId(Sequence);\r\n\r\n\t\tDevice.GetTemplateLabwareNames(templateNames, labwareNames);\r\n\t\tsize = labwareNames.GetSize();\r\n\r\n\t\tfor (index = 0; index < size; index ++)\r\n\t\t\tif (labwareNames.GetAt(index) == labware_id_Plate)\r\n\t\t\t\tbreak;\r\n\r\n\t\t// if Labware exist\r\n\t\tif (index < size)\r\n\t\t{\r\n\t\t\tlabware_id_Carrier = templateNames[index];\t// Assign Template Name\r\n\t\t}\r\n\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tif (LabwareLevel == LabwareLevels::template)\r\n\t\t\t{\r\n\t\t\t\t// we are interested in the visibility of the carrier\r\n\t\t\t\tlabware = decklayout.Labware(labware_id_Carrier);\r\n\t\t\t}\r\n\t\t\telse if (LabwareLevel == LabwareLevels::rack)\r\n\t\t\t{\r\n\t\t\t\t// we are interested in the visibility of the plate\r\n\t\t\t\tlabware = decklayout.Labware(labware_id_Plate);\r\n\t\t\t}\r\n\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(Interfaces::IEditLabware, editLabware);\r\n\r\n\t\t\t\tif ( !editLabware.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\ttempVisibility = editLabware.Visible;\r\n\t\t\t\t\tif (tempVisibility == 1)\r\n\t\t\t\t\t\tvisibility = hslTrue;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvisibility = hslFalse;\r\n\t\t\t\t\t\r\n\t\t\t\t\teditLabware.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t}\r\n\t\t\tdecklayout.ReleaseObject();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t}\r\n\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (visibility);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionGetLabwareVisibilityFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction IsLabwareConnected(\r\n\t\tdevice&\t\tDevice,\r\n\t\tsequence&\tSequence)\r\n\t{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n\t\tvariable isConnected (hslFalse);\r\n\r\n\t\tvariable traceSource(\"\");\t\t\t\t\t\t\t\t// source for formatted trace\r\n\t\tvariable traceAction(\"\");\t\t\t\t\t\t\t\t// action for formatted trace\r\n\t\tvariable traceInfo(\"\");\t\t\t\t\t\t\t\t\t// additional trace information\r\n\r\n\t\tInitLabwareStateLibrary();\r\n\r\n\t\t// get access to global data\r\n\t\tSynEnterCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t// error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\ttraceSource = StringTable::Load(IDS::traceSource);\r\n\t\ttraceAction = StringTable::Load(IDS::traceActionIsLabwareConnected);\r\n\r\n\t\tif (IsValidSequencePosition(Sequence) == hslFalse)\r\n\t\t\tError::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\r\n\t\t// get the deck layout\r\n\t\tdecklayout = Device.GetDeckLayoutObject();\r\n\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(SeqGetLabwareId(Sequence));\r\n\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(Interfaces::IRectRack, rectRack);\r\n\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\ttmpIsConnected = rectRack.ConnectedCtr;\r\n\t\t\t\t\tif (tmpIsConnected == 1)\r\n\t\t\t\t\t\tisConnected = hslTrue;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tisConnected = hslFalse;\r\n\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t\t}\r\n\t\t\tdecklayout.ReleaseObject();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tError::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber());\r\n\t\t}\r\n\t\t\r\n\t\t// release access to global data\r\n\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\treturn (isConnected);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n\t\t\ttraceInfo = StringTable::Load(IDS::functionIsLabwareConnectedFailed);\r\n\r\n\t\t\t// trace progress\r\n\t\t\tFormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo);\r\n\r\n\t\t\t// release access to global data\r\n\t\t\tSynLeaveCriticalSection(mg_HSLLabwState_cs);\r\n\r\n\t\t\t// re-throw error\r\n\t\t\tError::RaiseLast();\r\n\t\t}\r\n\t}\r\n} // end of namespace HSLLabwState\r\n// $$author=wbarmettler$$valid=1$$time=2017-03-09 07:27$$checksum=20a2b621$$length=088$$"
  },
  {
    "path": "pyhamilton/library/HSLLabwareStateLibImplEnu.hs_",
    "content": "// ======================================================================\r\n// This is a part of the HSL Labware State Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n// 2005-05-03  mhosang : Initial file creation\r\n//\r\n// Remarks: Don't translate placeholders like '%s', '%s1', '%s2', '%d' etc;\r\n//\r\n// ======================================================================\r\n\r\nfunction StringTable()\r\n{\r\n\t// IDE\r\n\tInsert(IDE::noError,\t\t\t\t\t\t\t\t\t\t\t\t\t\"No error.\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::fatalError,\t\t\t\t\t\t\t\t\t\t\t\t\"Fatal error.\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::invalidParameter,\t\t\t\t\t\t\t\t\t\t\"Invalid parameter.\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::sampleTrackingDisabled,\t\t\t\t\t\t\t\t\"Sample tracking is disabled.\"\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::invalidLabwareLevel,\t\t\t\t\t\t\t\t\t\"Invalid labware level.\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::invalidBarcodeListType,\t\t\t\t\t\t\t\t\"Invalid barcode list type.\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::invalidBarcode,\t\t\t\t\t\t\t\t\t\t\"Invalid barcode. The barcode must be a string.\"\t\t\t\t\t\t\t);\r\n\tInsert(IDE::invalidBarcodeMask,\t\t\t\t\t\t\t\t\t\"Invalid barcode mask. The barcode mask must be a string.\"\t\t\t\t);\r\n\tInsert(IDE::invalidSummaryState,\t\t\t\t\t\t\t\t\t\"Invalid summary state.\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::invalidNumberOfProcessedSteps,\t\t\t\t\t\"Invalid number of processed steps. It must be a positive integer.\"\t);\r\n\tInsert(IDE::invalidVolume,\t\t\t\t\t\t\t\t\t\t\t\"Invalid volume. It must be a positive number.\"\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::invalidVisibility,\t\t\t\t\t\t\t\t\t\"Invalid visibility. It must be a boolean.\"\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::invalidSequencePosition,\t\t\t\t\t\t\t\"Invalid current position in given sequence.\"\t\t\t\t\t\t\t\t);\r\n\tInsert(IDE::noCarrierFound,\t\t\t\t\t\t\t\t\t\t\"There is now carrier available for the given sequence.\"\t\t\t\t\t);\r\n\t\r\n\t// IDS\r\n\tInsert(IDS::helpFileName,\t\t\t\t\t\t\t\t\t\t\t\"HSLLabwareStateLibEnu.chm\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceSource, \t\t\t\t\t\t\t\t\t\t\t\"SYSTEM\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareID,\t\t\t\t\t\t\t\"HSLLabwState::GetLabwareID\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareBarcode,\t\t\t\t\t\t\"HSLLabwState::GetLabwareBarcode\"\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionSetLabwareBarcode,\t\t\t\t\t\t\"HSLLabwState::SetLabwareBarcode\"\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareBarcodeMask,\t\t\t\t\"HSLLabwState::GetLabwareBarcodeMask\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionSetLabwareBarcodeMask,\t\t\t\t\"HSLLabwState::SetLabwareBarcodeMask\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareSourceBarcodes,\t\t\t\"HSLLabwState::GetLabwareSourceBarcodes\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareLastSourceBarcode,\t\t\"HSLLabwState::GetLabwareLastSourceBarcode\"\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionAddLabwareSourceBarcode,\t\t\t\t\"HSLLabwState::AddLabwareSourceBarcode\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionSetLabwareSummaryState,\t\t\t\t\"HSLLabwState::SetLabwareSummaryState\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareSummaryState,\t\t\t\t\"HSLLabwState::GetLabwareSummaryState\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareLastActionState,\t\t\t\"HSLLabwState::GetLabwareLastActionState\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionSetLabwareExpNumOfProcSteps,\t\t\"HSLLabwState::SetLabwareExpNumOfProcSteps\"\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareExpNumOfProcSteps,\t\t\"HSLLabwState::GetLabwareExpNumOfProcSteps\"\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareNumOfProcSteps,\t\t\t\"HSLLabwState::GetLabwareNumOfProcSteps\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionSetLabwareVolume,\t\t\t\t\t\t\"HSLLabwState::SetLabwareVolume\"\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareVolume,\t\t\t\t\t\t\"HSLLabwState::GetLabwareVolume\"\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareRelation,\t\t\t\t\t\"HSLLabwState::GetLabwareRelation\"\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionSetLabwareVisibility,\t\t\t\t\t\"HSLLabwState::SetLabwareVisibility\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionGetLabwareVisibility,\t\t\t\t\t\"HSLLabwState::GetLabwareVisibility\"\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::traceActionIsLabwareConnected,\t\t\t\t\t\"HSLLabwState::IsLabwareConnected\"\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\r\n\tInsert(IDS::enableSampleTracking,\t\t\t\t\t\t\t\t\"To use this function, sample tracking must be enabled.\"\t\t\t\t\t);\r\n\r\n\tInsert(IDS::functionGetLabwareIDFailed,\t\t\t\t\t\t\" > Could not determine labware id\"\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareBarcodeFailed,\t\t\t\t\t\" > Could not determine labware barcode\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionSetLabwareBarcodeFailed,\t\t\t\t\t\" > Could not set labware barcode\"\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareBarcodeMaskFailed,\t\t\t\" > Could not determine labware barcode mask\"\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionSetLabwareBarcodeMaskFailed,\t\t\t\" > Could not set labware barcode mask\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareSourceBarcodesFailed,\t\t\" > Could not determine labware source barcodes\"\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareLastSourceBarcodeFailed,\t\" > Could not determine labware's last source barcode\"\t\t\t\t\t);\r\n\tInsert(IDS::functionAddLabwareSourceBarcodeFailed,\t\t\t\" > Could not add source barcode to labware\"\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionSetLabwareSummaryStateFailed,\t\t\t\" > Could not set labware's summary state\"\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareSummaryStateFailed,\t\t\t\" > Could not determine labware's summary state\"\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareLastActionStateFailed,\t\t\" > Could not determine labware's last action state\"\t\t\t\t\t\t);\r\n\tInsert(IDS::functionSetLabwareExpNumOfProcStepsFailed,\t\" > Could not set labware's expected number of processed steps\"\t\t);\r\n\tInsert(IDS::functionGetLabwareExpNumOfProcStepsFailed,\t\" > Could not determine the expected number of processed steps\"\t\t);\r\n\tInsert(IDS::functionGetLabwareNumOfProcStepsFailed,\t\t\" > Could not determine the number of procecssed steps\"\t\t\t\t\t);\r\n\tInsert(IDS::functionSetLabwareVolumeFailed,\t\t\t\t\t\" > Could not set labware's volume\"\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareVolumeFailed,\t\t\t\t\t\" > Could not determine labware's volume\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareRelationFailed,\t\t\t\t\" > Could not determine labware relation\"\t\t\t\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionSetLabwareVisibilityFailed,\t\t\t\t\" > Could not set the visibility of the labware\"\t\t\t\t\t\t\t);\r\n\tInsert(IDS::functionGetLabwareVisibilityFailed,\t\t\t\t\" > Could not determine the visibility of the labware\"\t\t\t\t\t);\r\n\tInsert(IDS::functionIsLabwareConnectedFailed,\t\t\t\t\" > Could not determine if labware is connected\"\t\t\t\t\t\t\t);\r\n}\r\n// $$author=wbarmettler$$valid=1$$time=2017-03-09 07:27$$checksum=beba9f55$$length=090$$"
  },
  {
    "path": "pyhamilton/library/HSLLabwrAccess/HSLLabwrAccess.hsl",
    "content": "//--------------------------------------------------------------------------------------------------------\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n//\r\n// Project\r\n// Description      :    Accessing, setting and saving labware properties and labware positions on deck\r\n//\r\n// Software Version :    4.2.1.6547\r\n//\r\n// Revision history :    V1.0    2011.04.04   D. Hollstein  library released\r\n//                       V1.01   2011.05.25   D. Hollstein  changed includes, \r\n//                                                          made SaveChangesToDecklayout private (currently deletes additional resources in the decklayout)\r\n//                       V1.02   2011.07.12   D. Hollstein  SaveChangesToDecklayout works now properly and preserves additional resources\r\n//                       V1.03   2012.02.24   B. Huf        new function GetConfigurationFilename\r\n//                                                          reworked function SaveChangesToDecklayout to handle more devices that just ML_STAR\r\n//                                                          removed some unused variables (objects)\r\n//                                                          reworked whole library to meet AAW 650410\r\n//                       V1.04   2012.03.14   B.Huf         new function SetTraceLevel\r\n//                                                          new function SaveChangesToSpecificDecklayout\r\n//                                                          changed tracing to meet standard library behavior\r\n//                       V1.05   2012.03.22   D.Hollstein   new function GetDefaultSequenceForLabwareID - shameless plug from B. Andenmatten in the\r\n//                                                          Microlab Star Deck Definition Library. However, it was not a public function - and I needed it.\r\n//                       V1.06   2012.08.13   D.Hollstein   new function GetRowAndColumnCountForLabwareID - returns the default number of columns and rows of a rect labware.\r\n//                       V1.1    2012.09.11   D.Hollstein   new functions:\r\n//                                                          CreateStack creates a stack at the specified position from a rectrack, \r\n//                                                          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)\r\n//                                                          GetTransportSequenceForLabwareID returns a sequence with just one position on the plate for transports\r\n//                       V1.2    2012.10.25   D.Hollstein   new function GetLabwareIDsAndTemplateSiteIDsForTemplateID returns the labwareID of racks and their position on a carrier.\r\n//                       V1.3    2012.10.31   D.Hollstein   new functions StackIncrease, StackDecrease. Renamed stack create function.\r\n//                       V1.4    2012.11.06   D.Hollstein   new function TiltLabware to create a labware with containers that are shifted in z-direction.\r\n//                       V1.5    2012.11.29   D.Hollstein   added function for sorting with a probe head.\r\n//                       V2.0.0  2012.11.30   D.Hollstein   added sorting function with probe head and variable sequence. Renamed version according to AAW 650427.\r\n//                       V2.0.1  2012.12.11   K.Stadtmller fixed bug in function \"AbsolutePositionValuesSetForLabwareID\"\r\n//                       V2.0.4  2013.08.19   D.Kaufmann    validated\r\n//--------------------------------------------------------------------------------------------------------\r\n\r\n#ifndef __HSLLABWRACCESS__\r\n  #define __HSLLABWRACCESS__ 1\r\n\r\n  //============================== includes ==============================\r\n  #ifndef __HSLSynLib_hsl__\r\n    #include \"HSLSynLib.hsl\"\r\n  #endif\r\n\r\n  //============================== HSLLabwareAccess ==============================\r\n  namespace HSLLabwrAccess\r\n  {\r\n    // Declaration ////////////////////////////////////////////////////\r\n\r\n    function ValueForKeyGetForPropertiesOfLabwareID(device&   io_devDevice,\r\n                                                    variable& o_strPropertyValue,\r\n                                                    variable  i_strPropertyKey,\r\n                                                    variable  i_strLabwareID) variable;\r\n\r\n    function ValueForKeySetForPropertiesOfLabwareID(device&  io_devDevice,\r\n                                                    variable i_strPropertyValue,\r\n                                                    variable i_strPropertyKey,\r\n                                                    variable i_strLabwareID) variable;\r\n\r\n    function AbsolutePositionValuesSetForLabwareID(device&  io_devDevice,\r\n                                                   variable i_strLabwareID,\r\n                                                   variable i_fltPositionX,\r\n                                                   variable i_fltPositionY,\r\n                                                   variable i_fltPositionZ,\r\n                                                   variable i_fltPositionR) variable;\r\n\r\n    function AbsolutePositionValuesGetForLabwareID(device&   io_devDevice,\r\n                                                   variable  i_strLabwareID,\r\n                                                   variable& o_fltPositionX,\r\n                                                   variable& o_fltPositionY,\r\n                                                   variable& o_fltPositionZ,\r\n                                                   variable& o_fltPositionR) variable;\r\n\r\n    function RelativePositionValuesSetForLabwareID(device&  io_devDevice,\r\n                                                   variable i_strLabwareID,\r\n                                                   variable i_fltPositionX,\r\n                                                   variable i_fltPositionY,\r\n                                                   variable i_fltPositionZ,\r\n                                                   variable i_fltPositionR) variable;\r\n\r\n    function SaveChangesToDecklayout(device& io_devDevice) variable;\r\n\r\n    function SaveChangesToSpecificDecklayout(device&  io_devDevice,\r\n                                             variable i_strDecklayoutName) variable;\r\n\r\n    function GetConfigurationFilename(device&   io_devDevice,\r\n                                      variable  i_strLabwareID,\r\n                                      variable& o_strConfigurationFilename) variable;\r\n\r\n    function GetDefaultSequenceForLabwareID(device&   io_devDevice,\r\n                                            variable& i_strLabwareID,\r\n                                            variable  i_intEnumSorting,\r\n                                            sequence& o_seqDefaultSequence) variable;\r\n\r\n    function GetRowAndColumnCountForLabwareID(device&   io_devDevice,\r\n                                              variable  i_strLabwareID,\r\n                                              variable& o_intNumberOfRows,\r\n                                              variable& o_intNumberOfColumns) variable;\r\n\r\n    function SetTraceLevel(variable i_intTraceLevel) variable;\r\n\r\n    // Helper functions\r\n    private function ConvertToFloat(variable iVariable, variable& oVariable) variable;\r\n    private function CheckBool(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    private function CheckInteger(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    private function CheckIntegerRange(variable iVariable, variable iTraceEntry, variable iMin, variable iMax, variable iFunctionName) variable;\r\n    private function CheckString(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    private function CheckFloat(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    private function StatusTrace(variable i_intState, variable i_intTraceLevel, variable i_strTraceString, variable i_strFunctionName) void;\r\n    private function EnterSemaphore();\r\n    private function LeaveSemaphore();\r\n    private function ExtractFunctionName(variable i_strFunctionName) variable;\r\n    private function ReverseFind(string i_strString, string i_strSubString) variable;\r\n\r\n    // Variable definition/////////////////////////////////////////////////////\r\n    namespace Enum\r\n    {\r\n      namespace Rack\r\n      { \r\n         const variable Circular(\"HxLabwr2.CircRack.1\");\r\n         const variable Rect(\"HxLabwr2.RectRack.1\");\r\n      }\r\n      namespace Orientation\r\n      {\r\n         const variable Degree0(\"0\");\r\n         const variable Degree90(\"90\");\r\n         const variable Degree180(\"180\");\r\n         const variable Degree270(\"270\");\r\n      }\r\n      namespace Sorting\r\n      {\r\n         const variable ByXAscending(0);\r\n         const variable ByXDescending(1);\r\n         const variable ByYAscending(2);\r\n         const variable ByYDescending(3);\r\n         const variable ByZAscending(4);\r\n         const variable ByZDescending(5);\r\n         const variable ByLabwareIDAscending(6);\r\n         const variable ByLabwareIDDescending(7);\r\n         const variable ByPositionIDAscending(8);\r\n         const variable ByPositionIDDescending(9);\r\n      }\r\n    }\r\n\r\n    // Tracing constants\r\n    static variable         CMD_FAIL            (0);\r\n    static variable         CMD_START           (1);\r\n    static variable         CMD_COMPLETE        (2);\r\n    static variable         CMD_ERROR           (3);\r\n    static variable         CMD_PROGRESS        (4);\r\n    static variable         CMD_ERRCOMPLETE     (5);\r\n\r\n    static variable         TRACE_LEVEL_DEBUG(2);\r\n    static variable         TRACE_LEVEL_RELEASE(1);\r\n    static variable         TRACE_LEVEL_NONE(0);\r\n\r\n    static variable                 HSLLabwareAccess_LLE(\"\");                       // LLE: last library error\r\n    private global static variable  HSLLabwareAccess_IO(hslFalse);                  // IO:  library init once\r\n    private global static variable  HSLLabwareAccess_SH(0);                         // SH:  Semaphore handle\r\n    private global static variable  HSLLabwareAccess_TraceLevel(TRACE_LEVEL_DEBUG);\r\n  \r\n    // HxPars keys\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n    // additions\r\n    static string P_FILE(\"Labwr_File\");\r\n    static string P_COUNT(\"Labwr_count\");\r\n    static string P_DKSITEID(\"Labwr_DkSiteId\");\r\n    static string P_TEMPLATEID(\"Labwr_TemplateId\");\r\n    static string P_XDIM(\"Labwr_XDim\");\r\n    static string P_YDIM(\"Labwr_YDim\");\r\n    static string P_ISCOVERED(\"Labwr_IsCovered\");\r\n    static string P_CLSID(\"Labwr_CLSID\");\r\n    static string P_DKSITEDX(\"Labwr_DkSiteDimX\");\r\n    static string P_DKSITEDY(\"Labwr_DkSiteDimY\");\r\n    static string P_DECKSITES(\"Labwr_SiteData\");\r\n    static string P_STACKID(\"Labwr_stackID\");\r\n\r\n\r\n    // P stands for HXP_LABWR\r\n\r\n    // Implementation //////////////////////////////////////////////////////////\r\n \r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // ValueForKeyGetForPropertiesOfLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function ValueForKeyGetForPropertiesOfLabwareID(device& io_devDevice,\r\n                                                    variable& o_strPropertyValue,\r\n                                                    variable i_strPropertyKey,\r\n                                                    variable i_strLabwareID) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strPropertyKey, \"i_strPropertyKey\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID + \", i_strPropertyKey = \" + i_strPropertyKey, strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n           object   objEditLabware5;\r\n           object   objPropertyParameters;\r\n\r\n           objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n           objPropertyParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n           objPropertyParameters.Add(\"\", i_strPropertyKey);\r\n\r\n           objEditLabware5.GetLabwrProperties(objPropertyParameters);\r\n\r\n           o_strPropertyValue = objPropertyParameters.Item1(i_strPropertyKey);\r\n\r\n           StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Property [\" + i_strPropertyKey + \"] = \" + o_strPropertyValue, strFunctionName);\r\n\r\n           objPropertyParameters.ReleaseObject();\r\n           objEditLabware5.ReleaseObject();\r\n           objLabware.ReleaseObject();\r\n           objDecklayout.ReleaseObject();\r\n\r\n           StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n           return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n           StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n           objDecklayout.ReleaseObject();\r\n           return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // ValueForKeySetForPropertiesOfLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function ValueForKeySetForPropertiesOfLabwareID(device& io_devDevice,\r\n                                                    variable i_strPropertyValue,\r\n                                                    variable i_strPropertyKey,\r\n                                                    variable i_strLabwareID) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strPropertyValue, \"i_strPropertyValue\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strPropertyKey, \"i_strPropertyKey\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID + \", i_strPropertyKey = \" + i_strPropertyKey + \", i_strPropertyValue = \" + i_strPropertyValue, strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object   objEditLabware5;\r\n          object   objPropertyParameters;\r\n\r\n          objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n          // prepare a new Pars object for the labware properties\r\n          objPropertyParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          objPropertyParameters.Add(i_strPropertyValue, i_strPropertyKey);\r\n\r\n          // check data from the decklayout\r\n          objEditLabware5.SetLabwrProperties(objPropertyParameters);\r\n\r\n          i_strPropertyValue = objPropertyParameters.Item1(i_strPropertyKey);\r\n\r\n          objPropertyParameters.ReleaseObject();\r\n          objEditLabware5.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n\r\n          return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // AbsolutePositionValuesSetForLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function AbsolutePositionValuesSetForLabwareID(device& io_devDevice,\r\n                                                   variable i_strLabwareID,\r\n                                                   variable i_fltPositionX,\r\n                                                   variable i_fltPositionY,\r\n                                                   variable i_fltPositionZ,\r\n                                                   variable i_fltPositionR) variable\r\n    {\r\n      variable PosVals[];\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      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);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object Decklayout5;\r\n          object MoveParameters;\r\n\r\n          objDecklayout.GetObject(\"IDeckLayout5\", Decklayout5);\r\n\r\n          EnterSemaphore();             \r\n          io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          LeaveSemaphore();\r\n\r\n          StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Current position: (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n\r\n          MoveParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          MoveParameters.Add(i_strLabwareID, P_LABWARE_ID);\r\n          MoveParameters.Add(i_fltPositionX, P_XCOORD);\r\n          MoveParameters.Add(i_fltPositionY, P_YCOORD);\r\n          MoveParameters.Add(i_fltPositionZ, P_ZCOORD);\r\n          MoveParameters.Add(i_fltPositionR, P_RZCOORD);\r\n\r\n          Decklayout5.MoveLabware(objLabware, MoveParameters);\r\n\r\n          // Trace new position\r\n          EnterSemaphore();\r\n          io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          LeaveSemaphore();\r\n\r\n          objLabware.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          Decklayout5.ReleaseObject();\r\n          MoveParameters.ReleaseObject();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"New position:     (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n          return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // AbsolutePositionValuesGetForLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function AbsolutePositionValuesGetForLabwareID(device& io_devDevice,\r\n                                                   variable i_strLabwareID,\r\n                                                   variable& o_fltPositionX,\r\n                                                   variable& o_fltPositionY,\r\n                                                   variable& o_fltPositionZ,\r\n                                                   variable& o_fltPositionR) variable\r\n    {\r\n      variable PosVals[];\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID, strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n      LeaveSemaphore();\r\n\r\n      o_fltPositionX = PosVals[0];\r\n      o_fltPositionY = PosVals[1];\r\n      o_fltPositionZ = PosVals[2];\r\n      o_fltPositionR = PosVals[3];\r\n      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);\r\n      return(hslTrue);\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // RelativePositionValuesSetForLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function RelativePositionValuesSetForLabwareID(device& io_devDevice,\r\n                                                   variable i_strLabwareID,\r\n                                                   variable i_fltPositionX,\r\n                                                   variable i_fltPositionY,\r\n                                                   variable i_fltPositionZ,\r\n                                                   variable i_fltPositionR) variable\r\n    {\r\n      variable PosVals[];\r\n      variable myValue;\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if(!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID, strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n   \r\n      if(!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n        variable strPos(\"\");\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if(!objLabware.IsNull())\r\n        {\r\n          object Decklayout5;\r\n          object MoveParameters;\r\n          variable fltPos, fltPosShift;\r\n\r\n          objDecklayout.GetObject(\"IDeckLayout5\", Decklayout5);\r\n\r\n          MoveParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          MoveParameters.Add(i_strLabwareID, P_LABWARE_ID);\r\n\r\n          EnterSemaphore();\r\n          io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          LeaveSemaphore();\r\n\r\n          StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Current position: (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n\r\n          ConvertToFloat(PosVals[0],fltPos);\r\n          ConvertToFloat(i_fltPositionX,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_XCOORD);\r\n\r\n          ConvertToFloat(PosVals[1],fltPos);\r\n          ConvertToFloat(i_fltPositionY,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_YCOORD);\r\n\r\n          ConvertToFloat(PosVals[2],fltPos);\r\n          ConvertToFloat(i_fltPositionZ,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_ZCOORD);\r\n\r\n          ConvertToFloat(PosVals[3],fltPos);\r\n          ConvertToFloat(i_fltPositionR,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_RZCOORD);\r\n\r\n          Decklayout5.MoveLabware(objLabware, MoveParameters);\r\n\r\n          EnterSemaphore();\r\n          io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          LeaveSemaphore();\r\n\r\n          objLabware.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          Decklayout5.ReleaseObject();\r\n          MoveParameters.ReleaseObject();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"New position:     (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n          return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // SaveChangesToDecklayout\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function SaveChangesToDecklayout(device& io_devDevice) variable\r\n    {\r\n      object   objDeck;\r\n      object   objDecklayout;\r\n      string   strLabwareID;\r\n      string   strLabwarePropertyKey;\r\n      string   strConfigFilename;\r\n      object   objDecklayoutFile;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDeck = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n      objDeck.GetObject(\"IEditDeckLayout6\", objDecklayout);\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        strConfigFilename = objDecklayout.FileName();\r\n        objDecklayoutFile.CreateObject(\"HXCFGFILLib.HxCfgFile\");\r\n\r\n        objDecklayoutFile.LoadFile(strConfigFilename);\r\n\r\n        objDecklayout.WriteToDataDef(objDecklayoutFile, objDecklayout.Instrument);\r\n        objDecklayoutFile.SerializeFile(strConfigFilename, 1);\r\n        objDeck.ReleaseObject();\r\n        objDecklayout.ReleaseObject();\r\n        StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n        return(hslTrue);\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // SaveChangesToSpecificDecklayout\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function SaveChangesToSpecificDecklayout(device& io_devDevice,\r\n                                             variable i_strDecklayoutName) variable\r\n    {\r\n      object   objDeck;\r\n      object   objDecklayout;\r\n      string   strLabwareID;\r\n      string   strLabwarePropertyKey;\r\n      object   objDecklayoutFile;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDeck = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n      objDeck.GetObject(\"IEditDeckLayout6\", objDecklayout);\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        objDecklayoutFile.CreateObject(\"HXCFGFILLib.HxCfgFile\");\r\n\r\n        objDecklayoutFile.LoadFile(i_strDecklayoutName);\r\n\r\n        objDecklayout.WriteToDataDef(objDecklayoutFile, objDecklayout.Instrument);\r\n        objDecklayoutFile.SerializeFile(i_strDecklayoutName, 1);\r\n        objDeck.ReleaseObject();\r\n        objDecklayout.ReleaseObject();\r\n        StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n        return(hslTrue);\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // GetConfigurationFilename\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function GetConfigurationFilename(device& io_devDevice,\r\n                                      variable i_strLabwareID,\r\n                                      variable& o_strConfigurationFilename) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n  \r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID, strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object   objEditLabware5;\r\n\r\n          objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n          o_strConfigurationFilename = objEditLabware5.Filename;\r\n\r\n          objEditLabware5.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"o_strConfigurationFilename = \" + o_strConfigurationFilename, strFunctionName);\r\n          return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // GetDefaultSequenceForLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function GetDefaultSequenceForLabwareID(device& io_devDevice,\r\n                                            variable& i_strLabwareID,\r\n                                            variable i_intEnumSorting,\r\n                                            sequence& o_seqDefaultSequence) variable\r\n    {\r\n      object   objDecklayout;\r\n      object   comObject;\r\n      variable strFunctionName(\"\");\r\n      sequence seqLocalSequence;\r\n      variable blnReturnValue(hslTrue);\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n      if (!CheckIntegerRange(i_intEnumSorting, \"i_intEnumSorting\", 0, 9, strFunctionName)) return(hslFalse);\r\n  \r\n      StatusTrace(CMD_START, \r\n                  TRACE_LEVEL_DEBUG, \r\n                  \"i_strLabwareID = \" + i_strLabwareID + \", i_intEnumSorting = \" + IStr(i_intEnumSorting), \r\n                  strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object   objEditLabware5;\r\n          object   objDeckLayout6;\r\n          object   objSequence;\r\n          object   objTemplate;\r\n          object   objRack;\r\n          object   objProbeInLabware;\r\n          object   objParameter;\r\n          variable intNumberOfElements;\r\n          variable intNumberOfRows;\r\n          variable i;\r\n          variable strPositionIDs[];\r\n          variable strLabwareIDs[];\r\n\r\n\r\n          objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n          objLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\n          objLabware.GetObject(\"IRectRack\", objRack);\r\n\r\n          objDecklayout.GetObject(\"IDeckLayout6\", objDeckLayout6);\r\n\r\n   \t\t if (objTemplate.IsNull())\r\n   \t\t {\r\n   \t\t\t // it's not a template\r\n             while(o_seqDefaultSequence.GetTotal()>0) o_seqDefaultSequence.RemoveAt(1);\r\n   \t\t\t objEditLabware5.DefaultSequence(objSequence);\r\n            \r\n             onerror goto HandleComError;\r\n             comObject.CreateObject(\"Hamilton.ASW.SequenceSorting.Controller\");\r\n             blnReturnValue=comObject.SortSequenceByOne(objDeckLayout6, i_intEnumSorting, objSequence, strLabwareIDs, strPositionIDs);\r\n             onerror goto HandleLabwareError;\r\n             if(!blnReturnValue)\r\n             {\r\n                StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"COM object returned 'false'. Something went wrong.\", strFunctionName);\r\n                return(hslFalse); \r\n             }\r\n   \t\t\t intNumberOfElements = strLabwareIDs.GetSize();\r\n             intNumberOfRows = objRack.Rows;\r\n             Trace(\"Number of rows: \", intNumberOfRows);\r\n\r\n   \t\t\t for (i = 0; i < intNumberOfElements; i++)\r\n   \t\t\t {\r\n   \t\t\t    o_seqDefaultSequence.Add(strLabwareIDs.GetAt(i), strPositionIDs.GetAt(i));\r\n   \t\t\t }\r\n      \t\t o_seqDefaultSequence.SetCount(o_seqDefaultSequence.GetTotal());\r\n      \t\t o_seqDefaultSequence.SetMax(o_seqDefaultSequence.GetTotal());\r\n      \t\t o_seqDefaultSequence.SetCurrentPosition(1);\r\n\r\n             StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Default sequence found for labwareID \" + i_strLabwareID, strFunctionName);\r\n          }\r\n          else\r\n          {\r\n            blnReturnValue=hslFalse;\r\n            StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Default sequence not found. Labware ID \" + i_strLabwareID + \" is a template.\", strFunctionName);\r\n          }\r\n          \r\n          objEditLabware5.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n          objSequence.ReleaseObject();\r\n          objTemplate.ReleaseObject();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n          return(blnReturnValue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleComError :\r\n      {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error while creating or using the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?\", strFunctionName);\r\n          return(hslFalse);  \r\n      }\r\n\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // SortSequenceByProbeHead\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function SortSequenceByProbeHead(device& io_devDevice,\r\n                                     variable i_intProbeHeadConfiguration,\r\n                                     sequence& i_seqToBeSorted,\r\n                                     sequence& o_seqSortedSequence) variable\r\n    {\r\n      object   objDecklayout;\r\n      object   objDecklayout6;\r\n      object   objEditSequence2;\r\n      object   objSequence;\r\n      object   comObject;\r\n      variable blnReturnValue(hslTrue);\r\n      variable strSortingAlgorithmDescription;\r\n      variable strLabwareIDs[];\r\n      variable strPositionIDs[];\r\n      variable strFunctionName;\r\n      variable strMessage;\r\n      variable i;\r\n\r\n      strFunctionName=GetFunctionName();\r\n\r\n      if (!CheckInteger(i_intProbeHeadConfiguration, \"i_intProbeHeadConfiguration\", strFunctionName)) return(hslFalse);\r\n\r\n      strMessage = \"i_intProbeHeadConfiguration = \" + IStr(i_intProbeHeadConfiguration);\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, strMessage, strFunctionName);\r\n\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      if (objDecklayout.IsNull())\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not get decklayout.\", strFunctionName);\r\n         return(hslFalse);\r\n      }\r\n          \r\n      onerror goto HandleComCreationError;\r\n      comObject.CreateObject(\"Hamilton.ASW.SequenceSorting.Controller\");\r\n      if (comObject.IsNull())\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not create the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?.\", strFunctionName);\r\n         return(hslFalse); \r\n      }\r\n  \r\n      onerror goto HandleComError;\r\n      blnReturnValue=comObject.SortSequenceByProbeHead(objDecklayout, i_seqToBeSorted.GetSequenceObject(), i_intProbeHeadConfiguration, strLabwareIDs, strPositionIDs, strSortingAlgorithmDescription);\r\n\r\n      if(!blnReturnValue)\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"COM object returned 'false'. Something went wrong.\", strFunctionName);\r\n         return(hslFalse); \r\n      }\r\n      \r\n      onerror goto 0;\r\n      while(o_seqSortedSequence.GetTotal()>0) o_seqSortedSequence.RemoveAt(1);\r\n      for (i = 0; i < strLabwareIDs.GetSize(); i++)\r\n      {\r\n         o_seqSortedSequence.Add(strLabwareIDs.GetAt(i), strPositionIDs.GetAt(i));\r\n      }\r\n      o_seqSortedSequence.SetCount(o_seqSortedSequence.GetTotal());\r\n      o_seqSortedSequence.SetMax(o_seqSortedSequence.GetTotal());\r\n      o_seqSortedSequence.SetCurrentPosition(1);\r\n\r\n      StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Sorted sequence with algorithm '\" + strSortingAlgorithmDescription + \"'.\", strFunctionName);\r\n\r\n      objDecklayout.ReleaseObject();\r\n\r\n      StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n      return(blnReturnValue);\r\n\r\n      // runtime error handling\r\n      HandleComCreationError :\r\n      {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error while creating the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?\", strFunctionName);\r\n          return(hslFalse);  \r\n      }\r\n\r\n      // runtime error handling\r\n      HandleComError :\r\n      {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error while calling a function of the COM object Hamilton.ASW.SequenceSorting.\", strFunctionName);\r\n          return(hslFalse);  \r\n      }\r\n   }\r\n\r\n   ////////////////////////////////////////////////////////////////////////////\r\n    // SortSequenceByProbeHeadWithPresort\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function SortSequenceByProbeHeadWithPresort(device& io_devDevice,\r\n                                                variable i_intProbeHeadConfiguration,\r\n                                                variable i_intEnumSorting,\r\n                                                sequence& i_seqToBeSorted,\r\n                                                sequence& o_seqSortedSequence) variable\r\n    {\r\n      object   objDecklayout;\r\n      object   objDecklayout6;\r\n      object   objEditSequence2;\r\n      object   objSequence;\r\n      object   comObject;\r\n      variable blnReturnValue(hslTrue);\r\n      variable strSortingAlgorithmDescription;\r\n      variable strLabwareIDs[];\r\n      variable strPositionIDs[];\r\n      variable strFunctionName;\r\n      variable strMessage;\r\n      variable i;\r\n\r\n      strFunctionName=GetFunctionName();\r\n\r\n      if (!CheckInteger(i_intProbeHeadConfiguration, \"i_intProbeHeadConfiguration\", strFunctionName)) return(hslFalse);\r\n      if (!CheckInteger(i_intEnumSorting, \"i_intEnumSorting\", strFunctionName)) return(hslFalse);\r\n\r\n      strMessage = \"i_intProbeHeadConfiguration = \" + IStr(i_intProbeHeadConfiguration);\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, strMessage, strFunctionName);\r\n\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      if (objDecklayout.IsNull())\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not get decklayout.\", strFunctionName);\r\n         return(hslFalse);\r\n      }\r\n          \r\n      onerror goto HandleComCreationError;\r\n      comObject.CreateObject(\"Hamilton.ASW.SequenceSorting.Controller\");\r\n      if (comObject.IsNull())\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not create the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?.\", strFunctionName);\r\n         return(hslFalse); \r\n      }\r\n  \r\n      onerror goto HandleComError;\r\n      blnReturnValue=comObject.SortSequenceByProbeHeadWithPresort(objDecklayout, i_seqToBeSorted.GetSequenceObject(), i_intEnumSorting, i_intProbeHeadConfiguration, strLabwareIDs, strPositionIDs, strSortingAlgorithmDescription);\r\n\r\n      if(!blnReturnValue)\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"COM object returned 'false'. Something went wrong.\", strFunctionName);\r\n         return(hslFalse); \r\n      }\r\n      \r\n      onerror goto 0;\r\n      while(o_seqSortedSequence.GetTotal()>0) o_seqSortedSequence.RemoveAt(1);\r\n      for (i = 0; i < strLabwareIDs.GetSize(); i++)\r\n      {\r\n         o_seqSortedSequence.Add(strLabwareIDs.GetAt(i), strPositionIDs.GetAt(i));\r\n      }\r\n      o_seqSortedSequence.SetCount(o_seqSortedSequence.GetTotal());\r\n      o_seqSortedSequence.SetMax(o_seqSortedSequence.GetTotal());\r\n      o_seqSortedSequence.SetCurrentPosition(1);\r\n\r\n      StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Sorted sequence with algorithm '\" + strSortingAlgorithmDescription + \"'.\", strFunctionName);\r\n\r\n      objDecklayout.ReleaseObject();\r\n\r\n      StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n      return(blnReturnValue);\r\n\r\n      // runtime error handling\r\n      HandleComCreationError :\r\n      {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error while creating the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?\", strFunctionName);\r\n          return(hslFalse);  \r\n      }\r\n\r\n      // runtime error handling\r\n      HandleComError :\r\n      {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error while calling a function of the COM object Hamilton.ASW.SequenceSorting.\", strFunctionName);\r\n          return(hslFalse);  \r\n      }\r\n   }\r\n\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // SortSequenceByColumn\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    private function SortSequenceByColumn(device& io_devDevice,\r\n                                           variable strFunctionName,\r\n                                           variable i_intNumberOfSorts,\r\n                                           variable i_intEnumSorting1,\r\n                                           variable i_intEnumSorting2,\r\n                                           variable i_intEnumSorting3,\r\n                                           sequence& i_seqToBeSorted,\r\n                                           sequence& o_seqSortedSequence) variable\r\n    {\r\n      object   objDecklayout;\r\n      object   objDecklayout6;\r\n      object   objEditSequence2;\r\n      object   objSequence;\r\n      object   comObject;\r\n      variable blnReturnValue(hslTrue);\r\n      variable strLabwareIDs[];\r\n      variable strPositionIDs[];\r\n      variable strMessage;\r\n      variable i;\r\n\r\n\r\n      if (!CheckIntegerRange(i_intEnumSorting1, \"i_intEnumSorting1\", 0, 9, strFunctionName)) return(hslFalse);\r\n      if (i_intNumberOfSorts>1) if (!CheckIntegerRange(i_intEnumSorting2, \"i_intEnumSorting2\", 0, 9, strFunctionName)) return(hslFalse);\r\n      if (i_intNumberOfSorts>2) if (!CheckIntegerRange(i_intEnumSorting3, \"i_intEnumSorting3\", 0, 9, strFunctionName)) return(hslFalse);\r\n\r\n      strMessage = \"i_intEnumSorting1 = \" + IStr(i_intEnumSorting1);\r\n      if (i_intNumberOfSorts>1) strMessage = strMessage + \", i_intEnumSorting2 = \" + IStr(i_intEnumSorting2);\r\n      if (i_intNumberOfSorts>2) strMessage = strMessage + \", i_intEnumSorting3 = \" + IStr(i_intEnumSorting3);\r\n\r\n      StatusTrace(CMD_START, \r\n                  TRACE_LEVEL_DEBUG, \r\n                  strMessage,\r\n                  strFunctionName);\r\n\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      if (objDecklayout.IsNull())\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not get decklayout.\", strFunctionName);\r\n         return(hslFalse);\r\n      }\r\n          \r\n      onerror goto HandleComCreationError;\r\n      comObject.CreateObject(\"Hamilton.ASW.SequenceSorting.Controller\");\r\n      if (comObject.IsNull())\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not create the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?.\", strFunctionName);\r\n         return(hslFalse); \r\n      }\r\n      onerror goto HandleComError;\r\n      if (i_intNumberOfSorts==1)\r\n      {\r\n         blnReturnValue=comObject.SortSequenceByOne(objDecklayout, i_intEnumSorting1, i_seqToBeSorted.GetSequenceObject(), strLabwareIDs, strPositionIDs);\r\n      }\r\n      if (i_intNumberOfSorts==2)\r\n      {\r\n         blnReturnValue=comObject.SortSequenceByTwo(objDecklayout, i_intEnumSorting1, i_intEnumSorting2, i_seqToBeSorted.GetSequenceObject(), strLabwareIDs, strPositionIDs);\r\n      }\r\n      if (i_intNumberOfSorts==3)\r\n      {\r\n         blnReturnValue=comObject.SortSequenceByThree(objDecklayout, i_intEnumSorting1, i_intEnumSorting2,i_intEnumSorting3, i_seqToBeSorted.GetSequenceObject(), strLabwareIDs, strPositionIDs);\r\n      }\r\n      onerror goto HandleLabwareError;\r\n      if(!blnReturnValue)\r\n      {\r\n         StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"COM object returned 'false'. Something went wrong.\", strFunctionName);\r\n         return(hslFalse); \r\n      }\r\n\r\n      while(o_seqSortedSequence.GetTotal()>0) o_seqSortedSequence.RemoveAt(1);\r\n      for (i = 0; i < strLabwareIDs.GetSize(); i++)\r\n      {\r\n         o_seqSortedSequence.Add(strLabwareIDs.GetAt(i), strPositionIDs.GetAt(i));\r\n      }\r\n      o_seqSortedSequence.SetCount(o_seqSortedSequence.GetTotal());\r\n      o_seqSortedSequence.SetMax(o_seqSortedSequence.GetTotal());\r\n      o_seqSortedSequence.SetCurrentPosition(1);\r\n\r\n      StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Sorted sequence.\", strFunctionName);\r\n\r\n      objDecklayout.ReleaseObject();\r\n\r\n      StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n      return(blnReturnValue);\r\n\r\n\r\n      // runtime error handling\r\n      HandleComError :\r\n      {\r\n          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);\r\n          return(hslFalse);  \r\n      }\r\n\r\n      HandleComCreationError :\r\n      {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error while creating the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?\", strFunctionName);\r\n          return(hslFalse);  \r\n      }\r\n\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // SortSequenceByColumn1\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function SortSequenceByColumn1(device& io_devDevice,\r\n                                   variable i_intEnumSorting1,\r\n                                   sequence& i_seqToBeSorted,\r\n                                   sequence& o_seqSortedSequence) variable\r\n    {\r\n      variable strFunctionName;\r\n      strFunctionName=ExtractFunctionName(GetFunctionName());\r\n      return(SortSequenceByColumn(io_devDevice, strFunctionName, 1, i_intEnumSorting1, 0, 0, i_seqToBeSorted, o_seqSortedSequence));\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // SortSequenceByColumn2\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function SortSequenceByColumn2(device& io_devDevice,\r\n                                   variable i_intEnumSorting1,\r\n                                   variable i_intEnumSorting2,\r\n                                   sequence& i_seqToBeSorted,\r\n                                   sequence& o_seqSortedSequence) variable\r\n    {\r\n      variable strFunctionName;\r\n      strFunctionName=ExtractFunctionName(GetFunctionName());\r\n      return(SortSequenceByColumn(io_devDevice, strFunctionName, 2, i_intEnumSorting1, i_intEnumSorting2, 0, i_seqToBeSorted, o_seqSortedSequence));\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // SortSequenceByColumn3\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function SortSequenceByColumn3(device& io_devDevice,\r\n                                   variable i_intEnumSorting1,\r\n                                   variable i_intEnumSorting2,\r\n                                   variable i_intEnumSorting3,\r\n                                   sequence& i_seqToBeSorted,\r\n                                   sequence& o_seqSortedSequence) variable\r\n    {\r\n      variable strFunctionName;\r\n      strFunctionName=ExtractFunctionName(GetFunctionName());\r\n      return(SortSequenceByColumn(io_devDevice, strFunctionName, 3, i_intEnumSorting1, i_intEnumSorting2, i_intEnumSorting3, i_seqToBeSorted, o_seqSortedSequence));\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // GetTransportSequenceForLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function GetTransportSequenceForLabwareID(device& io_devDevice,\r\n                                              variable i_strLabwareID,\r\n                                              sequence& o_seqTransportSequence) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n      sequence seqLocalSequence;\r\n      variable blnReturnValue(hslTrue);\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n  \r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID, strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object   objEditLabware5;\r\n          object   objSequence;\r\n          object   objTemplate;\r\n          object   objRack;\r\n          variable intNumberOfElements;\r\n          variable i;\r\n          variable intNumberOfRows;\r\n\r\n          objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n          objLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\n          objLabware.GetObject(\"IRectRack\", objRack);\r\n\r\n   \t\t if (objTemplate.IsNull())\r\n   \t\t {\r\n   \t\t\t // it's not a template\r\n   \t\t\t objEditLabware5.DefaultSequence(objSequence);\r\n   \t\t\t intNumberOfElements = objSequence.Count;\r\n\r\n   \t\t\t if(intNumberOfElements>0)\r\n   \t\t\t {\r\n   \t\t\t    object seqItem;\r\n                while(o_seqTransportSequence.GetTotal()>0) o_seqTransportSequence.RemoveAt(1);\r\n   \t\t\t\t seqItem = objSequence.Item(1);\r\n   \t\t\t    o_seqTransportSequence.Add(seqItem.ObjectId, seqItem.PositionId);\r\n         \t\t o_seqTransportSequence.SetCount(o_seqTransportSequence.GetTotal());\r\n         \t\t o_seqTransportSequence.SetMax(o_seqTransportSequence.GetTotal());\r\n         \t\t o_seqTransportSequence.SetCurrentPosition(1);\r\n                StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Transport sequence created for labwareID \" + i_strLabwareID, strFunctionName);\r\n             }\r\n             else \r\n             {\r\n               blnReturnValue=hslFalse;\r\n               StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Default sequence does not contain labware positions. Does Labware ID \" + i_strLabwareID + \" has containers/wells defined?\", strFunctionName);  \r\n             }\r\n          }\r\n          else\r\n          {\r\n            blnReturnValue=hslFalse;\r\n            StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Default sequence not found. Labware ID \" + i_strLabwareID + \" is a template.\", strFunctionName);\r\n          }\r\n          \r\n          objEditLabware5.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n          objSequence.ReleaseObject();\r\n          objTemplate.ReleaseObject();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n          return(blnReturnValue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    } \r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // TiltLabware\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function TiltLabware(device& io_devDevice,\r\n                         variable i_fltTiltAngleInDegree,\r\n                         variable i_fltTiltXOriginOffsetInMillimeter,\r\n                         variable i_fltTiltZOriginOffsetInMillimeter,\r\n                         variable i_blnShiftToDeepestPoint,\r\n                         variable i_strLabwareID) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n      variable blnReturnValue(hslTrue);\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n      if (!CheckFloat(i_fltTiltAngleInDegree, \"i_fltTiltAngleInDegree\", strFunctionName)) return(hslFalse);\r\n      if (!CheckFloat(i_fltTiltXOriginOffsetInMillimeter, \"i_fltTiltXOriginOffsetInMillimeter\", strFunctionName)) return(hslFalse);\r\n      if (!CheckFloat(i_fltTiltZOriginOffsetInMillimeter, \"i_fltTiltZOriginOffsetInMillimeter\", strFunctionName)) return(hslFalse);\r\n      if (!CheckBool(i_blnShiftToDeepestPoint, \"i_blnShiftToDeepestPoint\", strFunctionName)) return(hslFalse);\r\n  \r\n      StatusTrace(CMD_START, \r\n                  TRACE_LEVEL_DEBUG, \r\n                  \"i_strLabwareID = \" + i_strLabwareID + \", i_fltTiltAngleInDegree: \" + FStr(i_fltTiltAngleInDegree) +\r\n                  \", i_fltTiltXOriginOffsetInMillimeter: \" + FStr(i_fltTiltXOriginOffsetInMillimeter) +\r\n                  \", i_fltTiltZOriginOffsetInMillimeter: \" + FStr(i_fltTiltZOriginOffsetInMillimeter) +\r\n                  \", i_blnShiftToDeepestPoint: \" + IStr(i_blnShiftToDeepestPoint),\r\n                  strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n        object objParams;\r\n        object objPositionDatas;\r\n        object objPositionData;\r\n        object objRackDataParams;\r\n        variable strFileName;\r\n        variable strPosition;\r\n        variable intNumberOfRows;\r\n        variable intNumberOfColumns;\r\n        variable fltOffset;\r\n        variable fltTiltAngleInRadian;\r\n        const variable ConversionFactor(0.01745329251994329576923690768489);\r\n\r\n        fltTiltAngleInRadian=i_fltTiltAngleInDegree*ConversionFactor;\r\n\r\n        objParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\n        objPositionData.CreateObject(\"HXPARAMSLib.HxPars\");\r\n        objPositionDatas.CreateObject(\"HXPARAMSLib.HxPars\");\r\n        objRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object objTemplate;\r\n          object objRack;\r\n          object objRack4;\r\n          object objEditLabware5;\r\n          object objDefaultSequence;\r\n\r\n          objLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\n          objLabware.GetObject(\"IRectRack4\", objRack4);\r\n          objLabware.GetObject(\"IRectRack\", objRack);\r\n          objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n   \t\t if (objTemplate.IsNull())\r\n   \t\t {\r\n   \t\t\t // it's not a template\r\n             object objSequenceItem;\r\n             variable intSequenceIndex;\r\n             variable arrFltPosition[];\r\n             variable arrFltOffset[](3);\r\n             variable fltPlateXOrigin;\r\n             variable fltNewXOffset;\r\n             variable fltNewZOffset;\r\n             variable fltCurrentXOffset;\r\n             variable fltCurrentZOffset;\r\n             variable fltPipettingXShift;\r\n             variable fltPipettingZShift;\r\n             variable fltCos;\r\n             variable fltSin;\r\n\r\n             fltCos=Cos(fltTiltAngleInRadian);\r\n             fltSin=Sin(fltTiltAngleInRadian);\r\n\r\n             onerror goto HandleRackError;\r\n\r\n             intNumberOfRows = objRack.Rows;\r\n             intNumberOfColumns = objRack.Columns;\r\n\r\n             objEditLabware5.DefaultSequence(objDefaultSequence);\r\n\r\n             objRack4.GetRackPositionData(objParams);\r\n             objPositionDatas=objParams.Item1(\"Labwr_PosData\");\r\n\r\n             objRack4.GetRackData(objRackDataParams);\r\n             fltPlateXOrigin=objRackDataParams.Item1(\"Labwr_Bndry1X\");\r\n\r\n\r\n             Trace(\"fltPlateXOrigin: \", fltPlateXOrigin);\r\n    \r\n             for (intSequenceIndex=1; intSequenceIndex<=objDefaultSequence.Count(); intSequenceIndex++)\r\n             {\r\n               objSequenceItem=objDefaultSequence.Item(intSequenceIndex);\r\n               strPosition=objSequenceItem.PositionId;\r\n\r\n               Trace(\"Current Position: \", strPosition);\r\n\r\n               io_devDevice.GetLabwarePosition(i_strLabwareID, arrFltPosition, strPosition);\r\n             \r\n               objPositionData=objPositionDatas.Item1(strPosition);\r\n               \r\n               if (i_blnShiftToDeepestPoint)\r\n               {\r\n                  variable fltRadius;\r\n                  fltRadius=(objPositionData.Item1(\"Labwr_XDim\")/2);\r\n                  fltRadius=fltRadius * 0.85; // removing tolerance value to avoid hitting the border with the tip\r\n                  fltPipettingXShift=fltRadius*fltCos;\r\n                  fltPipettingZShift=fltRadius*fltSin;           \r\n               }\r\n               else \r\n               {\r\n                  fltPipettingXShift=0.0; \r\n                  fltPipettingZShift=0.0;\r\n               }       \r\n                          \r\n               // get current container position in x and z\r\n               fltCurrentXOffset=objPositionData.Item1(\"Labwr_XCoord\") - fltPlateXOrigin + i_fltTiltXOriginOffsetInMillimeter;\r\n               fltCurrentZOffset=objRack4.ContainerBaseOffset(strPosition) + i_fltTiltZOriginOffsetInMillimeter;\r\n          \r\n               fltNewXOffset=(fltCurrentXOffset * fltCos - fltCurrentZOffset * fltSin) - fltCurrentXOffset - fltPipettingXShift;\r\n               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).\r\n\r\n               StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"New offsets [x, z] : \" + FStr(fltNewXOffset) + \", \" + FStr(fltNewZOffset) + \".\", strFunctionName);\r\n\r\n               arrFltOffset[0]=fltNewXOffset;\r\n               arrFltOffset[1]=0.0;\r\n               arrFltOffset[2]=fltNewZOffset;\r\n\r\n               // shift container, replacing it in the action.\r\n               strFileName=objPositionData.Item1(\"Labwr_File\");\r\n               io_devDevice.AddContainerToRack(i_strLabwareID, strPosition, strFileName, arrFltOffset);\r\n             }\r\n\r\n             onerror goto 0;\r\n             err.Clear();\r\n\r\n             StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Labware containers were successfully shifted.\", strFunctionName);\r\n          }\r\n          else\r\n          {\r\n            blnReturnValue=hslFalse;\r\n            StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Labware ID \" + i_strLabwareID + \" is a template. Could not get position data for containers.\", strFunctionName);\r\n          }\r\n          \r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n          objTemplate.ReleaseObject();\r\n          objRack.ReleaseObject();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n          return(blnReturnValue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n\r\n            // runtime error handling\r\n      HandleRackError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error occured. Maybe rack is not a rect?\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // TiltLabwareWithPipettingOffset\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function TiltLabwareWithPipettingOffset(device& io_devDevice,\r\n                                             variable i_fltTiltAngleInDegree,\r\n                                             variable i_fltTiltXOriginOffsetInMillimeter,\r\n                                             variable i_fltTiltZOriginOffsetInMillimeter,\r\n                                             variable i_fltXAxisShiftInWellInMillimeter,\r\n                                             variable i_fltYAxisShiftInWellInMillimeter,\r\n                                             variable i_blnAdjustXAxisShiftInWellByAngle,\r\n                                             variable i_strLabwareID) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n      variable blnReturnValue(hslTrue);\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n      if (!CheckFloat(i_fltTiltAngleInDegree, \"i_fltTiltAngleInDegree\", strFunctionName)) return(hslFalse);\r\n      if (!CheckFloat(i_fltTiltXOriginOffsetInMillimeter, \"i_fltTiltXOriginOffsetInMillimeter\", strFunctionName)) return(hslFalse);\r\n      if (!CheckFloat(i_fltTiltZOriginOffsetInMillimeter, \"i_fltTiltZOriginOffsetInMillimeter\", strFunctionName)) return(hslFalse);\r\n      if (!CheckFloat(i_fltXAxisShiftInWellInMillimeter, \"i_fltXAxisShiftInWellInMillimeter\", strFunctionName)) return(hslFalse);\r\n      if (!CheckFloat(i_fltYAxisShiftInWellInMillimeter, \"i_fltYAxisShiftInWellInMillimeter\", strFunctionName)) return(hslFalse);\r\n      if (!CheckBool(i_blnAdjustXAxisShiftInWellByAngle, \"i_blnAdjustXAxisShiftInWellByAngle\", strFunctionName)) return(hslFalse);\r\n  \r\n      StatusTrace(CMD_START, \r\n                  TRACE_LEVEL_DEBUG, \r\n                  \"i_strLabwareID = \" + i_strLabwareID + \", i_fltTiltAngleInDegree: \" + FStr(i_fltTiltAngleInDegree) +\r\n                  \", i_fltTiltXOriginOffsetInMillimeter: \" + FStr(i_fltTiltXOriginOffsetInMillimeter) +\r\n                  \", i_fltTiltZOriginOffsetInMillimeter: \" + FStr(i_fltTiltZOriginOffsetInMillimeter) +\r\n                  \", i_fltXAxisShiftInWellInMillimeter: \" + FStr(i_fltXAxisShiftInWellInMillimeter) +\r\n                  \", i_fltYAxisShiftInWellInMillimeter: \" + FStr(i_fltYAxisShiftInWellInMillimeter) +\r\n                  \", i_blnAdjustXAxisShiftInWellByAngle: \" + IStr(i_blnAdjustXAxisShiftInWellByAngle),\r\n                  strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n        object objParams;\r\n        object objPositionDatas;\r\n        object objPositionData;\r\n        object objRackDataParams;\r\n        variable strFileName;\r\n        variable strPosition;\r\n        variable intNumberOfRows;\r\n        variable intNumberOfColumns;\r\n        variable fltOffset;\r\n        variable fltTiltAngleInRadian;\r\n        const variable ConversionFactor(0.01745329251994329576923690768489);\r\n\r\n        fltTiltAngleInRadian=i_fltTiltAngleInDegree*ConversionFactor;\r\n\r\n        objParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\n        objPositionData.CreateObject(\"HXPARAMSLib.HxPars\");\r\n        objPositionDatas.CreateObject(\"HXPARAMSLib.HxPars\");\r\n        objRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object objTemplate;\r\n          object objRack;\r\n          object objRack4;\r\n          object objEditLabware5;\r\n          object objDefaultSequence;\r\n\r\n          objLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\n          objLabware.GetObject(\"IRectRack4\", objRack4);\r\n          objLabware.GetObject(\"IRectRack\", objRack);\r\n          objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n   \t\t if (objTemplate.IsNull())\r\n   \t\t {\r\n   \t\t\t // it's not a template\r\n             object objSequenceItem;\r\n             variable intSequenceIndex;\r\n             variable arrFltPosition[];\r\n             variable arrFltOffset[](3);\r\n             variable fltPlateXOrigin;\r\n             variable fltNewXOffset;\r\n             variable fltNewZOffset;\r\n             variable fltCurrentXOffset;\r\n             variable fltCurrentZOffset;\r\n             variable fltPipettingXShift;\r\n             variable fltPipettingZShift;\r\n             variable fltCos;\r\n             variable fltSin;\r\n\r\n             fltCos=Cos(fltTiltAngleInRadian);\r\n             fltSin=Sin(fltTiltAngleInRadian);\r\n\r\n             onerror goto HandleRackError;\r\n\r\n             intNumberOfRows = objRack.Rows;\r\n             intNumberOfColumns = objRack.Columns;\r\n\r\n             objEditLabware5.DefaultSequence(objDefaultSequence);\r\n\r\n             objRack4.GetRackPositionData(objParams);\r\n             objPositionDatas=objParams.Item1(\"Labwr_PosData\");\r\n\r\n             objRack4.GetRackData(objRackDataParams);\r\n             fltPlateXOrigin=objRackDataParams.Item1(\"Labwr_Bndry1X\");\r\n    \r\n             for (intSequenceIndex=1; intSequenceIndex<=objDefaultSequence.Count(); intSequenceIndex++)\r\n             {\r\n               objSequenceItem=objDefaultSequence.Item(intSequenceIndex);\r\n               strPosition=objSequenceItem.PositionId;\r\n\r\n               Trace(\"Current Position: \", strPosition);\r\n\r\n               io_devDevice.GetLabwarePosition(i_strLabwareID, arrFltPosition, strPosition);\r\n             \r\n               objPositionData=objPositionDatas.Item1(strPosition);\r\n               \r\n               if (i_blnAdjustXAxisShiftInWellByAngle)\r\n               {\r\n                  fltPipettingXShift=(-1)*i_fltXAxisShiftInWellInMillimeter*fltCos;  \r\n                  Trace(\"Shifted!\");         \r\n               }\r\n               else \r\n               {\r\n                  fltPipettingXShift=(-1)*i_fltXAxisShiftInWellInMillimeter; \r\n               } \r\n               fltPipettingZShift=fltPipettingXShift*fltSin;      \r\n                          \r\n               // get current container position in x and z\r\n               fltCurrentXOffset=objPositionData.Item1(\"Labwr_XCoord\") - fltPlateXOrigin + i_fltTiltXOriginOffsetInMillimeter;\r\n               fltCurrentZOffset=objRack4.ContainerBaseOffset(strPosition) + i_fltTiltZOriginOffsetInMillimeter;\r\n           \r\n               fltNewXOffset=(fltCurrentXOffset * fltCos - fltCurrentZOffset * fltSin) - fltCurrentXOffset - fltPipettingXShift;\r\n               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).\r\n               \r\n\r\n               StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"New offsets [x, y, z] : \" + FStr(fltNewXOffset) + \", \" + FStr(i_fltYAxisShiftInWellInMillimeter) + \", \" + FStr(fltNewZOffset) + \".\", strFunctionName);\r\n\r\n               arrFltOffset[0]=fltNewXOffset;\r\n               arrFltOffset[1]=i_fltYAxisShiftInWellInMillimeter;\r\n               arrFltOffset[2]=fltNewZOffset;\r\n\r\n               // shift container, replacing it in the action.\r\n               strFileName=objPositionData.Item1(\"Labwr_File\");\r\n               io_devDevice.AddContainerToRack(i_strLabwareID, strPosition, strFileName, arrFltOffset);\r\n             }\r\n\r\n             onerror goto 0;\r\n             err.Clear();\r\n\r\n             StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Labware containers were successfully shifted.\", strFunctionName);\r\n          }\r\n          else\r\n          {\r\n            blnReturnValue=hslFalse;\r\n            StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Labware ID \" + i_strLabwareID + \" is a template. Could not get position data for containers.\", strFunctionName);\r\n          }\r\n          \r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n          objTemplate.ReleaseObject();\r\n          objRack.ReleaseObject();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n          return(blnReturnValue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n\r\n            // runtime error handling\r\n      HandleRackError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error occured. Maybe rack is not a rect?\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // GetRowAndColumnCountForLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function GetRowAndColumnCountForLabwareID(device& io_devDevice,\r\n                                              variable i_strLabwareID,\r\n                                              variable& o_intNumberOfRows,\r\n                                              variable& o_intNumberOfColumns) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n      variable blnReturnValue(hslTrue);\r\n\r\n      o_intNumberOfRows=0;\r\n      o_intNumberOfColumns=0;\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n  \r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID, strFunctionName);\r\n\r\n      EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object   objTemplate;\r\n          object   objRack;\r\n          variable i;\r\n\r\n          objLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\n          objLabware.GetObject(\"IRectRack\", objRack);\r\n\r\n   \t\t if (objTemplate.IsNull())\r\n   \t\t {\r\n   \t\t\t // it's not a template\r\n             onerror goto HandleRackError;\r\n             o_intNumberOfRows = objRack.Rows;\r\n             o_intNumberOfColumns = objRack.Columns;\r\n             onerror goto 0;\r\n             err.Clear();\r\n\r\n             StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Number of rows: \" + IStr(o_intNumberOfRows) + \", number of columns: \" + IStr(o_intNumberOfColumns) + \" for labwareID \" + i_strLabwareID, strFunctionName);\r\n          }\r\n          else\r\n          {\r\n            blnReturnValue=hslFalse;\r\n            StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Labware ID \" + i_strLabwareID + \" is a template. Could not find number of rows and columns.\", strFunctionName);\r\n          }\r\n          \r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n          objTemplate.ReleaseObject();\r\n          objRack.ReleaseObject();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n          return(blnReturnValue);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n\r\n            // runtime error handling\r\n      HandleRackError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Error occured. Maybe rack is not a rect?\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n    }\r\n\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // StackCreate\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function StackCreate(device&  io_devDevice,\r\n                         variable i_strLabwareIDForStack,\r\n                         variable i_strLabwareFileName, \r\n                         variable i_intNumberOfPlatesInStack,\r\n                         variable i_strTemplateSiteID,\r\n                         variable i_strTemplateID,\r\n                         variable i_blnLabwareIsCovered,\r\n                         variable i_strRackType,\r\n                         variable o_arrStrLabwareIDs[],\r\n                         variable o_arrStrLabwareLidIDs[]) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strLabwareIDForStack, \"i_strLabwareIDForStack\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strLabwareFileName, \"i_strLabwareFileName\", strFunctionName)) return(hslFalse);\r\n      if (!CheckInteger(i_intNumberOfPlatesInStack, \"i_intNumberOfPlatesInStack\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strTemplateSiteID, \"i_strTemplateSiteID\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strTemplateID, \"i_strTemplateID\", strFunctionName)) return(hslFalse);\r\n      if (!CheckBool(i_blnLabwareIsCovered, \"i_blnLabwareIsCovered\", strFunctionName)) return(hslFalse);\r\n\r\n\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareIDForStack = \" + i_strLabwareIDForStack + \r\n                                                \", i_strLabwareFileName = \" + i_strLabwareFileName + \r\n                                                \", i_intNumberOfPlatesInStack = \" + IStr(i_intNumberOfPlatesInStack) +\r\n                                                \", i_strTemplateSiteID = \" + i_strTemplateSiteID + \r\n                                                \", i_strTemplateID = \" + i_strTemplateID +\r\n                                                \", i_blnLabwareIsCovered = \" + IStr(i_blnLabwareIsCovered) +\r\n                                                \", i_strRackType = \" + i_strRackType, strFunctionName);\r\n\r\n      onerror goto HandleLabwareError;\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n          object EditDecklayout5;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable blnPlate(hslTrue);\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n\r\n          Parameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          Parameter.Add(i_strLabwareFileName, P_FILE);\r\n          Parameter.Add(i_strLabwareIDForStack, P_LABWARE_ID);\r\n          Parameter.Add(i_intNumberOfPlatesInStack, P_COUNT);\r\n          Parameter.Add(i_strTemplateSiteID, P_DKSITEID);\r\n          Parameter.Add(i_strTemplateID, P_TEMPLATEID);\r\n          Parameter.Add(0, P_XDIM);\r\n          Parameter.Add(0, P_YDIM);\r\n          Parameter.Add(i_blnLabwareIsCovered, P_ISCOVERED);\r\n          Parameter.Add(i_strRackType, P_CLSID);\r\n\r\n          objDecklayout.AddStackToDecksite(Parameter);\r\n\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n          objDecklayout.TemplateLabwareNames(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);           \r\n            if(LabwareNames.Item1(\"Labwr_TemplateId\") == i_strTemplateID && LabwareNames.Item1(\"Labwr_DkSiteId\") == i_strTemplateSiteID)\r\n            {\r\n               if (!blnPlate && i_blnLabwareIsCovered) \r\n               {\r\n                  o_arrStrLabwareLidIDs.AddAsLast(LabwareNames.Item1(\"Labwr_Id\"));\r\n                  blnPlate=hslTrue;\r\n               }\r\n               else \r\n               {  \r\n                  if(i_blnLabwareIsCovered) blnPlate=hslFalse;\r\n                  o_arrStrLabwareIDs.AddAsLast(LabwareNames.Item1(\"Labwr_Id\"));\r\n               }     \r\n            }\r\n          }\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          onerror goto 0;\r\n          err.Clear();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n          return(hslTrue);\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // StackIncrease\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function StackIncrease(device&  io_devDevice,\r\n                           variable i_strLabwareIDForStack,\r\n                           variable& o_strLabwareID,\r\n                           variable& o_strLabwareLidID) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n      variable strTemplateID;\r\n      variable strTemplateSiteID;\r\n      string   strLabwareID;\r\n\r\n      o_strLabwareLidID=\"\";\r\n      o_strLabwareID=\"\";\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strLabwareIDForStack, \"i_strLabwareIDForStack\", strFunctionName)) return(hslFalse);\r\n\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareIDForStack = \" + i_strLabwareIDForStack, strFunctionName);\r\n\r\n      onerror goto HandleLabwareError;\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n          object EditDecklayout5;\r\n          object EditDecklayout7;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable intInverseCounter;\r\n          variable blnPlate(hslTrue);\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n          objDecklayout.GetObject(\"IEditDeckLayout7\", EditDecklayout7);\r\n\r\n          Parameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          Parameter.Add(i_strLabwareIDForStack, P_STACKID);\r\n\r\n          objDecklayout.IncreaseStack(Parameter);\r\n\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n          EditDecklayout7.GetLabwareData(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          // Get the template site ID and template ID of the stack\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);       \r\n            if(LabwareNames.Item1(\"Labwr_Id\") == i_strLabwareIDForStack)\r\n            {\r\n               strTemplateID=LabwareNames.Item1(\"Labwr_TemplateId\");\r\n               strTemplateSiteID=LabwareNames.Item1(\"Labwr_DkSiteId\");\r\n            }\r\n          }\r\n\r\n          // Get all the labware on this site\r\n          objDecklayout.TemplateLabwareNames(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          intInverseCounter=myKeys.GetSize();\r\n\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intInverseCounter);\r\n            intInverseCounter=intInverseCounter-1;\r\n          \r\n            if(LabwareNames.Item1(\"Labwr_TemplateId\") == strTemplateID && LabwareNames.Item1(\"Labwr_DkSiteId\") == strTemplateSiteID && LabwareNames.Item1(\"Labwr_Id\")!=i_strLabwareIDForStack)\r\n            {\r\n                 strLabwareID=LabwareNames.Item1(\"Labwr_Id\");\r\n                 if(strLabwareID.Find(\"_lid\")==-1) o_strLabwareID=strLabwareID;\r\n                 else o_strLabwareLidID=strLabwareID; \r\n            }\r\n          }\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          EditDecklayout7.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          onerror goto 0;\r\n          err.Clear();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"Successfully added a plate to stack. Plate LabwareID: '\" + o_strLabwareID + \"', Lid LabwareID: '\" + o_strLabwareLidID + \"'.\", strFunctionName);\r\n          return(hslTrue);\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // StackDecrease\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function StackDecrease(device&  io_devDevice,\r\n                           variable i_strLabwareIDForStack) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strLabwareIDForStack, \"i_strLabwareIDForStack\", strFunctionName)) return(hslFalse);\r\n\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareIDForStack = \" + i_strLabwareIDForStack, strFunctionName);\r\n\r\n      onerror goto HandleLabwareError;\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n          object EditDecklayout5;\r\n          object EditDecklayout7;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable intInverseCounter;\r\n          variable blnPlate(hslTrue);\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n          objDecklayout.GetObject(\"IEditDeckLayout7\", EditDecklayout7);\r\n\r\n          Parameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          Parameter.Add(i_strLabwareIDForStack, P_STACKID);\r\n\r\n          objDecklayout.DecreaseStack(Parameter);\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          EditDecklayout7.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          onerror goto 0;\r\n          err.Clear();\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"Successfully removed a plate from stack.\", strFunctionName);\r\n          return(hslTrue);\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // AddLabwareToTemplateSite\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function AddLabwareToTemplateSite(device&  io_devDevice,\r\n                                      variable i_strLabwareFileName,\r\n                                      variable i_strTemplateID,\r\n                                      variable i_strTemplateSiteID,\r\n                                      variable i_strEnumOrientation,\r\n                                      variable i_blnCoverRack,\r\n                                      variable& io_strLabwareID,\r\n                                      variable& o_strLabwareIDCover) variable\r\n    {\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n      variable strLabwareIDTemp;\r\n      variable strLabwareIDMarker;\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strLabwareFileName, \"i_strLabwareFileName\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strTemplateID, \"i_strTemplateID\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strTemplateSiteID, \"i_strTemplateSiteID\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(io_strLabwareID, \"io_strLabwareID\", strFunctionName)) return(hslFalse);\r\n      if (!CheckString(i_strEnumOrientation, \"i_strEnumOrientation\", strFunctionName)) return(hslFalse);\r\n\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareFileName = \" + i_strLabwareFileName + \r\n                                                \", i_strTemplateID = \" + i_strTemplateID + \r\n                                                \", i_strTemplateSiteID = \" + i_strTemplateSiteID + \r\n                                                \", i_strEnumOrientation = \" + i_strEnumOrientation + \r\n                                                \", io_strLabwareID = \" + io_strLabwareID, \r\n                                                strFunctionName);\r\n\r\n\r\n      onerror goto HandleLabwareError;\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n         object EditDecklayout6;\r\n         object EditDecklayout7;\r\n         object objParameter;\r\n         object objSitesParameter;\r\n         object objSiteParameter;\r\n         object objLabware;\r\n         object objTemplate;\r\n         object objDeckData;\r\n         object objEditLabware6;\r\n         object objRectRack2;\r\n         variable arrTemplateSitesKeys[];\r\n         variable intCounter;\r\n         variable fltLabwareMeasureX;\r\n         variable fltLabwareMeasureY;\r\n         variable fltSiteMeasureX;\r\n         variable fltSiteMeasureY;\r\n         variable position[](4);\r\n\r\n         objDecklayout.GetObject(\"IEditDeckLayout6\", EditDecklayout6);\r\n         objDecklayout.GetObject(\"IEditDeckLayout7\", EditDecklayout7);\r\n         objDecklayout.GetObject(\"IEditLabware6\", objEditLabware6);\r\n\r\n         objParameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n         objSitesParameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n         objSiteParameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n         objDecklayout.GetObject(\"IDeckData\", objDeckData);\r\n         objLabware=objDecklayout.Labware(i_strTemplateID);\r\n         objLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\n\r\n         if (objTemplate.IsNull())\r\n         {\r\n            StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Cannot get template data.\", strFunctionName);\r\n            return(hslFalse);  \r\n         }\r\n\r\n         objDeckData.GetTemplateData(i_strTemplateID, objParameter);\r\n         if (objDeckData.IsNull())\r\n         {\r\n            StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Cannot get deck data.\", strFunctionName);\r\n            return(hslFalse);  \r\n         }\r\n\r\n         objSitesParameter=objParameter.Item1(P_DECKSITES);\r\n         arrTemplateSitesKeys=objSitesParameter.GetKeys();\r\n\r\n         // we have parameters of all sites. Find the one with the name given.\r\n         for(intCounter=0; intCounter<arrTemplateSitesKeys.GetSize(); intCounter++)\r\n         {\r\n            objSiteParameter=objSitesParameter.Item1(arrTemplateSitesKeys.GetAt(intCounter));\r\n            if(objSiteParameter.Item1(P_DKSITEID)==i_strTemplateSiteID)\r\n            {\r\n               break;\r\n            }\r\n         }\r\n\r\n         fltSiteMeasureX=objSiteParameter.Item1(P_DKSITEDX);\r\n         fltSiteMeasureY=objSiteParameter.Item1(P_DKSITEDY);\r\n\r\n         // Preload labware on deck\r\n         StatusTrace(CMD_PROGRESS, \r\n                   TRACE_LEVEL_DEBUG, \r\n                   \"Site '\" + i_strTemplateSiteID + \"' X-Dim: \" + FStr(fltSiteMeasureX) + \r\n                   \", Y-Dim: \" + FStr(fltSiteMeasureY), \r\n                   strFunctionName);\r\n       \r\n         objLabware = EditDecklayout6.Labware(i_strTemplateID);\r\n         position[0] = 0;\r\n         position[1] = 0;\r\n         position[2] = 0;\r\n         \r\n         // rotate al gusto\r\n         if(i_strEnumOrientation==Enum::Orientation::Degree0)\r\n         {\r\n            position[3] = 0;\r\n         }\r\n         if(i_strEnumOrientation==Enum::Orientation::Degree90)\r\n         {\r\n            position[3] = 90;\r\n         }\r\n         if(i_strEnumOrientation==Enum::Orientation::Degree180)\r\n         {\r\n            position[3] = 180;\r\n         }\r\n         if(i_strEnumOrientation==Enum::Orientation::Degree270) \r\n         {\r\n            position[3] = 270;\r\n         }\r\n\r\n         if(io_strLabwareID==\"\") \r\n         {\r\n            io_strLabwareID=\"Labware_\" + i_strTemplateID + \"_\" + i_strTemplateSiteID;\r\n            StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"LabwareID was left empty. Created a new one: '\" + io_strLabwareID + \"'.\", strFunctionName); \r\n         }\r\n\r\n         if(0!=io_devDevice.IsValidLabwareForCurrentDeckLayout(io_strLabwareID))\r\n         {\r\n            EditDecklayout6.GetUniqueLabwareID(io_strLabwareID, io_strLabwareID); \r\n            StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"LabwareID is already in use. Created a new one: '\" + io_strLabwareID + \"'.\", strFunctionName); \r\n         }\r\n\r\n         // create unique labware IDs\r\n         strLabwareIDMarker=io_strLabwareID;\r\n         io_strLabwareID=io_strLabwareID+\"TempID\";\r\n         EditDecklayout6.GetUniqueLabwareID(io_strLabwareID, io_strLabwareID);\r\n         strLabwareIDTemp=io_strLabwareID;\r\n         io_strLabwareID=strLabwareIDMarker;\r\n\r\n         io_devDevice.AddLabware(strLabwareIDTemp, i_strLabwareFileName, position);\r\n         objDecklayout.GetObject(\"ILabware7\", objLabware);          \r\n         objLabware=EditDecklayout6.Labware(strLabwareIDTemp);\r\n         objLabware.GetBoundary(objParameter);\r\n         objLabware.GetObject(\"IRectRack\", objRectRack2);\r\n         if (!objRectRack2.IsNull() && i_blnCoverRack)\r\n         {\r\n             StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Covered rack with lid.\", strFunctionName);\r\n             if (i_blnCoverRack) objRectRack2.Covered=1;          \r\n         }\r\n\r\n         fltLabwareMeasureX=objParameter.Item1(P_XDIM);\r\n         fltLabwareMeasureY=objParameter.Item1(P_YDIM);\r\n\r\n         StatusTrace(CMD_PROGRESS, \r\n                     TRACE_LEVEL_DEBUG, \r\n                     \"Labware X-Dim: \" + FStr(fltLabwareMeasureX) + \", Y-Dim: \" + FStr(fltLabwareMeasureY) + \".\", \r\n                     strFunctionName);\r\n\r\n         onerror goto HandleBoundsDoNotFitError;\r\n         EditDecklayout7.AddLabwareToDeckSite(objLabware, i_strTemplateSiteID, io_strLabwareID, i_strTemplateID, 1);\r\n         onerror goto HandleLabwareError;\r\n         io_devDevice.RemoveLabware(strLabwareIDTemp);\r\n\r\n\r\n         if (!objRectRack2.IsNull() && i_blnCoverRack) o_strLabwareIDCover=objRectRack2.CoverID;\r\n         else o_strLabwareIDCover=\"\";\r\n \r\n         objDecklayout.ReleaseObject();\r\n         EditDecklayout6.ReleaseObject();\r\n         EditDecklayout7.ReleaseObject();\r\n\r\n         objParameter.ReleaseObject();\r\n         onerror goto 0;\r\n         err.Clear();\r\n         StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"Successfully added '\" + io_strLabwareID + \"' to decklayout.\", strFunctionName);\r\n         return(hslTrue);\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleBoundsDoNotFitError:\r\n      {\r\n        io_devDevice.RemoveLabware(strLabwareIDTemp);\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"ErrorID: \" + IStr(err.GetId()) + \". Labware does not fit onto site.\", strFunctionName);\r\n        return(hslFalse);       \r\n      }\r\n\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"ErrorID: \" + IStr(errorID) + \". LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"ErrorID: \" + IStr(errorID) + \". Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // GetTemplateIDAndTemplateSiteID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function GetTemplateIDAndTemplateSiteID(device&  io_devDevice,\r\n                                              variable  i_strLabwareID,\r\n                                              variable& o_strTemplateID,\r\n                                              variable& o_strTemplateSiteID) variable\r\n    {\r\n      variable PosVals[];\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID, strFunctionName);\r\n\r\n      o_strTemplateID=\"\";\r\n      o_strTemplateSiteID=\"\";\r\n\r\n      onerror goto HandleLabwareError;\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n          object EditDecklayout5;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable blnFoundLocation(hslFalse);\r\n          variable strMessage;\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n\r\n\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n          objDecklayout.TemplateLabwareNames(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);\r\n            if(LabwareNames.Item1(\"Labwr_Id\") == i_strLabwareID)\r\n            {\r\n              blnFoundLocation=hslTrue; \r\n              o_strTemplateSiteID=LabwareNames.Item1(\"Labwr_DkSiteId\");\r\n              o_strTemplateID=LabwareNames.Item1(\"Labwr_TemplateId\");            \r\n            }      \r\n          }\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          onerror goto 0;\r\n          err.Clear();\r\n          if (blnFoundLocation) strMessage=\"Found labwareID '\" + i_strLabwareID + \"' to be located on templateID '\" + o_strTemplateID + \"' on templateSiteID '\" + o_strTemplateSiteID + \"'.\";\r\n          else strMessage=\"Could not find templateID and templateSiteID for labwareID '\" + i_strLabwareID + \"'\";\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, strMessage, strFunctionName);\r\n          return(blnFoundLocation);\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // GetLabwareIDsAndTemplateSiteIDsForTemplateID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function GetLabwareIDsAndTemplateSiteIDsForTemplateID(device&  io_devDevice,                                                        \r\n                                                          variable i_strTemplateID,\r\n                                                          variable o_arrStrTemplateSiteIDs[],\r\n                                                          variable o_arrStrLabwareIDs[]) variable\r\n    {\r\n      variable PosVals[];\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      if (!CheckString(i_strTemplateID, \"i_strTemplateID\", strFunctionName)) return(hslFalse);\r\n\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strTemplateID = \" + i_strTemplateID, strFunctionName);\r\n\r\n      o_arrStrTemplateSiteIDs.SetSize(0);\r\n      o_arrStrLabwareIDs.SetSize(0);\r\n\r\n      onerror goto HandleLabwareError;\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n          object EditDecklayout5;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable blnFoundLocation(hslFalse);\r\n          variable strMessage;\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n\r\n\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n          objDecklayout.TemplateLabwareNames(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);\r\n\r\n            if(i_strTemplateID==LabwareNames.Item1(\"Labwr_TemplateId\"))\r\n            {\r\n               blnFoundLocation=hslTrue;\r\n               o_arrStrTemplateSiteIDs.AddAsLast(LabwareNames.Item1(\"Labwr_DkSiteId\"));\r\n               o_arrStrLabwareIDs.AddAsLast(LabwareNames.Item1(\"Labwr_Id\"));     \r\n            }\r\n          }\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          onerror goto 0;\r\n          err.Clear();\r\n          if (blnFoundLocation) strMessage=\"Found template site ID and labwareID.\";\r\n          else strMessage=\"Could not find anything on templateID.\";\r\n          StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, strMessage, strFunctionName);\r\n          return(blnFoundLocation);\r\n      }\r\n      else\r\n      {\r\n        StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // SetTraceLevel\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    function SetTraceLevel(variable i_intTraceLevel) variable\r\n    {\r\n      variable strFunctionName(\"\");\r\n\r\n      strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      if (!CheckIntegerRange(i_intTraceLevel, \"i_intTraceLevel\", TRACE_LEVEL_NONE, TRACE_LEVEL_DEBUG, strFunctionName)) return(hslFalse);\r\n\r\n      StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_intTraceLevel = \" + IStr(i_intTraceLevel), strFunctionName);\r\n\r\n      HSLLabwareAccess_TraceLevel = i_intTraceLevel;\r\n\r\n      StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n\r\n      return(hslTrue);\r\n    }\r\n\r\n\r\n\r\n\r\n    //////////////////////////////////////////////////////////////////////////\r\n    // private function ConvertToFloat\r\n    //////////////////////////////////////////////////////////////////////////\r\n    private function ConvertToFloat(variable iVariable, variable& oVariable) variable\r\n    {\r\n      variable blnResult(hslFalse);\r\n      if(GetType(iVariable) == \"s\")\r\n      {\r\n        oVariable=FVal(iVariable);\r\n        blnResult=hslTrue;\r\n      }\r\n      if(GetType(iVariable) == \"i\")\r\n      {\r\n        oVariable=IStr(iVariable);\r\n        oVariable=FVal(oVariable);\r\n        blnResult=hslTrue;\r\n      }\r\n      if(GetType(iVariable) == \"f\")\r\n      {\r\n        oVariable=iVariable;\r\n        blnResult=hslTrue;\r\n      }\r\n      return(blnResult);\r\n    } // ConvertToFloat\r\n\r\n    //////////////////////////////////////////////////////////////////////////\r\n    // private function CheckBool\r\n    //////////////////////////////////////////////////////////////////////////\r\n    private function CheckBool(variable iVariable,\r\n                               variable iTraceEntry,\r\n                               variable iFunctionName) variable\r\n    {\r\n      if(GetType(iVariable) == \"i\")\r\n      {\r\n        if(iVariable == hslTrue || iVariable == hslFalse)\r\n        {\r\n          return(hslTrue);\r\n        }\r\n      }\r\n      StatusTrace(CMD_ERROR, TRACE_LEVEL_RELEASE, HSLLabwareAccess_LLE, iFunctionName);\r\n      return(hslFalse);\r\n    } // CheckBool\r\n\r\n    //////////////////////////////////////////////////////////////////////////\r\n    // private function CheckInteger\r\n    //////////////////////////////////////////////////////////////////////////\r\n    private function CheckInteger(variable iVariable,\r\n                                  variable iTraceEntry,\r\n                                  variable iFunctionName) variable\r\n    {\r\n      if(\"i\" == GetType(iVariable))\r\n      {\r\n        return(hslTrue);\r\n      }\r\n      HSLLabwareAccess_LLE = \"Input parameter \" + iTraceEntry + \" is not of type integer\";\r\n      StatusTrace(CMD_ERROR, TRACE_LEVEL_RELEASE, HSLLabwareAccess_LLE, iFunctionName);\r\n      return(hslFalse);\r\n    } // CheckInteger\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    //private function CheckIntegerRange\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    private function CheckIntegerRange(variable iVariable,\r\n                                       variable iTraceEntry,\r\n                                       variable iMin,\r\n                                       variable iMax,\r\n                                       variable iFunctionName) variable\r\n    {\r\n      if(GetType(iVariable) == \"i\")\r\n      {\r\n        if(iVariable >= iMin && iVariable <= iMax)\r\n        {\r\n          return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          HSLLabwareAccess_LLE = \"Parameter \" + iTraceEntry + \" is out of range(\"+ IStr(iMin) + \"..\" + IStr(iMax) + \")!\";\r\n        }\r\n      }\r\n      else\r\n      {\r\n        HSLLabwareAccess_LLE = \"Input parameter \" + iTraceEntry + \" is not of type integer\";\r\n      }\r\n    \r\n      StatusTrace(CMD_ERROR, TRACE_LEVEL_RELEASE, HSLLabwareAccess_LLE, iFunctionName);\r\n      return(hslFalse);\r\n    } // CheckIntegerRange\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // private function CheckString\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    private function CheckString(variable iVariable,\r\n                                 variable iTraceEntry,\r\n                                 variable iFunctionName) variable\r\n    {\r\n      if(GetType(iVariable) == \"s\")\r\n        return(hslTrue);\r\n      HSLLabwareAccess_LLE = \"Parameter \" + iTraceEntry + \" is not of type string!\";\r\n      StatusTrace(CMD_ERROR, TRACE_LEVEL_RELEASE, HSLLabwareAccess_LLE, iFunctionName);\r\n      return(hslFalse);\r\n    } // CheckString\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // private function CheckFloat\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    private function CheckFloat(variable iVariable,\r\n                                 variable iTraceEntry,\r\n                                 variable iFunctionName) variable\r\n    {\r\n      if(GetType(iVariable) == \"f\")\r\n        return(hslTrue);\r\n      HSLLabwareAccess_LLE = \"Parameter \" + iTraceEntry + \" is not of type float!\";\r\n      StatusTrace(CMD_ERROR, TRACE_LEVEL_RELEASE, HSLLabwareAccess_LLE, iFunctionName);\r\n      return(hslFalse);\r\n    } // CheckString\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // private function StatusTrace\r\n    //////////////////////////////////////////////////////////////////////////// \r\n    private function StatusTrace(variable iState,\r\n                                 variable iTraceLevel,\r\n                                 variable iTraceString,\r\n                                 variable iFunctionName) void\r\n    {\r\n      if(iTraceLevel <= HSLLabwareAccess_TraceLevel)\r\n      {\r\n        FormatTrace(\"HSLLabwrAccess\", iFunctionName, iState, \" \", iTraceString);\r\n      }\r\n    } // StatusTrace\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // private function ExtractFunctionName\r\n    //////////////////////////////////////////////////////////////////////////// \r\n    private function ExtractFunctionName(variable iFunctionName) variable\r\n    {\r\n      string FunctionName(iFunctionName);\r\n      return(FunctionName.Mid(ReverseFind(iFunctionName, \":\") + 1, FunctionName.GetLength()));\r\n    } // ExtractFunctionName\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // private function InitSemaphore\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    private function InitSemaphore()\r\n    {\r\n      // Pls. don't call this function directly. Use EnterSemaphore() instead.\r\n      if(HSLLabwareAccess_SH==0)\r\n      {\r\n        variable strFunctionName(\"\");\r\n        strFunctionName = ExtractFunctionName(GetFunctionName());\r\n        HSLLabwareAccess_SH=SynInitializeCriticalSection();\r\n        //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"Semaphore handle = \" + IStr(HSLLabwareAccess_SH), strFunctionName);\r\n\r\n        SynEnterCriticalSection(HSLLabwareAccess_SH);\r\n        if(!HSLLabwareAccess_IO)\r\n        {\r\n          HSLLabwareAccess_IO=hslTrue;\r\n          // do something, that has to be done only once\r\n          //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"Library semaphore initialised.\", strFunctionName);\r\n        }\r\n        SynLeaveCriticalSection(HSLLabwareAccess_SH);\r\n      }    \r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // private function ReverseFind\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    private function ReverseFind(string String, string SubString) variable\r\n    {\r\n      variable index;\r\n      variable result(-1);\r\n      variable strLength;\r\n      variable subLength;\r\n      string strStr;\r\n\r\n      strStr = String;\r\n      strLength = strStr.GetLength();\r\n      for (index = strStr.Find(SubString); index != -1; index = strStr.Find(SubString))\r\n      {\r\n        result = result + index + 1;\r\n        strStr = strStr.Mid(index + 1, strLength);\r\n      }\r\n      return(result);\r\n    } // ReverseFind\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // private function EnterSemaphore\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    private function  EnterSemaphore()\r\n    {\r\n      InitSemaphore();\r\n      SynEnterCriticalSection(HSLLabwareAccess_SH);\r\n    }\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // private function LeaveSemaphore\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    private function  LeaveSemaphore()\r\n    {\r\n      InitSemaphore();\r\n      SynLeaveCriticalSection(HSLLabwareAccess_SH);\r\n    }\r\n  } //end HSLLabwareAccess\r\n#endif //end __HSLLABWAREACCESS__\r\n\r\n// $$author=dkaufmann$$valid=1$$time=2013-08-19 14:39$$checksum=0ac5703d$$length=086$$"
  },
  {
    "path": "pyhamilton/library/HSLTrcLib.hsl",
    "content": "// This is a part of the HSL Trace Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n//\r\n// Modification History\r\n// 2001-06-26  bandenmatten : Removed onerror goto statements from library functions.\r\n// 2001-07-17  bandenmatten : Divided library into interface and implemenation.\r\n// 2002-03-21  bandenmatten : Declared functions TrcGetFileName, TrcGetFunctionName, \r\n//\t\t\t\t\t\t\t\t\t\tTrcGetLineNumber static (are useless in a library).\r\n// 2002-08-23  bandenmatten : Renamed parameter of functions TrcFormatTraceX(): state -> status. \r\n// 2002-12-05  bandenmatten : Specified return values for exported library functions.\r\n// 2006-02-20  bandenmatten : Function TrcTraceSequence: Enclosed strings in Translate function.\r\n\r\n#ifndef __HSLTrcLib_hsl__\r\n#define __HSLTrcLib_hsl__\t1\r\n\r\n// Interface to Trace library \r\n#ifndef HSL_RUNTIME\r\nfunction TrcInputBox(variable& prompt, variable& title, variable type) variable\t\t{return(0);}\r\nfunction TrcMessageBox(variable& message, variable& title, variable type) variable\t{return(0);}\r\nfunction TrcTrace(variable variable1, variable variable2) void\t\t\t\t\t\t\t\t{return;}\r\nfunction TrcTrace4(variable variable1, variable variable2, variable variable3, variable variable4) void\t{return;}\r\nfunction TrcTrace8(variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8) void\t{return;}\r\nfunction 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\t{return;}\r\nfunction TrcFormatTrace(variable& source, variable& action, variable status, variable variable1, variable variable2) void\t{return;}\r\nfunction TrcFormatTrace4(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4) void\t{return;}\r\nfunction TrcFormatTrace8(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8) void\t{return;}\r\nfunction 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\t{return;}\r\nfunction TrcTraceSequence(sequence& sequenceObj) void\t\t\t\t\t\t\t\t\t\t\t{return;}\r\nfunction TrcGetMethodFileName() variable\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{return(0);}\r\nstatic function TrcGetFileName() variable\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{return(0);}\r\nstatic function TrcGetFunctionName() variable\t\t\t\t\t\t\t\t\t\t\t\t\t{return(0);}\r\nstatic function TrcGetLineNumber() variable\t\t\t\t\t\t\t\t\t\t\t\t\t\t{return(0);}\r\n#endif\r\n\r\n// Implementation of Trace library \r\n#ifdef HSL_RUNTIME\r\n\r\n// Wrapper function  \r\nfunction TrcInputBox(variable& prompt, variable& title, variable type) variable\r\n{\r\n\treturn(InputBox(prompt, title, type));\r\n}\r\n\r\n// Wrapper function  \r\nfunction TrcMessageBox(variable& message, variable& title, variable type) variable\r\n{\r\n\treturn(MessageBox(message, title, type));\r\n}\r\n\r\n// Wrapper function  \r\nfunction TrcTrace(variable variable1, variable variable2) void\r\n{\r\n\tTrace(variable1, variable2);\r\n}\r\n\r\n// Wrapper function  \r\nfunction TrcTrace4(variable variable1, variable variable2, variable variable3, variable variable4) void\r\n{\r\n\tTrace(variable1, variable2, variable3, variable4);\r\n}\r\n\r\n// Wrapper function  \r\nfunction TrcTrace8(variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8) void\r\n{\r\n\tTrace(variable1, variable2, variable3, variable4, variable5, variable6, variable7, variable8);\r\n}\r\n\r\n// Wrapper function  \r\nfunction 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\r\n{\r\n\tTrace(variable1, variable2, variable3, variable4, variable5, variable6, variable7, variable8, variable9, variable10, variable11, variable12);\r\n}\r\n\r\n// Wrapper function  \r\nfunction TrcFormatTrace(variable& source, variable& action, variable status, variable variable1, variable variable2) void\r\n{\r\n\tFormatTrace(source, action, status, variable1, variable2);\r\n}\r\n\r\n// Wrapper function  \r\nfunction TrcFormatTrace4(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4) void\r\n{\r\n\tFormatTrace(source, action, status, variable1, variable2, variable3, variable4);\r\n}\r\n\r\n// Wrapper function  \r\nfunction TrcFormatTrace8(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8) void\r\n{\r\n\tFormatTrace(source, action, status, variable1, variable2, variable3, variable4, variable5, variable6, variable7, variable8);\r\n}\r\n\r\n// Wrapper function  \r\nfunction 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\r\n{\r\n\tFormatTrace(source, action, status, variable1, variable2, variable3, variable4, variable5, variable6, variable7, variable8, variable9, variable10, variable11, variable12);\r\n}\r\n\r\n// Traces the attributes of the supplied sequence \r\nfunction TrcTraceSequence(sequence& sequenceObj) void\r\n{\r\n\tvariable currentPosBak;\t\t// backup of current position\r\n\tvariable countPosBak;\t\t// backup of count position\r\n\tvariable index;\t\t\t\t// loop index\r\n\tvariable labwareId(Translate(\"labwareId\"));\r\n\tvariable positionId(Translate(\"positionId\"));\r\n\r\n\t// backup original current position \r\n\tcurrentPosBak = sequenceObj.GetCurrentPosition();\r\n\r\n\t// backup original count position \r\n\tcountPosBak = sequenceObj.GetCount();\r\n\r\n\t// set count to total\r\n\tsequenceObj.SetCount(sequenceObj.GetTotal());\r\n\r\n\t// trace attributes \r\n\tTrace(Translate(\"name = \"), sequenceObj.GetName());\r\n\tTrace(Translate(\"current = \"), currentPosBak);\r\n\tTrace(Translate(\"count = \"), countPosBak);\r\n\tTrace(Translate(\"total = \"), sequenceObj.GetTotal());\r\n\tTrace(Translate(\"max = \"), sequenceObj.GetMax());\r\n\tTrace(Translate(\"used = \"), sequenceObj.GetUsedPositions());\r\n\tfor (index = sequenceObj.SetCurrentPosition(1); \r\n\t\t index != 0; \r\n\t\t index = sequenceObj.Increment(1))\r\n\t\t Trace(labwareId, \" = \", sequenceObj.GetLabwareId(), \", \", positionId, \" = \", sequenceObj.GetPositionId());\r\n\r\n\t// restore original count position\r\n\tsequenceObj.SetCount(countPosBak);\r\n\r\n\t// restore original current position \r\n\tsequenceObj.SetCurrentPosition(currentPosBak);\r\n}\r\n\r\n// Wrapper function  \r\nfunction TrcGetMethodFileName() variable\r\n{\r\n\treturn(GetMethodFileName());\r\n}\r\n\r\n// Wrapper function  \r\nstatic function TrcGetFileName() variable\r\n{\r\n\treturn(GetFileName());\r\n}\r\n\r\n// Wrapper function  \r\nstatic function TrcGetFunctionName() variable\r\n{\r\n\treturn(GetFunctionName());\r\n}\r\n\r\n// Wrapper function  \r\nstatic function TrcGetLineNumber() variable\r\n{\r\n\treturn(GetLineNumber());\r\n}\r\n#endif\r\n\r\n#endif\r\n// $$author=wbarmettler$$valid=1$$time=2013-06-24 11:47$$checksum=d9bba443$$length=090$$"
  },
  {
    "path": "pyhamilton/library/HSL_LiquidClassLib.hsl",
    "content": "// ====================================================================.\r\n// Copyright (C) by HAMILTON Reno, USA.\r\n// All rights reserved.\r\n// ----------------------------------------------------------------------\r\n// Library: HSL_LiquidClassLib.hsl\r\n// ======================================================================\r\n// \r\n//\r\n//\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// Modification History of MLSTAR_LiquidClassLib.hsl\r\n//    2009-04-02: Linus Jegher:  Creation\r\n//    2009-04-03: mdarin:        added function \"GetLiquidDbName()\"\r\n//    2009-04-06: Linus Jegher:  added function \"GetLiquidDevices\"\r\n//    2009-04-07: Linus Jegher:  added function \"GetLiquidClassDescription\"\r\n//    2009-04-07: mdarin:        added function \"getTipTypesNames\"\r\n//    2010-01-20: mdarin:        added function \"SetStateOriginalLiquid\"\r\n//                               Set state of the liquid-class (TRUE: Predefined / FALSE: user-defined)\r\n//    2016-Jun-13 acuevas: added function \"SetLiquidClassAspirateParameter\", \"SetLiquidClassDispenseParameter\"\r\n//    2016-Dec-14:  acuevas: Creation. Adapt MLSTAR_LiquidClassLib library to work on NIMBUS and ML_STAR\r\n//    2020-May-13 acuevas: added function \"GetTADMToleranceBand\" ,  \"GetLiquidClassDesignHistory\", and private \"FormatDesignHistoryTime\"\r\n//    2020-May-20 acuevas: added function \"GetTADMVolumes\", fix function \"GetLiquidDevices\"\r\n//    2020-June-11 acuevas: added function \"GetLiquidNames\" , \"GetLiquidDevicesFromCfgFile\", \"GetLiquidDevicesFromLiquidClass\"\r\n//    2021-October-21 acuevas: added function \"GetLiquidChecksum\"\r\n//// ======================================================================\r\n\r\n\r\n\r\n#pragma once\r\n\r\n#include \"HslUtilLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"HSLStrLib.hsl\" \r\n#include \"HSLArrLib.hsl\"\r\n#include \"HSLMthLib.hsl\" \r\n\r\nnamespace LiquidClassLib\r\n{\r\n\r\n   namespace LIQUIDCLASSNAMES_FILTER\r\n   {\r\n      const variable NoLiquidDeviceFilter (-1);\r\n      const variable NoLiquidNameFilter( \"\");\r\n      const variable NoTipTypeFilter( -1);\r\n      const variable NoDispenseModeFilter( -1);\r\n   }\r\n   \r\n   namespace LIQUIDCLASS_DISPENSEMODE\r\n   {\r\n      const variable Undefined                 (-1);\r\n      const variable DispenseJet               (0);\r\n      const variable DispenseSurface           (1);\r\n      const variable DispenseJetPartVolume     (2);\r\n      const variable DispenseJetEmptyTip       (3);\r\n      const variable DispenseSurfacePartVolume (4);\r\n      const variable DispenseSurfaceEmptyTip   (5);\r\n   }\r\n                   \r\n   const variable HSL_TRUE    ( hslTrue ); // constant hslTrue\r\n   const variable HSL_FALSE   ( hslFalse); // constant hslFalse\r\n\r\n\r\n   namespace LIQUIDCLASS_PARAMS_ASP\r\n   {\r\n      const variable FlowRate              (-533331950);\r\n      const variable MixFlowRate           (-533331949);\r\n      const variable AirTransportVolume    (-533331948);\r\n      const variable BlowOutVolume         (-533331947);\r\n      const variable SwapSpeed             (-533331946);\r\n      const variable SettlingTime          (-533331945);\r\n      const variable OverAspirateVolume    (-533331936);\r\n      const variable ClotRetractHeight     (-533331935);\r\n   }\r\n\r\n   namespace LIQUIDCLASS_PARAMS_DISP\r\n   {\r\n      const variable FlowRate              (-533331950);\r\n      const variable MixFlowRate           (-533331949);\r\n      const variable AirTransportVolume    (-533331948);\r\n      const variable BlowOutVolume         (-533331947);\r\n      const variable SwapSpeed             (-533331946);\r\n      const variable SettlingTime          (-533331945);\r\n      const variable StopFlowRate          (-533331920);\r\n      const variable StopBackVolume        (-533331919);\r\n   }\r\n\r\n   namespace LIQUIDCLASS_PARAMS\r\n   {\r\n\r\n      // const variable DataDefVersion        (-533331968); ??\r\n      const variable LiquidVersion         (-533331967);\r\n      const variable LiquidName            (-533331966);\r\n      const variable TipType               (-533331965);\r\n      const variable DispenseMode          (-533331964);\r\n      const variable OriginalLiquid        (-533331963);\r\n      const variable Notes                 (-533331962);\r\n      const variable LiquidDevice          (-533331961); // object\r\n      const variable AspirateParameter     (-533331952); // object\r\n      const variable DispenseParameter     (-533331951); // object\r\n      const variable CorrectionCurve       (-533331904); // object\r\n      const variable PressureLLDSensitivity(-533331899);\r\n      const variable LLDMaxHeightDifference(-533331898);\r\n      const variable ValidationState       (-533331897);\r\n      const variable DesignHistory         (-533331896); // object\r\n      const variable MaxAspirateVolume     (-533331895);\r\n      const variable Tadm_Enabled          (-533331887); \r\n      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\r\n      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\r\n      const variable TadmAspirateStep      (-533331728);\r\n      const variable TadmDispenseStep      (-533331727);\r\n   }\r\n\r\n\r\n   static global object LIQUIDCLASSLib_LiquidClass;\r\n\r\n   static variable Selected_LiquidClassName(\"\");\r\n   static object   Selected_LiquidClassObject;\r\n   variable instClass;\r\n\r\n\r\n   static global function LIQUIDCLASSLib_Initialize(device instrument, variable iReadOnly) void\r\n   {\r\n      if (LIQUIDCLASSLib_LiquidClass.IsNull( ) == hslFalse)\r\n      {\r\n         return;\r\n      }\r\n      {\r\n         object HxRegistry;\r\n         \r\n\r\n         HxRegistry.CreateObject(\"HXREGLib.HxRegistry\");\r\n         instClass = HxRegistry.InstClass(instrument.GetInstrumentName());\r\n         \r\n         LIQUIDCLASSLib_LiquidClass.CreateObject(\"Hamilton.HxCoreLiquidClass\");\r\n         LIQUIDCLASSLib_LiquidClass.InitCoreLiquidClass(instClass, iReadOnly);\r\n      }\r\n   }\r\n\r\n   static function Check_IsInitialized() void\r\n   {\r\n      if (LIQUIDCLASSLib_LiquidClass.IsNull()) \r\n         err.Raise( -1, \"HAMILTON LiquidClassLib: Library is not initialized!\\n\\n> Use function LIQUIDCLASSLib::Initialize().\\n\");\r\n   }\r\n\r\n   // Diese funktion wirft eine Exception, wenn keine Liquidklasse selektiert ist.\r\n   // Das ist besser als die Fehlermeldung von HSL, die einfach nur 'Bad Argument' ist.\r\n   static function Check_IsSelected() void\r\n   {\r\n      if (Selected_LiquidClassObject.IsNull()) \r\n         err.Raise( -1, \"MLSTARLiquidClassLib: No Liquidclass is selected!\\n\\n> Use function MLSTAR_LIQUIDCLASSLib::SelectLiquidClass().\\n\");\r\n   }\r\n\r\n   function Initialize(device instrument,  variable iReadOnly) void\r\n   {\r\n      LIQUIDCLASSLib_Initialize(instrument, iReadOnly);\r\n   }\r\n\r\n   function GetLiquidClassNames( variable& outLiquidClassNames[]) variable\r\n   {\r\n      object parsLiquidClassNames;\r\n      parsLiquidClassNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n      Check_IsInitialized();\r\n      LIQUIDCLASSLib_LiquidClass.GetLiquidClassNames( parsLiquidClassNames);\r\n      outLiquidClassNames = parsLiquidClassNames.GetKeys();\r\n\r\n      {\r\n         // sortiere das array. Dazu muss ein zweites array erstellt werden, \r\n         // das aber in diesem Zusammenhang nicht benutzt wird.\r\n         variable dummyArray[]( outLiquidClassNames.GetSize());\r\n         Util::Sort( dummyArray, outLiquidClassNames);\r\n      }\r\n      return (outLiquidClassNames.GetSize());\r\n   }\r\n\r\n   // Returns an array of liquid class names filtered for the specified values for \r\n   // liquid device id, liquid name, tip type id and dipsense mode. The array of liquid class names is sorted.\r\n   function GetLiquidClassNamesFiltered( \r\n      variable liquidDeviceFilter, \r\n      variable liquidNameFilter,\r\n      variable tipTypeFilter,\r\n      variable dispenseModeFilter,\r\n      variable& outLiquidClassNames[])  variable\r\n   {\r\n      object parsNames;\r\n      parsNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n      \r\n      Check_IsInitialized();\r\n      LIQUIDCLASSLib_LiquidClass.GetFilteredLiquidClassNames( \r\n         liquidDeviceFilter, \r\n         liquidNameFilter,\r\n         dispenseModeFilter,\r\n         tipTypeFilter,\r\n         parsNames);\r\n      outLiquidClassNames = parsNames.GetKeys(); // Schlssel sind Liquidklassennamen\r\n      \r\n      {\r\n         // sortiere das array. Dazu muss ein zweites array erstellt werden, \r\n         // das aber in diesem Zusammenhang nicht benutzt wird.\r\n         variable dummyArray[]( outLiquidClassNames.GetSize());\r\n         Util::Sort( dummyArray, outLiquidClassNames);\r\n      }\r\n      return (outLiquidClassNames.GetSize()); // size of array\r\n   }\r\n\r\n   //\r\n   // Diese Funktion ladet die Daten einer Liquidklasse\r\n   //\r\n   function SelectLiquidClass( variable inLiquidClassName) void\r\n   {\r\n      object objectTemp;\r\n      variable i;\r\n      object s;\r\n      variable Array_Keys[];\r\n      Check_IsInitialized();\r\n\r\n      Selected_LiquidClassObject.ReleaseObject();\r\n      Selected_LiquidClassName = \"\";\r\n      objectTemp.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n      LIQUIDCLASSLib_LiquidClass.GetLiquidClass(inLiquidClassName, objectTemp, hslFalse);\r\n      Selected_LiquidClassName = inLiquidClassName;\r\n      Selected_LiquidClassObject = objectTemp;\r\n   }\r\n\r\n   // Gibt die Korrekturpunkte der Kurve zurck. Die X-Werte werden im outXWerte-Array zurckgegeben.\r\n   // Im outYWerte-Array werden die Y-Werte zurckgegeben. Die Korrekturpunkte sind in den \r\n   // Arrays nach X-Wert aufsteigend sortiert.\r\n   function GetCorrectionCurve( variable& outXWerte[], variable& outYWerte[]) variable\r\n   {\r\n      object parsCorrectionCurves;\r\n      \r\n      Check_IsSelected();\r\n      parsCorrectionCurves = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::CorrectionCurve);\r\n      parsCorrectionCurves.GetItems( outXWerte, outYWerte);\r\n\r\n      // wandle Zeichenkette in flieskomma Zahl\r\n      {\r\n         variable cItems;\r\n         variable iItem;\r\n         cItems = outXWerte.GetSize();\r\n         for (iItem = 0; iItem < cItems; ++iItem)\r\n         {\r\n            outXWerte[ iItem] = FVal( outXWerte.GetAt( iItem));\r\n         }\r\n      }\r\n\r\n      Util::Sort( outYWerte, outXWerte);\r\n      return (outXWerte.GetSize());\r\n   }\r\n\r\n   function UpdateCorrectionCurve( variable inXWerte[], variable inYWerte[]) void\r\n   {\r\n      // TODO: berprfen ob beide arrays gleich viel werte enthalten.\r\n      object parsCorrectionCurves;\r\n      \r\n      Check_IsSelected();\r\n      if (inXWerte.GetSize() != inYWerte.GetSize())\r\n      {\r\n         variable formatArgs;\r\n         formatArgs = \"  inXWerte.Size: \" + IStr( inXWerte.GetSize()) + \"\\n  inYWerte.Size: \" + IStr( inYWerte.GetSize());\r\n         err.Raise( -1, \"MLSTARLiquidClassLib::UpdateCorrectionCurve(): The arrays inXWerte and inYWerte have different size!\\n\" + formatArgs + \"\\n\");\r\n      }\r\n      parsCorrectionCurves = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::CorrectionCurve);\r\n      parsCorrectionCurves.RemoveAll();\r\n\r\n      // die Korrekturkurven-Punkte werden neu erstellt.\r\n      {\r\n         variable cItems;\r\n         variable iItem;\r\n         cItems = inXWerte.GetSize();\r\n         for (iItem = 0; iItem < cItems; ++iItem)\r\n         {\r\n            parsCorrectionCurves.Add( inYWerte.GetAt( iItem), inXWerte.GetAt( iItem));\r\n         }\r\n      }\r\n      LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n   }\r\n\r\n   function SetLiquidClassAspirateParameter (variable aspirateParameter, variable paramValue) void\r\n   {\r\n         object tempParam;\r\n         tempParam = Selected_LiquidClassObject.Item1(LIQUIDCLASS_PARAMS::AspirateParameter);\r\n         tempParam.Remove(aspirateParameter);\r\n         tempParam.Add(paramValue,aspirateParameter);\r\n         LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n   }\r\n   \r\n   function SetLiquidClassDispenseParameter (variable dispenseParameter, variable paramValue) void\r\n   {\r\n         object tempParam;\r\n         tempParam = Selected_LiquidClassObject.Item1(LIQUIDCLASS_PARAMS::DispenseParameter);\r\n         tempParam.Remove(dispenseParameter);\r\n         tempParam.Add(paramValue,dispenseParameter);\r\n         LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n   }\r\n\r\n\r\n   // Die funtion gibt den Wert des angegebenen Parameters aus dem Namensraum LIQUIDCLASS_PARAMS\r\n   function GetLiquidClassParameter( variable param) variable\r\n   {\r\n      Check_IsSelected();\r\n      return (Selected_LiquidClassObject.Item1( param));\r\n   }\r\n\r\n   // Die funtion gibt den Wert des angegebenen Parameters aus dem Namensraum LIQUIDCLASS_PARAMS\r\n   function GetLiquidClassParameter_Object( variable param, object& outObject) void\r\n   {\r\n      Check_IsSelected();\r\n      outObject = Selected_LiquidClassObject.Item1( param);\r\n   }\r\n\r\n   // Die funktion gibt den Wert des angegebenen Aspirations-Parameters aus dem Namensraum LIQUIDCLASS_PARAMS\r\n   function GetLiquidClassAspirateParameter( variable aspirateParameter) variable\r\n   {\r\n      Check_IsSelected();\r\n      return (Selected_LiquidClassObject.Item2( LIQUIDCLASS_PARAMS::AspirateParameter, aspirateParameter));\r\n   }\r\n\r\n   // Die funktion gibt den Wert des angegebenen Dispensations-Parameters aus dem Namensraum LIQUIDCLASS_PARAMS\r\n   function GetLiquidClassDispenseParameter( variable dispenseParameter) variable\r\n   {\r\n      Check_IsSelected();\r\n      return (Selected_LiquidClassObject.Item2( LIQUIDCLASS_PARAMS::DispenseParameter, dispenseParameter));\r\n   }\r\n\r\n   // Schaltet TADM fr selektierte Liquidklasse ein, wenn es noch nocht ist.\r\n   function EnableTadm() void\r\n   {\r\n      variable tadmEnabled;\r\n\r\n      Check_IsSelected();\r\n      tadmEnabled = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::Tadm_Enabled);\r\n      if (tadmEnabled != hslTrue)\r\n      {\r\n         Selected_LiquidClassObject.Add( hslTrue, LIQUIDCLASS_PARAMS::Tadm_Enabled);\r\n         LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n      }\r\n   }\r\n\r\n   // Gibt das aktuelle Datum formatiert als Zeitstempel. Es kann als Teil eines Dateinamen \r\n   // benutzt werden. Beispiel: 2009-03-17_14-56-35 -\r\n   function GetTimeStamp() variable\r\n   {\r\n      variable date;\r\n      variable time;\r\n      time = GetTime( \"%H-%M-%S\");\r\n      date = GetDate( \"%Y-%m-%d\");\r\n      return (date + \"_\" + time);\r\n   }\r\n\r\n   // exportiert die selektierte Liquidklasse in die angegebene Datenbankdatei.\r\n   // Diese Datenbankdatei wird neu erstellt, falls sie schon existiert.\r\n   function ExportLiquidClass( variable liquidDbFile) void\r\n   {\r\n      object hxStarLiquid;\r\n\r\n      Check_IsSelected();\r\n      {\r\n         object hxRegistry;\r\n         variable instClassCfgFil;\r\n\r\n         hxRegistry.CreateObject(\"HXREGLib.HxRegistry\");\r\n         hxStarLiquid.CreateObject(\"Hamilton.HxStarLiquidClass\");\r\n         instClassCfgFil = hxRegistry.InstClassCfgFile(instClass);\r\n         hxStarLiquid.InitStarLiquidClass( instClassCfgFil, hslFalse, liquidDbFile, hslTrue);\r\n      }\r\n      hxStarLiquid.SetLiquidclass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n      hxStarLiquid.CloseDatabase();\r\n   }\r\n\r\n   //mdarin: 03.04.2009: function added\r\n   // get the name (file) of the Access-DB\r\n   function GetLiquidDbName() variable\r\n   {\r\n      return(LIQUIDCLASSLib_LiquidClass.GetLiquidDbName());\r\n   }\r\n\r\n   //mdarin: 06.04.2009: function added (with help from L. Jegher)\r\n   // alvaro cuevas: 2020-5-20  Modified. Original returned \"Invalid Class\" for HxStarLiquidDevices , added liquid class name as input , sort returned arrays.\r\n   function GetLiquidDevicesFromLiqClass(\r\n                              variable  i_liquidClassName,  // [In] string liquid class name\r\n                              variable& o_arrayDeviceIDs[], //[Out] array of int values of device IDs\r\n                              variable& o_arrayDeviceNames[] //[Out] array of strings with device view names.             \r\n   ) void\r\n      {  \r\n      object parsLiquidClassDevices;\r\n      object hxCoreDevices;\r\n      variable name;\r\n      variable deviceId;\r\n      variable deviceCount;\r\n      variable iItem;\r\n      variable cItems;\r\n      \r\n      SelectLiquidClass(i_liquidClassName);\r\n\r\n      o_arrayDeviceIDs.SetSize(0);\r\n      o_arrayDeviceNames.SetSize(0);\r\n\r\n      GetLiquidClassParameter_Object( LIQUIDCLASS_PARAMS::LiquidDevice, parsLiquidClassDevices);\r\n      \r\n      hxCoreDevices.CreateObject(\"Hamilton.HxCoreLiquidDevices\");\r\n      hxCoreDevices.SetInstrumentClass(instClass);\r\n\r\n      o_arrayDeviceIDs = parsLiquidClassDevices.GetValues(); // values in array\r\n      cItems = o_arrayDeviceIDs.GetSize();\r\n\r\n\r\n         for (iItem = 0; iItem < cItems; ++iItem)\r\n         {\r\n             //Trace(o_arrayDeviceIDs.GetAt(iItem));\r\n             deviceId = o_arrayDeviceIDs[iItem];\r\n             o_arrayDeviceNames.AddAsLast(hxCoreDevices.GetViewName(deviceId));\r\n         }\r\n      \r\n      // sort arrays\r\n      Util::Sort( o_arrayDeviceIDs, o_arrayDeviceNames);\r\n   }\r\n\r\n\r\n  function GetLiquidDevicesFromCfgFile(\r\n                              variable& o_arrayDeviceIDs[], //[Out] array of int values of device IDs\r\n                              variable& o_arrayDeviceNames[] //[Out] array of strings with device view names.             \r\n   ) void\r\n      {  \r\n      object parsLiquidClassDevices;\r\n      object hxCoreDevices;\r\n      object parsObj;\r\n      object hxPar;\r\n      object enumerator;\r\n      object liqDevice;\r\n      variable name;\r\n      variable deviceId;\r\n      variable deviceCount;\r\n      variable iItem;\r\n      variable cItems;\r\n      \r\n      //SelectLiquidClass(i_liquidClassName);\r\n\r\n      o_arrayDeviceIDs.SetSize(0);\r\n      o_arrayDeviceNames.SetSize(0);\r\n\r\n      //GetLiquidClassParameter_Object( LIQUIDCLASS_PARAMS::LiquidDevice, parsLiquidClassDevices);\r\n\r\n      \r\n      parsObj.CreateObject(\"HXPARAMSLib.HxPars\");\r\n      \r\n      hxCoreDevices.CreateObject(\"Hamilton.HxCoreLiquidDevices\");\r\n      hxCoreDevices.SetInstrumentClass(instClass);\r\n\r\n      //hxCoreDevices.GetObject(\"IHxCoreLiquidDevices\", parsObj);\r\n      hxCoreDevices.GetDevices(parsObj);\r\n\r\n\r\n      enumerator = parsObj._NewEnum;\r\n\r\n      while (enumerator.EnumNext(hxPar))\r\n      {\r\n         liqDevice = hxPar.Value;\r\n         \r\n         //Trace(\"TipType=\", hxPar.Key, \"  value=\", hxPar.Value , \" name=\", liqDevice.Item1(1));\r\n          o_arrayDeviceNames.AddAsLast (liqDevice.Item1(1));\r\n          o_arrayDeviceIDs.AddAsLast (hxPar.Key);\r\n\r\n         hxPar.ReleaseObject();\r\n      }\r\n\r\n      // sort arrays\r\n      Util::Sort( o_arrayDeviceIDs, o_arrayDeviceNames);\r\n\r\n   \r\n   }\r\n\r\n\r\n\r\n   //-----------------------------------------------------------------------------------------\r\n\r\n   namespace DESCRIPTION_SECTIONS\r\n   {\r\n       static const variable None                   ( 0);\r\n       static const variable CommonParameters       ( 1);\r\n       static const variable LiquidParameters       ( 2);\r\n       static const variable CorrectionCurve        ( 4);\r\n       static const variable Notes                  ( 8);\r\n       static const variable TadmState              ( 16);\r\n       static const variable ToleranceBandVolumes   ( 32);\r\n       static const variable ToleranceBandDetails   ( 64);\r\n       static const variable All                    (CommonParameters+LiquidParameters+CorrectionCurve+Notes+TadmState+ToleranceBandVolumes+ToleranceBandDetails);\r\n   }\r\n\r\n   function GetLiquidClassDescription() variable\r\n   {\r\n      variable description;\r\n\r\n      Check_IsSelected();\r\n      \r\n      description = LIQUIDCLASSLib_LiquidClass.GetLiquidClassDescription( \r\n                              Selected_LiquidClassName, \r\n                              DESCRIPTION_SECTIONS::All);\r\n      return (description);\r\n   }\r\n\r\n\r\n// 07.04.2009: mdarin: created with claudio jrg\r\n// get tiptypes in array. (parallel-array)\r\n// get tip-name in array. (parallel-array)\r\n// tip-types depending on config-file!\r\n\r\n   function getTipTypesNames(variable& oArrTipID[], variable& oArrTipNames[]) variable\r\n   {\r\n      object objTmp;\r\n      object starTipTypes;\r\n      object parsPtr;\r\n      object enumerator;\r\n      object hxPar;\r\n      object parsOneTipType;\r\n\r\n      oArrTipID.SetSize(0);\r\n      oArrTipNames.SetSize(0);\r\n\r\n   \tif ( 0 == objTmp.CreateObject(\"Hamilton.HxCoreTipTypes\") ) // create temp object\r\n   \t{\r\n   \t\tTrace(\"ERROR: CreateObject(\\\"Hamilton.HxCoreTipTypes\\\")\"); // error create object\r\n         return(hslFalse);\r\n   \t}\r\n\r\n   \tif ( 0 == objTmp.GetObject(\"IHxCoreTipTypes2\", starTipTypes) ) // create temp object\r\n   \t{\r\n   \t\tTrace(\"ERROR: Query Interface to IHxCoreTipTypes2\"); // error create object\r\n         return(hslFalse);\r\n   \t}\r\n      //   Trace(starTipTypes);\r\n   \tif ( 0 == parsPtr.CreateObject(\"HXPARAMSLib.HxPars\") )\r\n   \t{\r\n   \t\tTrace(\"ERROR: parsPtr.CreateObject(\\\"HXPARAMSLib.HxPars\\\")\");\r\n   \t\treturn(hslFalse);\r\n   \t}\r\n\r\n      //Trace(\"Count = \", parsPtr.Count);\r\n      //Trace(starTipTypes);\r\n      starTipTypes.SetInstrumentClass(instClass);\r\n      starTipTypes.GetTipTypes(parsPtr);\r\n      // Trace(\"Count = \", parsPtr.Count);\r\n      enumerator = parsPtr._NewEnum;\r\n\r\n      while (enumerator.EnumNext(hxPar))\r\n      {\r\n         //Trace(\"TipType=\", hxPar.Key, \"  value=\", hxPar.Value);\r\n      \r\n         parsOneTipType = hxPar.Value;\r\n         //Trace(\"ViewName=\", parsOneTipType.Item1(1));\r\n\r\n         oArrTipID.AddAsLast(hxPar.Key);\r\n         oArrTipNames.AddAsLast(parsOneTipType.Item1(1));\r\n         //oArrTipNames.AddAsLast(parsOneTipType.Item1(starTipTypes.HxStarTipTypeKeys_ttViewName));\r\n         hxPar.ReleaseObject();\r\n      }\r\n\r\n   // sort arrays\r\n   Util::Sort( oArrTipID, oArrTipNames);\r\n\r\n   return(hslTrue);\r\n   }\r\n\r\n// function \"SetStateOriginalLiquid\", 2010-01-20, mdarin\r\n// Set state of the liquid-class (TRUE: Predefined / FALSE: user-defined)\r\n   function SetStateOriginalLiquid(\r\n                                    variable iState // hslTrue: set to \"predefined\", hslFalse: set to \"user-defined\"\r\n                                  ) void\r\n   {\r\n      variable actualState;\r\n\r\n      if (iState != HSL_TRUE && iState != HSL_FALSE)\r\n      {\r\n         Trace(\"ERROR: Wrong input-parameter. Only hslTrue or hslFalse allowed!\");\r\n         err.Raise( -1, \"ERROR: Wrong input-parameter. Only hslTrue or hslFalse allowed!\");\r\n      }\r\n\r\n      Check_IsSelected(); // raise error if no LC is selected in previous\r\n      actualState = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::OriginalLiquid); // get actual state of LC\r\n\r\n      // Trace(\"actualState before update: \", actualState, \" / iState: \", iState);\r\n\r\n      if (actualState != iState) // set only if \"new state\" is not equal to \"existing state\"\r\n      {\r\n         Selected_LiquidClassObject.Add( iState, LIQUIDCLASS_PARAMS::OriginalLiquid);\r\n         LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n      }\r\n      // actualState = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::OriginalLiquid);\r\n      // Trace(\"actualState AFTER update: \", actualState);\r\n   }\r\n// ------------------------------------------------------------\r\n\r\n//Get the TADM Tolerance band x-axis(time in ms) and y-axis (pressure in Pa) data\r\nfunction GetTADMToleranceBand(\r\n                           variable i_strLiquidClassName,//[In] string liquidClassName\r\n                           variable i_fltVolume, //[In] float volume\r\n                           variable i_paramTadmAspOrDispStep , //[In]  stepType -->  TadmAspirating (-533331728) , TadmDispensing (-533331727)\r\n                           variable i_paramTadmUpperOrLowerBand , //[In] TadmLowerToleranceBand(-533331871) , TadmupperToleranceBand(-533331872)\r\n                           variable& o_x_TADMBand_time_ms[], //output array of x-axis values, time in ms\r\n                           variable& o_y_TADMBand_pressure_Pa[]  //output array of y-axis values, pressure in Pa             \r\n                          )void\r\n   {\r\n      object parsObj;\r\n      variable _arr_tmp[];\r\n      variable cItems;\r\n      variable iItem;\r\n      variable isEven;\r\n      variable tmpVal;\r\n      parsObj.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n      o_x_TADMBand_time_ms.SetSize(0);\r\n      o_y_TADMBand_pressure_Pa.SetSize(0);\r\n      _arr_tmp.SetSize(0);\r\n\r\n      \r\n      LIQUIDCLASSLib_LiquidClass.GetToleranceBand(\r\n\r\n                              i_strLiquidClassName, //[In] string liquidClassName\r\n                              i_fltVolume,//[In] double volume\r\n                              i_paramTadmAspOrDispStep,//[In] HxCoreTadmStep stepType -->  tadmAspirating = -533331728 , tadmDispensing = -533331727\r\n                               parsObj, //[In] object resultPars\r\n                                 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\r\n                     );\r\n\r\n    _arr_tmp = parsObj.Item1(i_paramTadmUpperOrLowerBand);\r\n    cItems = _arr_tmp.GetSize();\r\n    isEven = 1;\r\n    for (iItem = 0; iItem < cItems; ++iItem){\r\n            tmpVal = _arr_tmp.GetAt(iItem);\r\n            if(isEven==1){\r\n                //time value , multiply by 10 to convert to ms\r\n                tmpVal = tmpVal * 10;\r\n                o_x_TADMBand_time_ms.AddAsLast(tmpVal);\r\n                isEven = 0;\r\n\r\n            }\r\n            else {\r\n                //pressure value\r\n                o_y_TADMBand_pressure_Pa.AddAsLast(tmpVal);\r\n                isEven = 1;\r\n            }\r\n     }\r\n    \r\n    \r\n  }\r\n\r\n\r\n  //-----------------------------------------------------------\r\n//FormatDesignHistoryTime   Converts a given time in s in Unix/UTC format from the liquid design history and returns a human readable date.\r\n//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\r\n\r\nprivate function FormatDesignHistoryTime(variable i_flt_time  //cdbl time in days (Time since Jan 1, 1900 , 00:00:00)\r\n                                                              ) variable\r\n   {\r\n   \r\n   variable strScriptResult;\r\n   variable _strCmd;\r\n   variable _int_days;\r\n   variable _ftl_seconds;\r\n   variable _int_seconds;\r\n   \r\n   object objScriptControl;\t\t\r\n   object objFileSystemObject;\r\n   \r\n   strScriptResult = \"\";\r\n   _int_days = MthFloor(i_flt_time);\r\n   _ftl_seconds = i_flt_time - _int_days;\r\n   _int_seconds = _ftl_seconds * 86400;\r\n   _int_seconds = MthRound(_int_seconds, 9);\r\n   _strCmd = StrConcat8(Translate(\"GetTimeReadable(\"), _int_days, \",\", _int_seconds, \")\", \"\", \"\", \"\");\r\n\r\n\r\n         //get directories\r\n         objFileSystemObject.CreateObject(\"Scripting.FileSystemObject\");\r\n         objScriptControl.CreateObject(\"MSScriptControl.ScriptControl\");\r\n\r\n         // - create script\r\n\t\t\tobjScriptControl.Language = \"VBScript\";\r\n\t\t\tobjScriptControl.AddObject(\"fso\", objFileSystemObject);\t\r\n         \r\n        \t\t\tobjScriptControl.AddCode\r\n\t\t\t(\"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\n\\\r\n\t\t\t\tOption Explicit\t\t\t\t\t\t\t\t\t\t\t\\n\\\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\n\\\r\n\t\t\t\tFunction GetTimeReadable(days, seconds)   \\n\\\r\n               Dim epochDays, epochSeconds  \\n\\\r\n               Dim tDays, t  \t\t\t\t\t\t   \\n\\\r\n               Dim strDate          \\n\\\r\n               epochDays = DateDiff(\\\"d\\\", \\\"01/01/1900 00:00:00\\\", days)  \\n\\\r\n               tDays = DateAdd(\\\"d\\\", epochDays ,\\\"01/01/1900 00:00:00\\\")      \\n\\\r\n               t = DateAdd(\\\"s\\\", seconds ,tDays & \\\" 00:00:00\\\") \\n\\\r\n               strDate = Year(t) & \\\"-\\\" & _     \\n\\\r\n                         Right(\\\"0\\\" & Month(t),2)  & \\\"-\\\" & _        \\n\\\r\n                         Right(\\\"0\\\" & Day(t),2)  & \\\"_\\\" & _           \\n\\\r\n                         Right(\\\"0\\\" & Hour(t),2) & \\\":\\\" & _                   \\n\\\r\n                         Right(\\\"0\\\" & Minute(t),2) & \\\":\\\" & _                 \\n\\\r\n                         Right(\\\"0\\\" & Second(t),2)                     \\n\\\r\n               GetTimeReadable = \tCStr(strDate)     \t\t\t\t\t   \\n\\\r\n\t\t\t\tEnd Function\t\t\t\t\t\t\t\t\t\t\t\t\\n\\\r\n\t\t\t\");\r\n\r\n         // - execute script      \r\n\t\t   strScriptResult = objScriptControl.Eval(_strCmd);\r\n          \r\n         //Trace(strScriptResult) ;       \r\n\r\n         // - clean up\r\n         objScriptControl.ReleaseObject();\r\n         objFileSystemObject.ReleaseObject();\r\n \r\n      return (strScriptResult);\r\n   \r\n   \r\n   }\r\n\r\n//-----------------------------------------------------------\r\n//Get Liquid Class Design History. \r\n//Returns arrays with info of the changes:\r\n//- o_arr_designHistory_user  :     User that made the change\r\n//- o_arr_designHistory_description :  Change description\r\n//- o_arr_designHistory_formattedTime:   Change time in YYYY-MM-DD HH:MM:SS\r\n//- o_arr_designHistory_unixTime   :  Change time in unix format (days since Jan 1, 1900 00:00:00 GMT)\r\n\r\nfunction GetLiquidClassDesignHistory (variable i_liquidClassName ,                    //[in] string,  liquid class name\r\n                                      variable& o_arr_designHistory_user[],           //[out]   User that made the change\r\n                                      variable& o_arr_designHistory_description[],    //  Change description\r\n                                      variable& o_arr_designHistory_formattedTime[],  //   Change time in YYYY-MM-DD HH:MM:SS\r\n                                      variable& o_arr_designHistory_unixTime[])       //  Change time in unix format (days since Jan 1, 1900 00:00:00 GMT)\r\n\r\n      {\r\n\r\n         object objDH;\r\n         variable arrVals[];\r\n         variable arrKeys[];\r\n         variable arr_tmp_timestamps[];\r\n         variable cItems;\r\n         variable iItem;\r\n         object obj2; \r\n         variable cItems2;\r\n         variable iItem2;\r\n         variable arrKeys2[];\r\n         variable arrVals2[];\r\n\r\n         SelectLiquidClass (i_liquidClassName);\r\n         GetLiquidClassParameter_Object(LIQUIDCLASS_PARAMS::DesignHistory, objDH);\r\n         arrKeys.SetSize(0);\r\n         arrVals.SetSize(0);\r\n         o_arr_designHistory_user.SetSize(0);\r\n         o_arr_designHistory_description.SetSize(0);\r\n         o_arr_designHistory_unixTime.SetSize(0);\r\n         o_arr_designHistory_formattedTime.SetSize(0);\r\n\r\n         objDH.GetItems( arrKeys, arrVals);\r\n         cItems = arrKeys.GetSize();\r\n         for (iItem = 0; iItem < cItems; ++iItem)\r\n         {\r\n            obj2 = objDH.Item1(arrKeys.GetAt(iItem)); \r\n            obj2.GetItems(arrKeys2, arrVals2);\r\n            cItems2 = arrKeys2.GetSize();\r\n            for (iItem2 = 0; iItem2 < cItems2; ++iItem2)\r\n            {\r\n               \r\n               \r\n              // Trace( iItem2 , \">> Key: \" , arrKeys2.GetAt(iItem2) , \" Value:\",   arrVals2.GetAt(iItem2));\r\n               if(iItem2==1) o_arr_designHistory_description.AddAsLast(arrVals2.GetAt(iItem2));\r\n               if(iItem2==2) o_arr_designHistory_user.AddAsLast(arrVals2.GetAt(iItem2));\r\n               if(iItem2==3) {\r\n                  o_arr_designHistory_unixTime.AddAsLast(arrVals2.GetAt(iItem2));\r\n                  o_arr_designHistory_formattedTime.AddAsLast(FormatDesignHistoryTime(arrVals2.GetAt(iItem2)));\r\n                  }\r\n            }   \r\n         }         \r\n\r\n\r\n      arr_tmp_timestamps=o_arr_designHistory_unixTime;\r\n      Util::Sort(o_arr_designHistory_formattedTime, arr_tmp_timestamps);\r\n      arr_tmp_timestamps=o_arr_designHistory_unixTime;\r\n      //Util::Sort( values[], keys[]) .. It sorts by keys.\r\n      Util::Sort(o_arr_designHistory_user, arr_tmp_timestamps);\r\n      Util::Sort(o_arr_designHistory_description, o_arr_designHistory_unixTime); \r\n      //Util2::Debug::TraceArray_4(Translate(\"Arrays\"), o_arr_designHistory_unixTime, o_arr_designHistory_user, o_arr_designHistory_description, o_arr_designHistory_formattedTime);\r\n\r\n\r\n   }\r\n\r\nfunction GetTADMVolumes(\r\n                        variable i_liquidClassName ,                    //[in] string,  liquid class name \r\n                        variable& o_arrayTADM_Asp_Volumes[] , //[In]  stepType -->  TadmAspirating (-533331728) , TadmDispensing (-533331727)\r\n                        variable& o_arrayTADM_Disp_Volumes[] ){     //[Out] array of TADM volumes\r\n           \r\n\r\n      object parsObj;\r\n         variable arrVals[];\r\n         variable arrKeys[];\r\n         variable cItems;\r\n         variable iItem;\r\n         object obj2; \r\n         variable cItems2;\r\n         variable iItem2;\r\n         variable arrKeys2[];\r\n         variable arrVals2[];\r\n         variable volume;\r\n         variable aspOrDisp;\r\n      parsObj.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n      o_arrayTADM_Asp_Volumes.SetSize(0);\r\n      o_arrayTADM_Disp_Volumes.SetSize(0);\r\n\r\n      LIQUIDCLASSLib_LiquidClass.GetVolumes(i_liquidClassName, parsObj);\r\n      \r\n         arrKeys.SetSize(0);\r\n         arrVals.SetSize(0);\r\n\r\n         parsObj.GetItems(arrKeys, arrVals);\r\n         cItems = arrKeys.GetSize();\r\n         for (iItem = 0; iItem < cItems; ++iItem)\r\n         {\r\n           \r\n            aspOrDisp = IVal(arrKeys.GetAt(iItem));\r\n             //Trace(\"//// aspOrDisp=\", aspOrDisp);\r\n            obj2 = parsObj.Item1(arrKeys.GetAt(iItem)); \r\n            obj2.GetItems(arrKeys2, arrVals2);\r\n            cItems2 = arrKeys2.GetSize();\r\n            for (iItem2 = 0; iItem2 < cItems2; ++iItem2)\r\n            {\r\n                volume = arrVals2.GetAt(iItem2);\r\n         \r\n               if (aspOrDisp == LIQUIDCLASS_PARAMS::TadmAspirateStep){o_arrayTADM_Asp_Volumes.AddAsLast(volume);}\r\n               if (aspOrDisp == LIQUIDCLASS_PARAMS::TadmDispenseStep){o_arrayTADM_Disp_Volumes.AddAsLast(volume);}\r\n               \r\n               //Trace( \"item=\",iItem , \" iItem2=\", iItem2 , \">> Key: \" , arrKeys2.GetAt(iItem2) , \" Value:\",   arrVals2.GetAt(iItem2));\r\n \r\n            }   \r\n         }  \r\n\r\n    }\r\n\r\nfunction GetLiquidNames(variable o_liquidNames[])\r\n{\r\n   object parsObj;\r\n   object hxPar;\r\n   object enumerator;\r\n   object obj;\r\n   variable dummyArray[];\r\n   parsObj.CreateObject(\"HXPARAMSLib.HxPars\");\r\n   LIQUIDCLASSLib_LiquidClass.GetLiquidNames(parsObj);\r\n\r\n   o_liquidNames.SetSize(0);\r\n\r\n       enumerator = parsObj._NewEnum;\r\n\r\n      while (enumerator.EnumNext(hxPar))\r\n      {\r\n         //Trace(\"TipType=\", hxPar.Key, \"  value=\", hxPar.Value);\r\n         o_liquidNames.AddAsLast(hxPar.Value);\r\n         hxPar.ReleaseObject();\r\n      }\r\n\r\n      //Sort( values[], keys[]) .. It sorts by keys.\r\n      dummyArray.SetSize(o_liquidNames.GetSize());\r\n      Util::Sort(dummyArray, o_liquidNames);\r\n\r\n}\r\n\r\nfunction GetLiqClassChecksum(variable i_liquidClassName, variable o_int_checksum , variable i_bln_trace ){\r\n Check_IsInitialized();\r\n LIQUIDCLASSLib_LiquidClass.GetLiquidClassCheckSum (i_liquidClassName, o_int_checksum);\r\n if(i_bln_trace==1){ \r\n   Trace(\"Liquid Class = \", i_liquidClassName, \" , Checksum=\", o_int_checksum);  \r\n }\r\n   \r\n}\r\n\r\n\r\n}\r\n\r\n// $$author=Cuevas_A$$valid=0$$time=2021-10-21 14:43$$checksum=9bcb11a0$$length=085$$"
  },
  {
    "path": "pyhamilton/library/HslHamHeaterShakerStringTableEnu.hs_",
    "content": "// ======================================================================\r\n// This is the language dependant part of the HSLHamHeaterShaker Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// do not translate IDS::helpFileName,\t\"HSLHAMHEATERSHAKERLIB%s.CHM\"\r\n//\r\n// ======================================================================\r\n\r\nfunction StringTable()\r\n{\r\n   // Function names\r\n    Insert(IDF::CreateStarDevice, \"HSLHamHeaterShakerLib - CreateStarDevice\");\r\n    Insert(IDF::CreateUsbDevice, \"HSLHamHeaterShakerLib - CreateUsbDevice\");\r\n    Insert(IDF::Terminate, \"HSLHamHeaterShakerLib - Terminate\");\r\n\r\n    Insert(IDF::StartShaker, \"HSLHamHeaterShakerLib - StartShaker\");\r\n    Insert(IDF::StopShaker, \"HSLHamHeaterShakerLib - StopShaker\");\r\n    Insert(IDF::StartShakerTimed, \"HSLHamHeaterShakerLib - StartShakerTimed\");\r\n    Insert(IDF::WaitForShaker, \"HSLHamHeaterShakerLib - WaitForShaker\");\r\n    Insert(IDF::StartAllShaker, \"HSLHamHeaterShakerLib - StartAllShaker\");\r\n    Insert(IDF::StartAllShakerTimed, \"HSLHamHeaterShakerLib - StartAllShakerTimed\");\r\n    Insert(IDF::StopAllShaker, \"HSLHamHeaterShakerLib - StopAllShaker\");\r\n    Insert(IDF::SetShakerParameter, \"HSLHamHeaterShakerLib - SetShakerParameter\");\r\n    Insert(IDF::GetShakerParameter, \"HSLHamHeaterShakerLib - GetShakerParameter\");\r\n    Insert(IDF::GetShakerSpeed, \"HSLHamHeaterShakerLib - GetShakerSpeed\");\r\n\r\n    Insert(IDF::StartTempCtrl, \"HSLHamHeaterShakerLib - StartTempCtrl\");\r\n    Insert(IDF::StopTempCtrl, \"HSLHamHeaterShakerLib - StopTempCtrl\");\r\n    Insert(IDF::WaitForTempCtrl,\"HSLHamHeaterShakerLib - WaitForTempCtrl\");\r\n    Insert(IDF::GetTemperature, \"HSLHamHeaterShakerLib - GetTemperature\");\r\n    Insert(IDF::GetTemperatureState, \"HSLHamHeaterShakerLib - GetTemperatureState\");\r\n    Insert(IDF::SetTempParameter, \"HSLHamHeaterShakerLib - SetTempParameter\");\r\n    Insert(IDF::GetTempParameter, \"HSLHamHeaterShakerLib - GetTempParameter\");\r\n\r\n    Insert(IDF::SetPlateLock, \"HSLHamHeaterShakerLib - SetPlateLock\");\r\n    Insert(IDF::GetFirmwareVersion, \"HSLHamHeaterShakerLib - GetFirmwareVersion\");\r\n    Insert(IDF::GetSerialNumber, \"HSLHamHeaterShakerLib - GetSerialNumber\");\r\n    Insert(IDF::BeginMonitoring, \"HSLHamHeaterShakerLib - BeginMonitoring\");\r\n    Insert(IDF::EndMonitoring, \"HSLHamHeaterShakerLib - EndMonitoring\");\r\n\r\n    Insert(IDF::SendFirmwareCommand, \"HSLHamHeaterShakerLib - SendFirmwareCommand\");\r\n    Insert(IDF::SetSimulation, \"HSLHamHeaterShakerLib - SetSimulation\");\r\n    Insert(IDF::SetUSBTrace, \"HSLHamHeaterShakerLib - SetUSBTrace\");\r\n    Insert(IDF::Monitoring, \"HSLHamHeaterShakerLib - Monitoring\");\r\n\r\n    // Error\r\n    Insert(IDE::noError, \"No error.\");\r\n    Insert(IDE::retErr, \"Fatal error\");\r\n    Insert(IDE::retNotInitErr, \"Node not initialized\");\r\n    Insert(IDE::retNotConnectErr, \"Device not connected\");\r\n    Insert(IDE::canError, \"No communication to CAN node.\");\r\n    Insert(IDE::eepromError, \"No communication to EEPROM.\");\r\n    Insert(IDE::syntaxCmdError, \"Unknown command.\");\r\n    Insert(IDE::syntaxParUnkError, \"Unknown parameter.\");\r\n    Insert(IDE::syntaxParRangeError, \"Parameter out of range.\");\r\n    Insert(IDE::generalVoltError, \"Voltage outside permitted range.\");\r\n    Insert(IDE::generalStopError, \"Stop received.\");\r\n    Insert(IDE::generalAddrError, \"Wrong system address.\");\r\n    Insert(IDE::parallelError, \"Parallel commands are not allowed.\");\r\n    Insert(IDE::shakerInitError, \"Shaker initialization failt.\");\r\n    Insert(IDE::shakerNotInitError, \"Shaker not initialized.\");\r\n    Insert(IDE::shakerStepLossError, \"Shaker step loss.\");\r\n    Insert(IDE::shakerStartModeError, \"Shaker is not started with timeout.\");\r\n    Insert(IDE::plateLockInitError, \"Plate lock initialization failt.\");\r\n    Insert(IDE::plateLockNotInitError, \"Plate lock not initialized.\");\r\n    Insert(IDE::plateLockStepLossError, \"Plate lock step loss.\");\r\n    Insert(IDE::tempNotStartError, \"Temperature controlling not started.\");\r\n    Insert(IDE::tempTimeoutError, \"Timeout of temperature supervision\");\r\n    Insert(IDE::tempSuperRangeError, \"Temperature out of supervision range.\");\r\n    Insert(IDE::tempSecurRangeError, \"Temperature out of security range.\");\r\n    Insert(IDE::tempSensorError, \"Temperature sensor error\");\r\n    Insert(IDE::commandSendTimeout, \"Time out occured on command ='%s'\");\r\n    Insert(IDE::unknowFwError, \"Unknow firmware error = '%s'\");\r\n\r\n    // no firmware errors\r\n    Insert(IDE::noStringValue, \"Wrong type of parameter; '%s1 ( %s2 )' must be a sting.\");\r\n    Insert(IDE::noIntegerValue, \"Wrong type of parameter; '%s1 ( %s2 )' must be a whole number.\");\r\n    Insert(IDE::noDoubleValue, \"Wrong type of parameter; '%s1 ( %s2 )' must be a whole or decimal number.\");\r\n    Insert(IDE::neededNodeNotAvailable, \"%s1 '%s2' not available.\");\r\n    Insert(IDE::unknownResultFormat, \"Unknown format of firmware result string.\\r\\nExpected: '%s1'.\\r\\nReceived: '%s2'.\");\r\n    Insert(IDE::wrongParameterLength, \"Wrong length of input parameter.\\r\\nParameter = '%s1' length ( %s2 ).\\r\\nExpected lenght ( %s3 ).\");\r\n    Insert(IDE::functionNotImplemented, \"The called function is not supported.\");\r\n    Insert(IDE::unexpectedFirmwareResponseFormat, \"Failed to parse firmware response ('%s1').\");\r\n\r\n    // Message\r\n    Insert(IDS::traceSource, \"SYSTEM\");\r\n    Insert(IDS::helpFileName, \"HslHamHeaterShakerLib%s.chm\");\r\n    Insert(IDS::sendMessageTitle, \"Send message = \");\r\n    Insert(IDS::receiveMessageTitle, \"Received answer = \");\r\n    Insert(IDS::setSimulate, \"Set simulate mode = \");\r\n    Insert(IDS::starNode, \"ML_Star node\");\r\n    Insert(IDS::usbNode, \"USB node\");\r\n    Insert(IDS::noUsbConnection, \"No connection to USB device.\");\r\n    Insert(IDS::parameterOutOfRange, \"Parameter out of range; '%s1 ( %s2 )' must be between [%s3..%s4].\");\r\n    Insert(IDS::neededNodeNotInitialized, \"%s1 '%s2' not initialized'.\");\r\n    Insert(IDS::setTrace, \"Set USB trace mode = \");\r\n    Insert(IDS::firmwareVersion, \"%s1 '%s2' firmware version = \");\r\n    Insert(IDS::cannotCreateUsbPort, \"USB communication cannot be created.\");\r\n    Insert(IDS::timeoutDuringWaitShaker, \"Time out during wait for end shaking. Shaking will be stop.\");\r\n    Insert(IDS::progressSendTo, \"Send command to %s1 ( %s2 ).\");\r\n    Insert(IDS::startTimeout, \"Start time out = \");\r\n    Insert(IDS::toleranceRange, \"Temperature range = \");\r\n    Insert(IDS::securityRange, \"Security range = \");\r\n    Insert(IDS::shakingDirection, \"Shaking direction = \");\r\n    Insert(IDS::shakingSpeed, \"Shaking speed = \");\r\n    Insert(IDS::shakingAccRamp, \"Shaking acceleration ramp = \");\r\n    Insert(IDS::sendToStar, \"HSLHamHeaterShakerLib::SendToStar\");\r\n    Insert(IDS::sendToUsb, \"HSLHamHeaterShakerLib::SendToUsb\");\r\n    Insert(IDS::invalidStarDevice, \"Parameter 'starDevice' contains an invalid object.\");\r\n    Insert(IDS::invalidDeviceNumber, \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\");\r\n    Insert(IDS::maxHHSReached, \"Cannot create the deviceNumber; Maximal count of usable HHS is reached.\");\r\n    Insert(IDS::shakingNotActivated, \"Current HHS module on %s1 '%s2' cannot used as shaker.\");\r\n    Insert(IDS::heatingNotActivated, \"Current HHS module on %s1 '%s2' cannot used as heater.\");\r\n    Insert(IDS::monitoringShakingTitle, \"Current speed (RPM) = \");\r\n    Insert(IDS::monitoringTempTitle, \"Current temperature = \");\r\n    Insert(IDS::monitoringTempHeatUpTitle, \"Current temperature (heating up mode) = \");\r\n    Insert(IDS::monitoringStateTitle, \"Current monitored state = \");\r\n    Insert(IDS::monitoringWarning, \"Warning: \");\r\n    Insert(IDS::monitoringShNotStart, \"Shaking on %s1 ( %s2 ) not started, check of speed limit will be disabled!\");\r\n    Insert(IDS::monitoringHeNotStart, \"Heating up on %s1 ( %s2 ) not started, check of temperature limit will be disabled!\");\r\n    Insert(IDS::monitoringAbort, \"Heating or shaking is out of range; Method will be abort!\");\r\n}\r\n// $$author=ContainerAdministrator$$valid=1$$time=2025-06-16 22:55$$checksum=7980e45d$$length=099$$"
  },
  {
    "path": "pyhamilton/library/Labware Properties/Labware_Property_Query.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 7/23/2021 11:08:24 PM\r\n\r\n#pragma global\r\n#ifndef HSL_RUNTIME\r\nnamespace LPQ {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction ADJUST_AddCarrierToDeckSite( device & Instrument, variable i_str_ConfigFile, variable i_str_NewLabwareID, variable i_int_DeckPosition ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction ADJUST_ChangeLabwareID( device & Instrument, variable i_str_LabwareID, variable i_str_NewLabID ) void { }\r\nfunction ADJUST_GetCurrentStack( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void { }\r\nfunction ADJUST_MoveLabwareSite( device & Instrument, sequence i_seq_LabwareToAdjust, variable i_str_NewSiteID ) void { }\r\nfunction ADJUST_MoveLabwareToDeckSite( device & Instrument, variable i_str_Labware, variable i_str_Template, variable i_str_Site ) void { }\r\nfunction ADJUST_OffsetWells( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset ) void { }\r\nfunction ADJUST_OffsetWells2( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset, variable i_flt_Z_Offset ) void { }\r\nfunction ADJUST_RotateLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_TargetRotation ) void { }\r\nfunction ADJUST_SetAbsolutePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { }\r\nfunction ADJUST_SetAbsolutePositionForLabwareID( device & Instrument, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { }\r\nfunction ADJUST_SetProperties( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_strPropertyKey, variable i_strProperyValue ) void { }\r\nfunction ADJUST_SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void { }\r\nfunction ADJUST_SetRelativePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { }\r\nfunction ADJUST_SetRelativePositionForLabwareID( device & Instrument, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { }\r\nfunction 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 { }\r\nfunction ADJUST_StackDecrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void { }\r\nfunction ADJUST_StackIncrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_str_LabwareID ) void { }\r\nfunction 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 { }\r\nfunction CONT_GetBaseMeasurement( device & Instrument, sequence & i_seq_Labware, variable & o_flt_ContainerBaseThickness, variable & o_flt_ContainerBaseOffset ) void { }\r\nfunction CONT_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ContainerFileName ) void { }\r\nfunction CONT_GetContainerBaseThickness( device & Instrument, sequence i_seq_Labware, variable & o_containerBaseThickness ) void { }\r\nfunction CONT_GetContainerDepth( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void { }\r\nfunction CONT_GetContainerWidth( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerWidth ) void { }\r\nfunction FILE_GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable {  return (0); }\r\nfunction LABWARE_GetCarrierAndSiteID( device & Instrument, sequence i_seq_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void { }\r\nfunction LABWARE_GetCarrierTracks( device & Instrument, sequence i_seq_Labware, variable & o_int_TotalTracks, variable & o_int_LeftMostTrack, variable & o_int_RightMostTrack ) void { }\r\nfunction LABWARE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void { }\r\nfunction LABWARE_GetContainerBaseOffset( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerBaseOffset ) void { }\r\nfunction LABWARE_GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { }\r\nfunction LABWARE_GetDescription( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareDescription ) void { }\r\nfunction LABWARE_GetFirstPosition( device & Instrument, variable i_str_LabID, variable & o_str_PosID ) void { }\r\nfunction LABWARE_GetLabwareCenter( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void { }\r\nfunction LABWARE_GetLabwareLW( device & Instrument, sequence i_seq_Labware, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void { }\r\nfunction LABWARE_GetLabwareOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { }\r\nfunction LABWARE_GetLabwareStackHeight( device & Instrument, sequence i_seq_Labware, variable & o_flt_LabwareStackHeight ) void { }\r\nfunction LABWARE_GetLabwareViewName( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareViewName ) void { }\r\nfunction LABWARE_GetRackHeight( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void { }\r\nfunction 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 { }\r\nfunction LABWARE_GetVisibility( device & Instrument, sequence i_seq_Labware, variable & o_bool_LabwareVisibility ) void { }\r\nfunction LABWARE_IsContainersConnected( device & Instrument, sequence i_seq_Labware, variable & o_bool_ConnectedContainer ) void { }\r\nfunction SEQ_GetDefaultSequence( device & Instrument, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void { }\r\nfunction SEQ_ReloadSequence( device & Instrument, sequence & io_seq_SequenceToReload ) void { }\r\nfunction TEMPLATE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void { }\r\nfunction TEMPLATE_GetConfigFile2( device & Instrument, variable i_str_Labware, variable & o_str_ConfigFilePath ) void { }\r\nfunction TEMPLATE_GetTemplateOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { }\r\nfunction TEMPLATE_GetTemplateOrigin2( device & Instrument, variable i_str_TemplateLabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2021-07-23 23:08$$checksum=48be9e9d$$length=083$$"
  },
  {
    "path": "pyhamilton/library/Labware Properties/Labware_Property_Query.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma global\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"Labware Properties\\\\Resources\\\\LPQ_GLOBAL.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"Alpha Numeric Conversion\\\\Alpha Numeric Conversion.hs_\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSLDeckVisualize.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace LPQ {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction ADJUST_AddCarrierToDeckSite( device & Instrument, variable i_str_ConfigFile, variable i_str_NewLabwareID, variable i_int_DeckPosition ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction ADJUST_ChangeLabwareID( device & Instrument, variable i_str_LabwareID, variable i_str_NewLabID ) void ;\r\nfunction ADJUST_GetCurrentStack( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void ;\r\nfunction ADJUST_MoveLabwareSite( device & Instrument, sequence i_seq_LabwareToAdjust, variable i_str_NewSiteID ) void ;\r\nfunction ADJUST_MoveLabwareToDeckSite( device & Instrument, variable i_str_Labware, variable i_str_Template, variable i_str_Site ) void ;\r\nprivate function ADJUST_MoveSitesDelta( device & Instrument, variable i_str_Template, variable i_flt_DeltaX, variable i_flt_DeltaY, variable i_flt_DeltaZ ) void ;\r\nfunction ADJUST_OffsetWells( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset ) void ;\r\nfunction ADJUST_OffsetWells2( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset, variable i_flt_Z_Offset ) void ;\r\nfunction ADJUST_RotateLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_TargetRotation ) void ;\r\nfunction ADJUST_SetAbsolutePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ;\r\nfunction ADJUST_SetAbsolutePositionForLabwareID( device & Instrument, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ;\r\nfunction ADJUST_SetProperties( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_strPropertyKey, variable i_strProperyValue ) void ;\r\nfunction ADJUST_SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void ;\r\nfunction ADJUST_SetRelativePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ;\r\nfunction ADJUST_SetRelativePositionForLabwareID( device & Instrument, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ;\r\nfunction 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 ;\r\nfunction ADJUST_StackDecrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void ;\r\nfunction ADJUST_StackIncrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_str_LabwareID ) void ;\r\nfunction 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 ;\r\nfunction CONT_GetBaseMeasurement( device & Instrument, sequence & i_seq_Labware, variable & o_flt_ContainerBaseThickness, variable & o_flt_ContainerBaseOffset ) void ;\r\nfunction CONT_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ContainerFileName ) void ;\r\nfunction CONT_GetContainerBaseThickness( device & Instrument, sequence i_seq_Labware, variable & o_containerBaseThickness ) void ;\r\nfunction CONT_GetContainerDepth( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void ;\r\nfunction CONT_GetContainerWidth( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerWidth ) void ;\r\nfunction FILE_GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable ;\r\nfunction LABWARE_GetCarrierAndSiteID( device & Instrument, sequence i_seq_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void ;\r\nfunction LABWARE_GetCarrierTracks( device & Instrument, sequence i_seq_Labware, variable & o_int_TotalTracks, variable & o_int_LeftMostTrack, variable & o_int_RightMostTrack ) void ;\r\nfunction LABWARE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void ;\r\nfunction LABWARE_GetContainerBaseOffset( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerBaseOffset ) void ;\r\nfunction LABWARE_GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ;\r\nfunction LABWARE_GetDescription( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareDescription ) void ;\r\nfunction LABWARE_GetFirstPosition( device & Instrument, variable i_str_LabID, variable & o_str_PosID ) void ;\r\nfunction LABWARE_GetLabwareCenter( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void ;\r\nfunction LABWARE_GetLabwareLW( device & Instrument, sequence i_seq_Labware, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void ;\r\nfunction LABWARE_GetLabwareOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ;\r\nfunction LABWARE_GetLabwareStackHeight( device & Instrument, sequence i_seq_Labware, variable & o_flt_LabwareStackHeight ) void ;\r\nfunction LABWARE_GetLabwareViewName( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareViewName ) void ;\r\nfunction LABWARE_GetRackHeight( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void ;\r\nfunction 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 ;\r\nfunction LABWARE_GetVisibility( device & Instrument, sequence i_seq_Labware, variable & o_bool_LabwareVisibility ) void ;\r\nfunction LABWARE_IsContainersConnected( device & Instrument, sequence i_seq_Labware, variable & o_bool_ConnectedContainer ) void ;\r\nfunction SEQ_GetDefaultSequence( device & Instrument, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void ;\r\nprivate function SEQ_GetDefaultSequenceForLabware( device & Instrument, variable i_str_LabwareID, sequence & o_seq_DefaultSequence ) void ;\r\nfunction SEQ_ReloadSequence( device & Instrument, sequence & io_seq_SequenceToReload ) void ;\r\nfunction TEMPLATE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void ;\r\nfunction TEMPLATE_GetConfigFile2( device & Instrument, variable i_str_Labware, variable & o_str_ConfigFilePath ) void ;\r\nfunction TEMPLATE_GetTemplateOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ;\r\nfunction TEMPLATE_GetTemplateOrigin2( device & Instrument, variable i_str_TemplateLabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ;\r\nprivate function _CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void ;\r\nprivate function _CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void ;\r\nprivate function _ConvertToFloat( variable iVariable, variable & oVariable ) void ;\r\nprivate function _ConvertToInteger( variable iVariable, variable & oVariable ) void ;\r\nprivate function _FunctionError( variable i_str_FunctionName, variable i_str_ErrorDescription ) void ;\r\nprivate function _GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ;\r\nprivate function _GetLabwareWL( device & Instrument, variable i_str_LabID, variable & o_flt_LabwareWidth, variable & o_flt_LabwareLength ) void ;\r\nprivate function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable ;\r\nprivate function _Lookup( variable & array[], variable item ) variable ;\r\nprivate function _RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nANC::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nANC::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"_Lookup\" \"Begin\"\r\nprivate function _Lookup( variable & array[], variable item ) variable {\r\n// }} \"\"\r\nprivate variable index;\r\nprivate variable lookupreturn;\r\n// {{ 5 \"_Lookup\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"bb21371b_12f5_4675_a40eca6fa05d908c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlookupreturn = Util::Lookup(array, item, index);\r\n// }} \"\"\r\n// {{ 1476 1 0 \"116d2bcd_7c6a_4bb1_801246bbff09b5fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lookupreturn > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1477 1 0 \"ef916050_81c9_431b_98d54feeedead5f4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nindex = index + 1;\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"9035fe7f_af4f_4f11_b8c424b01ed5b4a2\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (index);\r\n// }} \"\"\r\n// {{ 1479 1 0 \"116d2bcd_7c6a_4bb1_801246bbff09b5fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"2d5cdb77_ae42_4a31_b00deefabcda0e60\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{ 1481 1 0 \"116d2bcd_7c6a_4bb1_801246bbff09b5fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Lookup\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_ChangeLabwareID\" \"Begin\"\r\nfunction ADJUST_ChangeLabwareID( device & Instrument, variable i_str_LabwareID, variable i_str_NewLabID ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"ADJUST_ChangeLabwareID\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 192 1 0 \"2cee2429_3103_4b1b_a016bf500e458cf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 193 1 0 \"196594b2_bcde_4322_8df441c075c87f30\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 195 1 0 \"71f20b53_66ef_436a_a9ebf71039c7cde6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 196 1 0 \"8642197c_fd03_44df_a3ed42dbb392e25a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 197 1 0 \"5c906070_eb7e_4ad5_be8b6fd5dbbd1333\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 198 1 0 \"7157ca89_882f_4dd9_bd6c9b8fc2f1345c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 199 1 0 \"f5b6338a_9ecf_4d26_ac6ec3e2e9b7bd06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 201 1 0 \"2cee2429_3103_4b1b_a016bf500e458cf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"Labware ID:  \",i_str_LabwareID,\"  -  \",\"New ID:  \",i_str_NewLabID);\r\n// {{ 203 1 0 \"7cd5868d_3c3c_436a_a75bb6bd99ea34c8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n{\r\n   object objDeckLayout;\r\n   //object objLabware;\r\n   object objEditDeckLayout8;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      objDeckLayout.GetObject(\"IEditDeckLayout8\", objEditDeckLayout8);\r\n      objEditDeckLayout8.RenameLabware(i_str_NewLabID,i_str_LabwareID);\r\n   }\r\n\r\n   objDeckLayout.ReleaseObject();\r\n   objEditDeckLayout8.ReleaseObject();\r\n}\r\n// {{ 205 1 0 \"bc302fce_0178_4994_9cfb2a8f4f7c204b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 207 1 0 \"bc302fce_0178_4994_9cfb2a8f4f7c204b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_ChangeLabwareID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_MoveLabwareSite\" \"Begin\"\r\nfunction ADJUST_MoveLabwareSite( device & Instrument, sequence i_seq_LabwareToAdjust, variable i_str_NewSiteID ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable str_CurrentTemplate;\r\nprivate variable str_LabID;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_CurrentSite;\r\n// {{ 5 \"ADJUST_MoveLabwareSite\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 218 1 0 \"5c1b8fb2_9366_4958_871e0f24853cc09d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"2f4f6025_483d_4c10_98020df1d6e16c0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 221 1 0 \"ab4db9c7_e622_4dc8_ac1c4bb7f53665e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 222 1 0 \"244494ad_df8b_40e4_889a89fc77fe2f53\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 223 1 0 \"cb159cbf_dade_46eb_8e1e364140446948\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 224 1 0 \"c03ba6c4_b5d7_4c5e_9b837f252a4093b2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 225 1 0 \"df6a27b2_d4cb_46ca_ba078eea3034c463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 227 1 0 \"5c1b8fb2_9366_4958_871e0f24853cc09d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 228 1 0 \"5a408507_7fdc_4ae0_b980b1a61cc2e6e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 229 1 0 \"1a32db8a_e01f_46f7_adec4bede4624ba5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 231 1 0 \"4f132fab_a4bb_4b8d_a2a4bc349766325e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwareToAdjust, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 232 1 0 \"ab34ec23_f650_4a75_860e3cab81895f2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 233 1 0 \"86dd20c3_f433_4af4_bffdda0eda18da3f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 234 1 0 \"ab34ec23_f650_4a75_860e3cab81895f2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 235 1 0 \"5a408507_7fdc_4ae0_b980b1a61cc2e6e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 236 1 0 \"0864c0c6_de11_4fd2_aff14fe4f918f903\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetCarrierAndSiteID(Instrument, i_seq_LabwareToAdjust, str_CurrentTemplate, str_CurrentSite);\r\n// }} \"\"\r\nTrace(\"Move \",str_LabID,\" on \",str_CurrentTemplate,\" from \",str_CurrentSite,\" to \",i_str_NewSiteID);\r\n// {{ 238 1 0 \"41b0ecc2_fabc_4e47_bd2c37e9da2d7a7c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n{\r\n   object objDeckLayout;\r\n   object objLabware;\r\n   object objEditDeckLayout8;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      objLabware = objDeckLayout.Labware(str_CurrentTemplate);\r\n      objLabware.GetObject(\"ITemplate\", objEditDeckLayout8);\r\n      objEditDeckLayout8.MoveLabware(str_LabID,i_str_NewSiteID);\r\n   }\r\n\r\n   objDeckLayout.ReleaseObject();\r\n   objEditDeckLayout8.ReleaseObject();\r\n   objLabware.ReleaseObject();\r\n}\r\n// {{ 240 1 0 \"7a7a104b_a9d6_42d7_9791294aa1ebdcf7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 242 1 0 \"7a7a104b_a9d6_42d7_9791294aa1ebdcf7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_MoveLabwareSite\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_MoveLabwareToDeckSite\" \"Begin\"\r\nfunction ADJUST_MoveLabwareToDeckSite( device & Instrument, variable i_str_Labware, variable i_str_Template, variable i_str_Site ) void {\r\n// }} \"\"\r\n// {{ 5 \"ADJUST_MoveLabwareToDeckSite\" \"InitLocals\"\r\n// }} \"\"\r\n{\r\n   object objDeckLayout;\r\n   object objLabware;\r\n   object objEditDeckLayout8;\r\n   object objTemplate;\r\n   object objEditTemplate;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      objLabware = objDeckLayout.Labware(i_str_Labware);\r\n      objDeckLayout.GetObject(\"IEditDeckLayout6\", objEditDeckLayout8);\r\n      objTemplate = objDeckLayout.Labware(i_str_Template);\r\n      //objTemplate.GetObject(\"ITemplate\",objEditTemplate);\r\n      objEditDeckLayout8.MoveLabwareToDeckSite(objLabware,i_str_Template,i_str_Site);\r\n      //objEditDeckLayout8.AddLabwareToDeckSite(objLabware,i_str_Site,i_str_Labware+\"1\",i_str_Template);\r\n      //objEditDeckLayout8.BringToFront(i_str_Labware,i_str_Template);\r\n   }\r\n\r\n   objDeckLayout.ReleaseObject();\r\n   objEditDeckLayout8.ReleaseObject();\r\n   objLabware.ReleaseObject();\r\n}\r\n// {{{ 5 \"ADJUST_MoveLabwareToDeckSite\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_MoveSitesDelta\" \"Begin\"\r\nprivate function ADJUST_MoveSitesDelta( device & Instrument, variable i_str_Template, variable i_flt_DeltaX, variable i_flt_DeltaY, variable i_flt_DeltaZ ) void {\r\n// }} \"\"\r\n// {{ 5 \"ADJUST_MoveSitesDelta\" \"InitLocals\"\r\n// }} \"\"\r\n{\r\n   object objDeckLayout;\r\n   object objLabware;\r\n   object objEditDeckLayout8;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      objLabware = objDeckLayout.Labware(i_str_Template);\r\n      objLabware.GetObject(\"ITemplate\", objEditDeckLayout8);\r\n      objEditDeckLayout8.MoveSitesDelta(i_flt_DeltaX,i_flt_DeltaY,i_flt_DeltaZ);\r\n   }\r\n\r\n   objDeckLayout.ReleaseObject();\r\n   objEditDeckLayout8.ReleaseObject();\r\n   objLabware.ReleaseObject();\r\n}\r\n// {{{ 5 \"ADJUST_MoveSitesDelta\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_OffsetWells\" \"Begin\"\r\nfunction ADJUST_OffsetWells( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset ) void {\r\n// }} \"\"\r\nprivate variable flt_ContainerXOffset;\r\nprivate variable int_CutNum;\r\nprivate variable flt_ContainerYOffset;\r\nprivate variable str_ContainerFilePath;\r\nprivate variable int_Length;\r\nprivate variable flt_ContainerBottomWidth;\r\nprivate variable int_LabwareCount;\r\nprivate variable flt_Y_Offset;\r\nprivate variable flt_MaximumRadius;\r\nprivate variable strFunctionName;\r\nprivate variable str_SearchValue;\r\nprivate variable flt_WellOffset2;\r\nprivate variable int_LabwareIndex;\r\nprivate variable flt_WellAngle;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_ContainerBaseOffset;\r\nprivate variable str_LabID;\r\nprivate variable flt_ContainerBottomHeight;\r\nprivate variable int_ContainerExists;\r\nprivate variable flt_Z_Offset;\r\nprivate variable flt_WellOffsetSum;\r\nprivate variable str_ShapeValue;\r\nprivate variable int_SegmentCount;\r\nprivate variable str_Return;\r\nprivate variable flt_BottomSegmentRadius;\r\nprivate variable flt_WellOffset;\r\nprivate variable int_Count;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\nprivate variable flt_X_Offset;\r\nprivate variable str_LabwareConfigFilePath;\r\nprivate variable flt_ContainerTopWidth;\r\nprivate variable int_ContainerShape;\r\nprivate variable int_Index;\r\nprivate variable int_TotalPositions;\r\nprivate sequence seq_Temp;\r\nprivate variable arr_LabwareIDs[];\r\n// {{ 5 \"ADJUST_OffsetWells\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 248 1 0 \"fbfae96f_c066_4a9b_93f278c9e7abfb3d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 249 1 0 \"49934fdb_81b6_432d_b3221c267bb99a5c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 251 1 0 \"04d775cd_ca24_4c0d_8843c46c37f5b944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 252 1 0 \"d80cb9be_1502_4e1c_86411bca708cc0b7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 253 1 0 \"78518aa7_7718_49d0_b1f5616d4b4a6edb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 254 1 0 \"b3abac88_f464_4111_9804e9c8ec50e8e8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 255 1 0 \"ad3ea817_3b30_4dfa_a2482c7ce7aba9d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 257 1 0 \"fbfae96f_c066_4a9b_93f278c9e7abfb3d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 258 1 0 \"65c2d403_e923_4865_9491bdcf46739731\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 259 1 0 \"3131f664_ef92_4ece_8b1698816417b615\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 261 1 0 \"c8d7b9b7_2d47_4e76_aa53384d6283bdec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToOffset, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 262 1 0 \"1cc425a6_1068_44c9_ab391c4d8e072d6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"387f07a3_bea7_4369_9d4f8ebee42f88c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 264 1 0 \"1cc425a6_1068_44c9_ab391c4d8e072d6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 265 1 0 \"65c2d403_e923_4865_9491bdcf46739731\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 266 1 0 \"71ab9d60_8c47_4b84_860dd229192e5dc6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 267 1 0 \"f63dc81c_c946_4271_a71aa0c961bb7a9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (LPQ::LABWARE_OFFSET_GLOBAL::BOOL_LIBRARY_INITIALIZED == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"8da27293_5d80_4258_8b6c55e1f7c8ed34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLPQ::InitializeVariables();\r\n// }} \"\"\r\n// {{ 269 1 0 \"8fbb9c83_4819_4682_b3b9c97988d2f210\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.SetSize(0);\r\n// }} \"\"\r\n// {{ 270 1 0 \"70517458_803d_4131_914211ca9a06f6c8\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.SetSize(0);\r\n// }} \"\"\r\n// {{ 271 1 0 \"2009a3bb_dc69_4d6d_bd08983db8963b44\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.SetSize(0);\r\n// }} \"\"\r\n// {{ 272 1 0 \"0c2ee69b_cb9f_466c_aa5e8741e8e5bf88\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.SetSize(0);\r\n// }} \"\"\r\n// {{ 273 1 0 \"b71ea40c_f3e4_41df_91c1070eb6e02529\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.SetSize(0);\r\n// }} \"\"\r\n// {{ 274 1 0 \"1ed85fee_d5c6_45ed_82eb8865122769fc\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.SetSize(0);\r\n// }} \"\"\r\n// {{ 275 1 0 \"2ca1ed57_0ddf_4f8e_95dded06099d52fe\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.SetSize(0);\r\n// }} \"\"\r\n// {{ 276 1 0 \"02fbd606_6d54_47c2_8ff6a7cdb16fae66\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.SetSize(0);\r\n// }} \"\"\r\n// {{ 277 1 0 \"c6179e98_f60d_4ae6_aab202b9132ae431\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::BOOL_LIBRARY_INITIALIZED = 1;\r\n// }} \"\"\r\n// {{ 278 1 0 \"f63dc81c_c946_4271_a71aa0c961bb7a9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 279 1 0 \"889c671a_5f04_4b18_a3085253cfc8ac1d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"dec35e49_6dc4_49c3_baa0ea38514a40a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(i_seq_LabwarePositionsToOffset, arr_LabwareIDs);\r\n// }} \"\"\r\n// {{ 281 1 0 \"122e2ea7_0bf8_4a13_b7f7348ae95b1ef4\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_LabwareCount=arr_LabwareIDs.GetSize();\r\n// }} \"\"\r\n// {{ 282 1 0 \"6e759a3f_967c_489e_b37108f9c9b89331\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LabwareIndex = 0; int_LabwareIndex < int_LabwareCount;)\r\n{\r\nint_LabwareIndex = int_LabwareIndex + 1;\r\n// }} \"\"\r\n// {{ 283 1 0 \"681dba95_7d88_453d_b1cda2ce6f6ceda0\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=arr_LabwareIDs.GetAt(int_LabwareIndex-1);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"4694e3e2_0e24_42de_b556fbc4e8a68c33\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSEQ_GetDefaultSequence(Instrument, str_LabID, 1, seq_Temp);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"bf63b1eb_518d_427b_86d1cd5207fac1aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetPositionCountForCurrLabware(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\nTrace(\"Total Positions:  \",int_TotalPositions);\r\n// {{{ 287 1 0 \"4f0b083a_aa8e_4001_8857a839f7d3be66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, seq_Temp, str_LabwareConfigFilePath);\r\n// }} \"\"\r\n// {{{ 288 1 0 \"b9799f64_50a4_41ce_ab8604716f0bb6d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCONT_GetConfigFile(Instrument, seq_Temp, str_ContainerFilePath);\r\n// }} \"\"\r\n// {{ 289 1 0 \"d9f72a91_c460_4e1c_b3127681e0f0996d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_TotalPositions;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 290 1 0 \"26acc018_d843_4e31_8d377709358c06af\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 291 1 0 \"c3d9c036_caae_4a92_a4b26ae0afe01414\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 292 1 0 \"3ca53111_5eee_4cd3_9f758b29e31e3c81\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = 0.0;\r\n// }} \"\"\r\n// {{ 293 1 0 \"e6fde6ed_cf8a_4e35_8edde67f88b9bc65\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellOffset = 0.0;\r\n// }} \"\"\r\n// {{ 294 1 0 \"044077c3_e413_4d22_b5c56d00ab7dc2a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellOffsetSum = 0.0;\r\n// }} \"\"\r\n// {{ 295 1 0 \"c23e4716_f266_44b5_815e33f6e328a8b5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Offset = i_flt_X_Offset;\r\n// }} \"\"\r\n// {{ 296 1 0 \"f1514edc_4aff_403f_96f18b3dcac41280\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = i_flt_Y_Offset;\r\n// }} \"\"\r\n// {{ 297 1 0 \"3dffa116_f0ec_4808_94720cb3d90417fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_X_Offset < 0)\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"10675977_297a_4831_97a40e47603095a4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Offset = flt_X_Offset * -1;\r\n// }} \"\"\r\n// {{ 299 1 0 \"3dffa116_f0ec_4808_94720cb3d90417fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 300 1 0 \"85e43a24_369a_49d3_bdb2b1f8fc382862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Y_Offset < 0)\r\n{\r\n// }} \"\"\r\n// {{ 301 1 0 \"a666efaf_de3d_4fe2_ae67730376e8f286\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Y_Offset * -1;\r\n// }} \"\"\r\n// {{ 302 1 0 \"85e43a24_369a_49d3_bdb2b1f8fc382862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nflt_X_Offset = flt_X_Offset^2;\r\nflt_Y_Offset = flt_Y_Offset^2;\r\nflt_WellOffsetSum = flt_X_Offset + flt_Y_Offset;\r\n// {{{ 304 1 0 \"b1bb7e2a_2dec_455e_ad2bf33c4977f489\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_WellOffset = MthPow(flt_WellOffsetSum, 0.5);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"17c8a6f4_3898_42c9_bf42bdb75b79af44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_WellOffset2 = MthRound(flt_WellOffset, 1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Well Offset 2:  \",flt_WellOffset2);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 307 1 0 \"26acc018_d843_4e31_8d377709358c06af\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 308 1 0 \"7ab65959_d602_4126_ab5ea6344678d5f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"de95df99_a1de_47a3_8fcf201367a3d133\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"ff404ea8_835a_4852_8577b4f35905e270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_ContainerExists = _Lookup(LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE, str_ContainerFilePath);\r\n// }} \"\"\r\n// {{ 311 1 0 \"476aa229_ff70_413e_b53203361f342a56\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerExists == 0)\r\n{\r\n// }} \"\"\r\n// {{ 312 1 0 \"70b71bfd_5685_42b3_82b5236120685752\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 313 1 0 \"f962b7d0_4020_4393_84521a669583e7f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate(\"Cntr.1.offsetx\"), str_Return);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"ff67bc38_051a_4af9_847c314f8432eac9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerXOffset);\r\n// }} \"\"\r\n// {{ 315 1 0 \"6789ac15_4fb6_49dc_bdcfb081ba2dc3ee\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 316 1 0 \"a0795556_eb94_498c_b0c0681707f1ad59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate(\"Cntr.1.offsety\"), str_Return);\r\n// }} \"\"\r\n// {{{ 317 1 0 \"db7a74ef_645f_481c_abd11bd45ce82825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerYOffset);\r\n// }} \"\"\r\n// {{ 318 1 0 \"a3af9bfd_0251_43cd_8ee7bf6f7761d88e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 319 1 0 \"5c7ccdde_0b81_49cf_aea3b9f7ba22309a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate(\"Cntr.1.base\"), str_Return);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"7a5a5326_a8dd_40b1_a874e32594f62ce3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{ 321 1 0 \"dc283901_5bbd_411e_b5d733412af4943d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 322 1 0 \"a0182bfe_8af0_4a8b_8f016d7fe569205c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, Translate(\"Segments\"), str_Return);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"05b82791_881a_4a9b_a3243522f207069d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(str_Return, int_SegmentCount);\r\n// }} \"\"\r\n// {{ 324 1 0 \"35512f8c_16b9_4d3b_a0440c043eb00241\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 325 1 0 \"ed140507_5593_4cfe_a21dedc0fda4728e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ShapeValue = StrConcat2(int_SegmentCount, Translate(\".Shape\"));\r\n// }} \"\"\r\n// {{{ 326 1 0 \"5ff40fb7_6ca9_4145_8ec703e5ddd74ff6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_ShapeValue, str_Return);\r\n// }} \"\"\r\n// {{{ 327 1 0 \"c697fb15_4774_44a3_a5723b41a66e3933\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(str_Return, int_ContainerShape);\r\n// }} \"\"\r\n// {{ 328 1 0 \"9bd56445_ca3b_49e8_aadc7a18b73780ed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 329 1 0 \"beefe11a_70ec_4555_96e5e0ff3bd649a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 0)\r\n{\r\n// }} \"\"\r\n// {{ 330 1 0 \"6c3ac7f8_eb54_455c_baa5191f5cf64a23\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 331 1 0 \"f3dd1a2f_394a_422f_aea3acf8f3b89125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 332 1 0 \"9148f1ea_d407_430e_80cf30198daf6f9e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"be8e84ad_4ff2_4a27_826928068e7b4302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"8aed86ed_ca1b_4e02_9850f554fd3dcfc5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 335 1 0 \"89c51f82_1a22_4542_9dab53c61b6bee03\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 336 1 0 \"c5d6f6f4_859f_494c_9dfeba14aa0b3daa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 337 1 0 \"c802d61e_949a_4a3e_a3176904c4785257\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 338 1 0 \"407068bc_1ae9_4348_b5d8b4ff8f0f82a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 339 1 0 \"878afeab_b048_4cb3_a86c3defae33a74a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 340 1 0 \"beefe11a_70ec_4555_96e5e0ff3bd649a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 341 1 0 \"8b127817_6b69_4197_ab2d787432de4162\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 1)\r\n{\r\n// }} \"\"\r\n// {{ 342 1 0 \"895975c7_c04a_4140_9651885b0af6fb2c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 343 1 0 \"1feb99db_4f66_42e4_acc6bb26eef13d9a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 344 1 0 \"39ff8ba4_dd38_4b53_9d01f0483b3dad86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 345 1 0 \"bdda5af5_0157_491f_b7240e8d11b34359\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"5bb1be3e_f619_4465_9ef9d2e1568ec2c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 347 1 0 \"0ccafae6_e1c2_4650_a911fc24ca700f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 348 1 0 \"abc743fb_7759_4c6e_b30e52be0d612999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"c5c13c1e_3fe2_41e1_95bcb017fd436e36\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 350 1 0 \"54119794_270c_4c3c_b1a808b698042e0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"c1cc5973_e7b7_43dd_87867cd58b8fefa8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 352 1 0 \"8b127817_6b69_4197_ab2d787432de4162\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 353 1 0 \"4e249b1d_7d64_4017_bd7cf38929556d22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 2)\r\n{\r\n// }} \"\"\r\n// {{ 354 1 0 \"cfb52732_51f0_4021_828501c4ff6f2d40\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 355 1 0 \"befc4e15_b3d3_435a_b839daad189684bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 356 1 0 \"3275448f_4e85_44bd_a8f226f11e6ae8ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 357 1 0 \"01d1edba_2efa_4fff_8ff86790c0028b8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 358 1 0 \"3d1ed2f7_7240_4476_b1f8a6783b2ffca1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 359 1 0 \"7ece013c_3722_4628_ba612dbfadeeba12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 360 1 0 \"9dcc6826_debf_42d5_98ca064f2ef640ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 361 1 0 \"8b07efab_2f4d_4545_8ebb38d901109aec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 362 1 0 \"d3120271_452e_4fd2_9bac94ad7fafbcff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"6aebb40f_500e_4072_a2d75929d87cd344\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 364 1 0 \"4e249b1d_7d64_4017_bd7cf38929556d22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 365 1 0 \"9e4403d8_3090_438a_b98bda59dd75885e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 3)\r\n{\r\n// }} \"\"\r\n// {{ 366 1 0 \"d0f1de1d_e742_4d09_b1b9d5aed2814a58\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 367 1 0 \"575bfcb1_95f6_466e_97ffaba7921e1b78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 368 1 0 \"4d99fce1_ac17_44be_b78690365bc70ecc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"9f4e07ce_1ce3_4b80_be30ec105c657c90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 370 1 0 \"84806990_7bda_48a9_a03506fa2b97f1af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 371 1 0 \"0a4a566d_b1cd_4a1f_9034f401c3178973\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"c282e462_4e06_413d_aabf09566f0bd609\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"a532d8b1_2f9c_45c3_affa9b9ee78a41d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 374 1 0 \"11d3f07f_a682_4491_a8c7a70ef4c73dad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"78ee2ab9_d77a_44e1_8d5f068d881b2fce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 376 1 0 \"9e4403d8_3090_438a_b98bda59dd75885e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 377 1 0 \"9177526b_9e5e_4e9b_816911075adfa409\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 4)\r\n{\r\n// }} \"\"\r\n// {{ 378 1 0 \"9fd606c5_1669_493a_bb25e96aef443514\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 379 1 0 \"e7b27095_7f88_44de_888fda4b81c6966a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 380 1 0 \"6f376f5d_1a83_40d0_84fa9e2c19fdb809\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"e3fb116f_1dcb_4e01_a51b5c63963f5360\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{ 382 1 0 \"9449bf42_b6d2_4171_8c6c72d208cb5b83\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerBottomWidth = 0.0;\r\n// }} \"\"\r\n// {{{ 383 1 0 \"5002e177_8c75_4ec5_aa7b3b213c97fe4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 384 1 0 \"66cc1ac8_c30b_490a_b587ff10b9754e93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 385 1 0 \"2209bf91_a6b6_4e11_a25a12cf1d31d0a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 386 1 0 \"9177526b_9e5e_4e9b_816911075adfa409\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"486a6ed5_3e45_484c_ab0243448c195891\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 5)\r\n{\r\n// }} \"\"\r\n// {{ 388 1 0 \"2c3fce65_f8ee_4c16_a32a8609e8b5059a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 389 1 0 \"cff3a409_4f95_493e_80079b6b054c2ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 390 1 0 \"098b644b_474a_47fb_b5ac921adf9e99d4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"3fac5e6b_6b79_4968_9b91f08e6c1753ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{ 392 1 0 \"154524f4_2432_44fe_a77217a0c1cb8639\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerBottomWidth = 0.0;\r\n// }} \"\"\r\n// {{{ 393 1 0 \"314cbaca_24a7_43e6_b59cdba010e43a39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 394 1 0 \"3ef92cc8_9092_4e94_a03ac1b3968daae7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 395 1 0 \"2200e1b7_a52c_43ce_b22a2105bc46c51d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 396 1 0 \"486a6ed5_3e45_484c_ab0243448c195891\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 397 1 0 \"9bd56445_ca3b_49e8_aadc7a18b73780ed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"53e58ef1_7386_4d27_8317578d81f77c5e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.AddAsLast(int_ContainerShape);\r\n// }} \"\"\r\n// {{ 399 1 0 \"31b6f7d3_3e76_47c4_bd5ff40498515a85\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ContainerFilePath);\r\n// }} \"\"\r\n// {{ 400 1 0 \"9f813675_eb56_4aed_a85a828519a40368\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.AddAsLast(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{ 401 1 0 \"ef2ca633_0c7e_424d_bed823b0c90047b6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.AddAsLast(flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{ 402 1 0 \"82ad2ff4_3734_40f1_a1a85aa3edf04025\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.AddAsLast(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 403 1 0 \"00111d6e_5c45_4585_b61e456a799cab06\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.AddAsLast(flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{ 404 1 0 \"93fabb8f_02cf_418e_88050ed3e5eb5e7e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.AddAsLast(flt_ContainerXOffset);\r\n// }} \"\"\r\n// {{ 405 1 0 \"3c7b6ab0_28b4_426a_bc32e16ae75a3e5f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.AddAsLast(flt_ContainerYOffset);\r\n// }} \"\"\r\n// {{ 406 1 0 \"476aa229_ff70_413e_b53203361f342a56\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 407 1 0 \"695b91d7_aa45_4d9a_a9c0b9011ee83f91\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_ContainerShape=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 408 1 0 \"677a1514_bcda_4a84_bb5d7fb5f6412bd9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_ContainerFilePath=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 409 1 0 \"9d4ae617_e241_4d10_98b46c498d042af9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerTopWidth=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 410 1 0 \"21dcc4ba_427f_4f37_9e5d6657efe48f03\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBottomWidth=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 411 1 0 \"688782d7_7837_49ed_b76aff88b8df92ac\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBottomHeight=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 412 1 0 \"ac5ad8ff_f196_4310_b36cfc267e16cf76\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBaseOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 413 1 0 \"9179a8e7_7da6_44d2_a11d5f01566cd0d0\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerXOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 414 1 0 \"7c8ab5e5_6ad1_41e6_9a279cb80ca766dd\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerYOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 415 1 0 \"476aa229_ff70_413e_b53203361f342a56\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 416 1 0 \"98d36492_1c8f_44c8_96a335b601b0fcd3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MaximumRadius = flt_ContainerTopWidth / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 417 1 0 \"5d4dbb02_7ebf_4ce0_91faa762e68be7e5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 418 1 0 \"91b73aff_5a61_4628_883a017946ae40ec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_WellOffset2 > flt_MaximumRadius)\r\n{\r\n// }} \"\"\r\n// {{ 419 1 0 \"00bd5229_e329_4ba4_bcd0cdda523b6748\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellOffset2 = flt_MaximumRadius;\r\n// }} \"\"\r\n// {{ 420 1 0 \"91b73aff_5a61_4628_883a017946ae40ec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 421 1 0 \"26e63cae_7332_4653_a583b3a9022abd38\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomSegmentRadius = flt_ContainerBottomWidth / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 422 1 0 \"9f5b7565_4e92_4d72_b42de948b805ecec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellOffset = flt_WellOffset2 - flt_BottomSegmentRadius;\r\n// }} \"\"\r\n// {{ 423 1 0 \"2695ed8e_6b92_424c_a769090611903f1a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_WellOffset < 0)\r\n{\r\n// }} \"\"\r\n// {{ 424 1 0 \"601272b0_8b93_44c6_ac37a31d23ec983f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellOffset = 0.0;\r\n// }} \"\"\r\n// {{ 425 1 0 \"2695ed8e_6b92_424c_a769090611903f1a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 426 1 0 \"a02365a8_2dc4_4ba2_bc5f7427eeb34bd6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 427 1 0 \"74bba43a_0d4e_4b58_ad3eee7313d77638\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 3)\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"93ee2f5b_f2b2_4ee8_8e5ca984fd4ae2c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalculateWellAngle(flt_ContainerBottomHeight, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_WellAngle);\r\n// }} \"\"\r\n// {{{ 429 1 0 \"90e59882_165e_4d69_80abbdfa31314326\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalcualteOffsetHeight(flt_WellAngle, flt_WellOffset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{ 430 1 0 \"74bba43a_0d4e_4b58_ad3eee7313d77638\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 431 1 0 \"c373a39b_220c_4ca4_8243540320e221b8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 4)\r\n{\r\n// }} \"\"\r\n// {{{ 432 1 0 \"8bf6d18f_7e8f_4aac_87aaf4c0106fa6a2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalculateWellAngle(flt_ContainerBottomHeight, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_WellAngle);\r\n// }} \"\"\r\n// {{{ 433 1 0 \"71ecebe8_816e_46c9_95477a07cf86dbfe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalcualteOffsetHeight(flt_WellAngle, flt_WellOffset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{ 434 1 0 \"c373a39b_220c_4ca4_8243540320e221b8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 435 1 0 \"60668be0_ca95_4aea_893915f3ae2e1af3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 5)\r\n{\r\n// }} \"\"\r\n// {{{ 436 1 0 \"57c1604c_b340_4e30_ab80cdcfcf74406e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalculateWellAngle(flt_ContainerBottomHeight, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_WellAngle);\r\n// }} \"\"\r\n// {{{ 437 1 0 \"326d315d_0862_4f17_a973884ae59c4391\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalcualteOffsetHeight(flt_WellAngle, flt_WellOffset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{ 438 1 0 \"60668be0_ca95_4aea_893915f3ae2e1af3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 439 1 0 \"a02365a8_2dc4_4ba2_bc5f7427eeb34bd6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"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);\r\n// {{ 441 1 0 \"4f9c4dad_442a_4aca_a65a8344f8cb2b15\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Offset = i_flt_X_Offset + flt_ContainerXOffset;\r\n// }} \"\"\r\n// {{ 442 1 0 \"80038118_23d2_4bc1_94f5fb6a59934860\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = i_flt_Y_Offset + flt_ContainerYOffset;\r\n// }} \"\"\r\n// {{ 443 1 0 \"25469874_b2b8_4f4d_932f550e395cd7d9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = flt_Z_Offset + flt_ContainerBaseOffset;\r\n// }} \"\"\r\n// {{{ 444 1 0 \"afbc963e_331b_4dd4_a2e24236d757642b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(Instrument, str_LabID, str_PosID, str_ContainerFilePath, flt_X_Offset, flt_Y_Offset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"e9085318_f954_43b7_96c2f2155d0d4cf1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_LabwarePositionsToOffset, 1);\r\n// }} \"\"\r\n// {{ 446 1 0 \"d9f72a91_c460_4e1c_b3127681e0f0996d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 447 1 0 \"6e759a3f_967c_489e_b37108f9c9b89331\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 448 1 0 \"5c3625c1_b2f2_4a69_ae2122e1d87d520a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 450 1 0 \"5c3625c1_b2f2_4a69_ae2122e1d87d520a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_OffsetWells\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_OffsetWells2\" \"Begin\"\r\nfunction ADJUST_OffsetWells2( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset, variable i_flt_Z_Offset ) void {\r\n// }} \"\"\r\nprivate variable flt_ContainerXOffset;\r\nprivate variable int_CutNum;\r\nprivate variable flt_ContainerYOffset;\r\nprivate variable str_ContainerFilePath;\r\nprivate variable int_Length;\r\nprivate variable i;\r\nprivate variable flt_Y_Offset;\r\nprivate variable int_LabwareCount;\r\nprivate variable flt_ContainerBottomWidth;\r\nprivate variable strFunctionName;\r\nprivate variable str_SearchValue;\r\nprivate variable int_LabwareIndex;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_ContainerBaseOffset;\r\nprivate variable flt_ContainerBottomHeight;\r\nprivate variable str_LabID;\r\nprivate variable int_ContainerExists;\r\nprivate variable flt_Z_Offset;\r\nprivate variable str_ShapeValue;\r\nprivate variable int_SegmentCount;\r\nprivate variable str_Return;\r\nprivate variable int_Count;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\nprivate variable flt_X_Offset;\r\nprivate variable flt_ContainerTopWidth;\r\nprivate variable int_ContainerShape;\r\nprivate variable str_LabwareConfigFilePath;\r\nprivate variable int_TotalPositions;\r\nprivate sequence seq_Temp;\r\nprivate variable arr_LabwareIDs[];\r\n// {{ 5 \"ADJUST_OffsetWells2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 452 1 0 \"6fa09d08_4e2b_4904_bded0020ee43ff69\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 453 1 0 \"c896cfeb_ed36_450b_be91f48460c0e276\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 455 1 0 \"5788eb8e_1b40_452a_a0286170ce880bce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 456 1 0 \"ecd06868_4c81_4b27_86246e73a2dde830\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 457 1 0 \"994366c5_6a60_4e20_a99ecdd60494e547\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 458 1 0 \"67797f96_e89d_403d_a558708b79284282\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 459 1 0 \"1ff06218_7143_493a_821a728b18aa4261\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 461 1 0 \"6fa09d08_4e2b_4904_bded0020ee43ff69\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 462 1 0 \"aecf7d64_96f1_4bc3_a5de0aa797f2ada0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 463 1 0 \"088aedf4_3bf4_4814_b04567ed81746b7d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 465 1 0 \"83de41c5_877e_4107_9058b65c44c9354f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToOffset, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 466 1 0 \"eccc8dea_8cdf_4c8b_bc6ee5e6bc8eca9f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 467 1 0 \"a78e2137_5c84_47f6_b0e75e00d60b6431\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 468 1 0 \"eccc8dea_8cdf_4c8b_bc6ee5e6bc8eca9f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 469 1 0 \"aecf7d64_96f1_4bc3_a5de0aa797f2ada0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 470 1 0 \"38ecec3d_4076_4aa1_be4c547cc4ce3b71\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{ 471 1 0 \"c5640046_d854_449e_ae1f52556f4d1b37\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 472 1 0 \"c1f477eb_0327_4715_818cb7c33c24b7c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (LPQ::LABWARE_OFFSET_GLOBAL::BOOL_LIBRARY_INITIALIZED == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 473 1 0 \"042602fd_2dc6_4f3d_931a510cbc7655f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLPQ::InitializeVariables();\r\n// }} \"\"\r\n// {{ 474 1 0 \"898a62d8_1b17_435a_839fa26f3befefac\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.SetSize(0);\r\n// }} \"\"\r\n// {{ 475 1 0 \"18ac20ea_fde1_44cb_81c22dbced46b27a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.SetSize(0);\r\n// }} \"\"\r\n// {{ 476 1 0 \"2bd91015_4b3e_4c54_bf422fe17d5971c2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.SetSize(0);\r\n// }} \"\"\r\n// {{ 477 1 0 \"c3653fc8_450c_443c_a6f9f49a2f34d334\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.SetSize(0);\r\n// }} \"\"\r\n// {{ 478 1 0 \"3baa1a5a_1171_460d_95a7ff533b1ee094\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.SetSize(0);\r\n// }} \"\"\r\n// {{ 479 1 0 \"5d4915f5_c2ba_4583_852f14715ee13737\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.SetSize(0);\r\n// }} \"\"\r\n// {{ 480 1 0 \"1dc03e99_d4cc_4ed1_824214a248ad32ae\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.SetSize(0);\r\n// }} \"\"\r\n// {{ 481 1 0 \"ebae8f64_2c2e_46cb_94f3028a523a5904\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.SetSize(0);\r\n// }} \"\"\r\n// {{ 482 1 0 \"b31636a4_91bd_477e_993db97eab0924c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::BOOL_LIBRARY_INITIALIZED = 1;\r\n// }} \"\"\r\n// {{ 483 1 0 \"c1f477eb_0327_4715_818cb7c33c24b7c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 484 1 0 \"0959a9ad_55cc_4d62_91b19defbc59c767\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 485 1 0 \"0bb1cdc9_0499_4f3c_a2cd40169b755a73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(i_seq_LabwarePositionsToOffset, arr_LabwareIDs);\r\n// }} \"\"\r\n// {{ 486 1 0 \"b84c9a93_4c0f_49b7_84aab30514f6e6a4\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_LabwareCount=arr_LabwareIDs.GetSize();\r\n// }} \"\"\r\n// {{ 487 1 0 \"36c5d0e4_f540_4874_8a258a4f0068c9c4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LabwareIndex = 0; int_LabwareIndex < int_LabwareCount;)\r\n{\r\nint_LabwareIndex = int_LabwareIndex + 1;\r\n// }} \"\"\r\n// {{ 488 1 0 \"603d401a_b38f_4bf9_ac2fd32b150e18fe\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=arr_LabwareIDs.GetAt(int_LabwareIndex-1);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"acae7d5b_5512_4185_850abdbe6429f9a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSEQ_GetDefaultSequence(Instrument, str_LabID, 1, seq_Temp);\r\n// }} \"\"\r\n// {{{ 490 1 0 \"b22f1c72_a680_468b_88150d218c4ecf13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetPositionCountForCurrLabware(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 491 1 0 \"4dc1cb00_42a2_467b_bc329bd6bce07beb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, seq_Temp, str_LabwareConfigFilePath);\r\n// }} \"\"\r\n// {{{ 492 1 0 \"458b7d42_8102_48f1_b3295f5375236ca9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCONT_GetConfigFile(Instrument, seq_Temp, str_ContainerFilePath);\r\n// }} \"\"\r\nTrace(\"Total Positions:  \",int_TotalPositions);\r\n// {{ 494 1 0 \"06dde8b4_c2ff_445b_9b05f957fb7899d1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 495 1 0 \"ad2d2188_d9f0_4a57_92e65975c723bdae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = 0.0;\r\n// }} \"\"\r\n// {{{ 496 1 0 \"8ee6d559_7cfa_486b_a9e6a159cfcd8900\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 497 1 0 \"f09d01e8_dc71_48fc_aef7197eda648c1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 498 1 0 \"a35d0586_3566_414e_983d19b4c51b3481\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_ContainerExists = _Lookup(LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE, str_ContainerFilePath);\r\n// }} \"\"\r\n// {{ 499 1 0 \"2a112a2a_db3a_4db8_8593a84953c9d08f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerExists == 0)\r\n{\r\n// }} \"\"\r\n// {{ 500 1 0 \"3762d1a6_f079_4b64_add29bed0b06c5b0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 501 1 0 \"164cc805_2194_4a22_868e3a93e051b3e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ShapeValue = StrConcat2(int_SegmentCount, Translate(\".Shape\"));\r\n// }} \"\"\r\n// {{{ 502 1 0 \"0bace9f3_a3e7_4634_909ebaa826d09529\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_ShapeValue, str_Return);\r\n// }} \"\"\r\n// {{{ 503 1 0 \"d6fc946f_cb46_4794_b3a3d3a76db6df89\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(str_Return, int_ContainerShape);\r\n// }} \"\"\r\n// {{ 504 1 0 \"d983efdb_2beb_41a7_949ac1479ef21beb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"70d403e5_96f0_4bbd_9f63cf66d68ec737\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 0)\r\n{\r\n// }} \"\"\r\n// {{ 506 1 0 \"86a7f8fd_60e6_4af0_ad8e5b9140507ae5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 507 1 0 \"77007da6_23ba_4685_b7ee032d51399697\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 508 1 0 \"462dac62_41af_464b_a9961a4d27be375a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"550b8751_46f8_4dcf_a73d4c8b0e41eddc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"63fb3625_a9fd_44d1_97d25fd87f2c6c48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 511 1 0 \"5d40da45_883e_4d70_b82bec72d61e58f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 512 1 0 \"04a143dd_a3a9_4563_ba04c74d37353e0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 513 1 0 \"7537fb40_7ade_4ecf_a40a214aeabfcfcc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 514 1 0 \"f5410733_58df_4033_a82ca662d55f652e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 515 1 0 \"04f3a87f_ffbd_4c94_a8537d9761b443bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 516 1 0 \"70d403e5_96f0_4bbd_9f63cf66d68ec737\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 517 1 0 \"9a069836_3e1f_418c_8b6fd570761edc1c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 1)\r\n{\r\n// }} \"\"\r\n// {{ 518 1 0 \"3eeff826_539a_46b7_8f4abb9e9be1c807\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 519 1 0 \"3de58403_a8e9_4971_93b0cf615835cc0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 520 1 0 \"8fd2ccbd_7f09_4832_9e7296b0d61dc86c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 521 1 0 \"baab88da_61d5_4331_baed9df1b53df854\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 522 1 0 \"acbe5721_b255_458d_831763840e1d8926\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 523 1 0 \"af43eb3f_a181_4caa_b6a3193863857246\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"3209e940_5156_4c36_ab7d300740c010bf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 525 1 0 \"04371bfe_6f62_402f_8b3ee67e905bb48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 526 1 0 \"41d56366_fd78_4f44_a0c79be288121760\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 527 1 0 \"cf9fab65_216a_4fec_9ad1348a44ad018e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 528 1 0 \"9a069836_3e1f_418c_8b6fd570761edc1c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 529 1 0 \"476aeebd_5f40_4928_8958525e68f634ad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 2)\r\n{\r\n// }} \"\"\r\n// {{ 530 1 0 \"f547b9ce_ea95_408d_95b85f0ece099c9b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 531 1 0 \"f040e0fa_f09f_43f3_9046b64b209675c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 532 1 0 \"89efd6c5_c56d_4f24_bbd43fd68e820dde\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"d6385399_c644_45b6_9cd9d8c687280159\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"dbd04ad9_e08f_4fac_93bb5a26d9e3eee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 535 1 0 \"db3692a3_caa5_440f_b35a5390e4498bf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 536 1 0 \"adb5e611_6b46_41a4_be28310a41b7ac75\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 537 1 0 \"c679ce25_f7cf_4c79_846f7a840c099681\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 538 1 0 \"ac82ff9b_62ce_48d5_95e7b5e409643352\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 539 1 0 \"d6865e96_1daa_4add_991a828ba3715a26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 540 1 0 \"476aeebd_5f40_4928_8958525e68f634ad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 541 1 0 \"1189abbe_2155_4dfb_9fc8041a783a166c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 3)\r\n{\r\n// }} \"\"\r\n// {{ 542 1 0 \"e37d9370_7c4e_4e0d_a4a851202d7d9969\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 543 1 0 \"ac57ad97_c05c_4471_bae59fc4864eb622\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 544 1 0 \"b097d201_33ba_480e_817bb9e841525236\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"1f107a0b_a45b_480f_ba2511d1f9d24eb8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"395c11f1_cef5_442e_9d90e2f56f73eea9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 547 1 0 \"c19bfb3b_d6f5_474f_afc83bd6b276f9ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 548 1 0 \"522abdf9_0297_436e_8beb2aaf78e03a9c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 549 1 0 \"5386d09f_0626_4cec_961a0c5daa738888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 550 1 0 \"d3b0544c_eca7_4b6f_940a9f9f60fd187c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 551 1 0 \"fff5fcbc_3b79_4190_94747c5d0a01c8c5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 552 1 0 \"1189abbe_2155_4dfb_9fc8041a783a166c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 553 1 0 \"44f6a9bc_2c34_4506_904729b33d6dd46b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 4)\r\n{\r\n// }} \"\"\r\n// {{ 554 1 0 \"96e69e68_554c_47a2_81e68cedf2620a02\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 555 1 0 \"1112f860_4d50_4e8f_a3473a5969b6801b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 556 1 0 \"7e99d8b4_aa06_4cfc_aad215c394269293\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"ec1de675_7d29_43ee_8f54e88dc8dff774\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{ 558 1 0 \"02e93178_dc39_45bb_bb44c01eaf4a2c19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerBottomWidth = 0.0;\r\n// }} \"\"\r\n// {{{ 559 1 0 \"161ffdd4_47fa_46a4_aa8c14eb12664d89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 560 1 0 \"fed8b709_0c43_48a5_81903535c29ccbaa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 561 1 0 \"6e4fd674_f2d0_471d_9f71ba280de35d45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 562 1 0 \"44f6a9bc_2c34_4506_904729b33d6dd46b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 563 1 0 \"e4eaa235_f955_4606_a1e9dec79a1d5b0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 5)\r\n{\r\n// }} \"\"\r\n// {{ 564 1 0 \"400bcf2e_de93_451d_a8b38aae239571cc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 565 1 0 \"dc192de9_4a1a_4160_a734fa4cbae8557f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 566 1 0 \"15f23158_a14c_4151_8791bf93bc17c67e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"e71455bc_dadf_496b_8c39659af413e5bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{ 568 1 0 \"47923586_2936_474e_937e984cde50ead6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerBottomWidth = 0.0;\r\n// }} \"\"\r\n// {{{ 569 1 0 \"a24eda20_bb64_4e6f_a08138b81339d4ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue = StrConcat2(int_SegmentCount, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 570 1 0 \"fa5f19db_6ef8_4441_ab9f3750b2651617\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return);\r\n// }} \"\"\r\n// {{{ 571 1 0 \"3b37a23f_e08b_41f4_baf3eee87edadee5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 572 1 0 \"e4eaa235_f955_4606_a1e9dec79a1d5b0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 573 1 0 \"d983efdb_2beb_41a7_949ac1479ef21beb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 574 1 0 \"c67152de_f2a6_43a8_a286dbc604b830e9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 575 1 0 \"a565a0b7_8729_45f9_ba1070c38b435fce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate(\"Cntr.1.offsetx\"), str_Return);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"3b459565_759b_4ed0_843bfad89947cb6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerXOffset);\r\n// }} \"\"\r\n// {{ 577 1 0 \"6c8756f9_2962_4041_a26db02e681d324d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 578 1 0 \"d6a68bcc_8a8b_49a6_8b0fc677b7f2fff7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate(\"Cntr.1.offsety\"), str_Return);\r\n// }} \"\"\r\n// {{{ 579 1 0 \"8847e21a_82d1_4d6f_9732df2b9e535de7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerYOffset);\r\n// }} \"\"\r\n// {{ 580 1 0 \"b670d3cb_ca96_4119_954dd4603f1c0612\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 581 1 0 \"dcd7ce9b_1a33_4700_8ac2d4bb2a7564a2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate(\"Cntr.1.base\"), str_Return);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"a24f3f0f_57e7_4758_b0c4f9d021285076\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{ 583 1 0 \"d569178b_3c87_4a0e_94720c70803e492c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.AddAsLast(int_ContainerShape);\r\n// }} \"\"\r\n// {{ 584 1 0 \"da2e1034_a786_49cc_ac16bb51a37b6ad6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ContainerFilePath);\r\n// }} \"\"\r\n// {{ 585 1 0 \"160af8cc_8ffa_48f8_87ecc5639f980033\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.AddAsLast(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{ 586 1 0 \"97e13d0f_af46_4280_afe696266facf87c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.AddAsLast(flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{ 587 1 0 \"6490e321_ab74_498e_a315f6b36df21dd8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.AddAsLast(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 588 1 0 \"0766abf8_8cee_40d9_b6fe7327bc520a77\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.AddAsLast(flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{ 589 1 0 \"e3150f56_45d9_487d_b0c4e9d85b181a95\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.AddAsLast(flt_ContainerXOffset);\r\n// }} \"\"\r\n// {{ 590 1 0 \"123bbd60_14af_4e8e_bc1dc4f34a98eac6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.AddAsLast(flt_ContainerYOffset);\r\n// }} \"\"\r\n// {{ 591 1 0 \"2a112a2a_db3a_4db8_8593a84953c9d08f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 592 1 0 \"96f25417_cd9b_4a8e_821c27861afd2258\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_ContainerShape=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 593 1 0 \"5127a1c0_1ad3_4913_bee6dfc6d86b8185\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_ContainerFilePath=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 594 1 0 \"f8621ecb_0ff5_4e02_9e637b3b4476fee3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerTopWidth=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 595 1 0 \"f8092eda_a3f5_4fe1_8a299d4813afe1ac\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBottomWidth=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 596 1 0 \"f23b858a_9e93_4e56_802c26473a4b28f0\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBottomHeight=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 597 1 0 \"73c1596a_d926_4bdd_a3c354e30e8ff175\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBaseOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 598 1 0 \"31eaed7c_7e43_4de9_b4943ad6a7f68b77\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerXOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 599 1 0 \"d1a8c415_bdd1_4d98_ac3568006223172b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerYOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.GetAt(int_ContainerExists-1);\r\n// }} \"\"\r\n// {{ 600 1 0 \"2a112a2a_db3a_4db8_8593a84953c9d08f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"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);\r\n// {{ 602 1 0 \"16be14c8_b88e_4d58_bd7df8cb02d50e02\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Offset = i_flt_X_Offset + flt_ContainerXOffset;\r\n// }} \"\"\r\n// {{ 603 1 0 \"c8f22335_661e_4049_84f4ddf95bc061a4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = i_flt_Y_Offset + flt_ContainerYOffset;\r\n// }} \"\"\r\n// {{ 604 1 0 \"6e353268_046f_4354_8304e64c72304e11\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = i_flt_Z_Offset + flt_ContainerBaseOffset;\r\n// }} \"\"\r\n// {{{ 605 1 0 \"7e698b8e_b81c_4c9c_9912628816dc5161\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(Instrument, str_LabID, str_PosID, str_ContainerFilePath, flt_X_Offset, flt_Y_Offset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"91470237_3d69_4976_a9f0462de14df43c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_LabwarePositionsToOffset, 1);\r\n// }} \"\"\r\n// {{ 607 1 0 \"06dde8b4_c2ff_445b_9b05f957fb7899d1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 608 1 0 \"36c5d0e4_f540_4874_8a258a4f0068c9c4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 609 1 0 \"080544fc_48a3_445f_bcf24a354db7bed4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 611 1 0 \"080544fc_48a3_445f_bcf24a354db7bed4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_OffsetWells2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_RotateLabware\" \"Begin\"\r\nfunction ADJUST_RotateLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_TargetRotation ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable flt_A_Difference;\r\nprivate variable flt_CurrentX;\r\nprivate variable int_Length;\r\nprivate variable flt_CurrentY;\r\nprivate variable flt_DeltaX;\r\nprivate variable flt_CurrentZ;\r\nprivate variable strFunctionName;\r\nprivate variable flt_DeltaY;\r\nprivate variable flt_CenterY2;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_CenterX2;\r\nprivate variable str_LabID;\r\nprivate variable flt_CurrentA;\r\nprivate variable int_Count;\r\nprivate variable flt_CenterX;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable flt_CenterY;\r\n// {{ 5 \"ADJUST_RotateLabware\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 613 1 0 \"3322f576_0eeb_40f0_9ae253aa8ec6c194\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 614 1 0 \"a5fca648_3434_4756_b5042ac85f621262\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 616 1 0 \"68908be1_78af_4d05_a7a849a9630bcb97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 617 1 0 \"aceaacf6_4e60_4194_bfca2662cc5bc4e6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 618 1 0 \"3b9f2f0f_fe4b_4caf_b8c2de5633353247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 619 1 0 \"aee7c623_9278_45c1_a5604f0905b8f850\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 620 1 0 \"0509d289_a174_40d7_b09e21ae1064c150\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 622 1 0 \"3322f576_0eeb_40f0_9ae253aa8ec6c194\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 623 1 0 \"62b04b93_ef2e_4a2c_a7d6f44fe0dcc14a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 624 1 0 \"788aea9f_4724_4a3b_8c642e4d67861e1c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 626 1 0 \"777934a2_fcdf_40cc_a66d8aec6bd57fab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToOffset, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 627 1 0 \"5eec4b9b_c61d_49a5_a2b83a99a457f0be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 628 1 0 \"39f4c20e_ebc5_4fe6_af17cbf52f31bd34\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 629 1 0 \"5eec4b9b_c61d_49a5_a2b83a99a457f0be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 630 1 0 \"62b04b93_ef2e_4a2c_a7d6f44fe0dcc14a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 631 1 0 \"03aad7ba_85e6_4953_a538ba3adac49d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"b39fa980_63e4_4da1_9ba9f0cda908dc0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(Instrument, str_LabID, flt_CurrentX, flt_CurrentY, flt_CurrentZ, flt_CurrentA);\r\n// }} \"\"\r\n// {{ 633 1 0 \"f675d333_9897_4867_9d3aa132c568fadc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_A_Difference = i_flt_TargetRotation - flt_CurrentA;\r\n// }} \"\"\r\n// {{{ 634 1 0 \"c2cb9661_4624_4a70_8224c3f5506dc103\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetLabwareCenter(Instrument, i_seq_LabwarePositionsToOffset, flt_CenterX, flt_CenterY);\r\n// }} \"\"\r\nTrace(\"Current X:  \",flt_CurrentX,\"  Current Y:  \",flt_CurrentY);\r\nTrace(\"Rotation Difference:  \",flt_A_Difference);\r\nTrace(\"Center X:  \",flt_CenterX,\"  Center Y:  \",flt_CenterY);\r\n// {{ 636 1 0 \"283ce635_9994_4dc4_92fc996bc7c55bc3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DeltaX = 0.0;\r\n// }} \"\"\r\n// {{ 637 1 0 \"4c280571_f91a_4a5f_bb26a91c8065b8eb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DeltaY = 0.0;\r\n// }} \"\"\r\n// {{ 638 1 0 \"6d49183f_3b9b_4521_b656992404f93396\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 639 1 0 \"f21531af_756f_4f2a_a99902a28dad60ca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nADJUST_SetRelativePositionForLabwareID(Instrument, str_LabID, 0.0, 0.0, 0.0, flt_A_Difference);\r\n// }} \"\"\r\n// {{ 640 1 0 \"a8291268_a976_420d_a51ccf7fc51f3948\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 641 1 0 \"90d0391d_9b78_4bd0_8b92fffbdf4fb802\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetLabwareCenter(Instrument, i_seq_LabwarePositionsToOffset, flt_CenterX2, flt_CenterY2);\r\n// }} \"\"\r\n// {{ 642 1 0 \"f50f4692_e5ff_42f4_b817e5a53dc0172e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DeltaX = flt_CenterX - flt_CenterX2;\r\n// }} \"\"\r\n// {{ 643 1 0 \"a021c0d1_0420_4250_9c0ce560e37ff6ff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DeltaY = flt_CenterY - flt_CenterY2;\r\n// }} \"\"\r\n// {{ 644 1 0 \"d86e3bdd_c625_4cec_942635514b500c16\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 645 1 0 \"ad0389c5_d958_4c4e_9a5b0a4b2fafeafe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nADJUST_SetRelativePositionForLabwareID(Instrument, str_LabID, flt_DeltaX, flt_DeltaY, 0.0, 0.0);\r\n// }} \"\"\r\n// {{ 646 1 0 \"94d71c93_b7bb_4225_af2e97ca00f45225\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 648 1 0 \"94d71c93_b7bb_4225_af2e97ca00f45225\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_RotateLabware\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetAbsolutePosition\" \"Begin\"\r\nfunction ADJUST_SetAbsolutePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"ADJUST_SetAbsolutePosition\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 650 1 0 \"3cae0917_f954_41fc_b5d56c4c51afbda5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 651 1 0 \"84c60f13_26d4_4130_88cdcd019914bddb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 653 1 0 \"88df4dc8_ae87_439d_bc250ceaee4a1a43\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToAdjust, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 654 1 0 \"4514b44b_10d9_4b26_94e90c58b5cfcae9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 655 1 0 \"2169da70_8ec1_4335_86edd48d7ee24de2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 656 1 0 \"4514b44b_10d9_4b26_94e90c58b5cfcae9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 657 1 0 \"3cae0917_f954_41fc_b5d56c4c51afbda5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 658 1 0 \"f59b678e_4c08_48f9_979071d508145648\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nADJUST_SetAbsolutePositionForLabwareID(Instrument, str_LabID, i_fltPositionX, i_fltPositionY, i_fltPositionZ, i_fltPositionR);\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetAbsolutePosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetAbsolutePositionForLabwareID\" \"Begin\"\r\nfunction ADJUST_SetAbsolutePositionForLabwareID( device & Instrument, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void {\r\n// }} \"\"\r\n// {{ 5 \"ADJUST_SetAbsolutePositionForLabwareID\" \"InitLocals\"\r\n// }} \"\"\r\n// Set Absolute Position\r\n{\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n      variable PosVals[];\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      //strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      //if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      //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);\r\n\r\n      //EnterSemaphore();\r\n      objDecklayout = Instrument.GetDeckLayoutObject();\r\n      //LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object Decklayout5;\r\n          object MoveParameters;\r\n\r\n          objDecklayout.GetObject(\"IDeckLayout5\", Decklayout5);\r\n\r\n          //EnterSemaphore();             \r\n          //io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          //LeaveSemaphore();\r\n\r\n          //StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Current position: (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n\r\n          MoveParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          MoveParameters.Add(i_strLabwareID, P_LABWARE_ID);\r\n          MoveParameters.Add(i_fltPositionX, P_XCOORD);\r\n          MoveParameters.Add(i_fltPositionY, P_YCOORD);\r\n          MoveParameters.Add(i_fltPositionZ, P_ZCOORD);\r\n          MoveParameters.Add(i_fltPositionR, P_RZCOORD);\r\n\r\n          Decklayout5.MoveLabware(objLabware, MoveParameters);\r\n\r\n          // Trace new position\r\n          //EnterSemaphore();\r\n          //io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          //LeaveSemaphore();\r\n\r\n          objLabware.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          Decklayout5.ReleaseObject();\r\n          MoveParameters.ReleaseObject();\r\n          //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"New position:     (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n          //return(hslTrue);\r\n        }\r\n        //else\r\n        //{\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          //objDecklayout.ReleaseObject();\r\n          //return(hslFalse);\r\n        //}\r\n     // }\r\n      //else\r\n      //{\r\n        //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        //return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n//Trace(errorID);\r\n        if (errorID==-1574764487)\r\n        {\r\n          Trace(\"LabwareID is  unknown.\");\r\n          //return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          //Trace(\"Unknown error occured.\");\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n}\r\n// {{{ 5 \"ADJUST_SetAbsolutePositionForLabwareID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetProperties\" \"Begin\"\r\nfunction ADJUST_SetProperties( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_strPropertyKey, variable i_strProperyValue ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"ADJUST_SetProperties\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 662 1 0 \"b5d1796e_1d51_4956_986647e77b656088\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 663 1 0 \"bd434c8d_726b_49c7_8a15f395072e3972\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 665 1 0 \"091b1fcf_f84f_4629_a1285e3f175dc63f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToAdjust, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 666 1 0 \"ad2e5dc9_5d99_4504_9c109daae0533ff9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 667 1 0 \"afa3da4a_306f_445e_8f4c7961b4780ccf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 668 1 0 \"ad2e5dc9_5d99_4504_9c109daae0533ff9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 669 1 0 \"b5d1796e_1d51_4956_986647e77b656088\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 670 1 0 \"44df2e12_8806_4497_940cbb2622bd1dd6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nADJUST_SetPropertiesForLabwareID(Instrument, str_LabID, i_strPropertyKey, i_strProperyValue);\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetProperties\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetPropertiesForLabwareID\" \"Begin\"\r\nfunction ADJUST_SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void {\r\n// }} \"\"\r\nprivate variable strLabwareID;\r\nprivate variable strProperyValue;\r\nprivate variable strPropertyKey;\r\n// {{ 5 \"ADJUST_SetPropertiesForLabwareID\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 672 1 0 \"8460f919_dd60_43a9_a5d7f3576546ecc5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrPropertyKey = StrConcat2(i_strPropertyKey, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 673 1 0 \"01cf411f_649a_4b41_8c35b49127a451b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrProperyValue = StrConcat2(i_strProperyValue, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 674 1 0 \"cf2a01de_c66a_48c3_931d1836b0a35491\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrLabwareID = StrConcat2(i_strLabwareID, Translate(\"\"));\r\n// }} \"\"\r\nTrace(\"Lab ID:  \",i_strLabwareID,\" Property Key:  \",strPropertyKey,\"  Property Value:  \",strProperyValue);\r\n// {{ 676 1 0 \"4298d6fb_bf75_4a8e_88e6e63b6782acd3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n    {\r\n      object   objDecklayout;\r\n      variable str_PropertyValue;\r\n\r\n      str_PropertyValue = strProperyValue;\r\n\r\n      //variable strFunctionName(\"\");\r\n\r\n      //strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      //if (!CheckString(i_strPropertyValue, \"i_strPropertyValue\", strFunctionName)) return(hslFalse);\r\n      //if (!CheckString(i_strPropertyKey, \"i_strPropertyKey\", strFunctionName)) return(hslFalse);\r\n      //if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID + \", i_strPropertyKey = \" + i_strPropertyKey + \", i_strPropertyValue = \" + i_strPropertyValue, strFunctionName);\r\n\r\n      //EnterSemaphore();\r\n      objDecklayout = Instrument.GetDeckLayoutObject();\r\n      //LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object   objEditLabware5;\r\n          object   objPropertyParameters;\r\n\r\n          objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n          // prepare a new Pars object for the labware properties\r\n          objPropertyParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          objPropertyParameters.Add(str_PropertyValue, strPropertyKey);\r\n\r\n          // check data from the decklayout\r\n          objEditLabware5.SetLabwrProperties(objPropertyParameters);\r\n\r\n          str_PropertyValue = objPropertyParameters.Item1(strPropertyKey);\r\n\r\n          objPropertyParameters.ReleaseObject();\r\n          objEditLabware5.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n\r\n          //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n\r\n          //return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        //return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          //return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n// {{{ 5 \"ADJUST_SetPropertiesForLabwareID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetRelativePosition\" \"Begin\"\r\nfunction ADJUST_SetRelativePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"ADJUST_SetRelativePosition\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 679 1 0 \"8e117e2c_46a7_4fc7_a8fa861e877c29b7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 680 1 0 \"037129c2_62db_45b4_b01d6bca055842df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 682 1 0 \"59135090_7df4_4eb0_b792a75263b61663\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToAdjust, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 683 1 0 \"133fe4a9_367b_41b6_aeb5cc8285cbb444\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 684 1 0 \"ce502b72_38a9_430c_ad97516be3963bb8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 685 1 0 \"133fe4a9_367b_41b6_aeb5cc8285cbb444\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 686 1 0 \"8e117e2c_46a7_4fc7_a8fa861e877c29b7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 687 1 0 \"0f6323af_7803_42e7_a92efc300dcb1a98\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nADJUST_SetRelativePositionForLabwareID(Instrument, str_LabID, i_fltPositionX, i_fltPositionY, i_fltPositionZ, i_fltPositionR);\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetRelativePosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_SetRelativePositionForLabwareID\" \"Begin\"\r\nfunction ADJUST_SetRelativePositionForLabwareID( device & Instrument, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void {\r\n// }} \"\"\r\n// {{ 5 \"ADJUST_SetRelativePositionForLabwareID\" \"InitLocals\"\r\n// }} \"\"\r\n{\r\n    // HxPars keys\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n    // Helper functions\r\n    //private function ConvertToFloat(variable iVariable, variable& oVariable) variable;\r\n    //private function CheckBool(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    //private function CheckInteger(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    //private function CheckIntegerRange(variable iVariable, variable iTraceEntry, variable iMin, variable iMax, variable iFunctionName) variable;\r\n    //private function CheckString(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    //private function CheckFloat(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    //private function StatusTrace(variable i_intState, variable i_intTraceLevel, variable i_strTraceString, variable i_strFunctionName) void;\r\n    //private function EnterSemaphore();\r\n    //private function LeaveSemaphore();\r\n    //private function ExtractFunctionName(variable i_strFunctionName) variable;\r\n    //private function ReverseFind(string i_strString, string i_strSubString) variable;\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // RelativePositionValuesSetForLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    //function RelativePositionValuesSetForLabwareID(device& io_devDevice,\r\n                                                  // variable i_strLabwareID,\r\n                                                  // variable i_fltPositionX,\r\n                                                  // variable i_fltPositionY,\r\n                                                  // variable i_fltPositionZ,\r\n                                                  // variable i_fltPositionR) variable\r\n    {\r\n      variable PosVals[];\r\n      variable myValue;\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n     // strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n     // if(!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID, strFunctionName);\r\n\r\n      //EnterSemaphore();\r\n      objDecklayout = Instrument.GetDeckLayoutObject();\r\n      //LeaveSemaphore();\r\n   \r\n      if(!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n        variable strPos(\"\");\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if(!objLabware.IsNull())\r\n        {\r\n          object Decklayout5;\r\n          object MoveParameters;\r\n          variable fltPos, fltPosShift;\r\n\r\n          objDecklayout.GetObject(\"IDeckLayout5\", Decklayout5);\r\n\r\n          MoveParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          MoveParameters.Add(i_strLabwareID, P_LABWARE_ID);\r\n\r\n          //EnterSemaphore();\r\n          Instrument.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          //LeaveSemaphore();\r\n\r\n          //StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Current position: (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n\r\n          _ConvertToFloat(PosVals[0],fltPos);\r\n          _ConvertToFloat(i_fltPositionX,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_XCOORD);\r\n\r\n          _ConvertToFloat(PosVals[1],fltPos);\r\n          _ConvertToFloat(i_fltPositionY,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_YCOORD);\r\n\r\n          _ConvertToFloat(PosVals[2],fltPos);\r\n          _ConvertToFloat(i_fltPositionZ,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_ZCOORD);\r\n\r\n          _ConvertToFloat(PosVals[3],fltPos);\r\n          _ConvertToFloat(i_fltPositionR,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_RZCOORD);\r\n\r\n          Decklayout5.MoveLabware(objLabware, MoveParameters);\r\n\r\n          //EnterSemaphore();\r\n          Instrument.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          //LeaveSemaphore();\r\n\r\n          objLabware.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          Decklayout5.ReleaseObject();\r\n          MoveParameters.ReleaseObject();\r\n          //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"New position:     (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n          //return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n\r\n          objDecklayout.ReleaseObject();\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        //return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          Trace(\"LabwareID is  unknown.\");\r\n          //return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          //Trace(\"Unknown error occured.\");\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n    //////////////////////////////////////////////////////////////////////////\r\n    // private function ConvertToFloat\r\n    //////////////////////////////////////////////////////////////////////////\r\n}\r\n// {{{ 5 \"ADJUST_SetRelativePositionForLabwareID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_TiltLabware\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable flt_TiltAngleInRadian;\r\nprivate variable flt_X_Coord;\r\nprivate variable int_CutNum;\r\nprivate variable flt_X_Origin;\r\nprivate variable str_ContainerFilePath;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable int_Length;\r\nprivate variable int_RowCount;\r\nprivate variable flt_ConversionFactor;\r\nprivate variable str_ConfigFilePath;\r\nprivate variable i;\r\nprivate variable flt_Sin;\r\nprivate variable flt_Cos;\r\nprivate variable flt_NewXOffset;\r\nprivate variable strFunctionName;\r\nprivate variable flt_ContainerWidth;\r\nprivate variable flt_NewZOffset;\r\nprivate variable bool_IncrementContainerDirection;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_ContainerBaseOffset;\r\nprivate variable str_LabID;\r\nprivate variable flt_Y_Origin;\r\nprivate variable flt_LabwareLength;\r\nprivate variable flt_CurrentXOffset;\r\nprivate variable flt_CurrentZOffset;\r\nprivate variable flt_Z_Radius;\r\nprivate variable int_ColumnCount;\r\nprivate variable flt_X_Shift;\r\nprivate variable bool_AlphaNumeric;\r\nprivate variable int_Count;\r\nprivate variable flt_Z_Origin;\r\nprivate variable bool_SequenceValid;\r\nprivate variable flt_NewZCoord;\r\nprivate variable str_PosID;\r\nprivate variable flt_X_Radius;\r\nprivate variable flt_NewXCoord;\r\nprivate variable flt_LabwareWidth;\r\nprivate variable int_TotalPositions;\r\nprivate variable int_Index;\r\nprivate sequence seq_Temp;\r\nprivate variable arr_UsedPosition[];\r\nprivate variable arr_XOffsetUsed[];\r\nprivate variable arr_ZOffsetUsed[];\r\nprivate variable int_UsedIndex;\r\n// {{ 5 \"ADJUST_TiltLabware\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 759 1 0 \"a8579087_5321_474c_bbbff10b3daceaca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 760 1 0 \"8c646812_f791_4252_ab5404b4aec2719a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 762 1 0 \"89dc920e_5b33_459a_a16a8e4d8ae7f674\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 763 1 0 \"1b464460_31d5_4fbe_aacd345a9bb6d9e8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 764 1 0 \"44c7a993_7075_404a_98b7339d99f2dda5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 765 1 0 \"faa6dcd3_639e_46e0_bd44347d6a6bba06\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 766 1 0 \"84634f92_3662_41a6_83760f547fe74fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 768 1 0 \"a8579087_5321_474c_bbbff10b3daceaca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 769 1 0 \"3d930f15_e692_4f31_a9506e3e18618b6b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 770 1 0 \"bb13932f_6e22_48b7_98f9621d60b933e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 772 1 0 \"a4740c0b_7050_4719_b51f204807a4c80e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToOffset, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 773 1 0 \"8ec7866a_c616_46f9_a591c3e136a8228e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 774 1 0 \"db24974d_3a63_468a_a4ef32b52ba29ac2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 775 1 0 \"8ec7866a_c616_46f9_a591c3e136a8228e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 776 1 0 \"3d930f15_e692_4f31_a9506e3e18618b6b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 777 1 0 \"6b8051c8_d723_4a7d_9dc40b62ff6715b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 778 1 0 \"a28e94c0_7597_4095_a9e85bf888ed56a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 779 1 0 \"1e89a34e_4d7a_4098_b8409eff58140e88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetPositionCountForCurrLabware(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{ 780 1 0 \"bda376ad_9fba_40fc_9bed93f1b5f889bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (LPQ::LABWARE_TILT::BOOL_LIBRARY_INITIALIZED == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 781 1 0 \"3471b3c8_8874_44fa_a1a3d21ec13eba90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLPQ::InitializeVariables();\r\n// }} \"\"\r\n// {{ 782 1 0 \"ec9ccf5d_4e81_4d3d_b800e46241cd42a4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_TILT::ARR_BASE_OFFSET.SetSize(0);\r\n// }} \"\"\r\n// {{ 783 1 0 \"48fb3eda_5320_4675_940f2054a85afee0\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nLPQ::LABWARE_TILT::ARR_LABWARE_CONFIG_FILE.SetSize(0);\r\n// }} \"\"\r\n// {{ 784 1 0 \"c9ca3e2b_44b6_48cd_aa8e0d35b28f9873\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nLPQ::LABWARE_TILT::BOOL_LIBRARY_INITIALIZED = 1;\r\n// }} \"\"\r\n// {{ 785 1 0 \"bda376ad_9fba_40fc_9bed93f1b5f889bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 786 1 0 \"a58e3659_616e_4916_8ce243e3f1801ec9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 787 1 0 \"e60769e3_f747_4d3e_9aa6ce73330ad6db\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ConversionFactor = 1.74532925199433E-02;\r\n// }} \"\"\r\n// {{ 788 1 0 \"109badcc_e7e6_447a_a030724cdce8af88\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TiltAngleInRadian = i_flt_TiltAngle * flt_ConversionFactor;\r\n// }} \"\"\r\n// {{{ 789 1 0 \"852f1493_62e0_436d_ae68447e568a50b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Cos = MthCos(flt_TiltAngleInRadian);\r\n// }} \"\"\r\n// {{{ 790 1 0 \"d5fa64b4_502c_48b9_8c0ce62b42a07b91\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Sin = MthSin(flt_TiltAngleInRadian);\r\n// }} \"\"\r\n// {{{ 791 1 0 \"9f5832dd_daaa_45cb_8434b049b87a4fc4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetRowColumnNumber(Instrument, i_seq_LabwarePositionsToOffset, int_RowCount, int_ColumnCount, bool_AlphaNumeric, bool_IncrementContainerDirection);\r\n// }} \"\"\r\n// {{{ 792 1 0 \"d8ba3ef4_a39b_4609_be861ad1b3c925de\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetLabwareOrigin(Instrument, i_seq_LabwarePositionsToOffset, flt_X_Origin, flt_Y_Origin, flt_Z_Origin);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"ef365259_16ac_4eb2_9a60868a361472ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetLabwareLW(Instrument, i_seq_LabwarePositionsToOffset, flt_LabwareLength, flt_LabwareWidth);\r\n// }} \"\"\r\n// {{ 794 1 0 \"395120d9_c739_4992_b68e905bdf426114\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_ShiftToDeepestPoint == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 795 1 0 \"cb4a59c7_d234_4154_8fc1a7f81fff344a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCONT_GetContainerWidth(Instrument, i_seq_LabwarePositionsToOffset, flt_ContainerWidth);\r\n// }} \"\"\r\n// {{ 796 1 0 \"4aad83d4_a0b2_4dea_864b68940f96a41c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Shift = flt_ContainerWidth / (2 * 1.0);\r\n// }} \"\"\r\nTrace(\"X Shift:  \",flt_X_Shift,\"  Container Width:  \",flt_ContainerWidth);\r\n// {{ 798 1 0 \"395120d9_c739_4992_b68e905bdf426114\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 799 1 0 \"0fae86ed_f8d3_411b_a2a77abfd005abd1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Shift = 0.0;\r\n// }} \"\"\r\n// {{ 800 1 0 \"395120d9_c739_4992_b68e905bdf426114\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 801 1 0 \"a58e3659_616e_4916_8ce243e3f1801ec9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 802 1 0 \"aee93798_d587_4796_a4eb300c27b6ea17\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 803 1 0 \"2e5f46ea_58e1_4e27_b5b460a9152ec250\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_LabwarePositionsToOffset.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 804 1 0 \"af38e33c_c055_4de7_b9045a0990e341a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 805 1 0 \"61184e22_73b6_4bc6_8826720e3b370d7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"6ddf4634_15bc_4380_b8a52fbb462596bf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSEQ_GetDefaultSequence(Instrument, str_LabID, 1, seq_Temp);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"566950c6_b2ad_4309_b96df4bc1de2c0b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetContainerBaseOffset(Instrument, seq_Temp, flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"5ccc2c97_cb88_41d5_a129b8bbe2a3b4ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, seq_Temp, str_ConfigFilePath);\r\n// }} \"\"\r\n// {{{ 809 1 0 \"d573fa0f_5c20_4023_ac6bda1ceadbe6e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_Index = _Lookup(LPQ::LABWARE_TILT::ARR_LABWARE_CONFIG_FILE, str_ConfigFilePath);\r\n// }} \"\"\r\n// {{ 810 1 0 \"74597dbd_3655_489c_a20cc9febc3f6d48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 0)\r\n{\r\n// }} \"\"\r\n// {{ 811 1 0 \"fb7cc41d_36a9_4282_b1468188691c3a45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 812 1 0 \"014a9c62_8271_4652_bfdc30cbb32af730\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_TILT::ARR_BASE_OFFSET.AddAsLast(flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{ 813 1 0 \"c3903280_395e_4a13_963e4bf41dfb46ad\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nLPQ::LABWARE_TILT::ARR_LABWARE_CONFIG_FILE.AddAsLast(str_ConfigFilePath);\r\n// }} \"\"\r\n// {{ 814 1 0 \"74597dbd_3655_489c_a20cc9febc3f6d48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 815 1 0 \"ed79589a_a97a_4858_b99431baf2dc3fa2\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBaseOffset=LPQ::LABWARE_TILT::ARR_BASE_OFFSET.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{ 816 1 0 \"74597dbd_3655_489c_a20cc9febc3f6d48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 817 1 0 \"64e4088d_0f89_4dc1_8583d25ea11123ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCONT_GetConfigFile(Instrument, i_seq_LabwarePositionsToOffset, str_ContainerFilePath);\r\n// }} \"\"\r\n// {{ 818 1 0 \"bc9e4d8c_bfc9_40f4_bc1e8e74fd1c21cd\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 819 1 0 \"a59bc78e_d148_4d63_82fcfb286b7a1d09\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_LabwarePositionsToOffset.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 820 1 0 \"8224cc4f_394e_4aed_99896878953e7164\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 821 1 0 \"037a0829_676e_4262_a45d9cf755ff015b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"bdd258a3_5bcd_4aa6_95f4c301a9594a95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(Instrument, str_LabID, str_PosID, str_ContainerFilePath, 0.0, 0.0, flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{ 823 1 0 \"bc9e4d8c_bfc9_40f4_bc1e8e74fd1c21cd\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 824 1 0 \"697796b3_d26c_4cd0_957b536a73e83a17\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_UsedPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 825 1 0 \"062c362c_3f7d_4e0c_98907faecfd3880c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_XOffsetUsed.SetSize(0);\r\n// }} \"\"\r\n// {{ 826 1 0 \"89753418_8ed6_4f29_bd49c8ca21bb07f2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ZOffsetUsed.SetSize(0);\r\n// }} \"\"\r\n// {{ 827 1 0 \"4e9a99e4_ec30_4433_a02180a0778ebcf8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 828 1 0 \"d81e9250_a777_4796_848c239208c117d9\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_LabwarePositionsToOffset.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 829 1 0 \"cec5581f_957e_42fe_9dcccf5bfe42c2cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 830 1 0 \"a36ccb82_c68e_4030_9875b3e4c5c2b988\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 831 1 0 \"1f2cc4b0_74ad_45c8_9120860c095d0a16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 832 1 0 \"059424e9_66f3_4c6c_a3cf1141a8de0f70\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentXOffset = 0.0;\r\n// }} \"\"\r\n// {{ 833 1 0 \"ac56e199_dc8c_4e1a_ab1b19d35f0a84c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentZOffset = 0.0;\r\n// }} \"\"\r\n// {{ 834 1 0 \"e4025160_4a3a_46ef_96969d30b1a4146e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewXOffset = 0.0;\r\n// }} \"\"\r\n// {{ 835 1 0 \"aafe769e_b6af_4f16_8ce67bff61370912\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewZOffset = 0.0;\r\n// }} \"\"\r\n// {{ 836 1 0 \"17d09a35_f409_4fe6_86001694a1bf58ad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewXCoord = 0.0;\r\n// }} \"\"\r\n// {{ 837 1 0 \"136532e9_a2dc_4e89_bd2e14a729f5d51d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewZCoord = 0.0;\r\n// }} \"\"\r\n// {{ 838 1 0 \"c8653b31_8728_40e2_862b882c981fcc69\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Radius = 0.0;\r\n// }} \"\"\r\n// {{ 839 1 0 \"a63d1123_23fd_450a_8ecdd525e2110844\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Radius = 0.0;\r\n// }} \"\"\r\n// {{ 840 1 0 \"f7e150a9_83a9_45c0_9ec73643ad30e45b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"2e4c967c_fdf0_491c_aaf60942febe1a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_TiltAngle > 0)\r\n{\r\n// }} \"\"\r\nflt_X_Radius = flt_X_Coord - flt_X_Origin + i_flt_XOffset - flt_X_Shift;\r\nflt_Z_Radius = flt_ContainerBaseOffset + i_flt_ZOffset;\r\n\r\n//Trace(\"X Radius:  \",flt_X_Radius);\r\n//Trace(\"X Shift:  \",flt_X_Shift);\r\n\r\nflt_NewXCoord = flt_X_Origin + (flt_X_Radius) * flt_Cos;\r\nflt_NewZCoord = flt_Z_Origin + flt_X_Radius * flt_Sin;\r\n\r\n//Trace(\"X Coord:  \",flt_X_Coord,\" New X:  \",flt_NewXCoord);\r\n//Trace(\"Z Coord:  \",flt_Z_Coord,\" New Z:  \",flt_NewZCoord);\r\n\r\nflt_NewXOffset = flt_NewXCoord - flt_X_Coord + i_flt_XOffset;\r\nflt_NewZOffset = flt_NewZCoord - flt_Z_Coord + flt_ContainerBaseOffset + i_flt_ZOffset + (flt_Z_Coord - flt_Z_Origin);\r\n// {{ 843 1 0 \"2e4c967c_fdf0_491c_aaf60942febe1a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 844 1 0 \"a87da929_33e7_4e1f_b1bf2134b6c2fcaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewXOffset = 0.0;\r\n// }} \"\"\r\n// {{ 845 1 0 \"e49ef6da_d90e_494a_963fe157bc134b3d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewZOffset = flt_ContainerBaseOffset + i_flt_ZOffset;\r\n// }} \"\"\r\n// {{ 846 1 0 \"2e4c967c_fdf0_491c_aaf60942febe1a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 847 1 0 \"8b4f44ff_8520_47d3_8138e6471a24609a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCONT_GetConfigFile(Instrument, i_seq_LabwarePositionsToOffset, str_ContainerFilePath);\r\n// }} \"\"\r\n// {{{ 848 1 0 \"f8ff7885_4c19_40fb_94b31aed9127dc98\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_UsedIndex = _Lookup(arr_UsedPosition, str_PosID);\r\n// }} \"\"\r\n// {{{ 849 1 0 \"a159c173_2b25_489c_add436dccc9bdc4f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_NewXOffset = MthRound(flt_NewXOffset, 1);\r\n// }} \"\"\r\n// {{{ 850 1 0 \"8c66caad_fa39_44b7_a1899df53afb8191\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_NewZOffset = MthRound(flt_NewZOffset, 1);\r\n// }} \"\"\r\n// {{ 851 1 0 \"1c87d93a_69f9_410c_9a4959882ad312d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_UsedIndex == 0)\r\n{\r\n// }} \"\"\r\n// {{ 852 1 0 \"c07a6343_b745_4bf0_84957d85edb5a668\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_UsedPosition.AddAsLast(str_PosID);\r\n// }} \"\"\r\n// {{ 853 1 0 \"54304699_db1e_498d_b919c9b2a2f88ff9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_XOffsetUsed.AddAsLast(flt_NewXOffset);\r\n// }} \"\"\r\n// {{ 854 1 0 \"84985d6f_8861_487b_ad986b6ec92d12ea\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ZOffsetUsed.AddAsLast(flt_NewZOffset);\r\n// }} \"\"\r\n// {{ 855 1 0 \"1c87d93a_69f9_410c_9a4959882ad312d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 856 1 0 \"9297c8c3_cc14_40ad_8dac7fc17a0256e8\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_NewXOffset=arr_XOffsetUsed.GetAt(int_UsedIndex-1);\r\n// }} \"\"\r\n// {{ 857 1 0 \"b09797cc_d5bf_404c_b4c8a67c3b901353\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_NewZOffset=arr_ZOffsetUsed.GetAt(int_UsedIndex-1);\r\n// }} \"\"\r\n// {{ 858 1 0 \"1c87d93a_69f9_410c_9a4959882ad312d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Lab ID:  \",str_LabID,\" Pos ID:  \",str_PosID,\" X Offset:  \",flt_NewXOffset,\"  Z Offset:  \",flt_NewZOffset);\r\n// {{{ 860 1 0 \"452f65ef_edd7_4207_b9ca3fbab71e9ba0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(Instrument, str_LabID, str_PosID, str_ContainerFilePath, flt_NewXOffset, 0.0, flt_NewZOffset);\r\n// }} \"\"\r\n// {{ 861 1 0 \"4e9a99e4_ec30_4433_a02180a0778ebcf8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 862 1 0 \"cf50a12c_e23b_466a_8d1145a75a371d5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 864 1 0 \"cf50a12c_e23b_466a_8d1145a75a371d5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_TiltLabware\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetBaseMeasurement\" \"Begin\"\r\nfunction CONT_GetBaseMeasurement( device & Instrument, sequence & i_seq_Labware, variable & o_flt_ContainerBaseThickness, variable & o_flt_ContainerBaseOffset ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"CONT_GetBaseMeasurement\" \"InitLocals\"\r\no_flt_ContainerBaseThickness = 0;\r\no_flt_ContainerBaseOffset = 0;\r\n// }} \"\"\r\n// {{ 866 1 0 \"c0bef732_e3c3_48d9_a2a94bcfafa7c2e1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 867 1 0 \"c6089ed8_31d2_47cc_8111e00eda129c95\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 869 1 0 \"8e457ffc_1d3d_4ab4_862f289555e4bff8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 870 1 0 \"005051c7_e231_41be_bf46f23ca15660f6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 871 1 0 \"b3d7ffd9_b243_4b92_8af4490229dcc169\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 872 1 0 \"005051c7_e231_41be_bf46f23ca15660f6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 873 1 0 \"c0bef732_e3c3_48d9_a2a94bcfafa7c2e1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 874 1 0 \"04f0ff9f_ac86_4a58_b2a8e48dbfded441\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ContainerBaseThickness = 0.0;\r\n// }} \"\"\r\n// {{ 875 1 0 \"16629d18_3c3b_43df_88368cb154cd0eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ContainerBaseOffset = 0.0;\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject rack2;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = Instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(str_LabID);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\nlabware.GetObject(\"IRectRack2\", rack2); //  IEditLabware6\r\n\r\n\r\nrack.CntrAtPosition(ctr,str_PosID);\r\no_flt_ContainerBaseThickness = ctr.ContainerBaseDepth;\r\no_flt_ContainerBaseOffset = rack2.ContainerBaseOffset(str_PosID);\r\n\r\nrack.ReleaseObject(); \r\nrack2.ReleaseObject();\r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 877 1 0 \"3ccc8dfd_a072_4204_9048ce218777ee51\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_ContainerBaseThickness = MthRound(o_flt_ContainerBaseThickness, 1);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"1daae3a7_0790_4f0f_898209c74c66e652\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_ContainerBaseOffset = MthRound(o_flt_ContainerBaseOffset, 1);\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetBaseMeasurement\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetConfigFile\" \"Begin\"\r\nfunction CONT_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ContainerFileName ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"CONT_GetConfigFile\" \"InitLocals\"\r\no_str_ContainerFileName = 0;\r\n// }} \"\"\r\n// {{ 880 1 0 \"4d5b84d8_1009_4ee7_96c4799b230d85ff\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"b640a6f4_bf2d_42fd_8985ee6d09cdd8bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 883 1 0 \"99c693f1_f2d1_4162_b57391c7c5039968\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 884 1 0 \"e0353b6d_d887_404b_90ee0fb1b6afcb4d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 885 1 0 \"6a1638c3_1c0f_43b8_af97da04684478ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 886 1 0 \"e0353b6d_d887_404b_90ee0fb1b6afcb4d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 887 1 0 \"4d5b84d8_1009_4ee7_96c4799b230d85ff\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 888 1 0 \"30c5d5f1_8be8_4442_a811322d240e1494\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ContainerFileName = Translate(\"\");\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = Instrument.GetDeckLayoutObject();\r\nlabware = m_decklayout.Labware(str_LabID);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\n\r\nrack.CntrAtPosition(ctr,str_PosID);\r\no_str_ContainerFileName = ctr.FileName;\r\n\r\nrack.ReleaseObject(); \r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 5 \"CONT_GetConfigFile\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetContainerBaseThickness\" \"Begin\"\r\nfunction CONT_GetContainerBaseThickness( device & Instrument, sequence i_seq_Labware, variable & o_containerBaseThickness ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"CONT_GetContainerBaseThickness\" \"InitLocals\"\r\no_containerBaseThickness = 0;\r\n// }} \"\"\r\n// {{ 891 1 0 \"a0994aea_4d57_4177_851b7e330ed56b1c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 892 1 0 \"0491c203_25d6_4061_bf4df5bb509184d5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 894 1 0 \"1174a49e_af6e_4aab_ba9f0496c2a20684\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 895 1 0 \"c6c6644e_8b83_4b5e_b6a26b71714782d7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 896 1 0 \"feac1bae_1273_469b_a7279a3ba11b9213\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 897 1 0 \"c6c6644e_8b83_4b5e_b6a26b71714782d7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 898 1 0 \"a0994aea_4d57_4177_851b7e330ed56b1c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 899 1 0 \"504acde1_392e_4b4f_97509fae461f78f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_containerBaseThickness = 0;\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = Instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(str_LabID);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\n\r\nrack.CntrAtPosition(ctr,str_PosID);\r\no_containerBaseThickness = ctr.ContainerBaseDepth;\r\n\r\nrack.ReleaseObject(); \r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 901 1 0 \"a4be7d8b_2a73_4f35_84e17bc4fb14c563\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_containerBaseThickness = MthRound(o_containerBaseThickness, 1);\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetContainerBaseThickness\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetContainerDepth\" \"Begin\"\r\nfunction CONT_GetContainerDepth( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void {\r\n// }} \"\"\r\nprivate variable flt_Z_Bottom;\r\nprivate variable flt_NotUsed;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"CONT_GetContainerDepth\" \"InitLocals\"\r\no_ContainerDepth = 0;\r\no_ContainerClearanceHeight = 0;\r\n// }} \"\"\r\n// {{ 903 1 0 \"aab6cb73_3629_4cd3_8728d8fd02cd25bf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 904 1 0 \"fdc55e27_35a7_4630_b89c3dd0c627151f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 906 1 0 \"5ddd606c_307b_431d_82e8a8e21664123f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 907 1 0 \"326a9909_595f_4e6f_9e58919ab6a79de5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 908 1 0 \"3b5618c9_bc6f_4afc_b96137d95e241eeb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 909 1 0 \"326a9909_595f_4e6f_9e58919ab6a79de5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 910 1 0 \"aab6cb73_3629_4cd3_8728d8fd02cd25bf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 911 1 0 \"d2407df2_a26b_47d7_97f01e76dc13260d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_ContainerDepth = 0;\r\n// }} \"\"\r\n// {{ 912 1 0 \"5e9b3a86_4725_4172_a4f295d86a87db4d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_ContainerClearanceHeight = 0.0;\r\n// }} \"\"\r\n// {{{ 913 1 0 \"dcf2c19a_457a_41fc_90caf863c1855d5a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_Z_Bottom, flt_NotUsed);\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = Instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(str_LabID);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\n\r\nrack.CntrAtPosition(ctr,str_PosID);\r\no_ContainerDepth = ctr.Depth;\r\no_ContainerClearanceHeight = ctr.Clearance;\r\n\r\nrack.ReleaseObject(); \r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 915 1 0 \"aae73eae_d33c_42c8_a99ed56430e23562\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_ContainerClearanceHeight = MthRound(o_ContainerClearanceHeight, 1);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"198fa18c_a592_427a_a1654ef56e08348b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_ContainerDepth = MthRound(o_ContainerDepth, 1);\r\n// }} \"\"\r\n// {{ 917 1 0 \"e3fc0a2f_83dd_4c8f_bee2891d11ed7162\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_UseDeckCoordinates == 1)\r\n{\r\n// }} \"\"\r\n// {{ 918 1 0 \"0d0fc613_92b3_4280_b7b53df8176d00e9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_ContainerClearanceHeight = o_ContainerClearanceHeight + flt_Z_Bottom;\r\n// }} \"\"\r\n// {{ 919 1 0 \"11ac18dd_a61f_4af0_9d46ade97177b01b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_ContainerDepth = o_ContainerDepth + flt_Z_Bottom;\r\n// }} \"\"\r\n// {{ 920 1 0 \"e3fc0a2f_83dd_4c8f_bee2891d11ed7162\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetContainerDepth\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetContainerWidth\" \"Begin\"\r\nfunction CONT_GetContainerWidth( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerWidth ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable flt_ContainerDiameter;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"CONT_GetContainerWidth\" \"InitLocals\"\r\no_flt_ContainerWidth = 0;\r\n// }} \"\"\r\n// {{ 922 1 0 \"5dfee177_d5d0_4fd2_960ade0093fa165f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 923 1 0 \"1ba8d44f_3113_4cc0_bb69c8d63cb6eade\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 925 1 0 \"9e286b05_2671_4a70_b39a694c69fd204f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 926 1 0 \"9ab2e23b_58d2_438a_bb4aa8cef316fac8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 927 1 0 \"c22b3970_3452_4e3b_ba502625ac4840f4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 928 1 0 \"9ab2e23b_58d2_438a_bb4aa8cef316fac8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 929 1 0 \"5dfee177_d5d0_4fd2_960ade0093fa165f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 930 1 0 \"b79d82a1_d7d6_40d0_b9240194cc6efc87\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerDiameter = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\n\r\nflt_ContainerDiameter = objEditLabware5.CntrDiameter(str_PosID);\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 932 1 0 \"94095135_3a8f_42b4_be89897ce814b77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ContainerWidth = flt_ContainerDiameter;\r\n// }} \"\"\r\n// {{{ 5 \"CONT_GetContainerWidth\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"FILE_GetDefinitionFileValue\" \"Begin\"\r\nfunction FILE_GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable {\r\n// }} \"\"\r\nprivate variable str_DataDefinition;\r\nprivate variable strFunctionName;\r\nprivate variable bool_FileExists;\r\nprivate variable str_Instance;\r\nprivate variable bool_ReturnValue;\r\nprivate variable str_Extension;\r\n// {{ 5 \"FILE_GetDefinitionFileValue\" \"InitLocals\"\r\no_str_Value = 0;\r\n// }} \"\"\r\n// {{ 934 1 0 \"9e82e857_1690_439f_b573875ddb7df4d4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_Value = Translate(\"\");\r\n// }} \"\"\r\n// {{ 935 1 0 \"fb78f7b6_bd6e_4761_b197bfa8d896a985\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 0;\r\n// }} \"\"\r\n// {{ 936 1 0 \"b4447c56_f0d8_4b4b_97b49e64c4e698a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"8c157dc3_226f_4200_a2f206d34d821d01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 939 1 0 \"99f15f86_c9cb_4765_a207921bc882a97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(i_str_ConfigFilePath);\r\n// }} \"\"\r\n// {{ 940 1 0 \"465021b0_7e93_4e6f_8a7bedbfe13d0dff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 0)\r\n{\r\n// }} \"\"\r\nTrace(i_str_ConfigFilePath,\" - File doesn't exist!\");\r\n// {{{ 942 1 0 \"8e6a8f05_84f3_4070_963216805657b2a3\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_ReturnValue);\r\n// }} \"\"\r\n// {{ 943 1 0 \"465021b0_7e93_4e6f_8a7bedbfe13d0dff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 944 1 0 \"a7140242_7836_4080_9702f3de258e2c4f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ValueToSearch = StrConcat2(i_str_ValueToSearch, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 945 1 0 \"b4447c56_f0d8_4b4b_97b49e64c4e698a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 946 1 0 \"d390ca00_e445_4204_92566ba9aa4c761e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Extension = HSLExtensions::File::GetFileExtension(i_str_ConfigFilePath);\r\n// }} \"\"\r\n// {{ 947 1 0 \"3fabca3b_d108_4b05_87fcb4a6b90c8324\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"\");\r\n// }} \"\"\r\n// {{ 948 1 0 \"8fadc8e7_822f_4d71_9184bd3af7314ce1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"\");\r\n// }} \"\"\r\n// {{ 949 1 0 \"9baaac3d_bcb8_4704_af2f6768ceee1e2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"rck\")\r\n{\r\n// }} \"\"\r\n// {{ 950 1 0 \"fd0de778_19a4_40ff_b36c1e0180c2895d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"RECTRACK\");\r\n// }} \"\"\r\n// {{ 951 1 0 \"7a2b0430_0aca_4e66_9b337afec93d104a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 952 1 0 \"9baaac3d_bcb8_4704_af2f6768ceee1e2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 953 1 0 \"62c6e661_18cf_43ff_9cbac019ebf7499e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"ctr\")\r\n{\r\n// }} \"\"\r\n// {{ 954 1 0 \"4584cab7_8015_4458_9875a6605620a8f8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"CONTAINER\");\r\n// }} \"\"\r\n// {{ 955 1 0 \"1955a138_f2fa_4e54_93a8a89d025d6c1b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 956 1 0 \"62c6e661_18cf_43ff_9cbac019ebf7499e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 957 1 0 \"ea8466fe_d742_49b5_a2e01533fde32084\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"tml\")\r\n{\r\n// }} \"\"\r\n// {{ 958 1 0 \"7c3e1bdd_4e42_4e71_a89395dba63bb77d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"TEMPLATE\");\r\n// }} \"\"\r\n// {{ 959 1 0 \"3e1065b7_9c53_459e_bfc7da2c0edd3012\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 960 1 0 \"ea8466fe_d742_49b5_a2e01533fde32084\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 961 1 0 \"8cdf045a_db8f_4562_95627742c8f65b1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"lid\")\r\n{\r\n// }} \"\"\r\n// {{ 962 1 0 \"e59eaec4_c72f_4410_9a5ca88f6261ff4f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"COVER\");\r\n// }} \"\"\r\n// {{ 963 1 0 \"6f81ecef_5766_4446_af96268babf1283f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 964 1 0 \"8cdf045a_db8f_4562_95627742c8f65b1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 965 1 0 \"6821905a_dec6_4165_9bc0725aca69f149\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"lay\")\r\n{\r\n// }} \"\"\r\n// {{ 966 1 0 \"91a8725b_00e1_4528_b6240c323794a220\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"DECKLAY\");\r\n// }} \"\"\r\n// {{ 967 1 0 \"6d2b89bd_a4b2_4da5_800f38e4ea88ff94\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"ML_STAR\");\r\n// }} \"\"\r\n// {{ 968 1 0 \"6821905a_dec6_4165_9bc0725aca69f149\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 969 1 0 \"641ca262_e38f_439a_aa1d9a7624219e9d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"dck\")\r\n{\r\n// }} \"\"\r\n// {{ 970 1 0 \"3b742828_84dc_4717_a55774ac12fd071b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"DECK\");\r\n// }} \"\"\r\n// {{ 971 1 0 \"fb93b1ac_b8cd_4deb_b40440196223a109\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 972 1 0 \"641ca262_e38f_439a_aa1d9a7624219e9d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 973 1 0 \"a6e6c29b_faf5_435e_aa59a872a0de3f43\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"tpl\")\r\n{\r\n// }} \"\"\r\n// {{ 974 1 0 \"faa29b91_6250_492a_bbbbfb8e372b86e9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"DECKLAY\");\r\n// }} \"\"\r\n// {{ 975 1 0 \"c788be7a_481f_4545_8025c31500d1ee79\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 976 1 0 \"a6e6c29b_faf5_435e_aa59a872a0de3f43\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Data definition:  \",str_DataDefinition);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 978 1 0 \"872f5940_5471_4ab7_9f7fb6579ff60710\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 979 1 0 \"a5cb5265_2e1d_4ad2_9fc51d21ce73ed81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_DataDefinition != \"\")\r\n{\r\n// }} \"\"\r\n{\r\n   object objCfgFile;\r\n\r\n   objCfgFile.CreateObject(\"HXCFGFILLIB.HxCfgFile\");\r\n   objCfgFile.LoadFile(i_str_ConfigFilePath);\r\n\r\n   onerror goto HandleError;\r\n\r\n   if(objCfgFile.ExistDataDef(str_DataDefinition,str_Instance) == 1)\r\n   {\r\n      //o_str_Value = objCfgFile.GetDataDefValueAsString(str_DataDefinition,\"default\",i_str_ValueToSearch);\r\n      objCfgFile.LookupDataDefValueAsString(str_DataDefinition,str_Instance,i_str_ValueToSearch,o_str_Value);\r\n   }\r\n   onerror goto 0;\r\n   err.Clear();\r\n\r\n   objCfgFile.ReleaseObject();\r\n\r\n   HandleError:\r\n   {\r\n   objCfgFile.ReleaseObject();\r\n   }\r\n}\r\n// {{ 981 1 0 \"497cb8d4_39f1_4abf_af145e11edfc7d0a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_str_Value != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 982 1 0 \"7990e648_3b02_44aa_99ab1c3840b1492e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 1;\r\n// }} \"\"\r\n// {{ 983 1 0 \"497cb8d4_39f1_4abf_af145e11edfc7d0a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 984 1 0 \"55a04581_3863_481c_a9f73120b498fc83\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 0;\r\n// }} \"\"\r\n// {{ 985 1 0 \"497cb8d4_39f1_4abf_af145e11edfc7d0a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 986 1 0 \"a5cb5265_2e1d_4ad2_9fc51d21ce73ed81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"File type:  \",str_Extension,\" unknown!\");\r\n// {{ 988 1 0 \"1a511feb_5209_45dc_ac4483985905aea4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 0;\r\n// }} \"\"\r\n// {{ 989 1 0 \"a5cb5265_2e1d_4ad2_9fc51d21ce73ed81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 990 1 0 \"9ec6ed28_8d6d_445a_b4438a7181abfacc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_ReturnValue == 0)\r\n{\r\n// }} \"\"\r\n// {{ 991 1 0 \"edcf2ff7_5c54_427a_bf6161cb63b4e0f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"lay\")\r\n{\r\n// }} \"\"\r\n// {{ 992 1 0 \"7bf0d6fe_aeb2_4562_8cd7fe6853d961fd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n{\r\n   object objCfgFile;\r\n\r\n   objCfgFile.CreateObject(\"HXCFGFILLIB.HxCfgFile\");\r\n   objCfgFile.LoadFile(i_str_ConfigFilePath);\r\n\r\n   onerror goto HandleError2;\r\n\r\n   if(objCfgFile.ExistDataDef(str_DataDefinition,str_Instance) == 1)\r\n   {\r\n      //o_str_Value = objCfgFile.GetDataDefValueAsString(str_DataDefinition,\"default\",i_str_ValueToSearch);\r\n      objCfgFile.LookupDataDefValueAsString(str_DataDefinition,str_Instance,i_str_ValueToSearch,o_str_Value);\r\n   }\r\n   onerror goto 0;\r\n   err.Clear();\r\n\r\n   objCfgFile.ReleaseObject();\r\n\r\n   HandleError2:\r\n   {\r\n   objCfgFile.ReleaseObject();\r\n   }\r\n}\r\n// {{ 994 1 0 \"6ae094f1_a7e6_4cf0_bc249caa5cb70d81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_str_Value != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 995 1 0 \"c8a23ed5_c604_4ae0_8f99938881e4ed19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 1;\r\n// }} \"\"\r\n// {{ 996 1 0 \"6ae094f1_a7e6_4cf0_bc249caa5cb70d81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 997 1 0 \"7a089ecc_3a5c_4ce2_9df0d7c4eecc517a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 0;\r\n// }} \"\"\r\n// {{ 998 1 0 \"6ae094f1_a7e6_4cf0_bc249caa5cb70d81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 999 1 0 \"edcf2ff7_5c54_427a_bf6161cb63b4e0f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1000 1 0 \"9ec6ed28_8d6d_445a_b4438a7181abfacc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1001 1 0 \"01992fcc_7b30_4591_a2c85b2e2bfdd5b8\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_ReturnValue);\r\n// }} \"\"\r\n// {{{ 5 \"FILE_GetDefinitionFileValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetCarrierAndSiteID\" \"Begin\"\r\nfunction LABWARE_GetCarrierAndSiteID( device & Instrument, sequence i_seq_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"LABWARE_GetCarrierAndSiteID\" \"InitLocals\"\r\no_str_TemplateID = 0;\r\no_str_TemplateSiteID = 0;\r\n// }} \"\"\r\n// {{ 1003 1 0 \"d10f9b96_23d4_493b_bee1096f5adad7c1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1004 1 0 \"9a29a614_946a_4eb7_92229c3508dc477c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1006 1 0 \"6de18761_0890_466a_8d5adf43e0718fd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1007 1 0 \"2d11f75d_c675_425b_a922599137fa8a71\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"43e11d0f_eae3_4bbf_933b729ba4cfa3e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1009 1 0 \"2d11f75d_c675_425b_a922599137fa8a71\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1010 1 0 \"d10f9b96_23d4_493b_bee1096f5adad7c1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1011 1 0 \"00e57ceb_daaf_4333_8ad6c3d6c041ce2b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TemplateID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1012 1 0 \"c1ae71fc_649c_46b9_a360f49f5ee09000\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TemplateSiteID = Translate(\"\");\r\n// }} \"\"\r\n{\r\n  object obj_Decklayout;\r\n  obj_Decklayout = Instrument.GetDeckLayoutObject();\r\n  if (!obj_Decklayout.IsNull())\r\n      {\r\n          object EditDecklayout5;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable Array_Keys[];\r\n          variable intCounter;\r\n          obj_Decklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          obj_Decklayout.TemplateLabwareNames(LabwareObjects);\r\n          Array_Keys = LabwareObjects.GetKeys();\r\n          for(intCounter=1; intCounter<=Array_Keys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);\r\n            if(LabwareNames.Item1(\"Labwr_Id\") == str_LabID)\r\n            { \r\n              o_str_TemplateSiteID = LabwareNames.Item1(\"Labwr_DkSiteId\");\r\n              o_str_TemplateID = LabwareNames.Item1(\"Labwr_TemplateId\");            \r\n            } \r\n          }\r\n          obj_Decklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          LabwareObjects.ReleaseObject();\r\n          LabwareNames.ReleaseObject();\r\n     }\r\n}\r\n\r\n\r\n\r\n// {{{ 5 \"LABWARE_GetCarrierAndSiteID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetCarrierTracks\" \"Begin\"\r\nfunction LABWARE_GetCarrierTracks( device & Instrument, sequence i_seq_Labware, variable & o_int_TotalTracks, variable & o_int_LeftMostTrack, variable & o_int_RightMostTrack ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable strFunctionName;\r\nprivate variable str_TemplateID;\r\nprivate variable str_LabID;\r\nprivate variable flt_LabwareLength;\r\nprivate variable str_ConfigFile;\r\nprivate variable int_NumberOfTracks;\r\nprivate variable str_Extension;\r\nprivate variable str_TemplateSiteID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable flt_LabwareWidth;\r\n// {{ 5 \"LABWARE_GetCarrierTracks\" \"InitLocals\"\r\no_int_TotalTracks = 0;\r\no_int_LeftMostTrack = 0;\r\no_int_RightMostTrack = 0;\r\n// }} \"\"\r\n// {{ 1015 1 0 \"715376ce_9788_42bc_aab2ee0086ac8173\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1016 1 0 \"e2eef577_d80f_4489_a1a90d0606696cef\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1018 1 0 \"c66d67ef_8adb_42e7_b5183a878062948c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1019 1 0 \"95b6d945_4485_4fb2_b2e891b06c19a6a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"bf179bb8_4dfd_4185_b0dc21a449c40de4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1021 1 0 \"95b6d945_4485_4fb2_b2e891b06c19a6a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1022 1 0 \"715376ce_9788_42bc_aab2ee0086ac8173\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1023 1 0 \"8a4a2fb6_3692_493d_8908ee21a06aaab0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_LeftMostTrack = 0;\r\n// }} \"\"\r\n// {{ 1024 1 0 \"d1c781f1_5f9c_4f81_82f8b0ca0c4b7fb3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RightMostTrack = 0;\r\n// }} \"\"\r\n// {{ 1025 1 0 \"c4a3c25d_3878_4751_b52efff8449b8706\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_TotalTracks = 0;\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"ee46c2ab_4784_404b_8361e51c5d852317\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetCarrierAndSiteID(Instrument, i_seq_Labware, str_TemplateID, str_TemplateSiteID);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"6d948843_a0ce_4727_ace1b898f1684bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile);\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"7a5f7bc8_8724_42c5_bcb37405df947653\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Extension = HSLExtensions::File::GetFileExtension(str_ConfigFile);\r\n// }} \"\"\r\n// {{ 1029 1 0 \"e92d8d5e_c710_4996_905ff28f6d279678\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"rck\")\r\n{\r\n// }} \"\"\r\n// {{ 1030 1 0 \"521e28fa_492f_43a5_8e2b5d744382cde4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TemplateID == \"default\")\r\n{\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"1a798f1e_6b19_450a_9c612eb55779740a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetLabwareLW(Instrument, i_seq_Labware, flt_LabwareLength, flt_LabwareWidth);\r\n// }} \"\"\r\n// {{ 1032 1 0 \"b71dd6f9_4ad1_4295_a15481ccf308d266\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_TotalTracks = flt_LabwareWidth / 22.5;\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"c2c55795_7345_4ed1_97d7c4e6c86e322b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(o_int_TotalTracks, o_int_TotalTracks);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"babae479_dac4_4064_949049c3b7c44f48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetLabwareOrigin(Instrument, i_seq_Labware, flt_X_Coord, flt_Y_Coord, flt_Z_Coord);\r\n// }} \"\"\r\n// {{ 1035 1 0 \"4b2a6915_d9b9_49d5_88b682c749393f94\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Coord = flt_X_Coord - 77.5;\r\n// }} \"\"\r\n// {{ 1036 1 0 \"874b065b_ce5d_42f7_be9161fa923c66a5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_LeftMostTrack = flt_X_Coord / (22.5 * 1.0);\r\n// }} \"\"\r\n// {{{ 1037 1 0 \"2cf01e1b_735f_4bf1_be21f4297b3828f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(o_int_LeftMostTrack, o_int_LeftMostTrack);\r\n// }} \"\"\r\n// {{ 1038 1 0 \"6930914e_feae_412d_ad5626bea6e806cb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RightMostTrack = o_int_LeftMostTrack + o_int_TotalTracks;\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"a91cb971_fbc4_40d3_be0c41c742043a46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(o_int_RightMostTrack, o_int_RightMostTrack);\r\n// }} \"\"\r\n// {{ 1040 1 0 \"f85a3c48_9b83_40b3_af0d5dcc137f4596\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RightMostTrack = o_int_RightMostTrack - 1;\r\n// }} \"\"\r\n// {{ 1041 1 0 \"521e28fa_492f_43a5_8e2b5d744382cde4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"cfd4a406_0234_40ee_a6c03ccf68b80451\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumberOfTracks = DevGetLabwareData(Instrument, str_TemplateID, Translate(\"MlStarCarWidthAsT\"));\r\n// }} \"\"\r\n// {{ 1043 1 0 \"6f68d166_c84b_4c51_8fc93bf4559501e8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumberOfTracks != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"5c0eb263_9cc6_451f_954e80611292a6f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_NumberOfTracks, o_int_TotalTracks);\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"7f50c5c1_9562_4e44_a1ebbdf198ac2db2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTEMPLATE_GetTemplateOrigin(Instrument, i_seq_Labware, flt_X_Coord, flt_Y_Coord, flt_Z_Coord);\r\n// }} \"\"\r\n// {{ 1046 1 0 \"5afb39e4_35eb_4fdc_8e8e224947d0db96\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Coord = flt_X_Coord - 77.5;\r\n// }} \"\"\r\n// {{ 1047 1 0 \"424bfde4_b27f_4810_8ff221ca1d84ff58\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_LeftMostTrack = flt_X_Coord / (22.5 * 1.0);\r\n// }} \"\"\r\n// {{{ 1048 1 0 \"e8d8c670_9372_472e_b48d10ff905d1ca4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(o_int_LeftMostTrack, o_int_LeftMostTrack);\r\n// }} \"\"\r\n// {{ 1049 1 0 \"6d765a67_a05c_4ba0_a268ab30eeaf6e8c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RightMostTrack = o_int_LeftMostTrack + o_int_TotalTracks;\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"6edbac25_efb8_4b87_9bdad3a481e80197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(o_int_RightMostTrack, o_int_RightMostTrack);\r\n// }} \"\"\r\n// {{ 1051 1 0 \"11b163ac_210f_4e19_b37aeab767d4164f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RightMostTrack = o_int_RightMostTrack - 1;\r\n// }} \"\"\r\n// {{ 1052 1 0 \"6f68d166_c84b_4c51_8fc93bf4559501e8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1053 1 0 \"521e28fa_492f_43a5_8e2b5d744382cde4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1054 1 0 \"e92d8d5e_c710_4996_905ff28f6d279678\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"534eef62_f3d8_443f_9bb12f36de1efb7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumberOfTracks = DevGetLabwareData(Instrument, str_TemplateID, Translate(\"MlStarCarWidthAsT\"));\r\n// }} \"\"\r\n// {{ 1056 1 0 \"235cd30f_ee53_43a5_b370e496883d3879\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumberOfTracks != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"e8de95d1_1d75_40e1_a83264a17180f4c0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_NumberOfTracks, o_int_TotalTracks);\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"7f0a29dc_c50a_41e8_b8c5b3340ecf4db0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTEMPLATE_GetTemplateOrigin(Instrument, i_seq_Labware, flt_X_Coord, flt_Y_Coord, flt_Z_Coord);\r\n// }} \"\"\r\n// {{ 1059 1 0 \"16dce282_2471_4516_95d63d33f6c179de\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Coord = flt_X_Coord - 77.5;\r\n// }} \"\"\r\n// {{ 1060 1 0 \"04474d00_17d7_43d3_89e24edad45430e9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_LeftMostTrack = flt_X_Coord / (22.5 * 1.0);\r\n// }} \"\"\r\n// {{{ 1061 1 0 \"05702d03_a691_4c02_be1d8a4a2b08ea46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(o_int_LeftMostTrack, o_int_LeftMostTrack);\r\n// }} \"\"\r\n// {{ 1062 1 0 \"ca8335f6_5d67_482e_9b0674df3e9f2818\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RightMostTrack = o_int_LeftMostTrack + o_int_TotalTracks;\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"d32dbdc0_ab03_4614_a81308de3cf8e8a5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(o_int_RightMostTrack, o_int_RightMostTrack);\r\n// }} \"\"\r\n// {{ 1064 1 0 \"9b2b4e6b_4ad6_41b5_a7428c63fb16cdaf\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RightMostTrack = o_int_RightMostTrack - 1;\r\n// }} \"\"\r\n// {{ 1065 1 0 \"235cd30f_ee53_43a5_b370e496883d3879\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1066 1 0 \"e92d8d5e_c710_4996_905ff28f6d279678\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetCarrierTracks\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetConfigFile\" \"Begin\"\r\nfunction LABWARE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"LABWARE_GetConfigFile\" \"InitLocals\"\r\no_str_ConfigFilePath = 0;\r\n// }} \"\"\r\n// {{ 1068 1 0 \"f05e2eee_e817_4786_a09de4c59104dfd5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1069 1 0 \"cb488c61_7fee_4533_918d2e87fe665a5b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1071 1 0 \"bbefc889_a576_4126_8083c32b8f062d16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1072 1 0 \"63febfe7_4e1d_4124_9f04405c43e0a517\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"43d4b84a_d566_4f07_b8b4f38050ac5aed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1074 1 0 \"63febfe7_4e1d_4124_9f04405c43e0a517\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1075 1 0 \"f05e2eee_e817_4786_a09de4c59104dfd5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1076 1 0 \"3a953b09_2256_4e75_bea954951808ead5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ConfigFilePath = Translate(\"\");\r\n// }} \"\"\r\n//Get Config File\r\n\r\n{\r\n   object objDeckLayout;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      object objLabware;\r\n\r\n      onerror goto HandleLabwareError;\r\n      objLabware = objDeckLayout.Labware(str_LabID);\r\n      onerror goto 0;\r\n      err.Clear();\r\n\r\n      if(!objLabware.IsNull())\r\n      {\r\n         object objEditLabware5;\r\n\r\n         objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n        o_str_ConfigFilePath = objEditLabware5.Filename;\r\n\r\n         objEditLabware5.ReleaseObject();\r\n         objDeckLayout.ReleaseObject();\r\n         objLabware.ReleaseObject();\r\n      }\r\n   }\r\n\r\n         // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n         if(errorID != 0)\r\n         {\r\n            if (errorID==-1574764487)\r\n            {\r\n                Trace(\"LabwareID is  unknown.\");\r\n            }\r\n            else\r\n            {\r\n                Trace(\"Unknown error occured.\");\r\n            }\r\n         }\r\n      }\r\n}\r\n// {{{ 5 \"LABWARE_GetConfigFile\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetContainerBaseOffset\" \"Begin\"\r\nfunction LABWARE_GetContainerBaseOffset( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerBaseOffset ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_ConfigFilePath;\r\nprivate variable str_Return;\r\n// {{ 5 \"LABWARE_GetContainerBaseOffset\" \"InitLocals\"\r\no_flt_ContainerBaseOffset = 0;\r\n// }} \"\"\r\n// {{ 1079 1 0 \"db7be763_ed55_4723_a7789c6d10c5e2b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1080 1 0 \"ffa6965e_799f_430e_a91a20d0c17b31d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1082 1 0 \"1134655d_5117_4466_98b163ff2c783506\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1083 1 0 \"a1b3a29d_b9c4_43b1_ae45d6aa8825d37f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"10219a67_b082_411b_a77544ae25cfa804\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1085 1 0 \"a1b3a29d_b9c4_43b1_ae45d6aa8825d37f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1086 1 0 \"db7be763_ed55_4723_a7789c6d10c5e2b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1087 1 0 \"432f8f0e_246b_4971_b41262270ca8e36b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ContainerBaseOffset = 0;\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"adf77e13_c511_475c_99eb7818b4a6b8a5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFilePath);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"bd890004_dc5a_4b94_bcbce1e672c6f739\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFilePath, Translate(\"Cntr.1.base\"), str_Return);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"6e44f0d9_590a_4d06_b9f78aada9058fcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, o_flt_ContainerBaseOffset);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n{\r\nobject rack;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = Instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(str_LabID);\r\nlabware.GetObject(\"IRectRack2\", rack); //  IEditLabware6\r\n\r\no_flt_ContainerBaseOffset = rack.ContainerBaseOffset(str_PosID);\r\n\r\nrack.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1092 1 0 \"e55579cc_f6d5_409d_aa0d045cb40dfae2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_ContainerBaseOffset = MthRound(o_flt_ContainerBaseOffset, 1);\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetContainerBaseOffset\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetCurrentPosition\" \"Begin\"\r\nfunction LABWARE_GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable flt_NotUsed;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"LABWARE_GetCurrentPosition\" \"InitLocals\"\r\no_flt_X_Coord = 0;\r\no_flt_Y_Coord = 0;\r\no_flt_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 1094 1 0 \"00b39eea_b24a_44c9_92e8787549b53862\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1095 1 0 \"3a2c3bd3_f571_421b_a6969fa7bb0bbff9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1097 1 0 \"7e739f4a_776c_46c3_a78f666084d206ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1098 1 0 \"ba1ea033_0c48_42da_9d5a253232c1177b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"2f1f0d2a_b62c_4db1_bde655aecf5b3efc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1100 1 0 \"ba1ea033_0c48_42da_9d5a253232c1177b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1101 1 0 \"00b39eea_b24a_44c9_92e8787549b53862\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1102 1 0 \"c2453cbf_1a61_4ac7_b345ac39ae73098f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1103 1 0 \"0ee08731_b774_4d79_b7b03b0f5b41fa9d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1104 1 0 \"4c429fa2_fea1_4727_bfab4ad4c39e43a9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = 0.0;\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"fff6233f_4c41_4786_8d3b620720fd8f53\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, o_flt_X_Coord, o_flt_Y_Coord, o_flt_Z_Coord, flt_NotUsed);\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetCurrentPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetDescription\" \"Begin\"\r\nfunction LABWARE_GetDescription( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareDescription ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_ConfigFile;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"LABWARE_GetDescription\" \"InitLocals\"\r\no_str_LabwareDescription = 0;\r\n// }} \"\"\r\n// {{ 1107 1 0 \"df76fa03_0e8b_4d49_bba42218c50d3d17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1108 1 0 \"268ef770_782c_4a5a_95900fe6eb9fe9ef\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1110 1 0 \"80b056ad_748b_40da_917859aaff400276\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"e974e721_07fd_4209_9322a91500e7472b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1112 1 0 \"a1c1716a_4c81_438f_a092ce517566e560\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1113 1 0 \"e974e721_07fd_4209_9322a91500e7472b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1114 1 0 \"df76fa03_0e8b_4d49_bba42218c50d3d17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"a30d6cb9_69aa_41a9_bd93f15667f71e15\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile);\r\n// }} \"\"\r\n// {{ 1116 1 0 \"9390d6b9_951e_4a22_9fa3aed97f059b9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LabwareDescription = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"3e0d1415_221e_470d_83754a178f92a66f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFile, Translate(\"Description\"), str_ReturnValue);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"d0240c6a_08ed_4286_a82d62cb346572db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_LabwareDescription = StrConcat2(str_ReturnValue, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetDescription\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetFirstPosition\" \"Begin\"\r\nfunction LABWARE_GetFirstPosition( device & Instrument, variable i_str_LabID, variable & o_str_PosID ) void {\r\n// }} \"\"\r\nprivate variable int_Increment;\r\nprivate variable str_ErrorDescription;\r\nprivate variable strFunctionName;\r\nprivate variable bool_LabwareNotValid;\r\nprivate variable int_TotalColumns;\r\nprivate variable int_Index;\r\nprivate variable int_TotalRows;\r\n// {{ 5 \"LABWARE_GetFirstPosition\" \"InitLocals\"\r\no_str_PosID = 0;\r\n// }} \"\"\r\n// {{ 1120 1 0 \"6a9d1840_3325_4c1a_8f92adc4d3732c41\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{ 1122 1 0 \"96102bbd_4387_49e9_a27ae791c5f87618\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalRows = 0;\r\n// }} \"\"\r\n// {{ 1123 1 0 \"fd3a733b_aaac_4d91_ad1f84573592f91d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalColumns = 0;\r\n// }} \"\"\r\n// {{ 1124 1 0 \"aca22a44_34c9_4b58_80b195d65f0b34a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = 0;\r\n// }} \"\"\r\n// {{ 1125 1 0 \"50931d40_e68a_4380_8e72ebb731858302\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Increment = 0;\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"02361439_ccd6_4d77_9c7e498e9d723c2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_LabwareNotValid = DevIsValidLabwareForCurrentDeckLayout(Instrument, i_str_LabID);\r\n// }} \"\"\r\n// {{ 1127 1 0 \"c25f7096_ed04_470a_90613dce2217667e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_LabwareNotValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"2cadd740_77c4_4074_ada05080d6f4076c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorDescription = StrConcat8(Translate(\"\"), Translate(\"\"), Translate(\"Labware ID: '\"), i_str_LabID, Translate(\"' is not known on the deck layout\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1129 1 0 \"6c2c9e1d_f694_440a_b57225bea9f7839f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, str_ErrorDescription);\r\n// }} \"\"\r\n// {{ 1130 1 0 \"c25f7096_ed04_470a_90613dce2217667e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nint_TotalRows = objRack4.Rows();\r\nint_TotalColumns = objRack4.Columns();\r\nint_Index = objRack4.Index();\r\nint_Increment = objRack4.Increment();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 1132 1 0 \"513e9581_e89a_42e3_86974747ea3098ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"a62bd2d5_b099_4e2b_bfa3a429c858dc36\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nANC::Convert_Numbers_to_Alpha_Numeric(int_Increment, 1, int_TotalRows, int_TotalColumns, o_str_PosID);\r\n// }} \"\"\r\n// {{ 1134 1 0 \"513e9581_e89a_42e3_86974747ea3098ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"db5e9292_bdc5_4901_a720d200db9e9718\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_PosID = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1136 1 0 \"513e9581_e89a_42e3_86974747ea3098ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetFirstPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareLW\" \"Begin\"\r\nfunction LABWARE_GetLabwareLW( device & Instrument, sequence i_seq_Labware, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"LABWARE_GetLabwareLW\" \"InitLocals\"\r\no_flt_Labware_L = 0;\r\no_flt_Labware_W = 0;\r\n// }} \"\"\r\n// {{ 1187 1 0 \"d9eb59c6_7612_4c5e_ba785001f5d79a9a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1188 1 0 \"6faa4e98_07ee_4991_ae70eee4aa76834b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1190 1 0 \"04aa8516_d700_4f7e_930be28cd2b5d6d7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1191 1 0 \"aa46bc7d_0797_43d7_b53efd1f89c8d6e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"90c8093f_d40e_490d_9f505c983158876f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1193 1 0 \"aa46bc7d_0797_43d7_b53efd1f89c8d6e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1194 1 0 \"d9eb59c6_7612_4c5e_ba785001f5d79a9a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1195 1 0 \"c08c84bf_0922_46f1_8b9c518de9c3c65e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Labware_W = 0.0;\r\n// }} \"\"\r\n// {{ 1196 1 0 \"53c47686_e27c_454b_a41e82f5bee24d6a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Labware_L = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\no_flt_Labware_W = objRackDataParams.Item1(\"Labwr_XDim\");\r\no_flt_Labware_L = objRackDataParams.Item1(\"Labwr_YDim\");\r\n\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{{ 5 \"LABWARE_GetLabwareLW\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareOrigin\" \"Begin\"\r\nfunction LABWARE_GetLabwareOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable flt_RackBase;\r\nprivate variable str_LabID;\r\nprivate variable flt_BoundaryX;\r\nprivate variable flt_BoundaryY;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\nprivate variable flt_RackWidthX;\r\nprivate variable flt_RackWidthY;\r\n// {{ 5 \"LABWARE_GetLabwareOrigin\" \"InitLocals\"\r\no_flt_X_Coord = 0;\r\no_flt_Y_Coord = 0;\r\no_flt_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 1199 1 0 \"e3f64ff1_9cb8_4c4b_b5d91998380179f4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1200 1 0 \"5f313af5_15d4_46fc_865919b515846e43\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1202 1 0 \"30defa28_8566_4613_98953084ee1767a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1203 1 0 \"8004f92c_d2cd_440e_9458ec6a85082686\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1204 1 0 \"712c7d19_eb72_4b60_b6976924540b2b0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1205 1 0 \"8004f92c_d2cd_440e_9458ec6a85082686\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1206 1 0 \"e3f64ff1_9cb8_4c4b_b5d91998380179f4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1207 1 0 \"896b1f8f_b558_4802_9d59dfdb44898376\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1208 1 0 \"ddf005df_2d07_48d6_af68b0a48730ea23\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1209 1 0 \"ee109760_53a4_4680_adcbb9919a09c878\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1210 1 0 \"8f67085d_139e_4d97_a1ae05f61baafa99\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryX = 0.0;\r\n// }} \"\"\r\n// {{ 1211 1 0 \"241dfd33_0172_4447_a09fc53ead23d33d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryY = 0.0;\r\n// }} \"\"\r\n// {{ 1212 1 0 \"07a08a1e_2b3a_486f_80dcdcaf974f0104\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthX = 0.0;\r\n// }} \"\"\r\n// {{ 1213 1 0 \"9e314d73_f3e2_4345_89f5b19e5e7a0c7f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthY = 0.0;\r\n// }} \"\"\r\n// {{ 1214 1 0 \"9d93fca7_7b32_43c5_97034b9e0db171e0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackBase = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nflt_BoundaryX = objRackDataParams.Item1(\"Labwr_Bndry1X\");\r\nflt_BoundaryY = objRackDataParams.Item1(\"Labwr_Bndry1Y\");\r\nflt_RackWidthX = objRackDataParams.Item1(\"Labwr_XDim\");\r\nflt_RackWidthY = objRackDataParams.Item1(\"Labwr_YDim\");\r\nflt_RackBase = objRack4.RackBase();\r\n\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 1216 1 0 \"19be50a9_df27_49fe_918d1122a7f33c4c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = flt_BoundaryX;\r\n// }} \"\"\r\n// {{ 1217 1 0 \"530f5e9c_4b10_45b9_8730ab8c5a3236bb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = flt_BoundaryY;\r\n// }} \"\"\r\n// {{ 1218 1 0 \"4b3fb755_2f93_4354_b9ca42bc62568573\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = flt_RackBase;\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"c561f3c6_2917_4450_9bd72bc31043d1fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_Z_Coord = MthRound(o_flt_Z_Coord, 1);\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareOrigin\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareStackHeight\" \"Begin\"\r\nfunction LABWARE_GetLabwareStackHeight( device & Instrument, sequence i_seq_Labware, variable & o_flt_LabwareStackHeight ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_ConfigFile;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"LABWARE_GetLabwareStackHeight\" \"InitLocals\"\r\no_flt_LabwareStackHeight = 0;\r\n// }} \"\"\r\n// {{ 1221 1 0 \"9cfbe748_5dcb_4dd5_b96182902b909bf9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1222 1 0 \"0ef78d8b_aeb4_4816_901025f5fd7d4871\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1224 1 0 \"7628bcf8_1d87_4149_b1afac7008a79234\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1225 1 0 \"b64ed138_a1f8_4cd2_ad8dac5d4902daa4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"f0d608aa_8a5c_44df_82641d2d88a3f7ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1227 1 0 \"b64ed138_a1f8_4cd2_ad8dac5d4902daa4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1228 1 0 \"9cfbe748_5dcb_4dd5_b96182902b909bf9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1229 1 0 \"b20f8fbe_47d0_426e_8d11d3db92b07969\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LabwareStackHeight = 0.0;\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"e1e4b038_20af_4fd1_89dad151c83c3d1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Config File:  \",str_ConfigFile);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1232 1 0 \"4a2e189c_ae80_4251_8edc392c5840e75b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n{\r\n   object objCfgFile;\r\n\r\n   objCfgFile.CreateObject(\"HXCFGFILLIB.HxCfgFile\");\r\n   objCfgFile.LoadFile(str_ConfigFile);\r\n\r\n   onerror goto HandleError;\r\n   o_flt_LabwareStackHeight = objCfgFile.GetDataDefValueAsString(\"RECTRACK\",\"default\",\"StackHt\");\r\n   onerror goto 0;\r\n   err.Clear();\r\n\r\n   objCfgFile.ReleaseObject();\r\n\r\n   HandleError:\r\n   {\r\n   objCfgFile.ReleaseObject();\r\n   }\r\n}\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1234 1 0 \"ed55ecbe_1e34_4f62_9b6844d92487932a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFile, Translate(\"StackHt\"), str_ReturnValue);\r\n// }} \"\"\r\n// {{{ 1235 1 0 \"a93d238a_98d1_46de_8e2a1053742b9415\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_ReturnValue, o_flt_LabwareStackHeight);\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareStackHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareViewName\" \"Begin\"\r\nfunction LABWARE_GetLabwareViewName( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareViewName ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_ConfigFile;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"LABWARE_GetLabwareViewName\" \"InitLocals\"\r\no_str_LabwareViewName = 0;\r\n// }} \"\"\r\n// {{ 1237 1 0 \"1672d7ce_c926_4387_9d5b85b93bb40e47\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1238 1 0 \"14de1014_b37b_4897_8b52b1329dd794de\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1240 1 0 \"d32cd643_2cb7_4189_a8bb86e459b79ce4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1241 1 0 \"f2a46984_5014_4019_9966157bca29ddff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"a94b263f_22d4_4740_92285abdc395dcbc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1243 1 0 \"f2a46984_5014_4019_9966157bca29ddff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1244 1 0 \"1672d7ce_c926_4387_9d5b85b93bb40e47\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1245 1 0 \"c0f75acd_8c48_4e82_a8c507872da22f86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile);\r\n// }} \"\"\r\n// {{ 1246 1 0 \"7cc43b7d_c5d9_4096_86e982c5cf484516\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LabwareViewName = Translate(\"\");\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n{\r\n   object objEditLabware;\r\n   object objDeckLayout;\r\n   object objLabware;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      objLabware = objDeckLayout.Labware(str_LabID);\r\n      if(!objLabware.IsNull())\r\n      {\r\n         objLabware.GetObject(\"IEditLabware6\", objEditLabware);\r\n\r\n         o_str_LabwareViewName = objEditLabware.DisplayName;\r\n      }\r\n   }\r\n\r\n   objEditLabware.ReleaseObject();\r\n   objDeckLayout.ReleaseObject();\r\n   objLabware.ReleaseObject();\r\n}\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1248 1 0 \"e182da7d_6fe0_48c9_96296acf28d083f4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFile, Translate(\"ViewName\"), str_ReturnValue);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"cd8d24c4_bb4b_4c3b_b6afdc5a537b136e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_LabwareViewName = StrConcat2(str_ReturnValue, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareViewName\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetRackHeight\" \"Begin\"\r\nfunction LABWARE_GetRackHeight( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void {\r\n// }} \"\"\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_RackHeight;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_RackBase;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\nprivate variable str_ConfigFile;\r\nprivate variable bln_ValueFound;\r\nprivate variable str_Value;\r\n// {{ 5 \"LABWARE_GetRackHeight\" \"InitLocals\"\r\no_flt_RackHeight = 0;\r\no_flt_RackClearanceHeight = 0;\r\n// }} \"\"\r\n// {{ 1251 1 0 \"7001cb3c_fe7a_4d0e_b3f000e06886cebf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1252 1 0 \"42b87a82_6f38_4137_9f4223aa7918fec5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1254 1 0 \"7e8e89b3_bd4e_492b_9ab5008e321d6b53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1255 1 0 \"1286d3fb_a855_4d86_be12897053de8832\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"b71e8ebc_3d03_4056_816c4845ff0248c0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1257 1 0 \"1286d3fb_a855_4d86_be12897053de8832\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1258 1 0 \"7001cb3c_fe7a_4d0e_b3f000e06886cebf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1259 1 0 \"8907f5ba_a2a9_4de7_8927033540142431\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackClearanceHeight = 0.0;\r\n// }} \"\"\r\n// {{ 1260 1 0 \"6ef63179_453a_4288_a94708f81ff318f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackHeight = 0.0;\r\n// }} \"\"\r\n// {{ 1261 1 0 \"6393dcba_ddb9_40b9_bedcda7de9649b17\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackBase = 0.0;\r\n// }} \"\"\r\n// {{ 1262 1 0 \"cf0f865b_ec52_482f_ae32a0b4adc1e1d3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackHeight = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nflt_RackHeight = objRackDataParams.Item1(\"Labwr_ZDim\");\r\n//o_flt_RackClearanceHeight = objEditLabware5.Clearance(str_PosID);\r\nflt_RackBase = objRack4.RackBase();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 1264 1 0 \"a02d65f3_e33c_4625_9fe6a2a1b86246f7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackHeight = flt_RackBase + flt_RackHeight;\r\n// }} \"\"\r\n// {{{ 1265 1 0 \"29b7f726_76b0_45c3_962764bb22886bb2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile);\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"6aef7e97_eab2_4568_b3b699ba34d4fc7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = FILE_GetDefinitionFileValue(str_ConfigFile, Translate(\"Clearance\"), str_Value);\r\n// }} \"\"\r\n// {{ 1267 1 0 \"f83e563e_beaf_49d0_9322da83018075c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1268 1 0 \"00f8c874_f182_4d2f_81a4ece7b8879c76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackClearanceHeight = o_flt_RackHeight;\r\n// }} \"\"\r\n// {{ 1269 1 0 \"f83e563e_beaf_49d0_9322da83018075c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"62b59ced_bff6_40c9_b0740c140c24d04b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_RackClearanceHeight = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 1271 1 0 \"f83e563e_beaf_49d0_9322da83018075c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1272 1 0 \"29c40ee0_613c_49ea_abf2b4764e0b5804\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZBottom, flt_NotUsed);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1273 1 0 \"22105929_d260_4db2_a546e61bd3d0be53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetLabwareOrigin(Instrument, i_seq_Labware, flt_NotUsed, flt_NotUsed, flt_ZBottom);\r\n// }} \"\"\r\n// {{ 1274 1 0 \"05a19ab6_7ede_4aaf_a6975ac977d4bf08\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_UseDeckCoordinates == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1275 1 0 \"65c9f61d_97b8_452e_abc6d6a19255196e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackHeight = o_flt_RackHeight - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1276 1 0 \"05a19ab6_7ede_4aaf_a6975ac977d4bf08\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1277 1 0 \"0384a1d6_4a25_4599_aacfece3a51cbf57\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackClearanceHeight = o_flt_RackClearanceHeight + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1278 1 0 \"05a19ab6_7ede_4aaf_a6975ac977d4bf08\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetRackHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetRowColumnNumber\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"LABWARE_GetRowColumnNumber\" \"InitLocals\"\r\no_int_RowCount = 0;\r\no_int_ColumnCount = 0;\r\no_bool_AlphaNumeric = 0;\r\no_bool_IncrementContainer = 0;\r\n// }} \"\"\r\n// {{ 1280 1 0 \"67d417f4_e59c_427d_b1787a80624bb8fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1281 1 0 \"76938996_ca10_4657_b36dbe3652ca6fcf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1283 1 0 \"2ce6989b_cb58_465a_b734e3ce15b9503c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1284 1 0 \"9264c2fc_fd8b_428c_b30bcb420d87dfb3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1285 1 0 \"53ba0483_c80b_4a3d_aa62393cbe213b0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1286 1 0 \"9264c2fc_fd8b_428c_b30bcb420d87dfb3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1287 1 0 \"67d417f4_e59c_427d_b1787a80624bb8fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1288 1 0 \"53df32d4_ce24_478b_872dfdcf5034f421\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_AlphaNumeric = 0;\r\n// }} \"\"\r\n// {{ 1289 1 0 \"c05b65c8_cc28_4733_9ff75b4bc07d2f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_ColumnCount = 0;\r\n// }} \"\"\r\n// {{ 1290 1 0 \"ea44ddc8_bbe8_404f_8eec84127fd0cf40\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RowCount = 0;\r\n// }} \"\"\r\n// {{ 1291 1 0 \"7a662ea7_0776_4f8a_94076506ec93a547\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_IncrementContainer = 0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\no_int_RowCount = objRack4.Rows();\r\no_int_ColumnCount = objRack4.Columns();\r\no_bool_AlphaNumeric = objRack4.Index();\r\no_bool_IncrementContainer = objRack4.Increment();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{{ 5 \"LABWARE_GetRowColumnNumber\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetVisibility\" \"Begin\"\r\nfunction LABWARE_GetVisibility( device & Instrument, sequence i_seq_Labware, variable & o_bool_LabwareVisibility ) void {\r\n// }} \"\"\r\nprivate variable int_LabwareVisibility;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"LABWARE_GetVisibility\" \"InitLocals\"\r\no_bool_LabwareVisibility = 0;\r\n// }} \"\"\r\n// {{ 1294 1 0 \"334d42f4_87da_45f4_a1d656d3ed4bed05\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"7896be9d_56f6_44d8_9caac791c67043fa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1297 1 0 \"ce2b9f6e_5435_4dcb_b36b136daf7393a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1298 1 0 \"68172f44_9bc5_44e0_82ee13259711bf3e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"0f38818c_4030_4bc9_a646736305c7163d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1300 1 0 \"68172f44_9bc5_44e0_82ee13259711bf3e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1301 1 0 \"334d42f4_87da_45f4_a1d656d3ed4bed05\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1302 1 0 \"84c1ee23_a5c4_4047_b8072f4816049161\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LabwareVisibility = 0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware6\", objEditLabware5);\r\n\r\nint_LabwareVisibility = objEditLabware5.Visible();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 1304 1 0 \"e5496e7a_4e16_463d_b527c1ca4571cfac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_LabwareVisibility = int_LabwareVisibility;\r\n// }} \"\"\r\n// {{ 1305 1 0 \"b61bc61c_ffe2_41e4_b5c9e26898021975\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_bool_LabwareVisibility == 0)\r\n{\r\n// }} \"\"\r\no_bool_LabwareVisibility = hslFalse;\r\n// {{ 1307 1 0 \"b61bc61c_ffe2_41e4_b5c9e26898021975\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\no_bool_LabwareVisibility = hslTrue;\r\n// {{ 1309 1 0 \"b61bc61c_ffe2_41e4_b5c9e26898021975\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetVisibility\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_IsContainersConnected\" \"Begin\"\r\nfunction LABWARE_IsContainersConnected( device & Instrument, sequence i_seq_Labware, variable & o_bool_ConnectedContainer ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"LABWARE_IsContainersConnected\" \"InitLocals\"\r\no_bool_ConnectedContainer = 0;\r\n// }} \"\"\r\n// {{ 1311 1 0 \"bc1ddf32_6b67_43cd_9974a389cffa8965\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1312 1 0 \"3b76f03d_dc38_4e16_83acbbb5daa5e856\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1314 1 0 \"5606581a_53a2_4e76_97b153ae7f033f0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1315 1 0 \"6116021b_5f88_4346_8dfb44d5f04c22a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1316 1 0 \"bea6861b_a0d3_4a05_a0559136647c6156\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1317 1 0 \"6116021b_5f88_4346_8dfb44d5f04c22a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1318 1 0 \"bc1ddf32_6b67_43cd_9974a389cffa8965\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1319 1 0 \"ef939abd_213d_4591_bd5fbdf992b89c46\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_ConnectedContainer = 0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n//objRack4.GetRackData(objRackDataParams);\r\n//bool_ConectedCarrier = objRackDataParams.Item1(\"ConnectedCtr\");\r\no_bool_ConnectedContainer = objRack4.ConnectedCtr();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 1321 1 0 \"bf7965c4_be6b_43a9_a35d76a121c7c524\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_bool_ConnectedContainer == 1)\r\n{\r\n// }} \"\"\r\no_bool_ConnectedContainer = hslTrue;\r\n// {{ 1323 1 0 \"bf7965c4_be6b_43a9_a35d76a121c7c524\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\no_bool_ConnectedContainer = hslFalse;\r\n// {{ 1325 1 0 \"bf7965c4_be6b_43a9_a35d76a121c7c524\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_IsContainersConnected\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SEQ_GetDefaultSequence\" \"Begin\"\r\nfunction SEQ_GetDefaultSequence( device & Instrument, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void {\r\n// }} \"\"\r\nprivate variable int_Increment;\r\nprivate variable str_ErrorDescription;\r\nprivate variable i;\r\nprivate variable strFunctionName;\r\nprivate variable bool_LabwareNotValid;\r\nprivate variable int_TotalColumns;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalRows;\r\nprivate variable int_TotalPositions;\r\nprivate variable int_Index;\r\nprivate variable str_ConfigFilePath;\r\nprivate variable str_HoleCount;\r\nprivate variable str_DataType;\r\nprivate variable bool_ValueFound;\r\nprivate variable str_Value;\r\nprivate variable int_StartingPosition;\r\nprivate variable int_CurrentPosition;\r\n// {{ 5 \"SEQ_GetDefaultSequence\" \"InitLocals\"\r\n{ sequence __temp; o_seq_DefaultSequence = __temp; }\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"c77c20e7_c80d_4497_8adbc2cffd0d2bfd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_DefaultSequence);\r\n// }} \"\"\r\n// {{ 1328 1 0 \"65afabf7_8f40_4154_9dce337ab501f85a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalRows = 0;\r\n// }} \"\"\r\n// {{ 1329 1 0 \"2918244f_4f5a_4bd8_8a8d4fa02a41c52e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalColumns = 0;\r\n// }} \"\"\r\n// {{ 1330 1 0 \"64679526_4185_4ffe_af162615d2d61cd7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = 0;\r\n// }} \"\"\r\n// {{ 1331 1 0 \"18508f3a_1487_4d23_880a3aeec76ac764\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Increment = 0;\r\n// }} \"\"\r\n// {{{ 1332 1 0 \"3e0cfe22_b609_4550_8e4327e88d4229c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_LabwareNotValid = DevIsValidLabwareForCurrentDeckLayout(Instrument, i_str_LabID);\r\n// }} \"\"\r\n// {{ 1333 1 0 \"06885b8d_6d47_44f7_87c48afa10405e74\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_LabwareNotValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1334 1 0 \"48814189_dc22_41fb_9efacde8b07708a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorDescription = StrConcat8(Translate(\"\"), Translate(\"\"), Translate(\"Labware ID: '\"), i_str_LabID, Translate(\"' is not known on the deck layout\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"21766ac0_19aa_4905_b549e6c1128e4eb3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, str_ErrorDescription);\r\n// }} \"\"\r\n// {{ 1336 1 0 \"06885b8d_6d47_44f7_87c48afa10405e74\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1337 1 0 \"5412a107_452f_46d5_a201300a0bb46480\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ConfigFilePath = Translate(\"\");\r\n// }} \"\"\r\n//Get Config File\r\n\r\n{\r\n   object objDeckLayout;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      object objLabware;\r\n\r\n      onerror goto HandleLabwareError;\r\n      objLabware = objDeckLayout.Labware(i_str_LabID);\r\n      onerror goto 0;\r\n      err.Clear();\r\n\r\n      if(!objLabware.IsNull())\r\n      {\r\n         object objEditLabware5;\r\n\r\n         objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n        str_ConfigFilePath = objEditLabware5.Filename;\r\n\r\n         objEditLabware5.ReleaseObject();\r\n         objDeckLayout.ReleaseObject();\r\n         objLabware.ReleaseObject();\r\n      }\r\n   }\r\n\r\n         // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n         if(errorID != 0)\r\n         {\r\n            if (errorID==-1574764487)\r\n            {\r\n                Trace(\"LabwareID is  unknown.\");\r\n            }\r\n            else\r\n            {\r\n                Trace(\"Unknown error occured.\");\r\n            }\r\n         }\r\n      }\r\n}\r\n// {{ 1339 1 0 \"8885d8f0_5386_4875_aca43987b6466142\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"a40f9069_64d8_422b_84a724ea64e262e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFilePath, Translate(\"DataType\"), str_DataType);\r\n// }} \"\"\r\n// {{ 1341 1 0 \"a634b09b_7dd2_47d2_89332d6012a79b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_DataType == \"3\")\r\n{\r\n// }} \"\"\r\n// {{{ 1342 1 0 \"ea0b15b2_6eab_494b_a2ef02f78d86ac5f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFilePath, Translate(\"DataType\"), str_DataType);\r\n// }} \"\"\r\n// {{{ 1343 1 0 \"0d07ef84_a372_4a2a_968f9be0d224cbb7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFilePath, Translate(\"HoleCnt\"), str_HoleCount);\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"cca22f80_0ec4_49a2_bff6d8f1d875f0cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = StrIVal(str_HoleCount);\r\n// }} \"\"\r\n// {{ 1345 1 0 \"a634b09b_7dd2_47d2_89332d6012a79b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nint_TotalRows = objRack4.Rows();\r\nint_TotalColumns = objRack4.Columns();\r\nint_Index = objRack4.Index();\r\nint_Increment = objRack4.Increment();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 1347 1 0 \"0672d657_e11c_467a_82ab04683421f1a4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalPositions = int_TotalColumns * int_TotalRows;\r\n// }} \"\"\r\n// {{ 1348 1 0 \"a634b09b_7dd2_47d2_89332d6012a79b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"59939118_9930_41c0_884b7253788088f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_ValueFound = FILE_GetDefinitionFileValue(str_ConfigFilePath, Translate(\"IX.First\"), str_Value);\r\n// }} \"\"\r\n// {{ 1350 1 0 \"5d42de6f_46f6_4ddd_a4f090d2c4002ba9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_ValueFound == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1351 1 0 \"a4576471_aa43_40b6_94c6b9863b157839\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_StartingPosition = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 1352 1 0 \"dabca5e6_f048_4b81_a2261c6dd29432c5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_StartingPosition = int_StartingPosition - 1;\r\n// }} \"\"\r\n// {{ 1353 1 0 \"5d42de6f_46f6_4ddd_a4f090d2c4002ba9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1354 1 0 \"ea398f1c_79ba_494b_9a859a6a51db8b34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_StartingPosition = 0;\r\n// }} \"\"\r\n// {{ 1355 1 0 \"5d42de6f_46f6_4ddd_a4f090d2c4002ba9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1356 1 0 \"d8760cd5_afd4_4653_94767a371d25f889\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1357 1 0 \"d3e6be97_1ecd_40ee_939be082a2015cbe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1358 1 0 \"44694204_ef16_4a39_b19464a9af17b423\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nANC::Convert_Numbers_to_Alpha_Numeric(i_bool_SortByColumn, i, int_TotalRows, int_TotalColumns, str_PosID);\r\n// }} \"\"\r\n// {{ 1359 1 0 \"d3e6be97_1ecd_40ee_939be082a2015cbe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1360 1 0 \"c57a87ec_cd86_4d89_bcb39543e2fbe394\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = int_StartingPosition + i;\r\n// }} \"\"\r\n// {{{ 1361 1 0 \"df3c30cc_45f1_40d0_a246f49875c4f2d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = StrConcat2(int_CurrentPosition, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1362 1 0 \"d3e6be97_1ecd_40ee_939be082a2015cbe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1363 1 0 \"c38a3b15_5d4d_4f3a_b293fcf28817cfa6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_DefaultSequence, i_str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1364 1 0 \"d8760cd5_afd4_4653_94767a371d25f889\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1365 1 0 \"4764b491_476f_4044_bf7ee60cf14f12a1\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_DefaultSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"SEQ_GetDefaultSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SEQ_GetDefaultSequenceForLabware\" \"Begin\"\r\nprivate function SEQ_GetDefaultSequenceForLabware( device & Instrument, variable i_str_LabwareID, sequence & o_seq_DefaultSequence ) void {\r\n// }} \"\"\r\nprivate variable int_Return;\r\n// {{ 5 \"SEQ_GetDefaultSequenceForLabware\" \"InitLocals\"\r\n{ sequence __temp; o_seq_DefaultSequence = __temp; }\r\n// }} \"\"\r\n// {{{ 1367 1 0 \"b1401035_d14e_47cf_956f672a1deb8546\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_DefaultSequence);\r\n// }} \"\"\r\n// {{ 1368 1 0 \"a497de4a_c219_46f6_a49b169806bd7e4d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Return = 0;\r\n// }} \"\"\r\n{\r\n   object objDeckLayout;\r\n   object objLabware;\r\n   object objEditLabware6;\r\n   object objSequence;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n   //objSequence = objDeckLayout.GetObject(o_seq_DefaultSequence);\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      objLabware = objDeckLayout.Labware(i_str_LabwareID);\r\n      if(!objLabware.IsNull())\r\n      {\r\n         \r\n         objLabware.GetObject(\"IEditLabware6\", objEditLabware6);\r\n         objEditLabware6.DefaultSequence(objSequence);\r\n         //int_Return = objEditLabware6.DefaultSequenceEdited();\r\n         //int_Return = objEditLabware6.DefaultSequenceValid();\r\n      }\r\n   }\r\n\r\n   objDeckLayout.ReleaseObject();\r\n   objEditLabware6.ReleaseObject();\r\n   objLabware.ReleaseObject();\r\n}\r\n//Trace(\"Return:  \",int_Return);\r\n// {{{ 5 \"SEQ_GetDefaultSequenceForLabware\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SEQ_ReloadSequence\" \"Begin\"\r\nfunction SEQ_ReloadSequence( device & Instrument, sequence & io_seq_SequenceToReload ) void {\r\n// }} \"\"\r\nprivate variable str_SequenceName;\r\n// {{ 5 \"SEQ_ReloadSequence\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"265def99_cb86_4a81_abd1516a39a6056f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SequenceName = SeqGetName(io_seq_SequenceToReload);\r\n// }} \"\"\r\n{\r\n   object objDeckLayout;\r\n   object objEditDeckLayout8;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      objDeckLayout.GetObject(\"IEditDeckLayout8\", objEditDeckLayout8);\r\n      objEditDeckLayout8.ReloadSequence(str_SequenceName);\r\n   }\r\n\r\n   objDeckLayout.ReleaseObject();\r\n   objEditDeckLayout8.ReleaseObject();\r\n}\r\n// {{{ 5 \"SEQ_ReloadSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TEMPLATE_GetConfigFile\" \"Begin\"\r\nfunction TEMPLATE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void {\r\n// }} \"\"\r\nprivate variable str_TemplateSite;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_Template;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"TEMPLATE_GetConfigFile\" \"InitLocals\"\r\no_str_ConfigFilePath = 0;\r\n// }} \"\"\r\n// {{ 1374 1 0 \"c211786e_47e3_4694_8b484d87fd5251e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1375 1 0 \"6c490621_7789_4dc1_83dd855fcd9a4dba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1377 1 0 \"a7ba3b4f_835a_4ca0_a3631d90c3c98601\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1378 1 0 \"be5f95eb_7dae_4b73_8a8ffc54e291e5c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"418cdb7a_c10d_4e55_9defbe18ae95ed2c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1380 1 0 \"be5f95eb_7dae_4b73_8a8ffc54e291e5c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1381 1 0 \"c211786e_47e3_4694_8b484d87fd5251e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1382 1 0 \"7d7f0afa_3a10_4fb8_83eff03f1dcf184e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ConfigFilePath = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"a279b698_fc28_41a0_b85f418a62235d05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetCarrierAndSiteID(Instrument, i_seq_Labware, str_Template, str_TemplateSite);\r\n// }} \"\"\r\n//Get Config File\r\n\r\n{\r\n   object objDeckLayout;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      object objLabware;\r\n\r\n      onerror goto HandleLabwareError;\r\n      objLabware = objDeckLayout.Labware(str_Template);\r\n      onerror goto 0;\r\n      err.Clear();\r\n\r\n      if(!objLabware.IsNull())\r\n      {\r\n         object objEditLabware5;\r\n\r\n         objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n        o_str_ConfigFilePath = objEditLabware5.Filename;\r\n\r\n         objEditLabware5.ReleaseObject();\r\n         objDeckLayout.ReleaseObject();\r\n         objLabware.ReleaseObject();\r\n      }\r\n   }\r\n\r\n         // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n         if(errorID != 0)\r\n         {\r\n            if (errorID==-1574764487)\r\n            {\r\n                Trace(\"LabwareID is  unknown.\");\r\n            }\r\n            else\r\n            {\r\n                Trace(\"Unknown error occured.\");\r\n            }\r\n         }\r\n      }\r\n}\r\n// {{{ 5 \"TEMPLATE_GetConfigFile\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TEMPLATE_GetTemplateOrigin\" \"Begin\"\r\nfunction TEMPLATE_GetTemplateOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable str_TemplateSite;\r\nprivate variable flt_NotUsed;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_Template;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"TEMPLATE_GetTemplateOrigin\" \"InitLocals\"\r\no_flt_X_Coord = 0;\r\no_flt_Y_Coord = 0;\r\no_flt_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 1389 1 0 \"7d2acab0_7ff8_4b3d_bec4dc3ec8cb0e41\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1390 1 0 \"5493d386_ffd4_4450_aecbec35034e5611\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1392 1 0 \"3bd4c9b6_161f_4fa6_90f7448f362ee9a0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1393 1 0 \"a2affdb7_1331_480e_8edaa3bb27a66ffb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1394 1 0 \"eaab8ff1_6691_4c32_9df6a960b0155cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1395 1 0 \"a2affdb7_1331_480e_8edaa3bb27a66ffb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1396 1 0 \"7d2acab0_7ff8_4b3d_bec4dc3ec8cb0e41\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1397 1 0 \"605f902f_3b9a_4632_b4a12dbc91280446\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetCarrierAndSiteID(Instrument, i_seq_Labware, str_Template, str_TemplateSite);\r\n// }} \"\"\r\n// {{ 1398 1 0 \"4e82fc8c_92f3_492f_b02ecbaf8f9225f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1399 1 0 \"c08d1847_88e4_4cb8_8860b24c2a717595\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1400 1 0 \"b1c40b88_f43a_4bea_bcfdf3816003806b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = 0.0;\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"00e89033_feaf_40f1_9c6ad4c5185c57ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(Instrument, str_Template, o_flt_X_Coord, o_flt_Y_Coord, o_flt_Z_Coord, flt_NotUsed);\r\n// }} \"\"\r\n// {{{ 5 \"TEMPLATE_GetTemplateOrigin\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_CalcualteOffsetHeight\" \"Begin\"\r\nprivate function _CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void {\r\n// }} \"\"\r\nprivate variable flt_Calculation1;\r\nprivate variable flt_Calculation2;\r\nprivate variable flt_Radians;\r\nprivate variable flt_Pi;\r\n// {{ 5 \"_CalcualteOffsetHeight\" \"InitLocals\"\r\no_flt_ZOffset = 0;\r\n// }} \"\"\r\n// {{ 1408 1 0 \"aa7da633_e7cd_4c76_8b6ea34ffe9c30f7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Pi = 3.14159265359;\r\n// }} \"\"\r\n// {{ 1409 1 0 \"a91f4779_b64d_4a7e_bafd0d7a09abe9e0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Radians = 0.0;\r\n// }} \"\"\r\nflt_Radians = i_flt_WellAngle * (flt_Pi / 180);\r\n// {{{ 1411 1 0 \"5b23d1eb_b772_4f48_b83620fd2d730362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Calculation1 = MthTan(flt_Radians);\r\n// }} \"\"\r\n// {{ 1412 1 0 \"ec6fc824_ae38_4258_91fac1fe480f4350\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Calculation2 = flt_Calculation1 * i_flt_YOffset;\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"ba018251_5a00_406d_bc7f76696831d888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_ZOffset = MthRound(flt_Calculation2, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_CalcualteOffsetHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_CalculateWellAngle\" \"Begin\"\r\nprivate function _CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void {\r\n// }} \"\"\r\nprivate variable flt_Angle;\r\nprivate variable flt_BottomRadius;\r\nprivate variable flt_Calculation;\r\nprivate variable flt_Pi;\r\nprivate variable flt_WellRadius;\r\n// {{ 5 \"_CalculateWellAngle\" \"InitLocals\"\r\no_flt_BottomWellSegment_Angle = 0;\r\n// }} \"\"\r\n// {{ 1415 1 0 \"58174418_404d_4ab2_86aee90a09806818\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Pi = 3.14159265359;\r\n// }} \"\"\r\n// {{ 1416 1 0 \"10b7e402_70d0_4c48_8673e73dd6b5e9f7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomRadius = 0.0;\r\n// }} \"\"\r\n// {{ 1417 1 0 \"db759ebd_8c1c_4617_9792a784b14035e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_BottomWellSegment_BottomWidth > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1418 1 0 \"abf150e2_9bcd_46ab_85b2e504e8448448\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomRadius = i_flt_BottomWellSegment_BottomWidth / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 1419 1 0 \"db759ebd_8c1c_4617_9792a784b14035e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1420 1 0 \"59d3c237_8a40_4734_89192cd26aee90c8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellRadius = i_flt_BottomWellSegment_TopWidth / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 1421 1 0 \"713dbe3c_5286_4643_be81def895c0cd9f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_WellRadius > flt_BottomRadius)\r\n{\r\n// }} \"\"\r\n// {{ 1422 1 0 \"40ea317b_e824_4d34_9bc959fd4a9723a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellRadius = flt_WellRadius - flt_BottomRadius;\r\n// }} \"\"\r\n// {{ 1423 1 0 \"713dbe3c_5286_4643_be81def895c0cd9f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1424 1 0 \"0e67227e_7cff_4e6c_9ea1fb251cc807ec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Calculation = i_flt_BottomWellSegment_Height / (flt_WellRadius * 1.0);\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"b5c9715f_cbc5_4d1d_822d9fb9ec606e3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Angle = MthATan(flt_Calculation);\r\n// }} \"\"\r\nflt_Angle = flt_Angle * (180.0 / flt_Pi);\r\n// {{{ 1427 1 0 \"fb13c1b9_0f79_4f12_8c6ea19a857efeb9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_BottomWellSegment_Angle = MthRound(flt_Angle, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_CalculateWellAngle\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToFloat\" \"Begin\"\r\nprivate function _ConvertToFloat( variable iVariable, variable & oVariable ) void {\r\n// }} \"\"\r\nprivate variable str_Variable;\r\n// {{ 5 \"_ConvertToFloat\" \"InitLocals\"\r\noVariable = 0;\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"622e7e0e_3376_4906_9bae1894586619a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Variable = StrConcat2(iVariable, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1430 1 0 \"83c6edca_242e_493b_a38089332ac21aa6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\noVariable = StrFVal(str_Variable);\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToFloat\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInteger\" \"Begin\"\r\nprivate function _ConvertToInteger( variable iVariable, variable & oVariable ) void {\r\n// }} \"\"\r\nprivate variable str_Variable;\r\n// {{ 5 \"_ConvertToInteger\" \"InitLocals\"\r\noVariable = 0;\r\n// }} \"\"\r\n// {{{ 1432 1 0 \"2aeb9ed9_2d6c_4210_968c8bd8ee1ab66c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Variable = StrConcat2(iVariable, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"4bdbf79d_cd2c_4e19_8d55cf8190412563\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\noVariable = StrIVal(str_Variable);\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInteger\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_FunctionError\" \"Begin\"\r\nprivate function _FunctionError( variable i_str_FunctionName, variable i_str_ErrorDescription ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable str_ErrorDescription;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable int_Count;\r\n// {{ 5 \"_FunctionError\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"fba91acb_69ab_44d8_899097b3fe5b3b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(i_str_FunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1436 1 0 \"21d30552_14ef_41b4_a78d1270ad63d2dc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1437 1 0 \"ee7bcc49_3f9c_49b6_8b8b8381934cf0f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(i_str_FunctionName);\r\n// }} \"\"\r\n// {{ 1438 1 0 \"db4a32dd_f80b_4cef_b0c2fb69a52b2d95\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"044743f7_56ef_4a21_8068383f374bf059\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName = StrMid(i_str_FunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"4875c113_bb1f_4ee0_9c927691d8068726\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorDescription = StrConcat8(strFunctionName, Translate(\"\\n\\n\"), i_str_ErrorDescription, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"6885aeb9_c005_4718_aae862b570de3f62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, str_ErrorDescription);\r\n// }} \"\"\r\n// {{{ 5 \"_FunctionError\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLabwareOrigin\" \"Begin\"\r\nprivate function _GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable flt_RackBase;\r\nprivate variable flt_BoundaryX;\r\nprivate variable flt_BoundaryY;\r\nprivate variable flt_RackWidthX;\r\nprivate variable flt_RackWidthY;\r\n// {{ 5 \"_GetLabwareOrigin\" \"InitLocals\"\r\no_flt_X_Coord = 0;\r\no_flt_Y_Coord = 0;\r\no_flt_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 1443 1 0 \"d1f0cff6_2ace_487a_a765ceb3309c6a37\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1444 1 0 \"cd6f158e_6669_4275_98d3b05cc020ff93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1445 1 0 \"39cf774f_8548_4272_88ee2dd37b6e9c08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1446 1 0 \"dfcd0fa7_16ac_4014_a2e018abe8b1daa5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryX = 0.0;\r\n// }} \"\"\r\n// {{ 1447 1 0 \"80266a1b_03ac_4d44_985bf666b1a19f2b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryY = 0.0;\r\n// }} \"\"\r\n// {{ 1448 1 0 \"8b75a4f8_5d82_4a34_8036b2a958ca4b6a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthX = 0.0;\r\n// }} \"\"\r\n// {{ 1449 1 0 \"13b4b8c3_9ce2_46f8_810ced8365b34c75\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthY = 0.0;\r\n// }} \"\"\r\n// {{ 1450 1 0 \"e67ab11f_b803_4ecd_b7f7166ed204c09f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackBase = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nflt_BoundaryX = objRackDataParams.Item1(\"Labwr_Bndry1X\");\r\nflt_BoundaryY = objRackDataParams.Item1(\"Labwr_Bndry1Y\");\r\nflt_RackWidthX = objRackDataParams.Item1(\"Labwr_XDim\");\r\nflt_RackWidthY = objRackDataParams.Item1(\"Labwr_YDim\");\r\nflt_RackBase = objRack4.RackBase();\r\n\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 1452 1 0 \"02cbe165_494d_4912_84acb66ac7bf8cc8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = flt_BoundaryX;\r\n// }} \"\"\r\n// {{ 1453 1 0 \"c2c9729f_ab6c_4d73_941291b7e6c58a6f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = flt_BoundaryY;\r\n// }} \"\"\r\n// {{ 1454 1 0 \"797678e7_db67_4910_b5e7514a426e5152\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = flt_RackBase;\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"a7e29799_e22c_4f68_9042dcd7b804551d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_Z_Coord = MthRound(o_flt_Z_Coord, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_GetLabwareOrigin\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLabwareWL\" \"Begin\"\r\nprivate function _GetLabwareWL( device & Instrument, variable i_str_LabID, variable & o_flt_LabwareWidth, variable & o_flt_LabwareLength ) void {\r\n// }} \"\"\r\nprivate variable flt_RackWidthX;\r\nprivate variable flt_RackWidthY;\r\n// {{ 5 \"_GetLabwareWL\" \"InitLocals\"\r\no_flt_LabwareWidth = 0;\r\no_flt_LabwareLength = 0;\r\n// }} \"\"\r\n// {{ 1457 1 0 \"e35e44ef_152f_4674_9aa8ed7800baea70\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LabwareWidth = 0.0;\r\n// }} \"\"\r\n// {{ 1458 1 0 \"375bcdd0_6e84_47aa_b74ee278a1e9db7e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LabwareLength = 0.0;\r\n// }} \"\"\r\n// {{ 1459 1 0 \"16b1f675_3885_43f9_b7624a8ba94d3f71\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthX = 0.0;\r\n// }} \"\"\r\n// {{ 1460 1 0 \"782af942_6414_4d9a_bf17c70f9420283f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthY = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\no_flt_LabwareLength = objRackDataParams.Item1(\"Labwr_XDim\");\r\no_flt_LabwareWidth = objRackDataParams.Item1(\"Labwr_YDim\");\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{{ 5 \"_GetLabwareWL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetSequencePosition\" \"Begin\"\r\nprivate function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable {\r\n// }} \"\"\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"_GetSequencePosition\" \"InitLocals\"\r\no_str_LabID = 0;\r\no_str_PosID = 0;\r\n// }} \"\"\r\n// {{ 1463 1 0 \"58653a24_e762_40f2_ae722acdc01c184e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 1;\r\n// }} \"\"\r\n// {{ 1464 1 0 \"0eded145_632a_45ac_82fd4a21893cd6a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7AF290DCA46C40d188FDA2A6B2903BB8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"088dffda_21f9_43a3_99b2fe16da57bb10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_LabID = SeqGetLabwareId(i_seq_LabwareSequence);\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"3412b37c_7f18_4ff7_90d1535d56fceca8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_PosID = SeqGetPositionId(i_seq_LabwareSequence);\r\n// }} \"\"\r\n// {{ 1467 1 0 \"c044347c_2101_4570_8debcd3a42fe36d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_str_LabID == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1468 1 0 \"f502fa44_ff34_4934_a903c6379502917e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 0;\r\n// }} \"\"\r\n// {{ 1469 1 0 \"c044347c_2101_4570_8debcd3a42fe36d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1470 1 0 \"0eded145_632a_45ac_82fd4a21893cd6a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7AF290DCA46C40d188FDA2A6B2903BB8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1471 1 0 \"04462609_938a_4f6d_b52195c5fa7606a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 0;\r\n// }} \"\"\r\n// {{ 1472 1 0 \"0eded145_632a_45ac_82fd4a21893cd6a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"e93084ba_5505_4795_9c081cbec0fded18\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_SequenceValid);\r\n// }} \"\"\r\n// {{{ 5 \"_GetSequencePosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveTruncatedSequencePositions\" \"Begin\"\r\nprivate function _RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable int_TotalSequencePositions;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate sequence seq_AdjustedSequence;\r\n// {{ 5 \"_RemoveTruncatedSequencePositions\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"ad0d4d78_7af8_4eb0_9230599d724f1ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalSequencePositions = SeqGetTotal(io_Sequence);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"13498ee9_657e_4574_b113a26993c95a51\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{ 1485 1 0 \"38d449a6_8d10_46c1_b2b655e719d6d810\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalSequencePositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"ad45454d_9185_43ee_b0a61d29837c553d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(io_Sequence);\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"312948f6_ada5_4060_9433e604ab4369d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(io_Sequence);\r\n// }} \"\"\r\n// {{{ 1488 1 0 \"c9392821_7949_4bee_b72b43b8c472445a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(io_Sequence, 1);\r\n// }} \"\"\r\n// {{ 1489 1 0 \"41868a9d_5e62_4e8b_b01b6acd66f5e79e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1490 1 0 \"eda44de4_2325_4f91_8d0afd96b9f8578e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_PosID != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1491 1 0 \"68f12f21_ebcb_4e19_ba19dca4e8241e20\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_AdjustedSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1492 1 0 \"eda44de4_2325_4f91_8d0afd96b9f8578e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1493 1 0 \"41868a9d_5e62_4e8b_b01b6acd66f5e79e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1494 1 0 \"38d449a6_8d10_46c1_b2b655e719d6d810\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1495 1 0 \"d45beffe_9793_4282_ae20061d86a34139\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_AdjustedSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1496 1 0 \"c04b3564_d8fb_49af_80ac6d547d68da27\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence, seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveTruncatedSequencePositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_AddContainerToPosition\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable bln_FileExists;\r\nprivate variable str_Extension;\r\nprivate variable str_FileName;\r\nprivate variable flt_ContainerXOffset;\r\nprivate variable flt_ContainerYOffset;\r\nprivate variable flt_ContainerBaseOffset;\r\nprivate variable str_Return;\r\nprivate variable str_LabwareConfigFilePath;\r\nprivate variable int_SingleContainer;\r\nprivate sequence seq_Temp;\r\nprivate variable int_ContainerIndex;\r\nprivate variable str_OffsetX;\r\nprivate variable str_OffsetY;\r\nprivate variable str_OffsetZ;\r\nprivate variable flt_Y_Offset;\r\nprivate variable flt_Z_Offset;\r\nprivate variable flt_X_Offset;\r\n// {{ 5 \"ADJUST_AddContainerToPosition\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 51 1 0 \"f94a43cc_1136_4eee_b7e673bd9be74c76\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 52 1 0 \"2e46d9ed_f8d9_4c94_abb445816e9b62e0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 54 1 0 \"0bd2d112_574c_4f63_83877d1e5cd8ef22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 55 1 0 \"85bf953c_9a26_4d6f_abcda2c94819ae7b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 56 1 0 \"0a9fdf19_4eca_4a6f_aafca265f13eca4f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 57 1 0 \"05b485d7_3e00_44e2_a2a32408cb9a9e42\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 58 1 0 \"807484fd_0425_4bbd_a565e8ef83aa5e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 60 1 0 \"f94a43cc_1136_4eee_b7e673bd9be74c76\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 61 1 0 \"6152ce29_38ac_4e02_9facc44839d24037\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 62 1 0 \"b4bc651c_5d88_4b78_ab5d14d6b9bc6806\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 64 1 0 \"b1012efa_7b78_4597_b1acdd451f8890e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwareToChange, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 65 1 0 \"01ad280f_68d7_4882_9ed288c11d75c42e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 66 1 0 \"e52eb9f5_e8fe_452f_b5932117f9f7540e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 67 1 0 \"01ad280f_68d7_4882_9ed288c11d75c42e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 68 1 0 \"6152ce29_38ac_4e02_9facc44839d24037\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 69 1 0 \"16e97883_5eb5_4028_beac49e6ab55e7f9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 70 1 0 \"8646e154_881f_4a8c_bbb775419eada571\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_FileExists = HSLExtensions::File::Exists(i_str_NewContainerFile);\r\n// }} \"\"\r\n// {{ 71 1 0 \"7298d11a_5c38_4dad_ba9e95d93466cb93\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_FileExists == 0)\r\n{\r\n// }} \"\"\r\nTrace(i_str_NewContainerFile,\":  FILE DOESN'T EXIST!\");\r\n// {{ 73 1 0 \"d7f26674_30bf_4ae9_a5fc53d8c8f719e8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 75 1 0 \"d7f26674_30bf_4ae9_a5fc53d8c8f719e8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 76 1 0 \"cb10d51c_226a_42ff_a599b27ea6332d2f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 77 1 0 \"7298d11a_5c38_4dad_ba9e95d93466cb93\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 78 1 0 \"002fa24d_e465_4cd6_9fc3a1ec8db93b48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Extension = HSLExtensions::File::GetFileExtension(i_str_NewContainerFile);\r\n// }} \"\"\r\n// {{ 79 1 0 \"8244c082_0bc2_4e9e_8f8524303e4782b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension != \"ctr\")\r\n{\r\n// }} \"\"\r\nTrace(i_str_NewContainerFile,\":  FILE NOT A CONTAINER FILE!\");\r\n// {{ 81 1 0 \"aa7484d8_b94a_43a4_b1434ba61719ed75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 83 1 0 \"aa7484d8_b94a_43a4_b1434ba61719ed75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 84 1 0 \"fec1b600_e4b1_4dd3_986f33682a75c7fb\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 85 1 0 \"8244c082_0bc2_4e9e_8f8524303e4782b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 86 1 0 \"16e97883_5eb5_4028_beac49e6ab55e7f9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 87 1 0 \"3d4d89f0_7852_4ed3_86a8d3ff37337108\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, i_seq_LabwareToChange, str_LabwareConfigFilePath);\r\n// }} \"\"\r\n// {{{ 88 1 0 \"59655a6d_6a86_4051_a2988076c51f6799\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate(\"SingleCntr\"), str_Return);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"1fe582e1_9438_4e3e_9347b341b7598b87\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(str_Return, int_SingleContainer);\r\n// }} \"\"\r\n// {{ 90 1 0 \"574cdc2b_dda2_41ac_ae616274e01d6f8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SingleContainer == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 91 1 0 \"ceb60b71_a951_484a_a8469e29d2cc7bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSEQ_GetDefaultSequenceForLabware(Instrument, str_LabID, seq_Temp);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"a712ffcd_c264_4b97_9464aaa9a77fc0f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ContainerIndex = SeqLookupPosition(seq_Temp, str_LabID, str_PosID, 1, 1);\r\n// }} \"\"\r\n// {{ 93 1 0 \"574cdc2b_dda2_41ac_ae616274e01d6f8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 94 1 0 \"e892f998_f9d2_4dd7_9853b07f12cc9989\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ContainerIndex = 1;\r\n// }} \"\"\r\n// {{ 95 1 0 \"574cdc2b_dda2_41ac_ae616274e01d6f8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"dc3b93b4_1fc5_4a9a_9db1b1a20f283649\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 97 1 0 \"1f9e7333_66b4_499a_9dda3d8030b428f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_OffsetX = StrConcat4(Translate(\"Cntr.\"), int_ContainerIndex, Translate(\".offsetx\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 98 1 0 \"34481405_8e6b_4277_a7441edca7d333cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetX, str_Return);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"9a24fcd7_6cee_4aee_b7caca4b2518bdfe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerXOffset);\r\n// }} \"\"\r\n// {{ 100 1 0 \"ed41c289_91cd_4271_99876a79a5f05c7b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"1ab72718_ab58_4f95_97b50b01dc7ecdea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_OffsetY = StrConcat4(Translate(\"Cntr.\"), int_ContainerIndex, Translate(\".offsety\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 102 1 0 \"b401a5e7_f954_4c40_94b3ecd81b848a40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetY, str_Return);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"dc122a3b_514c_42c6_af74915c87cf3ac8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerYOffset);\r\n// }} \"\"\r\n// {{ 104 1 0 \"43071576_cf25_4e33_a9edce327c74934e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 105 1 0 \"26ab6765_04a6_41e1_82fd6515d43da1b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_OffsetZ = StrConcat4(Translate(\"Cntr.\"), int_ContainerIndex, Translate(\".base\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 106 1 0 \"7fc299d7_6ad6_400e_bcc6fdf4fa36b4ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetZ, str_Return);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3080b949_08a2_45e9_aafabfccf082f2d8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"d59dbf85_c865_41e9_951f3f83a8d18b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FileName = HSLExtensions::File::GetFileNameWithoutExtension(i_str_NewContainerFile);\r\n// }} \"\"\r\n// {{ 109 1 0 \"92cd770b_d5e3_4097_bd84c91d7fa4d818\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Offset = i_flt_OffsetX + flt_ContainerXOffset;\r\n// }} \"\"\r\n// {{ 110 1 0 \"59be89ba_550b_48ba_99c71cf05d535d5d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = i_flt_OffsetY + flt_ContainerYOffset;\r\n// }} \"\"\r\n// {{ 111 1 0 \"f31f5c70_27b7_4299_80a43099b26d2094\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = i_flt_OffsetZ + flt_ContainerBaseOffset;\r\n// }} \"\"\r\nTrace(\"Add \",str_FileName,\" to \",str_LabID,\" at \",str_PosID,\" with offsets \",\"X: \",flt_X_Offset,\" Y: \",flt_Y_Offset,\" Z: \",flt_Z_Offset);\r\n// {{{ 113 1 0 \"0ed40865_1e6d_4fc9_a3a2b91c92a46946\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(Instrument, str_LabID, str_PosID, i_str_NewContainerFile, flt_X_Offset, flt_Y_Offset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{ 114 1 0 \"4743d476_0e71_401a_8f65ecbd044a82d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 116 1 0 \"4743d476_0e71_401a_8f65ecbd044a82d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_AddContainerToPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareCenter\" \"Begin\"\r\nfunction LABWARE_GetLabwareCenter( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void {\r\n// }} \"\"\r\nprivate variable str_ConfigFilePath;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable flt_Pi;\r\nprivate variable flt_Width;\r\nprivate variable str_X;\r\nprivate variable str_Y;\r\nprivate variable flt_Length;\r\nprivate variable flt_Origin_X;\r\nprivate variable flt_Origin_Y;\r\nprivate variable flt_Origin_Z;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_Offset_X;\r\nprivate variable flt_Offset_Y;\r\nprivate variable flt_Center_X;\r\nprivate variable flt_HalfLength;\r\nprivate variable flt_HalfHyp;\r\nprivate variable flt_Radians;\r\nprivate variable flt_Center_Y;\r\nprivate variable flt_Calculation;\r\nprivate variable flt_HalfWidth;\r\nprivate variable flt_Hypotenuse;\r\nprivate variable flt_PlateAngle;\r\nprivate variable flt_AdjustedPlateAngle;\r\nprivate variable flt_LabwareAngle;\r\nprivate variable flt_CosineCalculation;\r\nprivate variable flt_SineCalculation;\r\n// {{ 5 \"LABWARE_GetLabwareCenter\" \"InitLocals\"\r\no_flt_X_Center = 0;\r\no_flt_Y_Center = 0;\r\n// }} \"\"\r\n// {{ 1138 1 0 \"e9143fde_d2e3_4c9c_85c7d1c19aedd56e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Center = 0.0;\r\n// }} \"\"\r\n// {{ 1139 1 0 \"8d6bd767_2afc_4144_a8615e2d2defe0ec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Center = 0.0;\r\n// }} \"\"\r\n// {{ 1140 1 0 \"5652c4b5_a36c_4918_9dbc2c92670e98e4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Pi = 3.14159265359;\r\n// }} \"\"\r\n// {{ 1141 1 0 \"81bc9a8d_ea36_479b_a62d8757133055d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1142 1 0 \"5be11d8b_24c5_486e_abbafbdf4e9d90c6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1144 1 0 \"f760c5bd_4e8f_4e85_91ef5585de4136d4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1145 1 0 \"983f34e2_bc42_4d72_84215babe91babd6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"1c5a2021_66a3_4e96_9af3a13d33ca5c8e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 1147 1 0 \"983f34e2_bc42_4d72_84215babe91babd6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1148 1 0 \"81bc9a8d_ea36_479b_a62d8757133055d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1149 1 0 \"a0ed4bd3_762f_4edf_8a8d982a5691e2c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ConfigFilePath = Translate(\"\");\r\n// }} \"\"\r\n//Get Config File\r\n\r\n{\r\n   object objDeckLayout;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      object objLabware;\r\n\r\n      onerror goto HandleLabwareError;\r\n      objLabware = objDeckLayout.Labware(str_LabID);\r\n      onerror goto 0;\r\n      err.Clear();\r\n\r\n      if(!objLabware.IsNull())\r\n      {\r\n         object objEditLabware5;\r\n\r\n         objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n        str_ConfigFilePath = objEditLabware5.Filename;\r\n\r\n         objEditLabware5.ReleaseObject();\r\n         objDeckLayout.ReleaseObject();\r\n         objLabware.ReleaseObject();\r\n      }\r\n   }\r\n\r\n         // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n         if(errorID != 0)\r\n         {\r\n            if (errorID==-1574764487)\r\n            {\r\n                Trace(\"LabwareID is  unknown.\");\r\n            }\r\n            else\r\n            {\r\n                Trace(\"Unknown error occured.\");\r\n            }\r\n         }\r\n      }\r\n}\r\n// {{{ 1151 1 0 \"b8bad97c_d3a7_4952_a936e048b01b4c1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFilePath, Translate(\"Dim.Dx\"), str_X);\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"ec6f461b_83b1_4a7c_818b467eb8c0daf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_ConfigFilePath, Translate(\"Dim.Dy\"), str_Y);\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"ade6e452_bee1_4a0a_a8e78c68e84495a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Width = StrFVal(str_X);\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"096d9050_936a_4f08_9fac1648610561cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Length = StrFVal(str_Y);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"72d194f6_17de_47cf_a070906dfdcdb5d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetLabwareOrigin(Instrument, i_seq_Labware, flt_Origin_X, flt_Origin_Y, flt_Origin_Z);\r\n// }} \"\"\r\n// {{ 1156 1 0 \"4d2324e7_ef9d_407e_8e1bf14e98f05b3e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1157 1 0 \"f1b42e46_ea93_4762_825adcb6cf8eea2e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Hypotenuse = 0.0;\r\n// }} \"\"\r\nflt_Hypotenuse = flt_Length^2 + flt_Width^2;\r\n// {{{ 1159 1 0 \"7bb0782e_85b8_4d54_9353a241fb5d5667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Hypotenuse = MthPow(flt_Hypotenuse, 0.5);\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"5eb5d93a_e97e_43e9_80225615f0a5dd47\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Hypotenuse = MthRound(flt_Hypotenuse, 1);\r\n// }} \"\"\r\n// {{ 1161 1 0 \"2c6f101d_8f1c_4726_b68abd776e258ca9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1162 1 0 \"db0fde4f_1ea4_477d_8747cf9c66e73afa\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfHyp = flt_Hypotenuse / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 1163 1 0 \"1b9f4a0f_ba8b_4dd3_bcb024db9656649f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfLength = flt_Length / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"bcfbab87_2d35_47ff_876758a4da988c3e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfWidth = flt_Width / (2 * 1.0);\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"b5bfaad0_f325_4813_893b7086ede948a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(Instrument, str_LabID, flt_NotUsed, flt_NotUsed, flt_NotUsed, flt_LabwareAngle);\r\n// }} \"\"\r\n// {{ 1166 1 0 \"863b59b5_9bca_4b87_8e51e7e8496937c5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1167 1 0 \"92a12331_a1d5_4e8c_8497e3ca415b539e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Calculation = flt_HalfLength / (flt_HalfWidth * 1.0);\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"60a19b83_2401_442e_bf2db38eef64a244\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_PlateAngle = MthATan(flt_Calculation);\r\n// }} \"\"\r\nflt_PlateAngle = flt_PlateAngle * (180.0 / flt_Pi);\r\n// {{{ 1170 1 0 \"fc7c6f15_3339_4d39_99381a97d265f0a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_PlateAngle = MthRound(flt_PlateAngle, 1);\r\n// }} \"\"\r\n// {{ 1171 1 0 \"ae08802d_6e12_420e_854c8ccb76495307\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LabwareAngle = flt_LabwareAngle * -1;\r\n// }} \"\"\r\n// {{ 1172 1 0 \"a639a0f3_3b07_4f3f_8a9eb9880e414a4b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AdjustedPlateAngle = flt_LabwareAngle + flt_PlateAngle;\r\n// }} \"\"\r\n// {{ 1173 1 0 \"0241937d_fde9_40a5_882fdd9e971d7633\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\nflt_Radians = flt_AdjustedPlateAngle * (flt_Pi / 180);\r\n// {{{ 1175 1 0 \"6eb781a0_e97f_4966_8fb917ccf9d68905\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_CosineCalculation = MthCos(flt_Radians);\r\n// }} \"\"\r\n// {{{ 1176 1 0 \"9f315069_10d6_4168_8b70019c324fae11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_SineCalculation = MthSin(flt_Radians);\r\n// }} \"\"\r\n// {{ 1177 1 0 \"996af30f_219a_4625_a514c5bae77e3622\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Offset_X = flt_CosineCalculation * flt_HalfHyp;\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"182828c7_d0bf_4738_a0c906025201ecdb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Offset_X = MthRound(flt_Offset_X, 1);\r\n// }} \"\"\r\n// {{ 1179 1 0 \"16595834_6ba6_4a9d_a9708d58abb6ae0f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Offset_Y = flt_SineCalculation * flt_HalfHyp;\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"47f11ffe_cd9e_4c40_9436a569eb443995\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Offset_Y = MthRound(flt_Offset_Y, 1);\r\n// }} \"\"\r\n// {{ 1181 1 0 \"3de5f669_7851_4d74_aca5b1106138907e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1182 1 0 \"472c7dc3_c0e4_483e_8d0fae91945bdad0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Center_X = flt_Origin_X + flt_Offset_X;\r\n// }} \"\"\r\n// {{ 1183 1 0 \"50d23333_c00e_41a1_9ff73a86cd2d80b7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Center_Y = flt_Origin_Y + flt_Offset_Y;\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"f280bbfa_a6e6_4641_a63a3d97e3978d88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_X_Center = MthRound(flt_Center_X, 1);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"1cb3cd80_a57e_4042_afa99755db21a86a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_Y_Center = MthRound(flt_Center_Y, 1);\r\n// }} \"\"\r\n// {{{ 5 \"LABWARE_GetLabwareCenter\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_AddCarrierToDeckSite\" \"Begin\"\r\nfunction ADJUST_AddCarrierToDeckSite( device & Instrument, variable i_str_ConfigFile, variable i_str_NewLabwareID, variable i_int_DeckPosition ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable bln_LabwareExists;\r\nprivate variable bln_FileExists;\r\nprivate variable str_DimensionXKey;\r\nprivate variable flt_TrackWidth;\r\nprivate variable str_InstrumentKey;\r\nprivate variable str_InstrumentValue;\r\nprivate variable str_DeckLayoutFile;\r\nprivate variable bln_InstrumentSTAR;\r\nprivate variable str_XValue;\r\nprivate variable flt_XValue;\r\nprivate variable int_TrackCount;\r\nprivate variable str_TrackNumber;\r\nprivate variable arr_Labware[];\r\nprivate variable arr_VisState[];\r\nprivate variable str_TrackCount;\r\n// {{ 5 \"ADJUST_AddCarrierToDeckSite\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1 1 0 \"693416aa_664d_44a3_b7f6369ef6933e58\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2 1 0 \"64d8b890_2d61_4f27_a8ad7537d86b7a2e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 4 1 0 \"2333a0ef_bbf3_4a31_8e60ba5bf7a7963a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 5 1 0 \"dae3ccdc_f0ec_49c7_8b5181dcb68b2051\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 6 1 0 \"65f30075_cc00_4489_82b2d3f06d8bd899\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 7 1 0 \"81095cb6_39a4_424f_8b8e5dbeb1139913\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 8 1 0 \"b200f0ec_c3bb_4a2b_81176016bf17fca0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 10 1 0 \"693416aa_664d_44a3_b7f6369ef6933e58\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 11 1 0 \"d34bb994_a96c_474b_b13cb17c8d7ccb68\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DimensionXKey = Translate(\"Dim.Dx\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"ce2a8a99_9c52_4454_a824b822548bbd01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_InstrumentKey = Translate(\"Instrument\");\r\n// }} \"\"\r\nTrace(\"Config file:  \",i_str_ConfigFile);\r\n// {{ 14 1 0 \"ef8f0ba9_1c24_4c97_8898f97de86917cb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 15 1 0 \"be530eaa_9506_4181_a446a0f8706cac00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_FileExists = HSLExtensions::File::Exists(i_str_ConfigFile);\r\n// }} \"\"\r\n// {{ 16 1 0 \"88ccc2c2_f9c6_45fc_9694d5d489707642\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_FileExists == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 17 1 0 \"ab44a35a_edbf_407a_abebfb1a7ac799f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"Config file doesn't exist!\"));\r\n// }} \"\"\r\n// {{ 18 1 0 \"88ccc2c2_f9c6_45fc_9694d5d489707642\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 19 1 0 \"46d52baa_7411_40c9_92fcc2728569d5ad\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 20 1 0 \"d744ddb2_d7e7_4f78_86c51a679d5dbfc5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DeckLayoutFile = DevGetDeckLayoutFileName(Instrument);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"90e0a0e5_dc34_47fd_8745d47920795c0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_DeckLayoutFile, str_InstrumentKey, str_InstrumentValue);\r\n// }} \"\"\r\n// {{{ 22 1 0 \"a00e3e30_35f9_4893_ae21bef5fe20bbca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_InstrumentSTAR = StrReplace(str_InstrumentValue, Translate(\"STAR\"), Translate(\"STAR\"));\r\n// }} \"\"\r\n// {{ 23 1 0 \"164c69c6_f78f_402d_a96e94f725cd7304\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_InstrumentSTAR > 0)\r\n{\r\n// }} \"\"\r\n// {{ 24 1 0 \"0d92fd34_d8bb_4312_a9f5db6b2e7a6fcd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TrackWidth = 22.5;\r\n// }} \"\"\r\n// {{ 25 1 0 \"164c69c6_f78f_402d_a96e94f725cd7304\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 26 1 0 \"ef97d2dd_b0ef_4c01_8660e777ecd14e5b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TrackWidth = 21.83;\r\n// }} \"\"\r\n// {{ 27 1 0 \"164c69c6_f78f_402d_a96e94f725cd7304\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 28 1 0 \"85de6289_9e5a_458e_adc78292b67727cd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 29 1 0 \"17d81383_0caa_4d74_80f093b05dd0c022\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(i_str_ConfigFile, str_DimensionXKey, str_XValue);\r\n// }} \"\"\r\n// {{{ 30 1 0 \"689191b7_f4c9_45b5_ba294eb7e5b6639c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_XValue = StrFVal(str_XValue);\r\n// }} \"\"\r\n// {{ 31 1 0 \"b4b4d5db_c75c_476b_b8f12b378cd72c7e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TrackCount = flt_XValue / flt_TrackWidth;\r\n// }} \"\"\r\n// {{{ 32 1 0 \"3360b7ae_b659_42ba_97f486184651f4e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TrackCount = StrConcat2(int_TrackCount, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 33 1 0 \"68afd845_0053_427b_af083005a0da7950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TrackCount = StrIVal(str_TrackCount);\r\n// }} \"\"\r\n// {{{ 34 1 0 \"7d1dd5ab_513d_45da_b6cd4336dd6cabf7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TrackNumber = StrConcat4(int_TrackCount, Translate(\"T\"), Translate(\"-\"), i_int_DeckPosition);\r\n// }} \"\"\r\n// {{ 35 1 0 \"bab34354_a1e6_4ff9_897a976135973a48\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 36 1 0 \"c25f7290_d766_41bd_8906d66fe53c1f75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_LabwareExists = DevIsValidLabwareForCurrentDeckLayout(Instrument, i_str_NewLabwareID);\r\n// }} \"\"\r\n// {{ 37 1 0 \"9777a7af_0833_43f2_aae01c884639475c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_LabwareExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 38 1 0 \"92c1db8f_d8c4_4de3_a77dfaf1ae9687eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"Labware not unique!\"));\r\n// }} \"\"\r\n// {{ 39 1 0 \"9777a7af_0833_43f2_aae01c884639475c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Now adding \",i_str_NewLabwareID,\" at deck site \",str_TrackNumber);\r\n// {{{ 41 1 0 \"253c0de8_0a72_456b_8124ca39309b1a3e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddLabwareToTemplate(Instrument, i_str_NewLabwareID, i_str_ConfigFile, Translate(\"default\"), str_TrackNumber);\r\n// }} \"\"\r\n// {{ 42 1 0 \"64ee102d_c786_48c9_9cb78d49580845d4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Labware.SetSize(0);\r\n// }} \"\"\r\n// {{ 43 1 0 \"37dcde57_b0f3_4c1a_90488e0dbd6ea920\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_VisState.SetSize(0);\r\n// }} \"\"\r\n// {{ 44 1 0 \"75aaf96f_ac34_4652_8f8e39bdee6bf5da\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Labware.AddAsLast(i_str_NewLabwareID);\r\n// }} \"\"\r\n// {{ 45 1 0 \"adb55248_d6a0_4386_88094e591e3d9253\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_VisState.AddAsLast(1);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"3d9e9485_e3b6_44ac_afc5259651ec8c40\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateLoadedLabware(Instrument, arr_Labware, arr_VisState, Translate(\"Make new labware visible\"));\r\n// }} \"\"\r\n// {{ 47 1 0 \"51f9dbf6_78ba_4692_abbef8441e471311\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 49 1 0 \"51f9dbf6_78ba_4692_abbef8441e471311\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_AddCarrierToDeckSite\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TEMPLATE_GetConfigFile2\" \"Begin\"\r\nfunction TEMPLATE_GetConfigFile2( device & Instrument, variable i_str_Labware, variable & o_str_ConfigFilePath ) void {\r\n// }} \"\"\r\n// {{ 5 \"TEMPLATE_GetConfigFile2\" \"InitLocals\"\r\no_str_ConfigFilePath = 0;\r\n// }} \"\"\r\n// {{ 1386 1 0 \"3d6e22dd_5ca8_4a19_976a2761df055627\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ConfigFilePath = Translate(\"\");\r\n// }} \"\"\r\n//Get Config File\r\n\r\n{\r\n   object objDeckLayout;\r\n\r\n   objDeckLayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      object objLabware;\r\n\r\n      onerror goto HandleLabwareError;\r\n      objLabware = objDeckLayout.Labware(i_str_Labware);\r\n      onerror goto 0;\r\n      err.Clear();\r\n\r\n      if(!objLabware.IsNull())\r\n      {\r\n         object objEditLabware5;\r\n\r\n         objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n        o_str_ConfigFilePath = objEditLabware5.Filename;\r\n\r\n         objEditLabware5.ReleaseObject();\r\n         objDeckLayout.ReleaseObject();\r\n         objLabware.ReleaseObject();\r\n      }\r\n   }\r\n\r\n         // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n         if(errorID != 0)\r\n         {\r\n            if (errorID==-1574764487)\r\n            {\r\n                Trace(\"LabwareID is  unknown.\");\r\n            }\r\n            else\r\n            {\r\n                Trace(\"Unknown error occured.\");\r\n            }\r\n         }\r\n      }\r\n}\r\n// {{{ 5 \"TEMPLATE_GetConfigFile2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TEMPLATE_GetTemplateOrigin2\" \"Begin\"\r\nfunction TEMPLATE_GetTemplateOrigin2( device & Instrument, variable i_str_TemplateLabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable flt_NotUsed;\r\n// {{ 5 \"TEMPLATE_GetTemplateOrigin2\" \"InitLocals\"\r\no_flt_X_Coord = 0;\r\no_flt_Y_Coord = 0;\r\no_flt_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 1403 1 0 \"729a8eb4_2c33_4281_a420e051f7c21a0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1404 1 0 \"ee90e920_1d62_4d2b_8a7128745294e1e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1405 1 0 \"5f31b172_c16b_4b3a_9ff9a51ee9afb4ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = 0.0;\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"17f5840f_4843_4143_a2d9fe143148fec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(Instrument, i_str_TemplateLabID, o_flt_X_Coord, o_flt_Y_Coord, o_flt_Z_Coord, flt_NotUsed);\r\n// }} \"\"\r\n// {{{ 5 \"TEMPLATE_GetTemplateOrigin2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_AddContainerToPositions\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable flt_ContainerXOffset;\r\nprivate variable flt_ContainerYOffset;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable flt_Y_Offset;\r\nprivate variable str_OffsetX;\r\nprivate variable int_SingleContainer;\r\nprivate variable strFunctionName;\r\nprivate variable bln_FileExists;\r\nprivate variable str_OffsetY;\r\nprivate variable str_OffsetZ;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_ContainerBaseOffset;\r\nprivate variable str_LabID;\r\nprivate variable str_FileName;\r\nprivate variable flt_Z_Offset;\r\nprivate variable str_Extension;\r\nprivate variable str_Return;\r\nprivate variable int_Count;\r\nprivate variable bool_SequenceValid;\r\nprivate variable flt_X_Offset;\r\nprivate variable str_PosID;\r\nprivate variable int_ContainerIndex;\r\nprivate variable str_LabwareConfigFilePath;\r\nprivate sequence seq_Temp;\r\nprivate sequence i_seq_LabwarePositionsToOffset;\r\nprivate variable int_TotalPositions;\r\nprivate variable i;\r\n// {{ 5 \"ADJUST_AddContainerToPositions\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 118 1 0 \"9ee1a050_2c8f_4e0b_a4ce1074deacec49\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 119 1 0 \"d96b65b1_b2cb_4bb3_9a67a4f639bf8ef6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 121 1 0 \"f3a9ee5f_48e1_4553_a85e586dc882bdb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 122 1 0 \"1ba89b15_fa7f_4c7f_a67fff0a91fb08f3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 123 1 0 \"697cfcf4_639d_4d5f_9b1417df331660bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 124 1 0 \"9a8d2eea_7d48_4caf_977dd43a31a55145\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 125 1 0 \"9fd26af6_f13e_4a7c_8cde7d44bcd78ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 127 1 0 \"9ee1a050_2c8f_4e0b_a4ce1074deacec49\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 128 1 0 \"c62674d3_c4be_45b8_859e2fea264e06c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 129 1 0 \"f98eb359_d875_467b_ad684171bc4d4588\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 131 1 0 \"671acfe7_2d9e_41df_9682e489941a5ab2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwareToChange, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 132 1 0 \"917dd803_3788_4ac8_ba26458b5f9116e8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 133 1 0 \"3b2078e5_07e0_4671_ae9d471c77f09380\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 134 1 0 \"917dd803_3788_4ac8_ba26458b5f9116e8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 135 1 0 \"c62674d3_c4be_45b8_859e2fea264e06c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 136 1 0 \"4dd76f4b_0a78_44d8_a71c94d0d32381e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 137 1 0 \"1609eb3a_1b4b_49a1_9700c75e07f5265c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_FileExists = HSLExtensions::File::Exists(i_str_NewContainerFile);\r\n// }} \"\"\r\n// {{ 138 1 0 \"67ff45cb_4ad7_4745_8e8e76f394d8f2a2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_FileExists == 0)\r\n{\r\n// }} \"\"\r\nTrace(i_str_NewContainerFile,\":  FILE DOESN'T EXIST!\");\r\n// {{ 140 1 0 \"713a7a1f_dfa0_4b98_afb5ac7cda49a916\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 142 1 0 \"713a7a1f_dfa0_4b98_afb5ac7cda49a916\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 143 1 0 \"48e30f1c_31b2_4c8f_a3da632491b7238b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 144 1 0 \"67ff45cb_4ad7_4745_8e8e76f394d8f2a2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 145 1 0 \"50b575bb_dce9_4303_acc627d8e2621d16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Extension = HSLExtensions::File::GetFileExtension(i_str_NewContainerFile);\r\n// }} \"\"\r\n// {{ 146 1 0 \"547f0a7c_8c62_47ef_9605a4229e31fb64\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension != \"ctr\")\r\n{\r\n// }} \"\"\r\nTrace(i_str_NewContainerFile,\":  FILE NOT A CONTAINER FILE!\");\r\n// {{ 148 1 0 \"26e3d50e_1e14_418e_83460e2d5003c850\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 150 1 0 \"26e3d50e_1e14_418e_83460e2d5003c850\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 151 1 0 \"0d044891_4a2c_4985_86075f49699b5168\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 152 1 0 \"547f0a7c_8c62_47ef_9605a4229e31fb64\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 153 1 0 \"4dd76f4b_0a78_44d8_a71c94d0d32381e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 154 1 0 \"b9c2a044_d4a2_45a3_805357757eab4d13\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset);\r\n// }} \"\"\r\n// {{{ 155 1 0 \"793da75a_4ac5_435e_8ebfdb7ef8b01d03\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLABWARE_GetConfigFile(Instrument, i_seq_LabwareToChange, str_LabwareConfigFilePath);\r\n// }} \"\"\r\n// {{{ 156 1 0 \"35a0a6b6_a427_4474_ab71d478f8dfb5c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate(\"SingleCntr\"), str_Return);\r\n// }} \"\"\r\n// {{{ 157 1 0 \"442ae470_d0fd_4fb5_9eadb66f0a28ece3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(str_Return, int_SingleContainer);\r\n// }} \"\"\r\n// {{{ 158 1 0 \"822bc4a9_576b_49a6_8d859e27d60c67fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_LabwareToChange);\r\n// }} \"\"\r\n// {{{ 159 1 0 \"64bab69d_be05_4b51_8be58ef13eb3052a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSEQ_GetDefaultSequenceForLabware(Instrument, str_LabID, seq_Temp);\r\n// }} \"\"\r\n// {{ 160 1 0 \"e0793727_05cd_4b84_b14c8b641e8a72a8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 161 1 0 \"9811fcaf_1728_4c7c_a943bedfec8b2520\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_LabwareToChange);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"3ae2cf87_c01f_46aa_b7aa03fc6ef47fd4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_LabwareToChange);\r\n// }} \"\"\r\n// {{{ 163 1 0 \"9336992d_f376_44f7_9e4ffe7bfde1112a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_LabwareToChange, 1);\r\n// }} \"\"\r\n// {{ 164 1 0 \"5101f5c7_3783_4986_9a5cee480d11bac0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SingleContainer == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 165 1 0 \"7e27c464_f899_4172_a68f5e77aec154d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ContainerIndex = SeqLookupPosition(seq_Temp, str_LabID, str_PosID, 1, 1);\r\n// }} \"\"\r\n// {{ 166 1 0 \"5101f5c7_3783_4986_9a5cee480d11bac0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 167 1 0 \"955fef7d_c793_4ea8_abb2eb1052c6d4c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ContainerIndex = 1;\r\n// }} \"\"\r\n// {{ 168 1 0 \"5101f5c7_3783_4986_9a5cee480d11bac0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 169 1 0 \"36cc9f84_8f42_40a4_ba0caeec0f5aecd1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 170 1 0 \"367bf423_be07_4f87_a6f7793fef020abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_OffsetX = StrConcat4(Translate(\"Cntr.\"), int_ContainerIndex, Translate(\".offsetx\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 171 1 0 \"62bfac28_71be_4d14_829215bcae742acc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetX, str_Return);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"fe4821ee_1efe_47f6_83f59eee2764de9a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerXOffset);\r\n// }} \"\"\r\n// {{ 173 1 0 \"3e3d3556_520e_47d1_a0185bd954f20eef\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 174 1 0 \"0ccdb4a6_aeea_403a_a5879c4f7366b0af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_OffsetY = StrConcat4(Translate(\"Cntr.\"), int_ContainerIndex, Translate(\".offsety\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 175 1 0 \"4df3656e_9f95_4285_9d89d8158afcf9c0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetY, str_Return);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"25b000ef_5b63_4c92_b7093c626c7a089c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerYOffset);\r\n// }} \"\"\r\n// {{ 177 1 0 \"3af1d02f_9355_4d6d_a555957e48252969\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 178 1 0 \"9eef685c_495c_4bd0_892fe2950e04e135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_OffsetZ = StrConcat4(Translate(\"Cntr.\"), int_ContainerIndex, Translate(\".base\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 179 1 0 \"1d22c608_a490_4bdb_843db2b863f0b20a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetZ, str_Return);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"9f394653_01e0_4bf3_ae10da6c4ed8200d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToFloat(str_Return, flt_ContainerBaseOffset);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"8c1fc9c8_c1c3_4af5_bfa24785079930c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FileName = HSLExtensions::File::GetFileNameWithoutExtension(i_str_NewContainerFile);\r\n// }} \"\"\r\n// {{ 182 1 0 \"80cec258_1dd4_4546_a642841ef967d832\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Offset = i_flt_OffsetX + flt_ContainerXOffset;\r\n// }} \"\"\r\n// {{ 183 1 0 \"894141a5_1a5c_4ecd_af0621f694aa5931\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = i_flt_OffsetY + flt_ContainerYOffset;\r\n// }} \"\"\r\n// {{ 184 1 0 \"52331300_d937_438d_9fed9075e91d1925\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = i_flt_OffsetZ + flt_ContainerBaseOffset;\r\n// }} \"\"\r\nTrace(\"Add \",str_FileName,\" to \",str_LabID,\" at \",str_PosID,\" with offsets \",\"X: \",i_flt_OffsetX,\" Y: \",i_flt_OffsetY,\" Z: \",i_flt_OffsetZ);\r\n// {{{ 186 1 0 \"5233f6ad_f1c0_46b7_bc77ef8bc51a6ffb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(Instrument, str_LabID, str_PosID, i_str_NewContainerFile, flt_X_Offset, flt_Y_Offset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{ 187 1 0 \"e0793727_05cd_4b84_b14c8b641e8a72a8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 188 1 0 \"1c2c426e_6a9e_49aa_85612c2bc4d30f5a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 190 1 0 \"1c2c426e_6a9e_49aa_85612c2bc4d30f5a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_AddContainerToPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_StackCreateAtTemplateSite\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_ConfigFile;\r\nprivate variable str_LabwareNameForStack;\r\nprivate variable str_TemplateID;\r\nprivate variable str_TemplateSiteID;\r\nprivate variable str_LabwareType;\r\nprivate variable bln_LiddedLabware;\r\nprivate variable int_TotalStack;\r\n// {{ 5 \"ADJUST_StackCreateAtTemplateSite\" \"InitLocals\"\r\no_arr_StackedLabware.SetSize( 0);\r\n// }} \"\"\r\n// {{ 691 1 0 \"3d02adbe_14d3_4465_a6a4e584bf61a9a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 692 1 0 \"21867229_3ace_4b34_8474721d3f199dcd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 694 1 0 \"f2e431b2_4e7e_459f_92c79212b42d16fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 695 1 0 \"567e22ed_258b_474d_8a31686594c0923b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 696 1 0 \"6043f5c0_4d6d_4c8a_a7669c4891404253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 697 1 0 \"c5eed030_e481_449d_80c9a60c906e30ce\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 698 1 0 \"965092c7_6462_4272_bd9ea58a57e20cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 700 1 0 \"3d02adbe_14d3_4465_a6a4e584bf61a9a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 701 1 0 \"6e322525_353c_4479_aebce3d093a54132\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ConfigFile = i_str_ConfigFile;\r\n// }} \"\"\r\n// {{ 702 1 0 \"e9a2ae5c_66c7_4854_b611af60b8af863e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabwareNameForStack = i_str_LabwareNameForStack;\r\n// }} \"\"\r\n// {{ 703 1 0 \"44a821e8_bdda_4111_b1658214bc62d25c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TemplateID = i_str_TemplateID;\r\n// }} \"\"\r\n// {{ 704 1 0 \"7d5aa79e_061f_4a81_abead4707f394104\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TemplateSiteID = i_str_TemplateSiteID;\r\n// }} \"\"\r\n// {{ 705 1 0 \"a59abf1f_57da_4606_bd7b4a7a82b297e3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TemplateSiteID = i_str_TemplateSiteID;\r\n// }} \"\"\r\n// {{ 706 1 0 \"c0d7aa69_1674_4af8_9dfd3d20068dda54\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_LiddedLabware = i_bln_LiddedLabware;\r\n// }} \"\"\r\n// {{ 707 1 0 \"990d1327_96eb_4e12_8b4a23f1f19c91af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalStack = i_int_TotalStack;\r\n// }} \"\"\r\n// {{ 708 1 0 \"7bc271d4_2ff1_4471_8739d2233c215a0d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_LabwareType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 709 1 0 \"a90f7e16_f672_40f9_b2359519eb161b9e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabwareType = Translate(\"HxLabwr2.RectRack.1\");\r\n// }} \"\"\r\n// {{ 710 1 0 \"7bc271d4_2ff1_4471_8739d2233c215a0d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 711 1 0 \"605612b9_a542_4850_bff6ffad9a48cbac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabwareType = Translate(\"HxLabwr2.CircRack.1\");\r\n// }} \"\"\r\n// {{ 712 1 0 \"7bc271d4_2ff1_4471_8739d2233c215a0d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 713 1 0 \"12ccd220_f10c_42fd_ade96b0f29b8cdd3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_StackedLabware.SetSize(0);\r\n// }} \"\"\r\n{\r\n   // HxPars keys\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n    // additions\r\n    static string P_FILE(\"Labwr_File\");\r\n    static string P_COUNT(\"Labwr_count\");\r\n    static string P_DKSITEID(\"Labwr_DkSiteId\");\r\n    static string P_TEMPLATEID(\"Labwr_TemplateId\");\r\n    static string P_XDIM(\"Labwr_XDim\");\r\n    static string P_YDIM(\"Labwr_YDim\");\r\n    static string P_ISCOVERED(\"Labwr_IsCovered\");\r\n    static string P_CLSID(\"Labwr_CLSID\");\r\n    static string P_DKSITEDX(\"Labwr_DkSiteDimX\");\r\n    static string P_DKSITEDY(\"Labwr_DkSiteDimY\");\r\n    static string P_DECKSITES(\"Labwr_SiteData\");\r\n    static string P_STACKID(\"Labwr_stackID\");\r\n\r\n   object   objDecklayout;\r\n\r\n   objDecklayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if (!objDecklayout.IsNull())\r\n   {\r\n          object EditDecklayout5;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable blnPlate(hslTrue);\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n\r\n          Parameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          Parameter.Add(str_ConfigFile, P_FILE);\r\n          Parameter.Add(str_LabwareNameForStack, P_LABWARE_ID);\r\n          Parameter.Add(int_TotalStack, P_COUNT);\r\n          Parameter.Add(str_TemplateSiteID, P_DKSITEID);\r\n          Parameter.Add(str_TemplateID, P_TEMPLATEID);\r\n          Parameter.Add(0, P_XDIM);\r\n          Parameter.Add(0, P_YDIM);\r\n          Parameter.Add(bln_LiddedLabware, P_ISCOVERED);\r\n          Parameter.Add(str_LabwareType, P_CLSID);\r\n\r\n          objDecklayout.AddStackToDecksite(Parameter);\r\n\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n          objDecklayout.TemplateLabwareNames(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);           \r\n            if(LabwareNames.Item1(\"Labwr_TemplateId\") == str_TemplateID && LabwareNames.Item1(\"Labwr_DkSiteId\") == str_TemplateSiteID)\r\n            {\r\n               if (!blnPlate && bln_LiddedLabware) \r\n               {\r\n                  o_arr_StackedLabware.AddAsLast(LabwareNames.Item1(\"Labwr_Id\"));\r\n                  blnPlate=hslTrue;\r\n               }\r\n               else \r\n               {  \r\n                  if(bln_LiddedLabware) blnPlate=hslFalse;\r\n                  o_arr_StackedLabware.AddAsLast(LabwareNames.Item1(\"Labwr_Id\"));\r\n               }     \r\n            }\r\n          }\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          LabwareObjects.ReleaseObject();\r\n          LabwareNames.ReleaseObject();\r\n   }\r\n}\r\n// {{{ 715 1 0 \"a3eeb059_f790_465e_820ad32306dc8758\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Stacked Labware\"), o_arr_StackedLabware);\r\n// }} \"\"\r\n// {{ 716 1 0 \"54fd192a_287d_436b_8b05346030bb555d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 718 1 0 \"54fd192a_287d_436b_8b05346030bb555d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_StackCreateAtTemplateSite\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_StackIncrease\" \"Begin\"\r\nfunction ADJUST_StackIncrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_str_LabwareID ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_LabwareNameForStack;\r\n// {{ 5 \"ADJUST_StackIncrease\" \"InitLocals\"\r\no_str_LabwareID = 0;\r\n// }} \"\"\r\n// {{ 740 1 0 \"c994a739_d2ad_46da_899254b246a9af06\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 741 1 0 \"5571b4d2_f0b5_45ec_aac1582dd1e9b03e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 743 1 0 \"93a854e4_23fb_4e66_8d24d371cde206d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 744 1 0 \"70ab5c27_f76e_4a54_a34cbffe2674a966\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 745 1 0 \"72527f68_8ca5_456e_8450b41822a4c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 746 1 0 \"f51f2d98_d13a_4b34_a43babf0541548f4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 747 1 0 \"e3e5e123_8a01_422f_9d7407906e470f29\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 749 1 0 \"c994a739_d2ad_46da_899254b246a9af06\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 750 1 0 \"0f2aa095_0d84_4382_8ebf4b48c59b37ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabwareNameForStack = i_str_LabwareNameForStack;\r\n// }} \"\"\r\n// {{ 751 1 0 \"3543c6ec_8b05_4095_847b8e3a96c4db3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LabwareID = Translate(\"\");\r\n// }} \"\"\r\n{\r\n   // HxPars keys\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n    // additions\r\n    static string P_FILE(\"Labwr_File\");\r\n    static string P_COUNT(\"Labwr_count\");\r\n    static string P_DKSITEID(\"Labwr_DkSiteId\");\r\n    static string P_TEMPLATEID(\"Labwr_TemplateId\");\r\n    static string P_XDIM(\"Labwr_XDim\");\r\n    static string P_YDIM(\"Labwr_YDim\");\r\n    static string P_ISCOVERED(\"Labwr_IsCovered\");\r\n    static string P_CLSID(\"Labwr_CLSID\");\r\n    static string P_DKSITEDX(\"Labwr_DkSiteDimX\");\r\n    static string P_DKSITEDY(\"Labwr_DkSiteDimY\");\r\n    static string P_DECKSITES(\"Labwr_SiteData\");\r\n    static string P_STACKID(\"Labwr_stackID\");\r\n\r\n   object   objDecklayout;\r\n   variable strTemplateID;\r\n   variable strTemplateSiteID;\r\n   string   strLabwareID;\r\n\r\n   objDecklayout = Instrument.GetDeckLayoutObject();\r\n\r\n   if (!objDecklayout.IsNull())\r\n   {\r\n          object EditDecklayout5;\r\n          object EditDecklayout7;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable intInverseCounter;\r\n          variable blnPlate(hslTrue);\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n          objDecklayout.GetObject(\"IEditDeckLayout7\", EditDecklayout7);\r\n\r\n          Parameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          Parameter.Add(str_LabwareNameForStack, P_STACKID);\r\n\r\n          objDecklayout.IncreaseStack(Parameter);\r\n\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n          EditDecklayout7.GetLabwareData(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          // Get the template site ID and template ID of the stack\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);       \r\n            if(LabwareNames.Item1(\"Labwr_Id\") == str_LabwareNameForStack)\r\n            {\r\n               strTemplateID=LabwareNames.Item1(\"Labwr_TemplateId\");\r\n               strTemplateSiteID=LabwareNames.Item1(\"Labwr_DkSiteId\");\r\n            }\r\n          }\r\n\r\n          // Get all the labware on this site\r\n          objDecklayout.TemplateLabwareNames(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          intInverseCounter=myKeys.GetSize();\r\n\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intInverseCounter);\r\n            intInverseCounter=intInverseCounter-1;\r\n          \r\n            if(LabwareNames.Item1(\"Labwr_TemplateId\") == strTemplateID && LabwareNames.Item1(\"Labwr_DkSiteId\") == strTemplateSiteID && LabwareNames.Item1(\"Labwr_Id\")!=str_LabwareNameForStack)\r\n            {\r\n                 strLabwareID=LabwareNames.Item1(\"Labwr_Id\");\r\n                 if(strLabwareID.Find(\"_lid\")==-1) o_str_LabwareID=strLabwareID;\r\n                 else o_str_LabwareID=strLabwareID; \r\n            }\r\n          }\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          EditDecklayout7.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          LabwareObjects.ReleaseObject();\r\n          LabwareNames.ReleaseObject();\r\n   }\r\n}\r\n// {{ 753 1 0 \"739c4d0b_8d8b_47b4_890d0a87af6bc7ad\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\nTrace(\"New Labware ID:  \",o_str_LabwareID);\r\n// {{ 755 1 0 \"fac54476_1225_43f5_a37c9b5192bf918d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 757 1 0 \"fac54476_1225_43f5_a37c9b5192bf918d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_StackIncrease\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_StackDecrease\" \"Begin\"\r\nfunction ADJUST_StackDecrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_LabwareNameForStack;\r\nprivate variable arr_CurrentStack[];\r\n// {{ 5 \"ADJUST_StackDecrease\" \"InitLocals\"\r\no_arr_StackedLabware.SetSize( 0);\r\n// }} \"\"\r\n// {{ 720 1 0 \"f3a4e5f8_0f48_4ddc_a91fc39358bea15d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 721 1 0 \"2b9ad4c8_8475_4552_b5055e762fa86f9f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 723 1 0 \"fa075d5a_1d0d_4388_abe6930ed2b7a492\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 724 1 0 \"53d249a9_a034_4a77_a166498cfe309e06\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 725 1 0 \"c150eec6_87b3_4473_a8ab4ff1c36cea89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 726 1 0 \"ae4638c2_d6f8_4ddc_8ac50e7e8b1251b4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 727 1 0 \"142e268a_7962_4ee2_bd42ca73e9c0d361\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 729 1 0 \"f3a4e5f8_0f48_4ddc_a91fc39358bea15d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 730 1 0 \"9e03baab_9ed3_4fd5_b45254bcaaba0260\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabwareNameForStack = i_str_LabwareNameForStack;\r\n// }} \"\"\r\n// {{ 731 1 0 \"3c6faad4_041f_4d13_882a945bb7230208\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_CurrentStack.SetSize(0);\r\n// }} \"\"\r\n// {{ 732 1 0 \"7f251bbc_b287_4f58_95ec961bf670e42a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_CurrentStack.SetSize(0);\r\n// }} \"\"\r\n{\r\n   // HxPars keys\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n    // additions\r\n    static string P_FILE(\"Labwr_File\");\r\n    static string P_COUNT(\"Labwr_count\");\r\n    static string P_DKSITEID(\"Labwr_DkSiteId\");\r\n    static string P_TEMPLATEID(\"Labwr_TemplateId\");\r\n    static string P_XDIM(\"Labwr_XDim\");\r\n    static string P_YDIM(\"Labwr_YDim\");\r\n    static string P_ISCOVERED(\"Labwr_IsCovered\");\r\n    static string P_CLSID(\"Labwr_CLSID\");\r\n    static string P_DKSITEDX(\"Labwr_DkSiteDimX\");\r\n    static string P_DKSITEDY(\"Labwr_DkSiteDimY\");\r\n    static string P_DECKSITES(\"Labwr_SiteData\");\r\n    static string P_STACKID(\"Labwr_stackID\");\r\n\r\n    object   objDecklayout;\r\n    variable strTemplateID;\r\n    variable strTemplateSiteID;\r\n    string   strLabwareID;\r\n\r\n    objDecklayout = Instrument.GetDeckLayoutObject();\r\n\r\n    if (!objDecklayout.IsNull())\r\n    {\r\n          object EditDecklayout5;\r\n          object EditDecklayout7;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable intInverseCounter;\r\n          variable blnPlate(hslTrue);\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n          objDecklayout.GetObject(\"IEditDeckLayout7\", EditDecklayout7);\r\n\r\n          Parameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          Parameter.Add(str_LabwareNameForStack, P_STACKID);\r\n\r\n          objDecklayout.DecreaseStack(Parameter);\r\n\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n          EditDecklayout7.GetLabwareData(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          // Get the template site ID and template ID of the stack\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);       \r\n            if(LabwareNames.Item1(\"Labwr_Id\") == str_LabwareNameForStack)\r\n            {\r\n               strTemplateID=LabwareNames.Item1(\"Labwr_TemplateId\");\r\n               strTemplateSiteID=LabwareNames.Item1(\"Labwr_DkSiteId\");\r\n            }\r\n          }\r\n\r\n          // Get all the labware on this site\r\n          objDecklayout.TemplateLabwareNames(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          intInverseCounter=myKeys.GetSize();\r\n\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);\r\n            intInverseCounter=intInverseCounter-1;\r\n          \r\n            if(LabwareNames.Item1(\"Labwr_TemplateId\") == strTemplateID && LabwareNames.Item1(\"Labwr_DkSiteId\") == strTemplateSiteID && LabwareNames.Item1(\"Labwr_Id\")!=str_LabwareNameForStack)\r\n            {\r\n                 strLabwareID=LabwareNames.Item1(\"Labwr_Id\");\r\n\r\n                 arr_CurrentStack.AddAsLast(strLabwareID);\r\n                 //if(strLabwareID.Find(\"_lid\")==-1) o_strLabwareID=strLabwareID;\r\n                 //else o_strLabwareLidID=strLabwareID; \r\n            }\r\n          }\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          EditDecklayout7.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          LabwareObjects.ReleaseObject();\r\n          LabwareNames.ReleaseObject();\r\n    }\r\n}\r\n// {{{ 734 1 0 \"58ba38b4_2498_403b_bbc329d39b5f55be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Current Stack\"), arr_CurrentStack);\r\n// }} \"\"\r\n// {{ 735 1 0 \"2733bea7_e5a5_49c4_9272be4bfa033e1d\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_arr_StackedLabware=arr_CurrentStack;\r\n// }} \"\"\r\n// {{ 736 1 0 \"a915d75a_b1c9_49f4_b5a3304322d5b7ff\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 738 1 0 \"a915d75a_b1c9_49f4_b5a3304322d5b7ff\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_StackDecrease\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_GetCurrentStack\" \"Begin\"\r\nfunction ADJUST_GetCurrentStack( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void {\r\n// }} \"\"\r\nprivate variable str_LabwareNameForStack;\r\nprivate variable arr_CurrentStack[];\r\nprivate variable int_Length;\r\nprivate variable int_TrimLeftNumber;\r\n// {{ 5 \"ADJUST_GetCurrentStack\" \"InitLocals\"\r\no_arr_StackedLabware.SetSize( 0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 209 1 0 \"8c27b719_abad_4115_a8ee98855c4d0ec7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabwareNameForStack = i_str_LabwareNameForStack;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 210 1 0 \"7c797273_3b6f_4890_b26422eb77ddb841\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(i_str_LabwareNameForStack);\r\n// }} \"\"\r\n// {{ 211 1 0 \"736d60f4_93b8_4a10_a1b1b14ea806907f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TrimLeftNumber = int_Length - 5;\r\n// }} \"\"\r\n// {{{ 212 1 0 \"8f7d155a_31bc_422a_954ccef1f7a2e718\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabwareNameForStack = StrLeft(i_str_LabwareNameForStack, int_TrimLeftNumber);\r\n// }} \"\"\r\n// {{ 213 1 0 \"48d0bcbf_9067_4dcf_8c6de734c6cd2071\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_CurrentStack.SetSize(0);\r\n// }} \"\"\r\n// {{ 214 1 0 \"4f999e05_d678_45c5_8162e0f3a762f7ec\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_CurrentStack.SetSize(0);\r\n// }} \"\"\r\n{\r\n   // HxPars keys\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n    // additions\r\n    static string P_FILE(\"Labwr_File\");\r\n    static string P_COUNT(\"Labwr_count\");\r\n    static string P_DKSITEID(\"Labwr_DkSiteId\");\r\n    static string P_TEMPLATEID(\"Labwr_TemplateId\");\r\n    static string P_XDIM(\"Labwr_XDim\");\r\n    static string P_YDIM(\"Labwr_YDim\");\r\n    static string P_ISCOVERED(\"Labwr_IsCovered\");\r\n    static string P_CLSID(\"Labwr_CLSID\");\r\n    static string P_DKSITEDX(\"Labwr_DkSiteDimX\");\r\n    static string P_DKSITEDY(\"Labwr_DkSiteDimY\");\r\n    static string P_DECKSITES(\"Labwr_SiteData\");\r\n    static string P_STACKID(\"Labwr_stackID\");\r\n\r\n    object   objDecklayout;\r\n    variable strTemplateID;\r\n    variable strTemplateSiteID;\r\n    string   strLabwareID;\r\n\r\n    objDecklayout = Instrument.GetDeckLayoutObject();\r\n\r\n    if (!objDecklayout.IsNull())\r\n    {\r\n          object EditDecklayout5;\r\n          object EditDecklayout7;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable myKeys[];\r\n          variable intCounter;\r\n          variable intInverseCounter;\r\n          variable blnPlate(hslTrue);\r\n\r\n          objDecklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n          objDecklayout.GetObject(\"IEditDeckLayout7\", EditDecklayout7);\r\n\r\n          //Parameter.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          //Parameter.Add(str_LabwareNameForStack, P_STACKID);\r\n\r\n          //objDecklayout.DecreaseStack(Parameter);\r\n\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n          EditDecklayout7.GetLabwareData(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          strTemplateID = \"\";\r\n          strTemplateSiteID = \"\";\r\n          // Get the template site ID and template ID of the stack\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);       \r\n            if(LabwareNames.Item1(\"Labwr_Id\") == str_LabwareNameForStack)\r\n            {\r\n               strTemplateID=LabwareNames.Item1(\"Labwr_TemplateId\");\r\n               strTemplateSiteID=LabwareNames.Item1(\"Labwr_DkSiteId\");\r\n\r\n            }\r\n          }\r\n\r\n          // Get all the labware on this site\r\n          objDecklayout.TemplateLabwareNames(LabwareObjects);\r\n          myKeys = LabwareObjects.GetKeys();\r\n\r\n          intInverseCounter=myKeys.GetSize();\r\n\r\n          for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);\r\n            intInverseCounter=intInverseCounter-1;\r\n\r\n            if(!strTemplateID==\"\" && !strTemplateSiteID ==\"\")\r\n            {\r\n            if(LabwareNames.Item1(\"Labwr_TemplateId\") == strTemplateID && LabwareNames.Item1(\"Labwr_DkSiteId\") == strTemplateSiteID && LabwareNames.Item1(\"Labwr_Id\")!=str_LabwareNameForStack)\r\n            {\r\n                 strLabwareID=LabwareNames.Item1(\"Labwr_Id\");\r\n\r\n                 if(strLabwareID.Find(str_LabwareNameForStack)!=-1) arr_CurrentStack.AddAsLast(strLabwareID);\r\n                 //else o_strLabwareLidID=strLabwareID; \r\n            }\r\n            }\r\n          }\r\n\r\n          objDecklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          EditDecklayout7.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          LabwareObjects.ReleaseObject();\r\n          LabwareNames.ReleaseObject();\r\n    }\r\n}\r\n// {{ 216 1 0 \"70a5b26c_ce5b_4174_b85a81b1895f7906\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_arr_StackedLabware=arr_CurrentStack;\r\n// }} \"\"\r\n// {{{ 5 \"ADJUST_GetCurrentStack\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2021-07-23 23:08$$checksum=faa9aeb9$$length=085$$"
  },
  {
    "path": "pyhamilton/library/Labware Properties/Resources/LPQ_GLOBAL.hsl",
    "content": "#pragma global\r\n\r\n#ifndef __LPQ_GLOBAL_hsl__\r\n#define __LPQ_GLOBAL__ 1\r\n\r\nnamespace LPQ\r\n{\r\n   function InitializeVariables();\r\n\r\n   function InitializeVariables()\r\n   {}\r\nnamespace LABWARE_OFFSET_GLOBAL\r\n{\r\n   variable BOOL_LIBRARY_INITIALIZED(hslFalse);\r\n   variable ARR_CONTAINER_CONFIG_FILE[];\r\n   variable ARR_CONTAINER_SHAPE[];\r\n   variable ARR_CONTAINER_BOTTOM_WIDTH[];\r\n   variable ARR_CONTAINER_TOP_WIDTH[];\r\n   variable ARR_CONTAINER_BOTTOM_HEIGHT[];\r\n   variable ARR_BASE_OFFSET[];\r\n   variable ARR_X_OFFSET[];\r\n   variable ARR_Y_OFFSET[];\r\n}\r\n\r\nnamespace LABWARE_TILT\r\n{\r\n   variable BOOL_LIBRARY_INITIALIZED(hslFalse);\r\n   variable ARR_LABWARE_CONFIG_FILE[];\r\n   variable ARR_BASE_OFFSET[];\r\n}\r\n\r\n}\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2018-08-10 21:06$$checksum=de018a99$$length=085$$"
  },
  {
    "path": "pyhamilton/library/SMT/MLSTARLiquidClassLib.hsl",
    "content": "// ======================================================================\r\n// This is a part of the HSL File Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ----------------------------------------------------------------------\r\n// Library: MLSTARLiquidClassLib.hsl\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//    2009-04-02: Linus Jegher:  Creation\r\n//    2009-04-03: mdarin:        added function \"GetLiquidDbName()\"\r\n//    2009-04-06: Linus Jegher:  added function \"GetLiquidDevices\"\r\n//    2009-04-07: Linus Jegher:  added function \"GetLiquidClassDescription\"\r\n//    2009-04-07: mdarin:        added function \"getTipTypesNames\"\r\n//    2010-01-20: mdarin:        added function \"SetStateOriginalLiquid\"\r\n//                               Set state of the liquid-class (TRUE: Predefined / FALSE: user-defined)\r\n//    2016-06-13  acuevas: added function \"SetLiquidClassAspirateParameter\", \"SetLiquidClassDispenseParameter\"\r\n\r\n//// ======================================================================\r\n\r\n/*\r\nBeschreibung:\r\n\r\n   ============================\r\n   ML STAR Liquid Class Library\r\n   ============================\r\n   \r\n   Diese Library bietet folgende Funktionen:\r\n   - GetLiquidClassNames()\r\n      Zurckgeben von allen Liquidklassennamen.\r\n   - GetLiquidClassNamesFiltered()\r\n      Zurckgeben von Liquidklassennamen gefiltert nach Liquid Device, Liquid, Tip typ und Dispense Mode.\r\n   - EnableTadm()\r\n      TADM Flag fr Liquidklasse setzen.\r\n   - GetLiquidClassDispenseParameter() GetLiquidClassAspirateParameter() GetLiquidClassParameter()\r\n      Auslesen jeder Eigenschalt einer Liqudklasse\r\n   - GetCorrectionCurve()\r\n      Zurckgeben der Korrekturkurve einer Liquidklasse\r\n   - UpdateCorrectionCurve()\r\n      Setzen der Korrekturkurve fr eine Liquidklasse\r\n   - ExportLiquidClass()\r\n      Eine Liquidklasse in eine Datei exportieren.\r\n\r\n   Die Library muss bevor sie benutzt wird, initialisiert werden mit der Initialize().\r\n   Eine Liquidklasse muss, bevor eine Funktion auf ihr ausgefhrt wird, selektiert \r\n   werden mit SelectLiquidClass().\r\n   \r\n*/\r\n\r\n#pragma once\r\n\r\n#include \"HslUtilLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"  \r\n\r\nnamespace MLSTAR_LIQUIDCLASSLib\r\n{\r\n   // Die Werte fr die Funktion GetLiquidClassNamesFiltered() um den entsprechenden\r\n   // Filter auszuschalten.\r\n\r\n   namespace LIQUIDCLASSNAMES_FILTER\r\n   {\r\n      const variable NoLiquidDeviceFilter (-1);\r\n      const variable NoLiquidNameFilter( \"\");\r\n      const variable NoTipTypeFilter( -1);\r\n      const variable NoDispenseModeFilter( -1);\r\n   }\r\n   \r\n   namespace LIQUIDCLASS_DISPENSEMODE\r\n   {\r\n      const variable Undefined                 (-1);\r\n      const variable DispenseJet               (0);\r\n      const variable DispenseSurface           (1);\r\n      const variable DispenseJetPartVolume     (2);\r\n      const variable DispenseJetEmptyTip       (3);\r\n      const variable DispenseSurfacePartVolume (4);\r\n      const variable DispenseSurfaceEmptyTip   (5);\r\n   }\r\n                   \r\n   const variable HSL_TRUE    ( hslTrue ); // constant hslTrue\r\n   const variable HSL_FALSE   ( hslFalse); // constant hslFalse\r\n\r\n   // Aspiration Parameter \r\n   // Fr GetLiquidClassAspirateParameter()\r\n   namespace LIQUIDCLASS_PARAMS_ASP\r\n   {\r\n      const variable FlowRate              (-533331950);\r\n      const variable MixFlowRate           (-533331949);\r\n      const variable AirTransportVolume    (-533331948);\r\n      const variable BlowOutVolume         (-533331947);\r\n      const variable SwapSpeed             (-533331946);\r\n      const variable SettlingTime          (-533331945);\r\n      const variable OverAspirateVolume    (-533331936);\r\n      const variable ClotRetractHeight     (-533331935);\r\n   }\r\n\r\n   // Dispensation Parameter\r\n   // Fr GetLiquidClassDispenseParameter()\r\n   namespace LIQUIDCLASS_PARAMS_DISP\r\n   {\r\n      const variable FlowRate              (-533331950);\r\n      const variable MixFlowRate           (-533331949);\r\n      const variable AirTransportVolume    (-533331948);\r\n      const variable BlowOutVolume         (-533331947);\r\n      const variable SwapSpeed             (-533331946);\r\n      const variable SettlingTime          (-533331945);\r\n      const variable StopFlowRate          (-533331920);\r\n      const variable StopBackVolume        (-533331919);\r\n   }\r\n\r\n   // Allgemeine Liquidklassen Parameter\r\n   // For GetLiquidClassParameter()\r\n   namespace LIQUIDCLASS_PARAMS\r\n   {\r\n\r\n      // const variable DataDefVersion        (-533331968); ??\r\n      const variable LiquidVersion         (-533331967);\r\n      const variable LiquidName            (-533331966);\r\n      const variable TipType               (-533331965);\r\n      const variable DispenseMode          (-533331964);\r\n      const variable OriginalLiquid        (-533331963);\r\n      const variable Notes                 (-533331962);\r\n      const variable LiquidDevice          (-533331961); // object\r\n      const variable AspirateParameter     (-533331952); // object\r\n      const variable DispenseParameter     (-533331951); // object\r\n      const variable CorrectionCurve       (-533331904); // object\r\n      const variable PressureLLDSensitivity(-533331899);\r\n      const variable LLDMaxHeightDifference(-533331898);\r\n      const variable ValidationState       (-533331897);\r\n      const variable DesignHistory         (-533331896); // object\r\n      const variable MaxAspirateVolume     (-533331895);\r\n      const variable Tadm_Enabled          (-533331887); \r\n   }\r\n\r\n\r\n   // Dieses Objekt referenziert das HxStarLiquidClass COM-Objekt.\r\n   // Dieses Objekt wird gemeinsam von allen Tasks/Prozessen benutzt.\r\n   static global object MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass;\r\n\r\n   // Diese variablen speichern fr jeden Task/Prozess die selektierte Liquidklasse\r\n   // D.h.: Jeder Task und jeder Prozess hat eine eigene selektierte Liquidklasse.\r\n   static variable Selected_LiquidClassName(\"\");\r\n   static object   Selected_LiquidClassObject;\r\n\r\n   // Diese Funktion implementiert die Initialisierung der Library.\r\n   // Diese Funktion kann mehrmals aufgerufen werden, z.b.: von verschiedenen Prozessen oder Tasks.\r\n   static global function MLSTAR_LIQUIDCLASSLib_Initialize( variable iReadOnly) void\r\n   {\r\n      // Library nur das erste mal initialisieren.\r\n      if (MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.IsNull( ) == hslFalse)\r\n      {\r\n         return;\r\n      }\r\n      {\r\n         object HxRegistry;\r\n         variable instClassCfgFil;\r\n\r\n         HxRegistry.CreateObject(\"HXREGLib.HxRegistry\");\r\n         MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.CreateObject(\"Hamilton.HxStarLiquidClass\");\r\n\r\n         instClassCfgFil = HxRegistry.InstClassCfgFile(\"ML_STAR\");\r\n         #ifdef _DEBUG_UserConfig\r\n            FormatTrace(\"DEBUG\", GetFunctionName(), 4,\r\n                        \"ML_STAR\", \" instrument class config file name: \", instClassCfgFil);\r\n         #endif\r\n\r\n         MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.InitStarLiquidClass( instClassCfgFil, iReadOnly);\r\n      }\r\n   }\r\n\r\n   // Diese funktion wirft eine Exception, wenn die Library nicht initialisiert ist.\r\n   // Das ist besser als die Fehlermeldung von HSL, die einfach nur 'Bad Argument' ist.\r\n   static function Check_IsInitialized() void\r\n   {\r\n      if (MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.IsNull()) \r\n         err.Raise( -1, \"MLSTARLiquidClassLib: Library is not initialized!\\n\\n> Use function MLSTAR_LIQUIDCLASSLib::Initialize().\\n\");\r\n   }\r\n\r\n   // Diese funktion wirft eine Exception, wenn keine Liquidklasse selektiert ist.\r\n   // Das ist besser als die Fehlermeldung von HSL, die einfach nur 'Bad Argument' ist.\r\n   static function Check_IsSelected() void\r\n   {\r\n      if (Selected_LiquidClassObject.IsNull()) \r\n         err.Raise( -1, \"MLSTARLiquidClassLib: No Liquidclass is selected!\\n\\n> Use function MLSTAR_LIQUIDCLASSLib::SelectLiquidClass().\\n\");\r\n   }\r\n\r\n   function Initialize( variable iReadOnly) void\r\n   {\r\n      MLSTAR_LIQUIDCLASSLib_Initialize( iReadOnly);\r\n   }\r\n\r\n   function GetLiquidClassNames( variable& outLiquidClassNames[]) variable\r\n   {\r\n      object parsLiquidClassNames;\r\n      parsLiquidClassNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n      Check_IsInitialized();\r\n      MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetLiquidClassNames( parsLiquidClassNames);\r\n      outLiquidClassNames = parsLiquidClassNames.GetKeys();\r\n\r\n      {\r\n         // sortiere das array. Dazu muss ein zweites array erstellt werden, \r\n         // das aber in diesem Zusammenhang nicht benutzt wird.\r\n         variable dummyArray[]( outLiquidClassNames.GetSize());\r\n         Util::Sort( dummyArray, outLiquidClassNames);\r\n      }\r\n      return (outLiquidClassNames.GetSize());\r\n   }\r\n\r\n   // Returns an array of liquid class names filtered for the specified values for \r\n   // liquid device id, liquid name, tip type id and dipsense mode. The array of liquid class names is sorted.\r\n   function GetLiquidClassNamesFiltered( \r\n      variable liquidDeviceFilter, \r\n      variable liquidNameFilter,\r\n      variable tipTypeFilter,\r\n      variable dispenseModeFilter,\r\n      variable& outLiquidClassNames[])  variable\r\n   {\r\n      object parsNames;\r\n      parsNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n      \r\n      Check_IsInitialized();\r\n      MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetFilteredLiquidClassNames( \r\n         liquidDeviceFilter, \r\n         liquidNameFilter,\r\n         dispenseModeFilter,\r\n         tipTypeFilter,\r\n         parsNames);\r\n      outLiquidClassNames = parsNames.GetKeys(); // Schlssel sind Liquidklassennamen\r\n      \r\n      {\r\n         // sortiere das array. Dazu muss ein zweites array erstellt werden, \r\n         // das aber in diesem Zusammenhang nicht benutzt wird.\r\n         variable dummyArray[]( outLiquidClassNames.GetSize());\r\n         Util::Sort( dummyArray, outLiquidClassNames);\r\n      }\r\n      return (outLiquidClassNames.GetSize()); // size of array\r\n   }\r\n\r\n   //\r\n   // Diese Funktion ladet die Daten einer Liquidklasse\r\n   //\r\n   function SelectLiquidClass( variable inLiquidClassName) void\r\n   {\r\n      object objectTemp;\r\n      Check_IsInitialized();\r\n\r\n      Selected_LiquidClassObject.ReleaseObject();\r\n      Selected_LiquidClassName = \"\";\r\n      objectTemp.CreateObject(\"HXPARAMSLib.HxPars\");\r\n\r\n      MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetLiquidClass( inLiquidClassName, objectTemp, hslFalse);\r\n      Selected_LiquidClassName = inLiquidClassName;\r\n      Selected_LiquidClassObject = objectTemp;\r\n   }\r\n\r\n   // Gibt die Korrekturpunkte der Kurve zurck. Die X-Werte werden im outXWerte-Array zurckgegeben.\r\n   // Im outYWerte-Array werden die Y-Werte zurckgegeben. Die Korrekturpunkte sind in den \r\n   // Arrays nach X-Wert aufsteigend sortiert.\r\n   function GetCorrectionCurve( variable& outXWerte[], variable& outYWerte[]) variable\r\n   {\r\n      object parsCorrectionCurves;\r\n      \r\n      Check_IsSelected();\r\n      parsCorrectionCurves = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::CorrectionCurve);\r\n      parsCorrectionCurves.GetItems( outXWerte, outYWerte);\r\n\r\n      // wandle Zeichenkette in flieskomma Zahl\r\n      {\r\n         variable cItems;\r\n         variable iItem;\r\n         cItems = outXWerte.GetSize();\r\n         for (iItem = 0; iItem < cItems; ++iItem)\r\n         {\r\n            outXWerte[ iItem] = FVal( outXWerte.GetAt( iItem));\r\n         }\r\n      }\r\n\r\n      Util::Sort( outYWerte, outXWerte);\r\n      return (outXWerte.GetSize());\r\n   }\r\n\r\n   function UpdateCorrectionCurve( variable inXWerte[], variable inYWerte[]) void\r\n   {\r\n      // TODO: berprfen ob beide arrays gleich viel werte enthalten.\r\n      object parsCorrectionCurves;\r\n      \r\n      Check_IsSelected();\r\n      if (inXWerte.GetSize() != inYWerte.GetSize())\r\n      {\r\n         variable formatArgs;\r\n         formatArgs = \"  inXWerte.Size: \" + IStr( inXWerte.GetSize()) + \"\\n  inYWerte.Size: \" + IStr( inYWerte.GetSize());\r\n         err.Raise( -1, \"MLSTARLiquidClassLib::UpdateCorrectionCurve(): The arrays inXWerte and inYWerte have different size!\\n\" + formatArgs + \"\\n\");\r\n      }\r\n      parsCorrectionCurves = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::CorrectionCurve);\r\n      parsCorrectionCurves.RemoveAll();\r\n\r\n      // die Korrekturkurven-Punkte werden neu erstellt.\r\n      {\r\n         variable cItems;\r\n         variable iItem;\r\n         cItems = inXWerte.GetSize();\r\n         for (iItem = 0; iItem < cItems; ++iItem)\r\n         {\r\n            parsCorrectionCurves.Add( inYWerte.GetAt( iItem), inXWerte.GetAt( iItem));\r\n         }\r\n      }\r\n      MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n   }\r\n\r\n   function SetLiquidClassAspirateParameter (variable aspirateParameter, variable paramValue) void\r\n   {\r\n         object tempParam;\r\n         tempParam = Selected_LiquidClassObject.Item1(LIQUIDCLASS_PARAMS::AspirateParameter);\r\n         tempParam.Remove(aspirateParameter);\r\n         tempParam.Add(paramValue,aspirateParameter);\r\n         MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n   }\r\n   \r\n   function SetLiquidClassDispenseParameter (variable dispenseParameter, variable paramValue) void\r\n   {\r\n         object tempParam;\r\n         tempParam = Selected_LiquidClassObject.Item1(LIQUIDCLASS_PARAMS::DispenseParameter);\r\n         tempParam.Remove(dispenseParameter);\r\n         tempParam.Add(paramValue,dispenseParameter);\r\n         MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n   }\r\n\r\n\r\n   // Die funtion gibt den Wert des angegebenen Parameters aus dem Namensraum LIQUIDCLASS_PARAMS\r\n   function GetLiquidClassParameter( variable param) variable\r\n   {\r\n      Check_IsSelected();\r\n      return (Selected_LiquidClassObject.Item1( param));\r\n   }\r\n\r\n   // Die funtion gibt den Wert des angegebenen Parameters aus dem Namensraum LIQUIDCLASS_PARAMS\r\n   function GetLiquidClassParameter_Object( variable param, object& outObject) void\r\n   {\r\n      Check_IsSelected();\r\n      outObject = Selected_LiquidClassObject.Item1( param);\r\n   }\r\n\r\n   // Die funktion gibt den Wert des angegebenen Aspirations-Parameters aus dem Namensraum LIQUIDCLASS_PARAMS\r\n   function GetLiquidClassAspirateParameter( variable aspirateParameter) variable\r\n   {\r\n      Check_IsSelected();\r\n      return (Selected_LiquidClassObject.Item2( LIQUIDCLASS_PARAMS::AspirateParameter, aspirateParameter));\r\n   }\r\n\r\n   // Die funktion gibt den Wert des angegebenen Dispensations-Parameters aus dem Namensraum LIQUIDCLASS_PARAMS\r\n   function GetLiquidClassDispenseParameter( variable dispenseParameter) variable\r\n   {\r\n      Check_IsSelected();\r\n      return (Selected_LiquidClassObject.Item2( LIQUIDCLASS_PARAMS::DispenseParameter, dispenseParameter));\r\n   }\r\n\r\n   // Schaltet TADM fr selektierte Liquidklasse ein, wenn es noch nocht ist.\r\n   function EnableTadm() void\r\n   {\r\n      variable tadmEnabled;\r\n\r\n      Check_IsSelected();\r\n      tadmEnabled = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::Tadm_Enabled);\r\n      if (tadmEnabled != hslTrue)\r\n      {\r\n         Selected_LiquidClassObject.Add( hslTrue, LIQUIDCLASS_PARAMS::Tadm_Enabled);\r\n         MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n      }\r\n   }\r\n\r\n   // Gibt das aktuelle Datum formatiert als Zeitstempel. Es kann als Teil eines Dateinamen \r\n   // benutzt werden. Beispiel: 2009-03-17_14-56-35 -\r\n   function GetTimeStamp() variable\r\n   {\r\n      variable date;\r\n      variable time;\r\n      time = GetTime( \"%H-%M-%S\");\r\n      date = GetDate( \"%Y-%m-%d\");\r\n      return (date + \"_\" + time);\r\n   }\r\n\r\n   // exportiert die selektierte Liquidklasse in die angegebene Datenbankdatei.\r\n   // Diese Datenbankdatei wird neu erstellt, falls sie schon existiert.\r\n   function ExportLiquidClass( variable liquidDbFile) void\r\n   {\r\n      object hxStarLiquid;\r\n\r\n      Check_IsSelected();\r\n      {\r\n         object hxRegistry;\r\n         variable instClassCfgFil;\r\n\r\n         hxRegistry.CreateObject(\"HXREGLib.HxRegistry\");\r\n         hxStarLiquid.CreateObject(\"Hamilton.HxStarLiquidClass\");\r\n         instClassCfgFil = hxRegistry.InstClassCfgFile(\"ML_STAR\");\r\n         hxStarLiquid.InitStarLiquidClass( instClassCfgFil, hslFalse, liquidDbFile, hslTrue);\r\n      }\r\n      hxStarLiquid.SetLiquidclass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n      hxStarLiquid.CloseDatabase();\r\n   }\r\n\r\n   //mdarin: 03.04.2009: function added\r\n   // get the name (file) of the Access-DB\r\n   function GetLiquidDbName() variable\r\n   {\r\n      return(MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetLiquidDbName());\r\n   }\r\n\r\n   //mdarin: 06.04.2009: function added (with help from L. Jegher)\r\n   function GetLiquidDevices() variable\r\n   {  \r\n      object parsLiquidClassDevices;\r\n      object hxStarTipTypes;\r\n      variable arrLiquidDevices[];\r\n      variable name;\r\n      variable deviceId;\r\n      variable deviceCount;\r\n      variable item;\r\n      variable outliquidDevices(\"\");\r\n\r\n      GetLiquidClassParameter_Object( LIQUIDCLASS_PARAMS::LiquidDevice, parsLiquidClassDevices);\r\n\r\n      arrLiquidDevices = parsLiquidClassDevices.GetValues(); // values in array\r\n      hxStarTipTypes.CreateObject( \"Hamilton.HxStarLiquidDevices\");\r\n      //Trace( \"DeviceIDs.Count=\", arrLiquidDevices.GetSize());\r\n      deviceCount = arrLiquidDevices.GetSize();\r\n      for (item = 0; item < deviceCount; item++)\r\n      {\r\n         deviceId = arrLiquidDevices[item];\r\n         //Trace( \"DeviceID=\", deviceId);\r\n         name = hxStarTipTypes.GetViewName( deviceId);\r\n         //Trace( \"DeviceName fr DeviceID \",name);\r\n         outliquidDevices = outliquidDevices + name + \";\";\r\n      }\r\n      \r\n      //Trace( \"LiquidDevices=\", outliquidDevices);\r\n      return(outliquidDevices);\r\n   }\r\n\r\n   namespace DESCRIPTION_SECTIONS\r\n   {\r\n       static const variable None                   ( 0);\r\n       static const variable CommonParameters       ( 1);\r\n       static const variable LiquidParameters       ( 2);\r\n       static const variable CorrectionCurve        ( 4);\r\n       static const variable Notes                  ( 8);\r\n       static const variable TadmState              ( 16);\r\n       static const variable ToleranceBandVolumes   ( 32);\r\n       static const variable ToleranceBandDetails   ( 64);\r\n       static const variable All                    (CommonParameters+LiquidParameters+CorrectionCurve+Notes+TadmState+ToleranceBandVolumes+ToleranceBandDetails);\r\n   }\r\n\r\n   function GetLiquidClassDescription() variable\r\n   {\r\n      variable description;\r\n\r\n      Check_IsSelected();\r\n      \r\n      description = MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetLiquidClassDescription( \r\n                              Selected_LiquidClassName, \r\n                              DESCRIPTION_SECTIONS::All);\r\n      return (description);\r\n   }\r\n\r\n\r\n// 07.04.2009: mdarin: created with claudio jrg\r\n// get tiptypes in array. (parallel-array)\r\n// get tip-name in array. (parallel-array)\r\n// tip-types depending on config-file!\r\n\r\n   function getTipTypesNames(variable& oArrTipID[], variable& oArrTipNames[]) variable\r\n   {\r\n      object objTmp;\r\n      object starTipTypes;\r\n      object parsPtr;\r\n      object enumerator;\r\n      object hxPar;\r\n      object parsOneTipType;\r\n\r\n   \tif ( 0 == objTmp.CreateObject(\"Hamilton.HxStarTipTypes\") ) // create temp object\r\n   \t{\r\n   \t\tTrace(\"ERROR: CreateObject(\\\"Hamilton.HxStarTipTypes\\\")\"); // error create object\r\n         return(hslFalse);\r\n   \t}\r\n\r\n   \tif ( 0 == objTmp.GetObject(\"IHxStarTipTypes2\", starTipTypes) ) // create temp object\r\n   \t{\r\n   \t\tTrace(\"ERROR: Query Interface to IHxStarTipTypes2\"); // error create object\r\n         return(hslFalse);\r\n   \t}\r\n      //   Trace(starTipTypes);\r\n   \tif ( 0 == parsPtr.CreateObject(\"HXPARAMSLib.HxPars\") )\r\n   \t{\r\n   \t\tTrace(\"ERROR: parsPtr.CreateObject(\\\"HXPARAMSLib.HxPars\\\")\");\r\n   \t\treturn(hslFalse);\r\n   \t}\r\n\r\n      // Trace(\"Count = \", parsPtr.Count);\r\n      starTipTypes.GetTipTypes(parsPtr);\r\n      // Trace(\"Count = \", parsPtr.Count);\r\n      enumerator = parsPtr._NewEnum;\r\n\r\n      while (enumerator.EnumNext(hxPar))\r\n      {\r\n         //Trace(\"TipType=\", hxPar.Key, \"  value=\", hxPar.Value);\r\n      \r\n         parsOneTipType = hxPar.Value;\r\n         // Trace(\"ViewName=\", parsOneTipType.Item1(starTipTypes.HxStarTipTypeKeys_ttViewName));\r\n\r\n         oArrTipID.AddAsLast(hxPar.Key);\r\n         oArrTipNames.AddAsLast(parsOneTipType.Item1(starTipTypes.HxStarTipTypeKeys_ttViewName));\r\n         hxPar.ReleaseObject();\r\n      }\r\n\r\n   // sort arrays\r\n   Util::Sort( oArrTipID, oArrTipNames);\r\n\r\n   return(hslTrue);\r\n   }\r\n\r\n// function \"SetStateOriginalLiquid\", 2010-01-20, mdarin\r\n// Set state of the liquid-class (TRUE: Predefined / FALSE: user-defined)\r\n   function SetStateOriginalLiquid(\r\n                                    variable iState // hslTrue: set to \"predefined\", hslFalse: set to \"user-defined\"\r\n                                  ) void\r\n   {\r\n      variable actualState;\r\n\r\n      if (iState != HSL_TRUE && iState != HSL_FALSE)\r\n      {\r\n         Trace(\"ERROR: Wrong input-parameter. Only hslTrue or hslFalse allowed!\");\r\n         err.Raise( -1, \"ERROR: Wrong input-parameter. Only hslTrue or hslFalse allowed!\");\r\n      }\r\n\r\n      Check_IsSelected(); // raise error if no LC is selected in previous\r\n      actualState = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::OriginalLiquid); // get actual state of LC\r\n\r\n      // Trace(\"actualState before update: \", actualState, \" / iState: \", iState);\r\n\r\n      if (actualState != iState) // set only if \"new state\" is not equal to \"existing state\"\r\n      {\r\n         Selected_LiquidClassObject.Add( iState, LIQUIDCLASS_PARAMS::OriginalLiquid);\r\n         MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject);\r\n      }\r\n      // actualState = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::OriginalLiquid);\r\n      // Trace(\"actualState AFTER update: \", actualState);\r\n   }\r\n// ------------------------------------------------------------\r\n/*\r\n   #define TEST_MLSTAR_LIQUIDCLASSLib 1\r\n   #ifdef TEST_MLSTAR_LIQUIDCLASSLib\r\n\r\n   method main()\r\n   {\r\n      //variable oAarr[];\r\n\r\n      //Initialize( hslTrue);\r\n      // SelectLiquidClass( \"michiMitClaudia_5mlT_Water_DispenseSurface_Empty\");\r\n      //SelectLiquidClass( \"1000ulNeedleCRWater_DispenseJet_Empty\");\r\n      \r\n      //GetLiquidDevices();\r\n      //Trace( GetLiquidClassDescription());\r\n\r\n   variable oArrTipID[];\r\n   variable oArrTipNames[];\r\n   variable retVal;\r\n\r\n   retVal = getTipTypesNames(oArrTipID, oArrTipNames);\r\n   Trace(\"-------------------------------\");\r\n   Trace(\"retVal = \", retVal);\r\n   Trace(\"-------------------------------\");\r\n   Util2::Debug::TraceArray_2(\"2Arrays\", oArrTipID, oArrTipNames);\r\n   Trace(\"-------------------------------\");\r\n\r\n   }\r\n\r\n   #endif\r\n\r\n// ------------------------------------------------------------\r\n*/\r\n\r\n}\r\n\r\n\r\n// $$author=Cuevas_A$$valid=0$$time=2016-06-13 20:10$$checksum=c180235c$$length=085$$"
  },
  {
    "path": "pyhamilton/library/SMTs/lookup.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 1/16/2017 10:36:57 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace LOOKUP {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction Lookup( variable & array[], variable item ) variable {  return (0); }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2017-01-16 22:36$$checksum=21d7e3ff$$length=083$$"
  },
  {
    "path": "pyhamilton/library/SMTs/lookup.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLUtilLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace LOOKUP {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction Lookup( variable & array[], variable item ) variable ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Lookup\" \"Begin\"\r\nfunction Lookup( variable & array[], variable item ) variable {\r\n// }} \"\"\r\nprivate variable index;\r\nprivate variable lookupreturn;\r\n// {{ 5 \"Lookup\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1 1 0 \"73682500_9c03_41e6_9201fab1cd9ec558\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlookupreturn = Util::Lookup(array, item, index);\r\n// }} \"\"\r\n// {{ 2 1 0 \"d9632361_4ee8_4d64_b474934cca7658f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lookupreturn > 0)\r\n{\r\n// }} \"\"\r\n// {{ 3 1 0 \"44861c96_df20_437e_a886b3c8938bf129\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nindex = index + 1;\r\n// }} \"\"\r\n// {{{ 4 1 0 \"f372de40_bd88_4ab1_95c0820685390b07\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (index);\r\n// }} \"\"\r\n// {{ 5 1 0 \"d9632361_4ee8_4d64_b474934cca7658f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 6 1 0 \"f060c5ab_63e8_43de_88d40330f32e022d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{ 7 1 0 \"d9632361_4ee8_4d64_b474934cca7658f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Lookup\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2017-01-16 22:36$$checksum=6a223184$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Channel Tools Test.res",
    "content": "#pragma once\r\nglobal resource Res_ML_STAR(1, 0xff0000, Translate(\"ML_STAR\"));\r\n\r\n\r\nfunction Res_ML_STAR_map(variable unit) variable { return(unit); }\r\nfunction Res_ML_STAR_rmap(variable address) variable { return(address); }\r\n\r\n\r\nnamespace ResourceUnit {\r\n     variable Res_ML_STAR;\r\n}\r\n// $$author=Bare_B$$valid=0$$time=2022-04-20 16:54$$checksum=e56ba27c$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/CHANNEL_TOOLS_GLOBAL.hsl",
    "content": "#pragma global\r\n\r\n#ifndef __CHANNEL_TOOLS_GLOBAL_hsl__\r\n#define __CHANNEL_TOOLS_GLOBAL__ 1\r\n\r\n\r\nnamespace SPLIT_WELLS_GLOBAL\r\n{\r\n   function InitializeVariables();\r\n\r\n   function InitializeVariables()\r\n   {}\r\n\r\n   variable ARR_CONTAINER_IDS[];\r\n   variable ARR_LABWARE_CONFIG_FILE[];\r\n   variable ARR_CONTAINER_CONFIG_FILE[];\r\n   variable ARR_CONTAINER_WIDTH[];\r\n   variable ARR_CONTAINER_SHAPE[];\r\n   variable ARR_CONTAINER_BOTTOM_WIDTH[];\r\n   variable ARR_CONTAINER_TOP_WIDTH[];\r\n   variable ARR_CONTAINER_BOTTOM_HEIGHT[];\r\n   variable BOOL_LIBRARY_INITIALIZED(hslFalse);\r\n} \r\n\r\nnamespace LABWARE_OFFSET_GLOBAL\r\n{\r\n   variable BOOL_LIBRARY_INITIALIZED(hslFalse);\r\n   variable ARR_CONTAINER_CONFIG_FILE[];\r\n   variable ARR_CONTAINER_SHAPE[];\r\n   variable ARR_CONTAINER_BOTTOM_WIDTH[];\r\n   variable ARR_CONTAINER_TOP_WIDTH[];\r\n   variable ARR_CONTAINER_BOTTOM_HEIGHT[];\r\n}\r\n\r\nnamespace LABWARE_TILT\r\n{\r\n   variable BOOL_LIBRARY_INITIALIZED(hslFalse);\r\n   variable ARR_LABWARE_CONFIG_FILE[];\r\n   variable ARR_BASE_OFFSET[];\r\n}\r\n\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2018-03-20 16:48$$checksum=7261bae0$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/FW_HelperLibrary.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 10/23/2020 1:02:26 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace FW_HELPERLIBRARY {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction CheckForError( variable i_str_FunctionName, variable i_str_ReturnValue, variable i_bool_RaiseError ) void { }\r\nfunction GetChannelNumber( variable & io_int_ChannelNumber ) void { }\r\nfunction GetChannelValue( variable i_int_ChannelNumber, variable & o_str_ChannelValue ) void { }\r\nfunction GetErrorDescriptionMainError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void { }\r\nfunction GetErrorDescriptionSlaveError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void { }\r\nfunction GetSlaveError( variable i_str_ReturnValue, variable & o_arr_Channels[], variable & o_arr_SlaveErrors[], variable & o_arr_ErrorDescription[] ) void { }\r\nfunction Get_Instrument_Type( device & ML_STAR, variable & o_int_InstrumentType, variable & o_int_MaxAutoloadTracks ) variable {  return (0); }\r\nfunction Get_X_Ranges_STAR( device & ML_STAR, variable & o_flt_LeftXMin, variable & o_flt_LeftXMax, variable & o_flt_RightXMin, variable & o_flt_RightXMax ) void { }\r\nfunction InitFunction( device & ML_STAR ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction Parse_Parameter_Single_String( variable i_str_ParameterFull, variable i_str_Parameter, variable & o_bol_ParameterFound, variable & o_str_Value ) void { }\r\nfunction RemoveExcessDigits( variable & io_flt_Value ) void { }\r\nfunction SetParameter( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void { }\r\nfunction SetParametersAll( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void { }\r\nfunction SetParametersArr( variable i_strParameterName, variable & i_arrValues[], variable i_fltConversionValue, variable i_intTotalDigits, variable i_intTotalChannels, variable & o_strParameter ) void { }\r\nglobal variable G_ARR_FW_XL_COM_YMin[];\r\nglobal variable G_ARR_FW_PIP_COM_YMax[];\r\nglobal variable G_ARR_FW_PIP_COM_YMin[];\r\nglobal variable G_FW_PIP_COM_XArmMax;\r\nglobal variable G_FW_PIP_COM_FirmwareType;\r\nglobal variable G_FW_PIP_COM_SimulationMode;\r\nglobal variable G_FW_XL_COM_Raster;\r\nglobal variable G_FW_PIP_COM_TotalChannels;\r\nglobal variable G_ARR_FW_XL_COM_YMax[];\r\nglobal variable G_FW_PIP_COM_Raster;\r\nglobal variable G_FW_XL_COM_TotalChannels;\r\nglobal variable G_FW_PIP_COM_MPH_Exist;\r\nglobal variable G_FW_PIP_COM_LibraryInitialized(0);\r\nglobal variable G_FW_PIP_COM_XArmMin;\r\nglobal variable G_FW_PIP_COM_InstrumentType;\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=user$$valid=0$$time=2020-10-23 13:02$$checksum=a2b94457$$length=081$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/FW_HelperLibrary.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLExtensions\\\\String.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSL_MethodHelper.hsl\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"HSLFilLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace FW_HELPERLIBRARY {\r\n// }} \"\"\r\nglobal variable G_FW_PIP_COM_TotalChannels;\r\nglobal variable G_FW_PIP_COM_XArmMin;\r\nglobal variable G_FW_PIP_COM_XArmMax;\r\nglobal variable G_FW_PIP_COM_MPH_Exist;\r\nglobal variable G_FW_PIP_COM_SimulationMode;\r\nglobal variable G_FW_XL_COM_TotalChannels;\r\nglobal variable G_FW_PIP_COM_InstrumentType;\r\nglobal variable G_FW_XL_COM_Raster;\r\nglobal variable G_FW_PIP_COM_Raster;\r\nglobal variable G_FW_PIP_COM_FirmwareType;\r\nglobal variable G_FW_PIP_COM_LibraryInitialized(0);\r\nglobal variable G_ARR_FW_XL_COM_YMax[];\r\nglobal variable G_ARR_FW_PIP_COM_YMin[];\r\nglobal variable G_ARR_FW_PIP_COM_YMax[];\r\nglobal variable G_ARR_FW_XL_COM_YMin[];\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction CheckForError( variable i_str_FunctionName, variable i_str_ReturnValue, variable i_bool_RaiseError ) void ;\r\nfunction GetChannelNumber( variable & io_int_ChannelNumber ) void ;\r\nfunction GetChannelValue( variable i_int_ChannelNumber, variable & o_str_ChannelValue ) void ;\r\nfunction GetErrorDescriptionMainError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void ;\r\nfunction GetErrorDescriptionSlaveError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void ;\r\nfunction GetSlaveError( variable i_str_ReturnValue, variable & o_arr_Channels[], variable & o_arr_SlaveErrors[], variable & o_arr_ErrorDescription[] ) void ;\r\nfunction Get_Instrument_Type( device & ML_STAR, variable & o_int_InstrumentType, variable & o_int_MaxAutoloadTracks ) variable ;\r\nfunction Get_X_Ranges_STAR( device & ML_STAR, variable & o_flt_LeftXMin, variable & o_flt_LeftXMax, variable & o_flt_RightXMin, variable & o_flt_RightXMax ) void ;\r\nfunction InitFunction( device & ML_STAR ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction Parse_Parameter_Single_String( variable i_str_ParameterFull, variable i_str_Parameter, variable & o_bol_ParameterFound, variable & o_str_Value ) void ;\r\nfunction RemoveExcessDigits( variable & io_flt_Value ) void ;\r\nfunction SetParameter( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void ;\r\nfunction SetParametersAll( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void ;\r\nfunction SetParametersArr( variable i_strParameterName, variable & i_arrValues[], variable i_fltConversionValue, variable i_intTotalDigits, variable i_intTotalChannels, variable & o_strParameter ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nHELPERLIBRARY::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nHELPERLIBRARY::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"GetErrorDescriptionMainError\" \"Begin\"\r\nfunction GetErrorDescriptionMainError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void {\r\n// }} \"\"\r\nprivate variable str_ErrorDescription;\r\nprivate variable str_ErrorCause;\r\n// {{ 5 \"GetErrorDescriptionMainError\" \"InitLocals\"\r\no_str_ErrorDescription = 0;\r\n// }} \"\"\r\n// {{{ 153 1 0 \"2fd09426_b8d5_4bd0_a865fe3b076818a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ErrorCode = StrConcat2(i_str_ErrorCode, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 154 1 0 \"ff8ca630_397d_4e9f_a804f2f93f5d5ace\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Unknown error\");\r\n// }} \"\"\r\n// {{ 155 1 0 \"b380b8c3_f4e6_4a53_ba30569b269aff1f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 156 1 0 \"d762c888_7a95_46f1_b972aaf62316cba5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ErrorDescription = Translate(\"\");\r\n// }} \"\"\r\n// {{ 157 1 0 \"f16d5e40_b5c5_4b79_8435d2610cbb2102\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"00\")\r\n{\r\n// }} \"\"\r\n// {{ 158 1 0 \"61d362dc_c80f_416e_b9c9608735b2d8a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No Error\");\r\n// }} \"\"\r\n// {{ 159 1 0 \"bae7c277_e1cd_4709_91014652ec062b53\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 160 1 0 \"f16d5e40_b5c5_4b79_8435d2610cbb2102\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 161 1 0 \"8bd45cbf_7aa6_41ab_8096898e86352e17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"01\")\r\n{\r\n// }} \"\"\r\n// {{ 162 1 0 \"19eda1fe_bdb5_44d0_919753c5ef91e311\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Syntax error\");\r\n// }} \"\"\r\n// {{ 163 1 0 \"7e1ba0d1_f2a8_47ac_93cba5838af19f64\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 164 1 0 \"8bd45cbf_7aa6_41ab_8096898e86352e17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 165 1 0 \"f1784673_8460_4aa0_a5aaa54c5aa6d640\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"02\")\r\n{\r\n// }} \"\"\r\n// {{ 166 1 0 \"23464258_a4dd_4c32_b3738fa25d94e9f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Hardware error\");\r\n// }} \"\"\r\n// {{ 167 1 0 \"1cadda43_3d94_4730_b71f4c53cb2aff91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"drive blocked, low power etc.\");\r\n// }} \"\"\r\n// {{ 168 1 0 \"f1784673_8460_4aa0_a5aaa54c5aa6d640\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 169 1 0 \"63e19508_f6bb_4b3a_96c33bbdf05f7dd2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"03\")\r\n{\r\n// }} \"\"\r\n// {{ 170 1 0 \"068dc7ad_92d9_450e_b9edaf748c33a461\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Command not completed\");\r\n// }} \"\"\r\n// {{ 171 1 0 \"e5dcbde4_7017_4602_a96ca61a00929905\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"error in previous sequence (not executed)\");\r\n// }} \"\"\r\n// {{ 172 1 0 \"63e19508_f6bb_4b3a_96c33bbdf05f7dd2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 173 1 0 \"817bec49_b65f_46f0_b93d483aa8920218\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"04\")\r\n{\r\n// }} \"\"\r\n// {{ 174 1 0 \"a4d93d79_27f5_41f8_81ae9f0c4e57859f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Clot detected\");\r\n// }} \"\"\r\n// {{ 175 1 0 \"06b48dc3_cb69_4846_b16cfd0183bd02b6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"LLD not interrupted\");\r\n// }} \"\"\r\n// {{ 176 1 0 \"817bec49_b65f_46f0_b93d483aa8920218\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 177 1 0 \"18bc92f5_0e41_489a_9b80dcb95f2224e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"05\")\r\n{\r\n// }} \"\"\r\n// {{ 178 1 0 \"b8b24bee_0709_4398_8e30cc689ab8b491\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Barcode unreadable\");\r\n// }} \"\"\r\n// {{ 179 1 0 \"9a7f5a13_fe94_46b3_bf1fc6f8a3a8b677\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"bad or missing barcode\");\r\n// }} \"\"\r\n// {{ 180 1 0 \"18bc92f5_0e41_489a_9b80dcb95f2224e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 181 1 0 \"ff94ecbe_a5af_433c_a3c69ee12732f485\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"06\")\r\n{\r\n// }} \"\"\r\n// {{ 182 1 0 \"ea2169a7_3079_448f_91ec68b01c47db7f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Too little liquid\");\r\n// }} \"\"\r\n// {{ 183 1 0 \"5dea1a85_831f_46f3_93ebf023badf9622\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"liquid surface is not detected\");\r\n// }} \"\"\r\n// {{ 184 1 0 \"ff94ecbe_a5af_433c_a3c69ee12732f485\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 185 1 0 \"66a069ae_2af0_40b9_b299e4e2467bdc30\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"07\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"ab7291b3_0661_4fc6_ab4365f05f9ca4b0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Tip already fitted\");\r\n// }} \"\"\r\n// {{ 187 1 0 \"99d3e194_ae31_4038_89f772501d7c404d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Repeated attempts to fit a tip or iSwap movement with tips\");\r\n// }} \"\"\r\n// {{ 188 1 0 \"66a069ae_2af0_40b9_b299e4e2467bdc30\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 189 1 0 \"4da4b08c_6498_4ab4_bac5e8b49b029bf5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"08\")\r\n{\r\n// }} \"\"\r\n// {{ 190 1 0 \"fd596358_5170_4780_b58bc29d4c72a5a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No Tip\");\r\n// }} \"\"\r\n// {{ 191 1 0 \"ae62c9d5_04ea_4583_bcbbf0e3461ececa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"command was started without fitting tip\");\r\n// }} \"\"\r\n// {{ 192 1 0 \"4da4b08c_6498_4ab4_bac5e8b49b029bf5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 193 1 0 \"3671bdc3_7229_43b6_9bb6b44bc5e73ff9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"09\")\r\n{\r\n// }} \"\"\r\n// {{ 194 1 0 \"deed5f97_0b61_4e49_909199ccb89d4bfc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No Carrier\");\r\n// }} \"\"\r\n// {{ 195 1 0 \"883b27c3_6b90_4fda_a23dc64cdfbf3736\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"load command without carrier\");\r\n// }} \"\"\r\n// {{ 196 1 0 \"3671bdc3_7229_43b6_9bb6b44bc5e73ff9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 197 1 0 \"4fa59db3_e9a8_4e76_a282fec388daf0ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"10\")\r\n{\r\n// }} \"\"\r\n// {{ 198 1 0 \"269a484c_9d32_47ca_bcf5233876dc7f8e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Not completed\");\r\n// }} \"\"\r\n// {{ 199 1 0 \"3b208baf_962a_4cf5_851cacbb63d6ab2c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Command in command buffer was aborted due to an error in a previous command, or command stack was deleted\");\r\n// }} \"\"\r\n// {{ 200 1 0 \"4fa59db3_e9a8_4e76_a282fec388daf0ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 201 1 0 \"27bab5c1_3a87_476c_983ae0f4799a5da9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"11\")\r\n{\r\n// }} \"\"\r\n// {{ 202 1 0 \"2bed150c_0b3b_4677_bb392f325bab5cac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Dispense with pressure LLD\");\r\n// }} \"\"\r\n// {{ 203 1 0 \"f7eebac6_8597_43e0_8c47e8aa50c97bff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"dispense with pressure LLD is not permitted\");\r\n// }} \"\"\r\n// {{ 204 1 0 \"27bab5c1_3a87_476c_983ae0f4799a5da9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 205 1 0 \"30df1028_4d0d_4b5f_981ae1b65b434744\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"12\")\r\n{\r\n// }} \"\"\r\n// {{ 206 1 0 \"574805af_c729_45f5_906570f6e7254156\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No Teach In Signal\");\r\n// }} \"\"\r\n// {{ 207 1 0 \"1f6ad0f5_9673_4596_a559cb3c8ed724e9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"X-Movement to LLD reached maximum allowable position without detecting Teach in signal\");\r\n// }} \"\"\r\n// {{ 208 1 0 \"30df1028_4d0d_4b5f_981ae1b65b434744\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 209 1 0 \"f5478479_60f8_4753_937e83c07d37c285\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"13\")\r\n{\r\n// }} \"\"\r\n// {{ 210 1 0 \"4d61b339_bde1_415c_87d7b4f47ed72dae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Loading Tray error\");\r\n// }} \"\"\r\n// {{ 211 1 0 \"87c19654_27a9_4560_9d7a837f4ed234e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"position already occupied\");\r\n// }} \"\"\r\n// {{ 212 1 0 \"f5478479_60f8_4753_937e83c07d37c285\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 213 1 0 \"41d92afb_97ac_4de1_b06e6938e00edf29\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"14\")\r\n{\r\n// }} \"\"\r\n// {{ 214 1 0 \"3d63024d_9479_4960_b85cf41fbb177373\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Sequenced aspiration with pressure LLD\");\r\n// }} \"\"\r\n// {{ 215 1 0 \"8132794d_f797_4f50_a6bb64c84bca60bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"sequenced aspiration with pressure LLD is not permitted\");\r\n// }} \"\"\r\n// {{ 216 1 0 \"41d92afb_97ac_4de1_b06e6938e00edf29\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"d011c74e_ed9d_410a_ab67b68f87a3a24c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"15\")\r\n{\r\n// }} \"\"\r\n// {{ 218 1 0 \"d08aa72b_b865_4665_8f7447d60fcf29a2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Not allowed parameter combination\");\r\n// }} \"\"\r\n// {{ 219 1 0 \"b1e33a17_1b84_449c_9956d45ba23b1b23\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"i.e. PLLD and dispense or wrong X-drive assignment\");\r\n// }} \"\"\r\n// {{ 220 1 0 \"d011c74e_ed9d_410a_ab67b68f87a3a24c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 221 1 0 \"593a5e47_753e_422c_bd6daf00fb92ad18\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"16\")\r\n{\r\n// }} \"\"\r\n// {{ 222 1 0 \"515b69bd_7405_4957_a7fe530e766fdcd0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Cover close error\");\r\n// }} \"\"\r\n// {{ 223 1 0 \"adf8db10_eefd_46a7_8952d8641fc1f474\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"cover is not closed and couldn't be locked\");\r\n// }} \"\"\r\n// {{ 224 1 0 \"593a5e47_753e_422c_bd6daf00fb92ad18\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 225 1 0 \"b832d0d5_f5f4_4e3f_ac9bd9007c1eda43\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"17\")\r\n{\r\n// }} \"\"\r\n// {{ 226 1 0 \"16fa1039_4921_4484_ab72f63534c68f26\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Aspiration error\");\r\n// }} \"\"\r\n// {{ 227 1 0 \"6b8fac5c_c4a0_4c17_92f60733bf0b33b8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"aspiration liquid stream error detected\");\r\n// }} \"\"\r\n// {{ 228 1 0 \"b832d0d5_f5f4_4e3f_ac9bd9007c1eda43\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 229 1 0 \"e0c66351_eb31_4e80_918ea04bc1f5cad9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"18\")\r\n{\r\n// }} \"\"\r\n// {{ 230 1 0 \"2954d52f_8e4f_4ee3_95d8adf3d7dec822\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Wash fluid or waste error\");\r\n// }} \"\"\r\n// {{ 231 1 0 \"6f561083_7e27_40c8_98930510f9350762\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"missing wash fluid, or waste of particular washer is full\");\r\n// }} \"\"\r\n// {{ 232 1 0 \"e0c66351_eb31_4e80_918ea04bc1f5cad9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 233 1 0 \"ab93ca4b_ff71_4235_b4576762c53f09d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"19\")\r\n{\r\n// }} \"\"\r\n// {{ 234 1 0 \"999a6dbf_903b_49b0_91b118ff45027f34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Incubation error\");\r\n// }} \"\"\r\n// {{ 235 1 0 \"78b6a4ea_46eb_48ae_878c1aa26be8d1e9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"incubator temperature out of limit\");\r\n// }} \"\"\r\n// {{ 236 1 0 \"ab93ca4b_ff71_4235_b4576762c53f09d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 237 1 0 \"1b850c55_d10c_455d_996cf2c49a303299\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"20\")\r\n{\r\n// }} \"\"\r\n// {{ 238 1 0 \"06a7fe4c_f989_4f74_a3d16b1e7c1163cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"TADM measurement error\");\r\n// }} \"\"\r\n// {{ 239 1 0 \"0e18265a_a334_48b9_aa898733ee3b6dc4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"overshoot of limits during aspiration or dispensation\");\r\n// }} \"\"\r\n// {{ 240 1 0 \"1b850c55_d10c_455d_996cf2c49a303299\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 241 1 0 \"d756104d_6f3c_43a5_af8a815d2c45ef41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"21\")\r\n{\r\n// }} \"\"\r\n// {{ 242 1 0 \"3eb9894c_4f61_46e6_9d2087378fddef95\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No element\");\r\n// }} \"\"\r\n// {{ 243 1 0 \"720552c4_05e9_4507_a22d218fd48da385\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"expected element not detected\");\r\n// }} \"\"\r\n// {{ 244 1 0 \"d756104d_6f3c_43a5_af8a815d2c45ef41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 245 1 0 \"87d29932_2352_4a07_a7a0b9cc6e4e0b0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"22\")\r\n{\r\n// }} \"\"\r\n// {{ 246 1 0 \"35913154_08d7_4852_a413490bb3f366e6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Element still holding\");\r\n// }} \"\"\r\n// {{ 247 1 0 \"f62271e2_d147_4855_a61453b290ff697b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Get command is sent twice or element is not discarded\");\r\n// }} \"\"\r\n// {{ 248 1 0 \"87d29932_2352_4a07_a7a0b9cc6e4e0b0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 249 1 0 \"eb3e3828_a6e9_4c0a_9e1f10b826ef4041\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"23\")\r\n{\r\n// }} \"\"\r\n// {{ 250 1 0 \"6e44a50b_4d5e_4732_bf3cb812368c8b94\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Element lost\");\r\n// }} \"\"\r\n// {{ 251 1 0 \"142e530e_25e3_4d0d_9e342a2948957b0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"expected element is missing (lost)\");\r\n// }} \"\"\r\n// {{ 252 1 0 \"eb3e3828_a6e9_4c0a_9e1f10b826ef4041\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"4f05f865_c137_4080_8903db84bbb99249\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"24\")\r\n{\r\n// }} \"\"\r\n// {{ 254 1 0 \"f8e50707_9ddf_46b8_9a29b1ab395904d9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Illegal target plate position\");\r\n// }} \"\"\r\n// {{ 255 1 0 \"b0013bce_28a0_461b_9b91a376a1702d7d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"over or underflow of iSWAP positions or iSWAP is not in park position during pipetting activities\");\r\n// }} \"\"\r\n// {{ 256 1 0 \"4f05f865_c137_4080_8903db84bbb99249\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 257 1 0 \"b3fbc197_2a41_41e4_9df80f347f1e85fb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"25\")\r\n{\r\n// }} \"\"\r\n// {{ 258 1 0 \"4fd263bf_5dc6_49ec_b1417c66218378e4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Illegal user access\");\r\n// }} \"\"\r\n// {{ 259 1 0 \"bce38602_cc69_44af_8b756fbe2d1743b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"carrier was manually removed or cover is open\");\r\n// }} \"\"\r\n// {{ 260 1 0 \"b3fbc197_2a41_41e4_9df80f347f1e85fb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 261 1 0 \"68bf8f94_e08c_44ae_ba2d420aceb1ba22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"26\")\r\n{\r\n// }} \"\"\r\n// {{ 262 1 0 \"9ef2b3bd_b6a5_446b_8d3fd236b36eddf5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"TADM measurement error\");\r\n// }} \"\"\r\n// {{ 263 1 0 \"e1379707_df19_45ca_a8f3d4dc3da74ddb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"exciding of limits during aspiration or dispensation\");\r\n// }} \"\"\r\n// {{ 264 1 0 \"68bf8f94_e08c_44ae_ba2d420aceb1ba22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 265 1 0 \"7832c749_6d3c_4be1_aae31d6168d94f56\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"27\")\r\n{\r\n// }} \"\"\r\n// {{ 266 1 0 \"47171c55_3463_4e1e_a8ac58a8ada578ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Posiition not reachable\");\r\n// }} \"\"\r\n// {{ 267 1 0 \"3fbf3446_29d8_49ac_b232639962da4735\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"position out of mechanical limits using iSWAP, CoRe gripper or PIP-channels\");\r\n// }} \"\"\r\n// {{ 268 1 0 \"7832c749_6d3c_4be1_aae31d6168d94f56\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 269 1 0 \"bf98d427_84b7_4c78_86ef70f5f35d5694\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"28\")\r\n{\r\n// }} \"\"\r\n// {{ 270 1 0 \"ba3261bb_ca6d_4a33_817f1699abec018a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"unexpected LLD\");\r\n// }} \"\"\r\n// {{ 271 1 0 \"0e47599f_a104_4d30_a130201aa918b8c5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Liquid level is reached before LLD scanning is started\");\r\n// }} \"\"\r\n// {{ 272 1 0 \"bf98d427_84b7_4c78_86ef70f5f35d5694\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 273 1 0 \"0c6a360e_e0a9_4756_8a2bdcc9703cf49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"29\")\r\n{\r\n// }} \"\"\r\n// {{ 274 1 0 \"c5b685a8_c60b_4c21_80ad58b7a0dcec5a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"area already occupied\");\r\n// }} \"\"\r\n// {{ 275 1 0 \"ff354bcf_cf12_4a83_93926f10d241435b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Its impossible to occupy area because this area is already in use\");\r\n// }} \"\"\r\n// {{ 276 1 0 \"0c6a360e_e0a9_4756_8a2bdcc9703cf49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 277 1 0 \"210d7c06_da25_478e_b73d7f16641027a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"30\")\r\n{\r\n// }} \"\"\r\n// {{ 278 1 0 \"1dfd1411_d8ad_47a2_821abb6515122848\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"impossible to occupy area\");\r\n// }} \"\"\r\n// {{ 279 1 0 \"67469ad1_b527_4349_834bb6494a8845af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Area cant be occupied because is no solution for arm prepositioning\");\r\n// }} \"\"\r\n// {{ 280 1 0 \"210d7c06_da25_478e_b73d7f16641027a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 281 1 0 \"7cb5ada9_fde5_47cc_a1cb8418331cdcdf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"99\")\r\n{\r\n// }} \"\"\r\n// {{ 282 1 0 \"59e7e214_1a0f_45e3_959877e697fbd270\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Slave error\");\r\n// }} \"\"\r\n// {{ 283 1 0 \"867e4a57_0caa_40b7_abc59e3deb652e3c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 284 1 0 \"7cb5ada9_fde5_47cc_a1cb8418331cdcdf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 285 1 0 \"64a0249e_5aea_4015_865a02015a741d53\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ErrorCause == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 286 1 0 \"8157c5da_aa9d_4688_82731324fa0059a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ErrorDescription = StrConcat4(str_ErrorDescription, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 287 1 0 \"64a0249e_5aea_4015_865a02015a741d53\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 288 1 0 \"d7ef1257_e8eb_48b9_a89a22a9d0927b23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ErrorDescription = StrConcat4(str_ErrorDescription, Translate(\" :: \"), str_ErrorCause, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 289 1 0 \"64a0249e_5aea_4015_865a02015a741d53\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetErrorDescriptionMainError\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetErrorDescriptionSlaveError\" \"Begin\"\r\nfunction GetErrorDescriptionSlaveError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void {\r\n// }} \"\"\r\nprivate variable str_ErrorDescription;\r\nprivate variable str_ErrorCause;\r\nprivate variable str_ErrorHeader;\r\n// {{ 5 \"GetErrorDescriptionSlaveError\" \"InitLocals\"\r\no_str_ErrorDescription = 0;\r\n// }} \"\"\r\n// {{{ 291 1 0 \"75e19f5f_5c71_40ed_9e1945ca2a344d00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ErrorCode = StrConcat2(i_str_ErrorCode, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 292 1 0 \"dd2f50c1_0059_4d25_97498b5420c58d8b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorHeader = Translate(\"\");\r\n// }} \"\"\r\n// {{ 293 1 0 \"cb6b64f8_6fae_4663_9803f5165c1b16ae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Unknown error\");\r\n// }} \"\"\r\n// {{ 294 1 0 \"8f6ea2d5_b154_42fc_87b6b45bdf9d1e70\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 295 1 0 \"d24fcad7_2847_4a03_ae3406644818417c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ErrorDescription = Translate(\"\");\r\n// }} \"\"\r\n// {{ 296 1 0 \"b5c9fba9_bc50_45c2_ace146ed7514ec5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"00\")\r\n{\r\n// }} \"\"\r\n// {{ 297 1 0 \"fafa9e4c_37fe_40fc_8d676cc7a8ea73a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorHeader = Translate(\"\");\r\n// }} \"\"\r\n// {{ 298 1 0 \"b815d66f_e406_4e5a_93e74a26504438c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No Error\");\r\n// }} \"\"\r\n// {{ 299 1 0 \"9b63a333_660a_47f7_9b7f1b579b80beed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 300 1 0 \"b5c9fba9_bc50_45c2_ace146ed7514ec5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 301 1 0 \"401ffd82_13f1_4d31_9553d5d667588226\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"20\")\r\n{\r\n// }} \"\"\r\n// {{{ 302 1 0 \"74f4930d_6b31_45d3_88348845c6c08663\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Transfer check\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 303 1 0 \"9f24b781_4253_41ec_92df4c7be31be6bb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No communication to EEPROM\");\r\n// }} \"\"\r\n// {{ 304 1 0 \"692c55df_c57b_4084_af050f909525e376\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"I2C Bus or EEPROM not working\");\r\n// }} \"\"\r\n// {{ 305 1 0 \"401ffd82_13f1_4d31_9553d5d667588226\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 306 1 0 \"dc4b6514_9ad4_4927_8e04d75bcc207079\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"30\")\r\n{\r\n// }} \"\"\r\n// {{{ 307 1 0 \"c3b1d7fb_8cf6_4ae2_b6bbd87eec89c055\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Syntax check\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 308 1 0 \"f49d5011_d198_45dd_9b1439f00bfde61c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Undefined command\");\r\n// }} \"\"\r\n// {{ 309 1 0 \"76eff144_500e_49ca_ad09015d371265cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"unknown command\");\r\n// }} \"\"\r\n// {{ 310 1 0 \"dc4b6514_9ad4_4927_8e04d75bcc207079\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 311 1 0 \"d8a80c67_eaa8_48c0_84469667b8533701\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"31\")\r\n{\r\n// }} \"\"\r\n// {{{ 312 1 0 \"8336aae3_56f4_4054_974eb8b0181ceb21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Syntax check\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 313 1 0 \"5ef6d736_a3cb_40de_a57c7cb57f643c51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Undefined parameter\");\r\n// }} \"\"\r\n// {{ 314 1 0 \"eec190d6_70a2_4dfa_96d85934d3efebe1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"unknown parameter\");\r\n// }} \"\"\r\n// {{ 315 1 0 \"d8a80c67_eaa8_48c0_84469667b8533701\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 316 1 0 \"803c49ba_3e18_4995_9805759df8ffbb21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"32\")\r\n{\r\n// }} \"\"\r\n// {{{ 317 1 0 \"94c1a5eb_15da_4bdd_a6234c353b556b3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Syntax check\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 318 1 0 \"f9092fca_4e9d_40a0_8b7ef00c58866487\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Parameter out of range\");\r\n// }} \"\"\r\n// {{ 319 1 0 \"e7f42df8_8061_4b07_949bd0bae3c574d3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"parameter outside permitted range\");\r\n// }} \"\"\r\n// {{ 320 1 0 \"803c49ba_3e18_4995_9805759df8ffbb21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 321 1 0 \"4a1ca385_c134_48d5_95fb08d9181a1d04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"35\")\r\n{\r\n// }} \"\"\r\n// {{{ 322 1 0 \"51ce8985_130a_4d7e_aba7738cbc468ae0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"General errors during execution of commands\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 323 1 0 \"a012fc20_24fd_4267_a3fd43812e09274b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Voltages outside permitted range\");\r\n// }} \"\"\r\n// {{ 324 1 0 \"fb3acf7f_0d07_4c4c_8901707b453bed53\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Hardware not working properly\");\r\n// }} \"\"\r\n// {{ 325 1 0 \"4a1ca385_c134_48d5_95fb08d9181a1d04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 326 1 0 \"b0f484b1_194e_498d_8b0807d2656fd9d1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"36\")\r\n{\r\n// }} \"\"\r\n// {{{ 327 1 0 \"aeb0f95d_e2f0_4d11_a382958c0f4e9091\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"General errors during execution of commands\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 328 1 0 \"b1724b69_8c40_4370_8d6c80b1f359226f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Stop during execution of a command\");\r\n// }} \"\"\r\n// {{ 329 1 0 \"708bd525_6e8a_4bdd_bfbd3de52bd7fd9f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 330 1 0 \"b0f484b1_194e_498d_8b0807d2656fd9d1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 331 1 0 \"aa762baa_0142_4bbb_a43af39a41535166\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"37\")\r\n{\r\n// }} \"\"\r\n// {{{ 332 1 0 \"85ee0f9c_2026_4a85_8e4555fe1d4a7f9f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"General errors during execution of commands\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 333 1 0 \"a83026cc_1a3f_4f94_86b733783ae67bcc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Movement interrupted\");\r\n// }} \"\"\r\n// {{ 334 1 0 \"9bcff3ef_5fbf_4da5_b57d483f3f5e456c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Second core gripper pipetting channel has a step loss\");\r\n// }} \"\"\r\n// {{ 335 1 0 \"aa762baa_0142_4bbb_a43af39a41535166\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 336 1 0 \"70bb4b45_28f0_4d70_afb9866be3f8705f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"40\")\r\n{\r\n// }} \"\"\r\n// {{{ 337 1 0 \"202f5e9c_271b_42ec_be8454844b10f59d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Parallelity errors\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 338 1 0 \"a658d213_1523_4bea_bdb267448f30317a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No parallel processes permitted\");\r\n// }} \"\"\r\n// {{ 339 1 0 \"0d57b905_c535_4a19_afb8390dc445488d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Two or more commands sent for the same control\");\r\n// }} \"\"\r\n// {{ 340 1 0 \"70bb4b45_28f0_4d70_afb9866be3f8705f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 341 1 0 \"e4799154_be15_4cb8_9c5e6fc03a3ecd92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"50\")\r\n{\r\n// }} \"\"\r\n// {{{ 342 1 0 \"cb690614_dfc5_4266_a956dd46885e59e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Dispensing drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 343 1 0 \"c2cc1794_d899_4e1b_86607db07ccedf3e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Init. position not found\");\r\n// }} \"\"\r\n// {{ 344 1 0 \"fb26c12c_4e31_4d56_ba5871e458ea4645\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Hardware not working\");\r\n// }} \"\"\r\n// {{ 345 1 0 \"e4799154_be15_4cb8_9c5e6fc03a3ecd92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 346 1 0 \"e3cbf50c_b67b_4948_8cc6a33adbf5cf38\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"51\")\r\n{\r\n// }} \"\"\r\n// {{{ 347 1 0 \"271f3cac_a611_4d76_a7ea00cba7109d93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Dispensing drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 348 1 0 \"22396cbe_bcf6_4314_952d893cb37e5350\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Drive not initialized\");\r\n// }} \"\"\r\n// {{ 349 1 0 \"cddb3f34_6ae3_493b_b1e59a121d5cdb11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Command sent before drive initialized\");\r\n// }} \"\"\r\n// {{ 350 1 0 \"e3cbf50c_b67b_4948_8cc6a33adbf5cf38\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 351 1 0 \"97078f46_8ea2_4c5d_933ed897f4674c45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"52\")\r\n{\r\n// }} \"\"\r\n// {{{ 352 1 0 \"f471e526_0321_4920_8832675df81881ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Dispensing drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 353 1 0 \"7dddb1ea_2a49_4e87_81a2fe154e443bf5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Movement error\");\r\n// }} \"\"\r\n// {{ 354 1 0 \"07505d7f_6572_48a6_bb9c6146ed01e0f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"step loss\");\r\n// }} \"\"\r\n// {{ 355 1 0 \"97078f46_8ea2_4c5d_933ed897f4674c45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 356 1 0 \"18a92b1b_be70_4c57_a50be2695c2731b2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"53\")\r\n{\r\n// }} \"\"\r\n// {{{ 357 1 0 \"0d31a49c_693d_493c_b4f2fd2c7e876515\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Dispensing drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 358 1 0 \"6498a39a_5eaf_4db8_886cd8c582190b55\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Maximum volume in tip reached\");\r\n// }} \"\"\r\n// {{ 359 1 0 \"d1a02fb1_46d3_4080_97a48eeaeb5f1570\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 360 1 0 \"18a92b1b_be70_4c57_a50be2695c2731b2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 361 1 0 \"7b31ef90_4c5f_47cb_9397334e80fc067b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"54\")\r\n{\r\n// }} \"\"\r\n// {{{ 362 1 0 \"fa9b1465_beb1_4f1d_be80bea6df037c82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Dispensing drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 363 1 0 \"c03ee111_4815_4fc2_a22ef5383ca0ed88\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Position out of permitted area\");\r\n// }} \"\"\r\n// {{ 364 1 0 \"30c1c422_80ea_4edb_8a5cbdc27dc419d3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 365 1 0 \"7b31ef90_4c5f_47cb_9397334e80fc067b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 366 1 0 \"8898f114_68f9_4215_9386129747df01b8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"55\")\r\n{\r\n// }} \"\"\r\n// {{{ 367 1 0 \"f294c450_ce65_4cf8_9dba99f9977ad729\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Y-drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 368 1 0 \"46c2b011_e5ea_4456_acd7af0e2b511e53\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Drive blocked\");\r\n// }} \"\"\r\n// {{ 369 1 0 \"a128a47e_47ab_4f8f_966d77908c6a44a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Hardware not working\");\r\n// }} \"\"\r\n// {{ 370 1 0 \"8898f114_68f9_4215_9386129747df01b8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 371 1 0 \"f873cf23_28b8_43fe_944da985cf38aab8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"56\")\r\n{\r\n// }} \"\"\r\n// {{{ 372 1 0 \"c638f660_c573_4c1b_86a0ac35d65e39f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Y-drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 373 1 0 \"b36c1df5_6614_4e16_9549f6b873836131\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Drive not initialized\");\r\n// }} \"\"\r\n// {{ 374 1 0 \"4ad71921_94bd_4e88_9c702b4083a09927\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Command sent before drive initialized\");\r\n// }} \"\"\r\n// {{ 375 1 0 \"f873cf23_28b8_43fe_944da985cf38aab8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 376 1 0 \"8fb6555d_8ce1_48a3_b41263804435664f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"57\")\r\n{\r\n// }} \"\"\r\n// {{{ 377 1 0 \"fa7722c1_5c52_4644_a2a8ef8480437e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Y-drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 378 1 0 \"593f5485_9627_4a92_87ddc213d0716b24\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Movement error\");\r\n// }} \"\"\r\n// {{ 379 1 0 \"58ce26f7_2513_4897_8003aedd72ac1032\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Step loss\");\r\n// }} \"\"\r\n// {{ 380 1 0 \"8fb6555d_8ce1_48a3_b41263804435664f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 381 1 0 \"4cc39ad3_9d5f_48ca_adc22d4439fa38de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"60\")\r\n{\r\n// }} \"\"\r\n// {{{ 382 1 0 \"b8e5c9b3_9516_4229_9ce834531cd12073\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Z-drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 383 1 0 \"d801236d_6e2f_4496_938939caca3d316e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Drive blocked\");\r\n// }} \"\"\r\n// {{ 384 1 0 \"1d77271f_54fb_4e66_b66254ad25a08899\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Hardware not working\");\r\n// }} \"\"\r\n// {{ 385 1 0 \"4cc39ad3_9d5f_48ca_adc22d4439fa38de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 386 1 0 \"bd24457a_99a8_42f4_b9b3db2f47371dae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"61\")\r\n{\r\n// }} \"\"\r\n// {{{ 387 1 0 \"177596ee_0431_4aed_a51d18cd521e8b84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Z-drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 388 1 0 \"bc0ca613_26ca_4fd6_be418d524638beb0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Drive not initialized\");\r\n// }} \"\"\r\n// {{ 389 1 0 \"b31122b3_851d_4bec_928488bcab019c91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Command sent before drive initialized\");\r\n// }} \"\"\r\n// {{ 390 1 0 \"bd24457a_99a8_42f4_b9b3db2f47371dae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 391 1 0 \"8e905d17_539f_4b45_a5ba5ec47f2fc879\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"62\")\r\n{\r\n// }} \"\"\r\n// {{{ 392 1 0 \"b949dd1a_8619_4207_8edf05d13e46e17b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Z-drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 393 1 0 \"8cafc397_d9fc_49dc_ae109cba6eb0714d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Movement error\");\r\n// }} \"\"\r\n// {{ 394 1 0 \"426f276e_0741_49c0_9d1b14c58530354e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Step loss\");\r\n// }} \"\"\r\n// {{ 395 1 0 \"8e905d17_539f_4b45_a5ba5ec47f2fc879\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 396 1 0 \"e743065f_4af8_45aa_9b6f127e5e156ca9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"63\")\r\n{\r\n// }} \"\"\r\n// {{{ 397 1 0 \"3f8facc1_df65_4a3c_8110e4d1639f6c2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Z-drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 398 1 0 \"90d27fa7_68c3_4fc5_811deff21248e5ab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Limit stop not found\");\r\n// }} \"\"\r\n// {{ 399 1 0 \"eb7cdcca_ab2e_4b8e_bf0dfc909548e94e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 400 1 0 \"e743065f_4af8_45aa_9b6f127e5e156ca9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 401 1 0 \"51951faf_c668_4fc0_be70e4324e52a4e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"65\")\r\n{\r\n// }} \"\"\r\n// {{{ 402 1 0 \"844fe999_2abd_4390_8a811577a178226c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Squeezer drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 403 1 0 \"11b66411_bb1d_4f5b_ae82ee443a52bb6a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Drive blocked\");\r\n// }} \"\"\r\n// {{ 404 1 0 \"8a840dbb_fd10_4a49_a824c4b534e8b07c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Hardware not working\");\r\n// }} \"\"\r\n// {{ 405 1 0 \"51951faf_c668_4fc0_be70e4324e52a4e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 406 1 0 \"74676e12_49a1_4e79_9a7db2d72ddce548\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"66\")\r\n{\r\n// }} \"\"\r\n// {{{ 407 1 0 \"b08fa0b0_ece3_48b0_a4cb69fd815e3ea9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Squeezer drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 408 1 0 \"a47fe026_31a4_4073_b7ea16ce9b0686c9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Drive not initialized\");\r\n// }} \"\"\r\n// {{ 409 1 0 \"1a231a57_f6a7_44de_8a21a9b48e215d17\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Command sent before drive initialized\");\r\n// }} \"\"\r\n// {{ 410 1 0 \"74676e12_49a1_4e79_9a7db2d72ddce548\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 411 1 0 \"d69c7ef6_be43_4539_89cb8a1370182bdb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"67\")\r\n{\r\n// }} \"\"\r\n// {{{ 412 1 0 \"9143f67e_e200_492d_b850aa26cc753d88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Squeezer drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 413 1 0 \"205ba637_ff99_4418_8c47a53a3913ee69\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Movement error\");\r\n// }} \"\"\r\n// {{ 414 1 0 \"a1f0d6e8_bbdf_4c18_9f4ee9daff9f1e55\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Step loss\");\r\n// }} \"\"\r\n// {{ 415 1 0 \"d69c7ef6_be43_4539_89cb8a1370182bdb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 416 1 0 \"c2cd5ee2_1a18_4fe2_a0c5c4ae11fc419f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"68\")\r\n{\r\n// }} \"\"\r\n// {{{ 417 1 0 \"96531039_333c_4a44_a0ca3503daab2810\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Squeezer drive\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 418 1 0 \"e580dd2f_c1c7_43f2_ac6237cb7f93d561\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Init. position adjustment error\");\r\n// }} \"\"\r\n// {{ 419 1 0 \"e624e5aa_1b05_4dcd_967021fa5a416597\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 420 1 0 \"c2cd5ee2_1a18_4fe2_a0c5c4ae11fc419f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 421 1 0 \"c22a1919_6627_41c1_a540d0538eccda21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"70\")\r\n{\r\n// }} \"\"\r\n// {{{ 422 1 0 \"66368cb8_0727_4f8a_bc1a8826117a5796\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Liquid Level Detection\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 423 1 0 \"804486b2_e538_4705_8eae34c8a38642df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No liquid level found\");\r\n// }} \"\"\r\n// {{ 424 1 0 \"c88d2648_a215_4f0e_8ad0992b5739b825\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"No liquid present\");\r\n// }} \"\"\r\n// {{ 425 1 0 \"c22a1919_6627_41c1_a540d0538eccda21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 426 1 0 \"534f535d_7628_4d31_b3e0f73098decda3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"71\")\r\n{\r\n// }} \"\"\r\n// {{{ 427 1 0 \"3ca2d585_b881_4577_85e2d46ba305d5e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Liquid Level Detection\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 428 1 0 \"c8da22f8_a319_40ca_97aee2a0e7b7b2a2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Not enough liquid present\");\r\n// }} \"\"\r\n// {{ 429 1 0 \"72581cb9_122a_4bd9_a692be0754869b86\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Immersion depth or surface following position below minimal access range\");\r\n// }} \"\"\r\n// {{ 430 1 0 \"534f535d_7628_4d31_b3e0f73098decda3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 431 1 0 \"e76f0f3e_8077_4ced_860f466d9ebc6f74\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"72\")\r\n{\r\n// }} \"\"\r\n// {{{ 432 1 0 \"68f50273_c730_481a_a20b3252ce55c403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Liquid Level Detection\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 433 1 0 \"b6eaccf4_93c7_41e3_98a3cc8e0bde47ae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Auto calibration at pressure sensor not possible\");\r\n// }} \"\"\r\n// {{ 434 1 0 \"4e001dfc_be3e_4b7d_ad0b581c644b0048\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Hardware not working\");\r\n// }} \"\"\r\n// {{ 435 1 0 \"e76f0f3e_8077_4ced_860f466d9ebc6f74\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 436 1 0 \"b930a3d3_0ff2_40ea_962ea59203bf1a69\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"73\")\r\n{\r\n// }} \"\"\r\n// {{{ 437 1 0 \"7bd1d264_dc36_4fb9_ae913860bd8f1d61\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Liquid Level Detection\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 438 1 0 \"4175cc21_a0ab_4a30_9f0acea275061e11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No liquid level found with dual LLD\");\r\n// }} \"\"\r\n// {{ 439 1 0 \"8f5e935f_86b8_4e65_98ae54e3f285d8a9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Difference of LLD positions on dual LLD exceed the maximum\");\r\n// }} \"\"\r\n// {{ 440 1 0 \"b930a3d3_0ff2_40ea_962ea59203bf1a69\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 441 1 0 \"ed9e9560_70a6_47f5_a1305c3810ffbf29\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"74\")\r\n{\r\n// }} \"\"\r\n// {{{ 442 1 0 \"0d7030b9_f8d2_4205_8d088e0531166a71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Liquid Level Detection\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 443 1 0 \"4b5dc97b_09d0_449c_b3c280690a8ce083\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Liquid at a not allowed position detected\");\r\n// }} \"\"\r\n// {{ 444 1 0 \"0a6f6f1c_0644_494f_a79f40eff57b5664\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 445 1 0 \"ed9e9560_70a6_47f5_a1305c3810ffbf29\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 446 1 0 \"2498177a_2059_4563_ab8d3127fd2c8dee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"75\")\r\n{\r\n// }} \"\"\r\n// {{{ 447 1 0 \"dbb753f2_6ae6_4d0d_8f858fd104afdd28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error on tip handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 448 1 0 \"48dcad4b_b407_400b_9c48d87c8007a3e5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No tip picked up\");\r\n// }} \"\"\r\n// {{ 449 1 0 \"6d0cf031_006f_4394_8d27e38de3ed1e13\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"No tip present at position\");\r\n// }} \"\"\r\n// {{ 450 1 0 \"2498177a_2059_4563_ab8d3127fd2c8dee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 451 1 0 \"40c7fca3_2b3c_497e_93fed0a896197d09\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"76\")\r\n{\r\n// }} \"\"\r\n// {{{ 452 1 0 \"0dee9a09_649b_428f_bda2a407fefce744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error on tip handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 453 1 0 \"51200096_0ec7_4d72_99c7acfb64fa1a1c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Tip already picked up\");\r\n// }} \"\"\r\n// {{ 454 1 0 \"b446f6f1_16bb_4b83_b49ddc673949f4c6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"A fresh tip cannot be picked up, because one is already present\");\r\n// }} \"\"\r\n// {{ 455 1 0 \"40c7fca3_2b3c_497e_93fed0a896197d09\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 456 1 0 \"8a93931c_17fe_4697_981ef03b4c70dd3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"77\")\r\n{\r\n// }} \"\"\r\n// {{{ 457 1 0 \"747d7be9_5153_43fb_b2387fa5d77301a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error on tip handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 458 1 0 \"8ce0e761_5930_4725_876b3fed067121e0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Tip not discarded\");\r\n// }} \"\"\r\n// {{ 459 1 0 \"356e42b6_7931_457d_9b1cb5021b0cbbed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 460 1 0 \"8a93931c_17fe_4697_981ef03b4c70dd3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 461 1 0 \"ee25fc26_3b5b_40e6_b95e2b8917e5968a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"78\")\r\n{\r\n// }} \"\"\r\n// {{{ 462 1 0 \"85802152_c90d_4f37_85df06a2b36b816a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error on tip handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 463 1 0 \"f36853d3_b288_4f2f_9eb1493a631ee759\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Wrong tip detected\");\r\n// }} \"\"\r\n// {{ 464 1 0 \"eb7d884d_8b83_48e2_8407205dd6e35f6c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"The tip picked up was not of tip type specified\");\r\n// }} \"\"\r\n// {{ 465 1 0 \"ee25fc26_3b5b_40e6_b95e2b8917e5968a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 466 1 0 \"4ec29c88_d7c5_4c31_8b802d97604160a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"80\")\r\n{\r\n// }} \"\"\r\n// {{{ 467 1 0 \"5bbdefbe_580e_4573_a1052d31bab883a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 468 1 0 \"8182bc40_e086_4701_aba39ad05efd06e7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Liquid not correctly aspirated\");\r\n// }} \"\"\r\n// {{ 469 1 0 \"a57bc338_091f_4e4a_9b9fa654d34177c0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Error in liquid aspiration\");\r\n// }} \"\"\r\n// {{ 470 1 0 \"4ec29c88_d7c5_4c31_8b802d97604160a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 471 1 0 \"831a0c2b_2f23_437d_90e12db18b0a71c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"81\")\r\n{\r\n// }} \"\"\r\n// {{{ 472 1 0 \"56ba4286_8eb8_4c40_9875a6ff63361ee8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 473 1 0 \"2ea530c6_fb38_4fc3_aff4944d207d7fff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Clot detected\");\r\n// }} \"\"\r\n// {{ 474 1 0 \"efac6fec_d983_4722_8b7e9cdbb385914a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 475 1 0 \"831a0c2b_2f23_437d_90e12db18b0a71c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 476 1 0 \"14e5199a_4e82_417a_8b1127c540391154\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"82\")\r\n{\r\n// }} \"\"\r\n// {{{ 477 1 0 \"86b289cf_1c92_4843_a0a1e82dd17ecedb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 478 1 0 \"a1333612_2292_40e5_9a0fb058b50b56d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"TADM measurement out of lower limit curve\");\r\n// }} \"\"\r\n// {{ 479 1 0 \"32382a83_acbc_4da4_af1af14ecaec369b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 480 1 0 \"14e5199a_4e82_417a_8b1127c540391154\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 481 1 0 \"c075f85d_a0ba_49fb_a6bd3ed3cfe6288d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"83\")\r\n{\r\n// }} \"\"\r\n// {{{ 482 1 0 \"27d54cd6_2165_4e52_be0f366c788731b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 483 1 0 \"3892169d_0e9c_484b_b200bab6cf4d7c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"TADM measurement out of upper limit curve\");\r\n// }} \"\"\r\n// {{ 484 1 0 \"d7ffa35f_852e_4b31_b37a9b29173ccf1a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 485 1 0 \"c075f85d_a0ba_49fb_a6bd3ed3cfe6288d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 486 1 0 \"b1eaeb25_e43c_4bb7_aab6b22e695430e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"84\")\r\n{\r\n// }} \"\"\r\n// {{{ 487 1 0 \"e2b1c6d0_ce24_4c0c_866f57a2bbe222b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 488 1 0 \"5b49e608_eb47_4aad_8a6de45cfcf88673\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Not enough memory for TADM measurement\");\r\n// }} \"\"\r\n// {{ 489 1 0 \"7c12d8dc_a4b8_48e0_9aec18790663b432\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 490 1 0 \"b1eaeb25_e43c_4bb7_aab6b22e695430e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 491 1 0 \"be4f7bd2_4baf_41f3_88c953effa6057d3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"85\")\r\n{\r\n// }} \"\"\r\n// {{{ 492 1 0 \"bea7749c_3e57_4526_87d9ecf3f829ac6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 493 1 0 \"f145c8d3_1f72_4cbf_b0ee3017c4ec6d21\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"No communication to digital potentiometer\");\r\n// }} \"\"\r\n// {{ 494 1 0 \"215f9340_eaf0_4f1e_bbdfb63db3a28fef\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 495 1 0 \"be4f7bd2_4baf_41f3_88c953effa6057d3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 496 1 0 \"59421ea3_5992_44bf_bd6e121aab5da7b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"86\")\r\n{\r\n// }} \"\"\r\n// {{{ 497 1 0 \"fba0e3b6_dbdb_4614_9218da69f5350e01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 498 1 0 \"d4736cf0_67c2_4abc_acb18446c65364f8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"ADC algorithm error\");\r\n// }} \"\"\r\n// {{ 499 1 0 \"bccb9a67_a019_4388_8defd9cb004aa781\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 500 1 0 \"59421ea3_5992_44bf_bd6e121aab5da7b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 501 1 0 \"1c31a283_66ea_4f6e_8fb9e56da58ca9cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"87\")\r\n{\r\n// }} \"\"\r\n// {{{ 502 1 0 \"fed22673_70d6_4b4b_86d590dda1a826a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 503 1 0 \"39972bcc_6bb1_47d1_8a0ec01b8402b343\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"2nd phase of liquid not found\");\r\n// }} \"\"\r\n// {{ 504 1 0 \"aefa931d_f49a_45dd_92d12618e3546677\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"No 2nd phase of liquid present\");\r\n// }} \"\"\r\n// {{ 505 1 0 \"1c31a283_66ea_4f6e_8fb9e56da58ca9cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 506 1 0 \"8487ddff_6440_4324_8d9603e246a7f9d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"88\")\r\n{\r\n// }} \"\"\r\n// {{{ 507 1 0 \"6c71cbbb_f31d_4692_b87e7d5c5837db43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Error during liquid handling\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 508 1 0 \"571120b0_4fb0_4599_ac3beb1138637a95\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Not enough 2nd phase of liquid present\");\r\n// }} \"\"\r\n// {{ 509 1 0 \"22899f29_e88e_40a7_b059b952868be12b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Immersion depth or surface following position below minimal access range\");\r\n// }} \"\"\r\n// {{ 510 1 0 \"8487ddff_6440_4324_8d9603e246a7f9d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 511 1 0 \"c53d20a3_e579_4ece_987a80eebdf048d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"90\")\r\n{\r\n// }} \"\"\r\n// {{{ 512 1 0 \"3b91a408_0203_4f2d_ab97982d4cd37885\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Limit curve errors\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 513 1 0 \"87bae6e0_e5cf_46a4_b1ee13bc2193225f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Limit curve not resetable\");\r\n// }} \"\"\r\n// {{ 514 1 0 \"73b62280_03c4_432b_a6e7032925e8a4f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 515 1 0 \"c53d20a3_e579_4ece_987a80eebdf048d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 516 1 0 \"f6db7f47_205b_4dae_89571081a472297d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"91\")\r\n{\r\n// }} \"\"\r\n// {{{ 517 1 0 \"a5d170bd_fa1b_43d9_b902b11137b85a68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Limit curve errors\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 518 1 0 \"127bcadf_62da_46b7_985c93e2a685611b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Limit curve not programmable\");\r\n// }} \"\"\r\n// {{ 519 1 0 \"4d818f8a_3b37_4537_b28cc8f72c507d45\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 520 1 0 \"f6db7f47_205b_4dae_89571081a472297d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 521 1 0 \"761f3aca_c7e3_47c8_a88d344ac9c79455\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"92\")\r\n{\r\n// }} \"\"\r\n// {{{ 522 1 0 \"7ffecdb8_876a_4b26_bc7ce6329c697dcb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Limit curve errors\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 523 1 0 \"399ee31b_1c02_46cf_9916f85f07feb05d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Limit curve name not found\");\r\n// }} \"\"\r\n// {{ 524 1 0 \"06283a14_834d_43a5_87a6ac1724238904\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 525 1 0 \"761f3aca_c7e3_47c8_a88d344ac9c79455\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 526 1 0 \"3b97365a_0ae7_4446_bc0ca1114a3de51a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"93\")\r\n{\r\n// }} \"\"\r\n// {{{ 527 1 0 \"ed5a18c0_4737_4d83_ab6b0de93ddaf872\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Limit curve errors\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 528 1 0 \"21d67c96_bb49_4210_b6aac4477e5f9555\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Limit curve data incorrect\");\r\n// }} \"\"\r\n// {{ 529 1 0 \"0802592c_4e83_4269_80a2eef7b5d46e74\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Calculate data address out of limit curve address range or Syntax error\");\r\n// }} \"\"\r\n// {{ 530 1 0 \"3b97365a_0ae7_4446_bc0ca1114a3de51a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 531 1 0 \"e3a17a78_b4be_4fa5_b9830af4dcb9c501\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"94\")\r\n{\r\n// }} \"\"\r\n// {{{ 532 1 0 \"c9829ff1_d198_4d24_946470974b94cc7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Limit curve errors\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 533 1 0 \"67a6f440_67e3_4160_b6bb69c0899fcae9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Not enough memory for limit curve\");\r\n// }} \"\"\r\n// {{ 534 1 0 \"6aa54e59_91f8_4110_859b936ce3bd0196\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 535 1 0 \"e3a17a78_b4be_4fa5_b9830af4dcb9c501\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 536 1 0 \"ce9be709_2b7d_40a1_a586156c38728d91\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"95\")\r\n{\r\n// }} \"\"\r\n// {{{ 537 1 0 \"167e21b8_af36_438f_b3cc863e08be6497\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Limit curve errors\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 538 1 0 \"ae5d0f7c_1b32_4971_b3a8423fea515072\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Not allowed limit curve index\");\r\n// }} \"\"\r\n// {{ 539 1 0 \"ead124b8_bf2a_44aa_84fba843b8115c15\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 540 1 0 \"ce9be709_2b7d_40a1_a586156c38728d91\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 541 1 0 \"c00b0427_9f82_405d_868fe5d991b54bf3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"96\")\r\n{\r\n// }} \"\"\r\n// {{{ 542 1 0 \"d11b28e6_e6fd_405d_aaa2ee25992a8212\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Limit curve errors\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 543 1 0 \"ffef534a_aec7_4a71_bb0a43a107b04e44\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Limit curve already stored\");\r\n// }} \"\"\r\n// {{ 544 1 0 \"88d5fa53_0341_437e_abc3069a093fc33e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"\");\r\n// }} \"\"\r\n// {{ 545 1 0 \"c00b0427_9f82_405d_868fe5d991b54bf3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 546 1 0 \"38468ebb_e7bd_40d2_8226d777a081fe9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_ErrorCode == \"99\")\r\n{\r\n// }} \"\"\r\n// {{{ 547 1 0 \"72cdbd37_2cff_459c_b17f412196382042\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorHeader = StrConcat2(Translate(\"Pipetting Head error\"), Translate(\" :: \"));\r\n// }} \"\"\r\n// {{ 548 1 0 \"1c7068e4_51c1_41d7_b0c57dfe34c86599\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorDescription = Translate(\"Pipetting Head error\");\r\n// }} \"\"\r\n// {{ 549 1 0 \"8d565cec_e372_47ee_b202b41036a793a5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorCause = Translate(\"Return message of the command CH includes a Pipetting Head error\");\r\n// }} \"\"\r\n// {{ 550 1 0 \"38468ebb_e7bd_40d2_8226d777a081fe9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 551 1 0 \"2d977ec6_9014_4b7f_9d7454688d143d4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ErrorCause == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 552 1 0 \"d927ec0b_fea9_4107_a380948c320cc8ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ErrorDescription = StrConcat4(str_ErrorHeader, str_ErrorDescription, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 553 1 0 \"2d977ec6_9014_4b7f_9d7454688d143d4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 554 1 0 \"a1c141f8_33a8_4b74_9fb28e3475c5ad26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ErrorDescription = StrConcat4(str_ErrorHeader, str_ErrorDescription, Translate(\" :: \"), str_ErrorCause);\r\n// }} \"\"\r\n// {{ 555 1 0 \"2d977ec6_9014_4b7f_9d7454688d143d4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetErrorDescriptionSlaveError\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetSlaveError\" \"Begin\"\r\nfunction GetSlaveError( variable i_str_ReturnValue, variable & o_arr_Channels[], variable & o_arr_SlaveErrors[], variable & o_arr_ErrorDescription[] ) void {\r\n// }} \"\"\r\nprivate variable str_ErrorDescription;\r\nprivate variable i;\r\nprivate variable str_ChannelError;\r\nprivate variable int_SplitValues;\r\nprivate variable bln_UseSlaveError;\r\nprivate variable str_ChannelNumber;\r\nprivate variable str_Value;\r\nprivate variable arr_ChannelErrors[];\r\nprivate variable arr_Values[];\r\n// {{ 5 \"GetSlaveError\" \"InitLocals\"\r\no_arr_Channels.SetSize( 0);\r\no_arr_SlaveErrors.SetSize( 0);\r\no_arr_ErrorDescription.SetSize( 0);\r\n// }} \"\"\r\n// {{ 557 1 0 \"afc90f3b_c11a_4867_99e472a6d9bfa078\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_Channels.SetSize(0);\r\n// }} \"\"\r\n// {{ 558 1 0 \"a36997aa_5932_4a65_b45c14ae19438dbd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_SlaveErrors.SetSize(0);\r\n// }} \"\"\r\n// {{ 559 1 0 \"bc1ec587_3c2d_4fc2_b7439e29f2be3690\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_ErrorDescription.SetSize(0);\r\n// }} \"\"\r\n// {{{ 560 1 0 \"35085599_3888_4afc_b8b7c74b9f524478\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narr_Values = HSLExtensions::String::Split(i_str_ReturnValue, Translate(\" \"), 1);\r\n// }} \"\"\r\n// {{ 561 1 0 \"37b3bb1f_ba4c_4d76_b4d4208cf578e702\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_SplitValues=arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 562 1 0 \"5bf9a4ba_99da_4eb9_886814a7d2256bb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SplitValues < 1)\r\n{\r\n// }} \"\"\r\n// {{{ 563 1 0 \"3612e241_dac7_4609_9756925b14dd5654\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 564 1 0 \"5bf9a4ba_99da_4eb9_886814a7d2256bb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 565 1 0 \"da900631_969a_4392_94a93d5edaba8f87\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_SplitValues;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 566 1 0 \"40c5fc33_a568_4959_a13f3c729a73b916\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i > 1)\r\n{\r\n// }} \"\"\r\n// {{ 567 1 0 \"9a148937_1b7e_45d5_883515af3ada3ab4\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_Value=arr_Values.GetAt(i-1);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"c8f4050c_255d_4b6e_991e0159ce082492\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narr_ChannelErrors = HSLExtensions::String::Split(str_Value, Translate(\"/\"), 1);\r\n// }} \"\"\r\n// {{ 569 1 0 \"2baeee57_4f48_44d8_80f82e1727385a60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 570 1 0 \"ef34bbf9_f1cb_4a74_9f6730ee19e5fc35\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_ChannelNumber=arr_ChannelErrors.GetAt(1-1);\r\n// }} \"\"\r\n// {{{ 571 1 0 \"0d9ae77b_3d97_43d5_983c119164e56e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelNumber = StrLeft(str_ChannelNumber, 2);\r\n// }} \"\"\r\n// {{{ 572 1 0 \"d9d79e2a_c5de_4a50_a0ad568de2d79824\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelNumber = StrRight(str_ChannelNumber, 1);\r\n// }} \"\"\r\n// {{{ 573 1 0 \"1b0ad0e4_6083_458e_abc480347a6051e0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetChannelNumber(str_ChannelNumber);\r\n// }} \"\"\r\n// {{ 574 1 0 \"ca528c1b_fb12_4a5d_81aa98fd7affa8cd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_Channels.AddAsLast(str_ChannelNumber);\r\n// }} \"\"\r\n// {{ 575 1 0 \"2baeee57_4f48_44d8_80f82e1727385a60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 576 1 0 \"4013bf50_15fa_4159_b77d11b2f1e53b97\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 577 1 0 \"734de51e_3a6c_40f2_8c2d5738ca25be0e\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_ChannelError=arr_ChannelErrors.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"1db48e9f_2854_4a02_97ee9d91771ace86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelError = StrRight(str_ChannelError, 2);\r\n// }} \"\"\r\n// {{ 579 1 0 \"837d175f_ac45_4d60_83ad88ec04b41245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_UseSlaveError = 0;\r\n// }} \"\"\r\n// {{ 580 1 0 \"1d2a8727_fc43_4886_83768867f5118675\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ChannelError == \"00\")\r\n{\r\n// }} \"\"\r\n// {{ 581 1 0 \"42e44098_6d23_4853_b8052b70258fe46d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_ChannelError=arr_ChannelErrors.GetAt(1-1);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"21d6e900_aa1c_4805_b6acda450718a552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelError = StrRight(str_ChannelError, 2);\r\n// }} \"\"\r\n// {{ 583 1 0 \"8e86d428_17b7_42e2_9cdeae1377b7b232\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_UseSlaveError = 1;\r\n// }} \"\"\r\n// {{ 584 1 0 \"1d2a8727_fc43_4886_83768867f5118675\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 585 1 0 \"ce2a4c4c_2cdf_4677_93535a1be0bfe1f2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_SlaveErrors.AddAsLast(str_ChannelError);\r\n// }} \"\"\r\n// {{ 586 1 0 \"4013bf50_15fa_4159_b77d11b2f1e53b97\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 587 1 0 \"a21bf5c1_2ffd_4b88_9e77adad07c43425\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 588 1 0 \"846a5d42_91b6_46d2_a63e34453f0ef81b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_UseSlaveError == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 589 1 0 \"2bddbbfc_8886_46b5_81d6278e779d53a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetErrorDescriptionSlaveError(str_ChannelError, str_ErrorDescription);\r\n// }} \"\"\r\n// {{ 590 1 0 \"846a5d42_91b6_46d2_a63e34453f0ef81b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 591 1 0 \"72c0381d_2734_4062_b928f0216546e4b8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetErrorDescriptionMainError(str_ChannelError, str_ErrorDescription);\r\n// }} \"\"\r\n// {{ 592 1 0 \"846a5d42_91b6_46d2_a63e34453f0ef81b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 593 1 0 \"5b540cd3_61f0_4a6f_8e4c474c1bc3b238\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_ErrorDescription.AddAsLast(str_ErrorDescription);\r\n// }} \"\"\r\n// {{ 594 1 0 \"a21bf5c1_2ffd_4b88_9e77adad07c43425\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 595 1 0 \"40c5fc33_a568_4959_a13f3c729a73b916\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 596 1 0 \"da900631_969a_4392_94a93d5edaba8f87\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 597 1 0 \"c86ab118_9282_428a_bcb0f004bb7af7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_3(Translate(\"Channel Number                  Slave Error                  Description\"), o_arr_Channels, o_arr_SlaveErrors, o_arr_ErrorDescription);\r\n// }} \"\"\r\n// {{{ 5 \"GetSlaveError\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Parse_Parameter_Multiple\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_Value3;\r\nprivate variable int_Remaining;\r\nprivate variable str_RegionOfInterest;\r\nprivate variable int_ValueNumber;\r\nprivate variable int_LoopCount;\r\nprivate variable int_StringPosition;\r\nprivate variable flt_Value2;\r\nprivate variable int_ParamaterLength;\r\nprivate variable o_flt_Value;\r\nprivate variable int_ChannelCount;\r\nprivate variable int_SecondCut;\r\nprivate variable int_Count;\r\nprivate variable str_Value2;\r\nprivate variable int_Value2;\r\nprivate variable str_Value;\r\n// {{ 5 \"Parse_Parameter_Multiple\" \"InitLocals\"\r\no_bol_ParameterFound = 0;\r\no_arr_flt_Value.SetSize( 0);\r\n// }} \"\"\r\n// {{ 680 1 0 \"664217f1_0cfb_4b58_807ae038ae05a940\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_flt_Value.SetSize(0);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"1cfd9263_f929_4b48_a77307d3bd688b3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_bol_ParameterFound = StrReplace(i_str_ParameterFull, i_str_Parameter, i_str_Parameter);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"70dfd8b0_d3cf_4c66_8984abb947d3be47\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ParamaterLength = StrGetLength(i_str_ParameterFull);\r\n// }} \"\"\r\n// {{ 683 1 0 \"00e78725_0607_4f82_b7aa0c34ee047ffb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 684 1 0 \"d71d99c4_c723_4380_ba444fb460a036b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_StringPosition = StrFind(i_str_ParameterFull, i_str_Parameter);\r\n// }} \"\"\r\n// {{ 685 1 0 \"07534d47_6099_4e3a_b175c131eb4bd0b9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_StringPosition = int_StringPosition + 1;\r\n// }} \"\"\r\n// {{ 686 1 0 \"994eae45_9d6c_4b82_ac8526d371527f51\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remaining = int_ParamaterLength - int_StringPosition;\r\n// }} \"\"\r\n// {{{ 687 1 0 \"543e0a1e_f762_4187_a4bbc0bfeb2df7d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_RegionOfInterest = StrMid(i_str_ParameterFull, int_StringPosition, int_Remaining);\r\n// }} \"\"\r\n// {{ 688 1 0 \"efffda42_ae06_4c4c_943e113fa2d36b4c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ValueNumber = i_int_TotalDigits + 1;\r\n// }} \"\"\r\n// {{ 689 1 0 \"75d42e53_24fb_46fa_b93b19846d7e7bd5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SecondCut = i_int_TotalDigits;\r\n// }} \"\"\r\n// {{ 690 1 0 \"ea274759_4187_4a02_8e85451230971152\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = 1;\r\n// }} \"\"\r\n// {{ 691 1 0 \"4a898f6f_5b0b_4185_8271daf103f814ef\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nint_LoopCount = 0;\r\nwhile (1 == 1)\r\n{\r\nint_LoopCount = int_LoopCount + 1;\r\n// }} \"\"\r\n// {{ 692 1 0 \"836f7f7e_bddc_4443_ac285642b30a2da9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelCount = int_ChannelCount + 1;\r\n// }} \"\"\r\n// {{ 693 1 0 \"08d2cfd5_7ae9_459d_80d28e5d21fa5144\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 694 1 0 \"beb353e9_04c1_4861_836425cb3b3e7266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrMid(str_RegionOfInterest, int_Count, int_ValueNumber);\r\n// }} \"\"\r\n// {{ 695 1 0 \"063f937a_cc65_49aa_907ebf1dcab964bd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + int_ValueNumber;\r\n// }} \"\"\r\n// {{ 696 1 0 \"04d59727_6f0e_4d89_8996ab23ee79bc33\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 697 1 0 \"6f991928_99c3_4920_810b956a74e96703\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value2 = StrLeft(str_Value, int_SecondCut);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"70e9bdc3_6037_4fc0_af76f78c31b4ca23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value2 = StrIVal(str_Value2);\r\n// }} \"\"\r\n// {{ 699 1 0 \"e2429a49_5f80_4cd2_a840f3807d0b1d03\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Value2 = int_Value2 * i_flt_Conversion;\r\n// }} \"\"\r\n// {{ 700 1 0 \"f318cc93_efa4_4f59_85a196bc87a7c381\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Value = flt_Value2;\r\n// }} \"\"\r\n// {{ 701 1 0 \"28305402_d070_4deb_a5038e5b893a3ecf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_flt_Value.AddAsLast(o_flt_Value);\r\n// }} \"\"\r\n// {{ 702 1 0 \"b7b99765_ef5b_4482_b2abd45de4a54dae\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 703 1 0 \"5d6233d2_bcd9_4ccc_83f4de003bfad514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value3 = StrRight(str_Value, 1);\r\n// }} \"\"\r\n// {{ 704 1 0 \"a10f6d67_aefc_4e98_91e5df77dc65b508\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Value3 != \" \")\r\n{\r\n// }} \"\"\r\n// {{ 705 1 0 \"f0b9f3e2_9fe7_4d8b_b01e7300629d7e27\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Value3 == \"&\")\r\n{\r\n// }} \"\"\r\n// {{ 706 1 0 \"0cba3b7d_93d6_457b_829b9ec1cf736d80\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (int_ChannelCount < i_int_MaxValues)\r\n{\r\n// }} \"\"\r\n// {{ 707 1 0 \"d64c0eb7_9ad9_49a1_a652d9a5d9ed6f8e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelCount = int_ChannelCount + 1;\r\n// }} \"\"\r\n// {{ 708 1 0 \"f02c906c_2c42_4273_81b5cb34d14fb09e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_flt_Value.AddAsLast(o_flt_Value);\r\n// }} \"\"\r\n// {{ 709 1 0 \"0cba3b7d_93d6_457b_829b9ec1cf736d80\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 710 1 0 \"f0b9f3e2_9fe7_4d8b_b01e7300629d7e27\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 711 1 0 \"9592eae1_1171_470d_aecd4b3e46880250\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 712 1 0 \"a10f6d67_aefc_4e98_91e5df77dc65b508\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 713 1 0 \"4a898f6f_5b0b_4185_8271daf103f814ef\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"00e78725_0607_4f82_b7aa0c34ee047ffb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Parse_Parameter_Multiple\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Parse_Parameter_Single\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_Value3;\r\nprivate variable int_Remaining;\r\nprivate variable str_RegionOfInterest;\r\nprivate variable int_ValueNumber;\r\nprivate variable int_LoopCount;\r\nprivate variable int_StringPosition;\r\nprivate variable flt_Value2;\r\nprivate variable int_ParamaterLength;\r\nprivate variable int_SecondCut;\r\nprivate variable int_Count;\r\nprivate variable str_Value;\r\nprivate variable int_Value2;\r\nprivate variable str_Value2;\r\n// {{ 5 \"Parse_Parameter_Single\" \"InitLocals\"\r\no_bol_ParameterFound = 0;\r\no_flt_Value = 0;\r\n// }} \"\"\r\n// {{ 736 1 0 \"0dd1b254_c894_48f3_9398f875709f87d5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Value = 0.0;\r\n// }} \"\"\r\n// {{{ 737 1 0 \"5e0c6a55_f144_403b_a1273e43544ca61e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_bol_ParameterFound = StrReplace(i_str_ParameterFull, i_str_Parameter, i_str_Parameter);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"4193d503_e2c2_4c2d_80bf34904a824cdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(i_str_ParameterFull, Translate(\"+\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 739 1 0 \"5f81679f_f664_41c3_a6ac898eadad9ec1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ParamaterLength = StrGetLength(i_str_ParameterFull);\r\n// }} \"\"\r\n// {{ 740 1 0 \"6e471ada_c5d9_4a09_b218c33be763ae65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 741 1 0 \"9222c8ec_562d_4031_af27a5dd45820e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_StringPosition = StrFind(i_str_ParameterFull, i_str_Parameter);\r\n// }} \"\"\r\n// {{ 742 1 0 \"066892e1_42dd_4917_ae9c85df0d8ab81f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_StringPosition = int_StringPosition + 1;\r\n// }} \"\"\r\n// {{ 743 1 0 \"ea877b5b_dc97_4171_91f7ade7452f66d7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remaining = int_ParamaterLength - int_StringPosition;\r\n// }} \"\"\r\n// {{{ 744 1 0 \"7a43adc1_a32f_456b_a510c5f7e49089fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_RegionOfInterest = StrMid(i_str_ParameterFull, int_StringPosition, int_Remaining);\r\n// }} \"\"\r\n// {{ 745 1 0 \"a7937907_d8fe_4224_9ca7f11e0a7def3c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ValueNumber = i_int_TotalDigits + 1;\r\n// }} \"\"\r\n// {{ 746 1 0 \"fd790eaf_cd40_4cf5_9526b5c43c73063c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SecondCut = i_int_TotalDigits;\r\n// }} \"\"\r\n// {{ 747 1 0 \"07874cb5_59c6_4b08_aa7fb6dfcc5e008f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = 1;\r\n// }} \"\"\r\n// {{ 748 1 0 \"af163c1e_cffb_46f1_a28f5b9bd45986db\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nint_LoopCount = 0;\r\nwhile (1 == 1)\r\n{\r\nint_LoopCount = int_LoopCount + 1;\r\n// }} \"\"\r\n// {{ 749 1 0 \"9b064fd1_6f90_43fd_9f4afdfbd0113e1a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 750 1 0 \"29633c33_c96f_419f_861caecffa3ed97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrMid(str_RegionOfInterest, int_Count, int_ValueNumber);\r\n// }} \"\"\r\n// {{ 751 1 0 \"87118c68_1279_485c_8ddfde129150211a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + int_ValueNumber;\r\n// }} \"\"\r\n// {{ 752 1 0 \"10ae8a20_2f32_4bfe_b375d26c4e2ea174\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 753 1 0 \"8019a6d4_e2df_4db2_84cb12b6d18a8792\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value2 = StrLeft(str_Value, int_SecondCut);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"ce7f0edc_eead_43dc_aa76527c5bf5d266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value2 = StrIVal(str_Value2);\r\n// }} \"\"\r\n// {{ 755 1 0 \"aa385ae7_961b_470c_bcae38bdb45f794f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Value2 = int_Value2 * i_flt_Conversion;\r\n// }} \"\"\r\n// {{ 756 1 0 \"d3f32f8c_51d2_4c97_867243935b7863ec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Value = flt_Value2;\r\n// }} \"\"\r\n// {{ 757 1 0 \"354f604d_9f27_4bd3_99fee80681ea40dd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 758 1 0 \"abcf7466_67ef_4ada_b7fba2c5e1e05d27\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value3 = StrRight(str_Value, 1);\r\n// }} \"\"\r\n// {{ 759 1 0 \"373a1d59_ac3b_4d64_a1dabb340f47add7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Value3 != \" \")\r\n{\r\n// }} \"\"\r\n// {{ 760 1 0 \"154f3ae6_dab3_46b4_81957705c16fdcdd\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 761 1 0 \"373a1d59_ac3b_4d64_a1dabb340f47add7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 762 1 0 \"af163c1e_cffb_46f1_a28f5b9bd45986db\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 763 1 0 \"6e471ada_c5d9_4a09_b218c33be763ae65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Parse_Parameter_Single\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CheckForError\" \"Begin\"\r\nfunction CheckForError( variable i_str_FunctionName, variable i_str_ReturnValue, variable i_bool_RaiseError ) void {\r\n// }} \"\"\r\nprivate variable bool_ParamFound;\r\nprivate variable str_ErrorReturn;\r\nprivate variable int_MainErrorCode;\r\nprivate variable i;\r\nprivate variable str_MainError;\r\nprivate variable str_MainErrorCode;\r\nprivate variable str_ErrorRaise;\r\nprivate variable str_SlaveError;\r\nprivate variable int_TotalErrors;\r\nprivate variable int_ErrorCode;\r\nprivate variable str_SlaveErrorCode;\r\nprivate variable bool_SimMode;\r\nprivate variable arr_ErrorDescription[];\r\nprivate variable arr_Channels[];\r\nprivate variable arr_SlaveErrors[];\r\n// {{ 5 \"CheckForError\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1 1 0 \"60700903_5959_4982_808f52126fe0053c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_SimMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"faa9742f_5596_478d_ad2353887304cbc4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nParse_Parameter_Single_String(i_str_ReturnValue, Translate(\"er\"), bool_ParamFound, str_ErrorReturn);\r\n// }} \"\"\r\n// {{ 3 1 0 \"0fef935a_f7cd_4d16_9b6f1814019e5657\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_ParamFound == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"0704324f_aae9_462b_bae0785d6246165a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"0fef935a_f7cd_4d16_9b6f1814019e5657\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 6 1 0 \"d56016f4_1526_4595_8c94b489814fe005\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SimMode == 1)\r\n{\r\n// }} \"\"\r\n// {{ 7 1 0 \"a57b0469_af32_4dff_b3cf2f61346e6bfa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_bool_RaiseError = 0;\r\n// }} \"\"\r\n// {{ 8 1 0 \"d56016f4_1526_4595_8c94b489814fe005\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 9 1 0 \"b119c64e_8061_4dac_8f511aae1062cd61\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorReturn = StrLeft(str_ErrorReturn, 5);\r\n// }} \"\"\r\n// {{ 10 1 0 \"8c8f1fd2_1b3e_40a3_bf80485eb9307ed9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 11 1 0 \"10032557_18ca_44c4_bfad2deb2e50e6bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_MainErrorCode = StrLeft(str_ErrorReturn, 2);\r\n// }} \"\"\r\n// {{{ 12 1 0 \"01d24045_5439_4ef9_a04c934542f9277e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SlaveErrorCode = StrRight(str_ErrorReturn, 2);\r\n// }} \"\"\r\n// {{ 13 1 0 \"591a8120_3787_430a_981dd761f0487c09\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_MainErrorCode == \"00\")\r\n{\r\n// }} \"\"\r\n// {{{ 14 1 0 \"5d9963a8_65e5_4f3f_9728ee114f06e580\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 15 1 0 \"591a8120_3787_430a_981dd761f0487c09\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 16 1 0 \"6499c89c_e378_4e1d_95efa47f1f8a37ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_MainErrorCode = StrTrimRight(str_MainErrorCode, Translate(\" \"));\r\n// }} \"\"\r\n// {{{ 17 1 0 \"193aa51a_22d3_456c_9eef4b7ffdb5b9b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_MainErrorCode = StrIVal(str_MainErrorCode);\r\n// }} \"\"\r\n// {{{ 18 1 0 \"14fcd3ea_fc79_4323_a3b7f3689d91aebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_MainErrorCode = StrConcat2(int_MainErrorCode, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 19 1 0 \"41bdd6ba_703f_425c_ba2019535c764237\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_MainErrorCode == \"0\")\r\n{\r\n// }} \"\"\r\n// {{{ 20 1 0 \"0039c5be_728c_4ba4_8bedf32c5bea7d48\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 21 1 0 \"41bdd6ba_703f_425c_ba2019535c764237\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 22 1 0 \"a10cc756_1e36_44c7_b26573b7c20daf41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetErrorDescriptionMainError(str_MainErrorCode, str_MainError);\r\n// }} \"\"\r\n// {{ 23 1 0 \"9cde3718_060f_4bac_bfd9f8f3dcb2b4bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_SlaveErrorCode = Translate(\"\");\r\n// }} \"\"\r\n// {{ 24 1 0 \"f531d361_c31c_44ba_9a01492de368dbc8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_SlaveError = Translate(\"\");\r\n// }} \"\"\r\n// {{ 25 1 0 \"3381673b_91e4_4182_b38783c4062318f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_MainErrorCode == \"99\")\r\n{\r\n// }} \"\"\r\n// {{{ 26 1 0 \"b4128d88_0340_4e2f_ba8d6bb033bae5cc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetSlaveError(i_str_ReturnValue, arr_Channels, arr_SlaveErrors, arr_ErrorDescription);\r\n// }} \"\"\r\n// {{ 27 1 0 \"04d002b1_7a8e_4423_a5151fa990970ee0\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalErrors=arr_Channels.GetSize();\r\n// }} \"\"\r\n// {{ 28 1 0 \"df5f5d06_5a8a_42eb_a2d4947aae1bc1e9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalErrors;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 29 1 0 \"a7583699_1e84_4bdd_8fdb904b51eb43c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 30 1 0 \"8f62d727_8896_4bf3_8097cb5ffb2bdd7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SlaveErrorCode = StrConcat4(str_SlaveErrorCode, Translate(\"; \"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 31 1 0 \"a7583699_1e84_4bdd_8fdb904b51eb43c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 32 1 0 \"45aa328d_d1ad_491a_96a714d3de2f23c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SlaveErrorCode = StrConcat4(str_SlaveErrorCode, arr_Channels.ElementAt( i -1), Translate(\" \"), arr_SlaveErrors.ElementAt( i -1));\r\n// }} \"\"\r\n// {{{ 33 1 0 \"30450ef9_4dc4_4773_806697d297060ac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SlaveErrorCode = StrConcat2(str_SlaveErrorCode, Translate(\"  \"));\r\n// }} \"\"\r\n// {{{ 34 1 0 \"e3fe75db_b7f1_4eb9_aa89ef0926475700\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SlaveError = StrConcat4(str_SlaveError, arr_Channels.ElementAt( i -1), Translate(\" \"), arr_ErrorDescription.ElementAt( i -1));\r\n// }} \"\"\r\n// {{{ 35 1 0 \"3209500b_c6d7_47ad_a515c91f386ae591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SlaveError = StrConcat2(str_SlaveError, Translate(\"  \"));\r\n// }} \"\"\r\n// {{ 36 1 0 \"df5f5d06_5a8a_42eb_a2d4947aae1bc1e9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 37 1 0 \"3381673b_91e4_4182_b38783c4062318f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Main Error Code:  \",str_MainErrorCode,\"  Main Error Description:  \",str_MainError);\r\nTrace(\"Slave Error Code:  \",str_SlaveErrorCode,\"  Slave Error Description:  \",str_SlaveError);\r\n// {{ 39 1 0 \"09eec0ff_a415_45fa_b2f8e4c1467affb7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_RaiseError == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"7cf574f7_b4b9_41ce_a1b1ff9a3b75f011\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorRaise = StrConcat12(i_str_FunctionName, Translate(\" :: \"), Translate(\"Error while running function\"), Translate(\"\\n\\n\"), str_SlaveErrorCode, Translate(\" - \"), str_SlaveError, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 41 1 0 \"1995cb28_22f7_4b4b_8430afe72cd2f042\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ErrorCode = StrIVal(str_SlaveErrorCode);\r\n// }} \"\"\r\n// {{{ 42 1 0 \"16e4982a_7725_4f68_bae35382b8707649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(int_ErrorCode, str_ErrorRaise);\r\n// }} \"\"\r\n// {{ 43 1 0 \"09eec0ff_a415_45fa_b2f8e4c1467affb7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CheckForError\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelNumber\" \"Begin\"\r\nfunction GetChannelNumber( variable & io_int_ChannelNumber ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetChannelNumber\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 45 1 0 \"d721a440_36de_4d78_a07de5780e38de3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_int_ChannelNumber = StrConcat2(io_int_ChannelNumber, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 46 1 0 \"d1e19a5f_3aa7_4ca7_b9356c02afc538f0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"10\")\r\n{\r\n// }} \"\"\r\n// {{ 47 1 0 \"c91adfed_b54f_4364_bf5ef24bf2791f51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"A\");\r\n// }} \"\"\r\n// {{{ 48 1 0 \"6115ab0d_ae0f_4ec4_9402ce05b8813b71\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 49 1 0 \"d1e19a5f_3aa7_4ca7_b9356c02afc538f0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 50 1 0 \"e0474747_8f61_452e_bc91b813b28209a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"11\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"6fab649c_27bd_4f3c_97b15a32dd78ad8e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"B\");\r\n// }} \"\"\r\n// {{{ 52 1 0 \"81462c2a_e0c5_4ec7_96071972d4108853\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 53 1 0 \"e0474747_8f61_452e_bc91b813b28209a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 54 1 0 \"5a618f6f_8f39_41fa_b318d2ad0c5a1cc7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"12\")\r\n{\r\n// }} \"\"\r\n// {{ 55 1 0 \"560907e4_2a32_4820_b9f44b89f4956001\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"C\");\r\n// }} \"\"\r\n// {{{ 56 1 0 \"d89a7b92_eab3_4aec_9bc677da37918d33\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 57 1 0 \"5a618f6f_8f39_41fa_b318d2ad0c5a1cc7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 58 1 0 \"66de9ad8_b823_48ba_a1ac1128bad0a03f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"13\")\r\n{\r\n// }} \"\"\r\n// {{ 59 1 0 \"b7e80518_39a2_4aaf_924ce0cedd0eea16\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"D\");\r\n// }} \"\"\r\n// {{{ 60 1 0 \"270e1653_8306_4370_ac0321871ae9dd67\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 61 1 0 \"66de9ad8_b823_48ba_a1ac1128bad0a03f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 62 1 0 \"24294572_f22b_4db0_92114c89c16e664a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"14\")\r\n{\r\n// }} \"\"\r\n// {{ 63 1 0 \"7a3627fb_7b9d_4a4c_a566a4ddbaee6a53\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"E\");\r\n// }} \"\"\r\n// {{{ 64 1 0 \"53e19e8f_77e2_4173_95c7149147be06b9\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 65 1 0 \"24294572_f22b_4db0_92114c89c16e664a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 66 1 0 \"ce4c1961_8db3_41fa_b1aad6637969922c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"15\")\r\n{\r\n// }} \"\"\r\n// {{ 67 1 0 \"1625c718_c1cc_46db_b66ff7254288565b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"F\");\r\n// }} \"\"\r\n// {{{ 68 1 0 \"d0a6664e_9315_4a4d_a921f5bad945a169\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 69 1 0 \"ce4c1961_8db3_41fa_b1aad6637969922c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 70 1 0 \"990105ec_82eb_49e6_a77246898d0056da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"16\")\r\n{\r\n// }} \"\"\r\n// {{ 71 1 0 \"d3aaa2ff_a35b_49d6_ba942b1a034078f1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"G\");\r\n// }} \"\"\r\n// {{{ 72 1 0 \"3f7ed6df_bdf2_41ec_8c3ea18b813d6d43\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 73 1 0 \"990105ec_82eb_49e6_a77246898d0056da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 74 1 0 \"8f19990a_d407_48ce_84266cc32cf65f3b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"A\")\r\n{\r\n// }} \"\"\r\n// {{ 75 1 0 \"9a660ffb_bac3_4a6b_b41cf6f08603c54d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"10\");\r\n// }} \"\"\r\n// {{{ 76 1 0 \"2dc2bc4e_ab56_4898_87f97a8131c7e410\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 77 1 0 \"8f19990a_d407_48ce_84266cc32cf65f3b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 78 1 0 \"92cb32a9_2043_4343_8db63674351ddb22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"B\")\r\n{\r\n// }} \"\"\r\n// {{ 79 1 0 \"c0d1cf4f_fcaf_41aa_8ba79a606654f47a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"11\");\r\n// }} \"\"\r\n// {{{ 80 1 0 \"fca78eec_f155_429f_b21b6a838ac9eea7\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 81 1 0 \"92cb32a9_2043_4343_8db63674351ddb22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 82 1 0 \"394b17ba_9e28_489c_bcf3a1cb6838acc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"C\")\r\n{\r\n// }} \"\"\r\n// {{ 83 1 0 \"4f009caf_71d3_4465_929e5322b761d9c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"12\");\r\n// }} \"\"\r\n// {{{ 84 1 0 \"d9e31ba0_a628_487a_9ee2a71d5d01c9b3\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 85 1 0 \"394b17ba_9e28_489c_bcf3a1cb6838acc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 86 1 0 \"2d72959a_f691_4057_b0ff849b11bce919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"D\")\r\n{\r\n// }} \"\"\r\n// {{ 87 1 0 \"3c708c62_57c3_46ff_aaaf79f333c14c21\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"13\");\r\n// }} \"\"\r\n// {{{ 88 1 0 \"7c49d9d7_58fb_48e2_bbfb3878ca80c3bb\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 89 1 0 \"2d72959a_f691_4057_b0ff849b11bce919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 90 1 0 \"737805f5_41a5_4a0e_b33bf1d3258d1c94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"E\")\r\n{\r\n// }} \"\"\r\n// {{ 91 1 0 \"7e8649da_2b54_4155_ad1569f930cd35a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"14\");\r\n// }} \"\"\r\n// {{{ 92 1 0 \"b91328cb_6bdf_412e_b24a930e2abe5342\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 93 1 0 \"737805f5_41a5_4a0e_b33bf1d3258d1c94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 94 1 0 \"c9da4510_1d46_41f5_90139d7e31b713e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"F\")\r\n{\r\n// }} \"\"\r\n// {{ 95 1 0 \"36253eec_7d1b_4d87_a6b5033e3e5d7bad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"15\");\r\n// }} \"\"\r\n// {{{ 96 1 0 \"42929e9c_82e2_45e0_9ba94467b7e83fdf\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 97 1 0 \"c9da4510_1d46_41f5_90139d7e31b713e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 98 1 0 \"b9593144_4875_40f9_a568779c72d28de1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (io_int_ChannelNumber == \"G\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"44d645af_4c9a_46d9_8c685c89f9b1f4c9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_int_ChannelNumber = Translate(\"16\");\r\n// }} \"\"\r\n// {{{ 100 1 0 \"aeebe93f_f858_43ab_b864e79f8b659cbc\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 101 1 0 \"b9593144_4875_40f9_a568779c72d28de1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelNumber\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Parse_Parameter_Single_String\" \"Begin\"\r\nfunction Parse_Parameter_Single_String( variable i_str_ParameterFull, variable i_str_Parameter, variable & o_bol_ParameterFound, variable & o_str_Value ) void {\r\n// }} \"\"\r\nprivate variable str_Value3;\r\nprivate variable int_Remaining;\r\nprivate variable str_RegionOfInterest;\r\nprivate variable int_ValueNumber;\r\nprivate variable int_LoopCount;\r\nprivate variable int_StringPosition;\r\nprivate variable int_ParamaterLength;\r\nprivate variable int_SecondCut;\r\nprivate variable int_Count;\r\nprivate variable str_Value2;\r\nprivate variable str_Value;\r\n// {{ 5 \"Parse_Parameter_Single_String\" \"InitLocals\"\r\no_bol_ParameterFound = 0;\r\no_str_Value = 0;\r\n// }} \"\"\r\n// {{ 765 1 0 \"5bc142c2_754d_4ef5_a9d903af4312e4b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_Value = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 766 1 0 \"72f4424f_451e_4522_9400a03ea2dbc8a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_bol_ParameterFound = StrReplace(i_str_ParameterFull, i_str_Parameter, i_str_Parameter);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"29eada4f_eb7c_4867_a9e46d30c7192afb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ParamaterLength = StrGetLength(i_str_ParameterFull);\r\n// }} \"\"\r\n// {{ 768 1 0 \"b9572762_cc0f_4e73_ba7e36a6b7f646cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 769 1 0 \"9002487b_9e58_4988_b9b87267d59d9585\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_StringPosition = StrFind(i_str_ParameterFull, i_str_Parameter);\r\n// }} \"\"\r\n// {{ 770 1 0 \"7ea0715c_53c4_4db5_9fdd6520a49e33fc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_StringPosition = int_StringPosition + 1;\r\n// }} \"\"\r\n// {{ 771 1 0 \"bb9e9cf1_9ace_4d49_aab11112d7e92c3a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remaining = int_ParamaterLength - int_StringPosition;\r\n// }} \"\"\r\n// {{{ 772 1 0 \"2562e406_c548_4fbb_842d66fe6fe94d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_RegionOfInterest = StrMid(i_str_ParameterFull, int_StringPosition, int_Remaining);\r\n// }} \"\"\r\n// {{ 773 1 0 \"9ce532fc_f06a_4513_9d302d6b6cef09e6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ValueNumber = int_Remaining + 1;\r\n// }} \"\"\r\n// {{ 774 1 0 \"15468028_c45c_40b6_bdad08cd10820a2a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SecondCut = int_Remaining;\r\n// }} \"\"\r\n// {{ 775 1 0 \"d6415e16_0873_4a2c_9c94bbe2ffb4e7ad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = 1;\r\n// }} \"\"\r\n// {{ 776 1 0 \"2aa91625_c673_47ef_a4a2df55d4dcc5d8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nint_LoopCount = 0;\r\nwhile (1 == 1)\r\n{\r\nint_LoopCount = int_LoopCount + 1;\r\n// }} \"\"\r\n// {{ 777 1 0 \"e241c4a5_f27d_44cd_881f1ea838173d80\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 778 1 0 \"6e711114_1bde_4092_9c7a1701ece20aa0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrMid(str_RegionOfInterest, int_Count, int_ValueNumber);\r\n// }} \"\"\r\n// {{ 779 1 0 \"70e00d71_e810_4304_9e205226300163a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + int_ValueNumber;\r\n// }} \"\"\r\n// {{ 780 1 0 \"3600f0f8_436d_4de7_94bad9804be93047\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 781 1 0 \"94fa1f7f_8d71_4495_be5939f2fb818c56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value2 = StrLeft(str_Value, int_SecondCut);\r\n// }} \"\"\r\n// {{ 782 1 0 \"c31b56f5_a8ac_49bd_b1de75903d245e0d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_Value = str_Value2;\r\n// }} \"\"\r\n// {{ 783 1 0 \"b03cc812_bbbc_4595_92cc1f7d5336eb75\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 784 1 0 \"53407751_4b34_48fd_a8cbf7fc3b546e85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value3 = StrRight(str_Value, 1);\r\n// }} \"\"\r\n// {{ 785 1 0 \"d2b70d77_f7fc_4a43_adc7e7132c645673\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Value3 != \" \")\r\n{\r\n// }} \"\"\r\n// {{ 786 1 0 \"e0f8a442_0c81_4561_869a5712cd720be7\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 787 1 0 \"d2b70d77_f7fc_4a43_adc7e7132c645673\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 788 1 0 \"2aa91625_c673_47ef_a4a2df55d4dcc5d8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 789 1 0 \"b9572762_cc0f_4e73_ba7e36a6b7f646cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Parse_Parameter_Single_String\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SetParameter\" \"Begin\"\r\nfunction SetParameter( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void {\r\n// }} \"\"\r\nprivate variable flt_Value;\r\nprivate variable int_Value;\r\nprivate variable str_Value;\r\n// {{ 5 \"SetParameter\" \"InitLocals\"\r\no_strParameter = 0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 800 1 0 \"436ce862_6e8b_45e9_891117d49ac3d1f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE12(Translate(\"     Param name:  \"), i_strParameterName, Translate(\"   Value:  \"), i_fltValue, Translate(\"     Total Digits:  \"), i_intTotalDigits, Translate(\"     Conversion:  \"), i_fltConversionValue, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 801 1 0 \"41a7e7ea_bd7e_48ee_970804928e9a086c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(i_strParameterName, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 802 1 0 \"298b8164_c748_49e2_a1f7579d39c5efd2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Value = i_fltValue * i_fltConversionValue;\r\n// }} \"\"\r\n// {{{ 803 1 0 \"193a98be_82f4_4734_a909ca945e0d6afa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = MthRound(flt_Value, 0);\r\n// }} \"\"\r\n// {{{ 804 1 0 \"ef7000c2_1281_4311_8614f4d93be1db8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(int_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 805 1 0 \"7bafac06_f5cd_474f_96514365ed48328c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrFillLeft(int_Value, Translate(\"0\"), i_intTotalDigits);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"346ecf46_8c48_428b_9827d8450b184f9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strParameter = StrConcat2(str_Value, int_Value);\r\n// }} \"\"\r\n// {{{ 5 \"SetParameter\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"RemoveExcessDigits\" \"Begin\"\r\nfunction RemoveExcessDigits( variable & io_flt_Value ) void {\r\n// }} \"\"\r\nprivate variable int_Check;\r\n// {{ 5 \"RemoveExcessDigits\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 791 1 0 \"8c1cd0de_aab4_43d0_a434e550bb80535d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_flt_Value = MthRound(io_flt_Value, 1);\r\n// }} \"\"\r\n// {{{ 792 1 0 \"4004d120_b465_46ea_85f39e227258a3fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_flt_Value = StrConcat2(io_flt_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 793 1 0 \"29762b4b_c21e_479f_8f0395f23b7b7015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_flt_Value = StrTrimRight(io_flt_Value, Translate(\"0\"));\r\n// }} \"\"\r\n// {{{ 794 1 0 \"196ae165_df03_4aa4_a515b6ea1ce12768\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Check = StrRight(io_flt_Value, 1);\r\n// }} \"\"\r\n// {{ 795 1 0 \"db96a5f5_ee31_4b99_8f6e4abb7de22246\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Check == \".\")\r\n{\r\n// }} \"\"\r\n// {{{ 796 1 0 \"e706a91f_491a_4e56_96e72051479e48df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_flt_Value, Translate(\".\"), Translate(\".0\"));\r\n// }} \"\"\r\n// {{ 797 1 0 \"db96a5f5_ee31_4b99_8f6e4abb7de22246\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 798 1 0 \"ffb7d94a_4d3e_4442_bdf65adc43fadb2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_flt_Value = StrFVal(io_flt_Value);\r\n// }} \"\"\r\n// {{{ 5 \"RemoveExcessDigits\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Parse_Parameter_Multiple2\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_TotalParsed;\r\nprivate variable i;\r\nprivate variable str_ParseValue;\r\nprivate variable str_CurrentValue;\r\nprivate variable int_StringPosition;\r\nprivate variable flt_Value2;\r\nprivate variable int_ParamaterLength;\r\nprivate variable o_flt_Value;\r\nprivate variable int_CutAmount;\r\nprivate variable int_Value2;\r\nprivate variable arr_ParsedValues[];\r\n// {{ 5 \"Parse_Parameter_Multiple2\" \"InitLocals\"\r\no_bol_ParameterFound = 0;\r\no_arr_flt_Value.SetSize( 0);\r\n// }} \"\"\r\n// {{ 716 1 0 \"6ccf22d7_cb81_407c_96e2dae2b43d413f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_flt_Value.SetSize(0);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"585d1607_95a9_4720_808722816ff67691\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_bol_ParameterFound = StrReplace(i_str_ParameterFull, i_str_Parameter, i_str_Parameter);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"d68c16ef_5fa6_46ee_8e9e96d93ae69779\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ParamaterLength = StrGetLength(i_str_ParameterFull);\r\n// }} \"\"\r\n// {{ 719 1 0 \"5357d425_0ac6_43ac_8aee48d3921528d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 720 1 0 \"f56a04cc_6fb9_419e_81204c871b0b85bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_StringPosition = StrFind(i_str_ParameterFull, i_str_Parameter);\r\n// }} \"\"\r\n// {{ 721 1 0 \"458410f5_9ece_4606_930fcdf666bb508c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutAmount = int_ParamaterLength - int_StringPosition;\r\n// }} \"\"\r\n// {{{ 722 1 0 \"89d4d228_c96c_47cc_bf7dfa5b41134c90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ParseValue = StrMid(i_str_ParameterFull, int_StringPosition, int_CutAmount);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"f652d0bb_50bd_4f0d_bddd8d4c3a1b868c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_ParseValue, i_str_Parameter, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 724 1 0 \"73961fa5_d6a6_4819_bf8c7ae0a6b8279a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Parsed String:  \"), str_ParseValue);\r\n// }} \"\"\r\n// {{{ 725 1 0 \"0cf1a8bf_256b_43ce_9f3ef5c4202cc34b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narr_ParsedValues = HSLExtensions::String::Split(str_ParseValue, Translate(\" \"), BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 726 1 0 \"1f9a4023_146d_4db7_b3a692c5e86c6d3e\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParsed=arr_ParsedValues.GetSize();\r\n// }} \"\"\r\n// {{ 727 1 0 \"3510806d_f0ac_44a3_b5fc62ae59d87042\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParsed;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 728 1 0 \"d30ecb55_d8ad_4adc_b5eee5ba495d15d9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentValue=arr_ParsedValues.GetAt(i-1);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"1f8c7732_f5ee_4198_ba054e4ef13aeab5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value2 = StrIVal(str_CurrentValue);\r\n// }} \"\"\r\n// {{ 730 1 0 \"13ebc12b_e68b_49c3_a9e3382779bb6046\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Value2 = int_Value2 * i_flt_Conversion;\r\n// }} \"\"\r\n// {{ 731 1 0 \"ca4c60ac_af9d_4720_abc78e09e97a3f2b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Value = flt_Value2;\r\n// }} \"\"\r\n// {{ 732 1 0 \"b68a14b8_e026_4b50_abc9ef6f148c8b28\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_flt_Value.AddAsLast(o_flt_Value);\r\n// }} \"\"\r\n// {{ 733 1 0 \"3510806d_f0ac_44a3_b5fc62ae59d87042\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 734 1 0 \"5357d425_0ac6_43ac_8aee48d3921528d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Parse_Parameter_Multiple2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelValue\" \"Begin\"\r\nfunction GetChannelValue( variable i_int_ChannelNumber, variable & o_str_ChannelValue ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetChannelValue\" \"InitLocals\"\r\no_str_ChannelValue = 0;\r\n// }} \"\"\r\n// {{ 103 1 0 \"179d7e3d_1353_443e_b3a0d719e86190a5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"\");\r\n// }} \"\"\r\n// {{ 104 1 0 \"4e80dcbc_10d3_4313_854df78c071ff090\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 1)\r\n{\r\n// }} \"\"\r\n// {{ 105 1 0 \"be0a3834_b6b8_4498_a2b42a1bd661d26f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 106 1 0 \"4e80dcbc_10d3_4313_854df78c071ff090\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 107 1 0 \"c2bf3dbe_c377_430d_95c448a2e4e5794e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 2)\r\n{\r\n// }} \"\"\r\n// {{ 108 1 0 \"c80119e9_b680_4548_a1f62f5a3bd41011\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"2\");\r\n// }} \"\"\r\n// {{ 109 1 0 \"c2bf3dbe_c377_430d_95c448a2e4e5794e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 110 1 0 \"7f24f6c6_da14_496f_ad1d51cf2dbbcad3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 3)\r\n{\r\n// }} \"\"\r\n// {{ 111 1 0 \"0c7fee77_6693_456b_b18c8af9b6c29f64\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"3\");\r\n// }} \"\"\r\n// {{ 112 1 0 \"7f24f6c6_da14_496f_ad1d51cf2dbbcad3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 113 1 0 \"59e8e52a_db8a_4668_98ff3e0a6e3c1f41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 4)\r\n{\r\n// }} \"\"\r\n// {{ 114 1 0 \"762c0f0f_04a7_4fa5_b11179b2de6ff5aa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"4\");\r\n// }} \"\"\r\n// {{ 115 1 0 \"59e8e52a_db8a_4668_98ff3e0a6e3c1f41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 116 1 0 \"c715b2df_9372_451b_9a99dfc16dd22c06\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 5)\r\n{\r\n// }} \"\"\r\n// {{ 117 1 0 \"6ea858bd_75ac_4e54_be40cf884bd88ae6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"5\");\r\n// }} \"\"\r\n// {{ 118 1 0 \"c715b2df_9372_451b_9a99dfc16dd22c06\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 119 1 0 \"4424698e_ae5a_41d8_92dceda1991fcb94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 6)\r\n{\r\n// }} \"\"\r\n// {{ 120 1 0 \"f758eeae_2237_4086_99738573f7c4be4c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"6\");\r\n// }} \"\"\r\n// {{ 121 1 0 \"4424698e_ae5a_41d8_92dceda1991fcb94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 122 1 0 \"e0501023_abed_421f_8b1586590ec4e2cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 7)\r\n{\r\n// }} \"\"\r\n// {{ 123 1 0 \"2aed1aea_6aa1_4e0a_a64a32b247eb1577\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"7\");\r\n// }} \"\"\r\n// {{ 124 1 0 \"e0501023_abed_421f_8b1586590ec4e2cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 125 1 0 \"3326a2c1_5500_4932_aa6d0bca00f7bba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 8)\r\n{\r\n// }} \"\"\r\n// {{ 126 1 0 \"a0d8a4b4_5d70_46dc_8856a7e3baeb4c3e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"8\");\r\n// }} \"\"\r\n// {{ 127 1 0 \"3326a2c1_5500_4932_aa6d0bca00f7bba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 128 1 0 \"5add87e5_5a02_4df4_bcec24ea7b800a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 9)\r\n{\r\n// }} \"\"\r\n// {{ 129 1 0 \"6554a560_9c9f_4bb5_9c504a0e9f0d7e01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"9\");\r\n// }} \"\"\r\n// {{ 130 1 0 \"5add87e5_5a02_4df4_bcec24ea7b800a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 131 1 0 \"2f50591e_6204_4140_82ab4a84e8c21c2f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 10)\r\n{\r\n// }} \"\"\r\n// {{ 132 1 0 \"8faa1212_93fd_4df8_8c7f4ffaa5b5ec85\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"A\");\r\n// }} \"\"\r\n// {{ 133 1 0 \"2f50591e_6204_4140_82ab4a84e8c21c2f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 134 1 0 \"437b0fc2_d2e4_4e26_89f07edb3c4c076d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 11)\r\n{\r\n// }} \"\"\r\n// {{ 135 1 0 \"9867bcb6_7bb5_44c7_973d07ac47942a99\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"B\");\r\n// }} \"\"\r\n// {{ 136 1 0 \"437b0fc2_d2e4_4e26_89f07edb3c4c076d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 137 1 0 \"514a10db_25ed_4046_92259fb66af80708\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 12)\r\n{\r\n// }} \"\"\r\n// {{ 138 1 0 \"996bd828_ec70_4987_82af932526e93ae0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"C\");\r\n// }} \"\"\r\n// {{ 139 1 0 \"514a10db_25ed_4046_92259fb66af80708\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 140 1 0 \"a0cd1aa0_c453_4bf9_b90fe3b6cd30bc46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 13)\r\n{\r\n// }} \"\"\r\n// {{ 141 1 0 \"ea9ab002_a6d0_43f9_850071c39dbd9362\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"D\");\r\n// }} \"\"\r\n// {{ 142 1 0 \"a0cd1aa0_c453_4bf9_b90fe3b6cd30bc46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 143 1 0 \"820656e7_4ea2_4ee4_9ec143c59f1d8797\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 14)\r\n{\r\n// }} \"\"\r\n// {{ 144 1 0 \"4391a745_10d5_4402_b5501e8a5bc4e7e1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"E\");\r\n// }} \"\"\r\n// {{ 145 1 0 \"820656e7_4ea2_4ee4_9ec143c59f1d8797\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 146 1 0 \"3a7141fa_4f9b_4f5f_b3b58e41f955173e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 15)\r\n{\r\n// }} \"\"\r\n// {{ 147 1 0 \"bbc0fc23_e6e1_4878_80ec07b859ce4160\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"F\");\r\n// }} \"\"\r\n// {{ 148 1 0 \"3a7141fa_4f9b_4f5f_b3b58e41f955173e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 149 1 0 \"50e6a761_5f56_40a0_97df2d1fb60ef990\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber == 16)\r\n{\r\n// }} \"\"\r\n// {{ 150 1 0 \"f33eae4e_d52f_4362_b0a95bfbbf112988\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelValue = Translate(\"G\");\r\n// }} \"\"\r\n// {{ 151 1 0 \"50e6a761_5f56_40a0_97df2d1fb60ef990\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Instrument_Type\" \"Begin\"\r\nfunction Get_Instrument_Type( device & ML_STAR, variable & o_int_InstrumentType, variable & o_int_MaxAutoloadTracks ) variable {\r\n// }} \"\"\r\nprivate variable bool_ParamFound;\r\nprivate variable str_ReturnValue;\r\nprivate variable bln_VStarExists;\r\nprivate variable str_ConfigFile;\r\nprivate variable int_NumberOfTracks;\r\nprivate variable str_NumberOfTracksAutoload;\r\nprivate variable ret_int_FirmwareType;\r\nprivate variable str_ConfigFolderPath;\r\nprivate variable str_NumberOfTracks;\r\n// {{ 5 \"Get_Instrument_Type\" \"InitLocals\"\r\no_int_InstrumentType = 0;\r\no_int_MaxAutoloadTracks = 0;\r\n// }} \"\"\r\n// {{ 599 1 0 \"74fab7fb_3a06_4843_8589f6872c77ec20\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_int_FirmwareType = 0;\r\n// }} \"\"\r\n// {{ 600 1 0 \"3464f9d4_92b6_4e79_8f8d0a3ca493e74e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_InstrumentType = -1;\r\n// }} \"\"\r\n// {{{ 601 1 0 \"6d0c1d44_2717_48b6_9b485855bee33ead\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ConfigFolderPath = FilGetConfigPath();\r\n// }} \"\"\r\n// {{{ 602 1 0 \"f15c5cb7_7273_4814_99b04dd7adb2dc01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ConfigFile = StrConcat4(str_ConfigFolderPath, Translate(\"\\\\\"), Translate(\"VStar.cfg\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 603 1 0 \"8d64b165_baeb_4c62_918395d18e319004\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_VStarExists = HSLExtensions::File::Exists(str_ConfigFile);\r\n// }} \"\"\r\n// {{ 604 1 0 \"5daf3ee0_0983_490b_9ffd5e49dc7fece4\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"5daf3ee0_0983_490b_9ffd5e49dc7fece4\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 605 1 0 \"f819c425_d591_4167_a80aa4b45feb8dd8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"xt\"), 1.0, 2, bool_ParamFound, int_NumberOfTracks);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"4823ca95_aefc_4410_b4cdc6096e269554\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"xa\"), 1.0, 2, bool_ParamFound, o_int_MaxAutoloadTracks);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 607 1 0 \"3f2d736f_7758_46d8_9ed51bcb7817cf4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumberOfTracks = StrIVal(str_NumberOfTracks);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"78b241e7_f6d8_4d7d_a05618ec723fd983\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_int_MaxAutoloadTracks = StrIVal(str_NumberOfTracksAutoload);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 609 1 0 \"c81ca76e_ff9b_45ef_95e8b0ae68170906\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_VStarExists == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 610 1 0 \"0f2869f6_2eae_421e_aa2b822b4c46c1a9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_int_FirmwareType = 1;\r\n// }} \"\"\r\n// {{ 611 1 0 \"b38a6d77_9b3f_4385_83b0db9c83af29b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumberOfTracks == 30)\r\n{\r\n// }} \"\"\r\n// {{ 612 1 0 \"d0a7cdf6_0636_47c1_88fba7124f56ec2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_InstrumentType = 1;\r\n// }} \"\"\r\n// {{ 613 1 0 \"b38a6d77_9b3f_4385_83b0db9c83af29b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 614 1 0 \"6e020a1d_a577_4a04_87b1a2c657d5194d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumberOfTracks == 54)\r\n{\r\n// }} \"\"\r\n// {{ 615 1 0 \"80c8539c_0db5_461b_8a3beba4329486ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_InstrumentType = 0;\r\n// }} \"\"\r\n// {{ 616 1 0 \"6e020a1d_a577_4a04_87b1a2c657d5194d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 617 1 0 \"8c11609d_b82e_46a4_9dc0f9f9cd8b07dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumberOfTracks == 76)\r\n{\r\n// }} \"\"\r\n// {{ 618 1 0 \"ccdb57cb_651f_4071_9c5e73cdf7d33a20\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_InstrumentType = 2;\r\n// }} \"\"\r\n// {{ 619 1 0 \"8c11609d_b82e_46a4_9dc0f9f9cd8b07dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 620 1 0 \"c81ca76e_ff9b_45ef_95e8b0ae68170906\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 621 1 0 \"cc21fe6f_51b6_4b04_b3344fb8374f6d4a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_int_FirmwareType = 2;\r\n// }} \"\"\r\n// {{ 622 1 0 \"ed8f03f2_0a8e_42c9_b1fc2f7d259e2aaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumberOfTracks == 54)\r\n{\r\n// }} \"\"\r\n// {{ 623 1 0 \"2b04a8bb_0373_475d_876ac61f8bf2cf9e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_InstrumentType = 4;\r\n// }} \"\"\r\n// {{ 624 1 0 \"ed8f03f2_0a8e_42c9_b1fc2f7d259e2aaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 625 1 0 \"4a674b73_a364_43eb_a13b534503475375\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumberOfTracks == 84)\r\n{\r\n// }} \"\"\r\n// {{ 626 1 0 \"d807aabc_1919_424c_b375f2f93647ad4c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_InstrumentType = 3;\r\n// }} \"\"\r\n// {{ 627 1 0 \"4a674b73_a364_43eb_a13b534503475375\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 628 1 0 \"c81ca76e_ff9b_45ef_95e8b0ae68170906\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 629 1 0 \"40d87acc_04a2_4e4d_8cabba33e01168df\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_int_FirmwareType);\r\n// }} \"\"\r\n// {{{ 5 \"Get_Instrument_Type\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"InitFunction\" \"Begin\"\r\nfunction InitFunction( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable int_NotUsed;\r\nprivate variable flt_NotUsed;\r\n// {{ 5 \"InitFunction\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 667 1 0 \"4e735e5a_f61f_425a_8112bf018dc429c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_LibraryInitialized == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 668 1 0 \"f81a8c3c_ceab_45a9_8a6bfccc5ccc2e4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nG_FW_PIP_COM_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 669 1 0 \"8264ce0e_2d21_4083_ae840753174c299d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nG_FW_PIP_COM_FirmwareType = Get_Instrument_Type(ML_STAR, G_FW_PIP_COM_InstrumentType, int_NotUsed);\r\n// }} \"\"\r\n// {{ 670 1 0 \"d8cd10d5_b750_4de0_bcf80cf962a4dbf3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nG_FW_PIP_COM_LibraryInitialized = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 671 1 0 \"79d25dba_6399_4711_8b7afe64766d26a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 672 1 0 \"3e07d9e0_afad_4bbb_898f4a856ac8f5ca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet_X_Ranges_STAR(ML_STAR, G_FW_PIP_COM_XArmMin, G_FW_PIP_COM_XArmMax, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 673 1 0 \"79d25dba_6399_4711_8b7afe64766d26a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 674 1 0 \"79d25dba_6399_4711_8b7afe64766d26a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 675 1 0 \"5472f7b7_03e6_4048_9e3ef41b13425311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nG_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);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"64b40169_a768_494e_b3788842990b3da0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nG_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);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"d78d710c_147c_467b_86b82e101cec157d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nG_FW_PIP_COM_MPH_Exist = DevGetCfgValueWithKey(ML_STAR, 24);\r\n// }} \"\"\r\n// {{ 678 1 0 \"4e735e5a_f61f_425a_8112bf018dc429c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"InitFunction\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SetParametersAll\" \"Begin\"\r\nfunction SetParametersAll( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void {\r\n// }} \"\"\r\nprivate variable flt_Value;\r\nprivate variable int_Value;\r\n// {{ 5 \"SetParametersAll\" \"InitLocals\"\r\no_strParameter = 0;\r\n// }} \"\"\r\n// {{ 808 1 0 \"d3686f9c_3ace_48ea_8273b55e4fee3681\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_strParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 809 1 0 \"2489ac49_0b12_4c0b_a2ac084aa08dd625\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strParameter = StrConcat2(i_strParameterName, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 810 1 0 \"656d2a7f_f1b7_473f_869be3d9422e492c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Value = i_fltValue * i_fltConversionValue;\r\n// }} \"\"\r\n// {{{ 811 1 0 \"0d61f3be_1bee_48a8_a8e3b32576454e15\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = MthRound(flt_Value, 0);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"cafe536b_25f6_4a5b_be77b6509e6b5b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(int_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 813 1 0 \"647aaa68_be7e_4399_9e2c14dac9858397\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrFillLeft(int_Value, Translate(\"0\"), i_intTotalDigits);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"787bd66a_a4ae_4d83_8f809696eae5fdbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strParameter = StrConcat2(o_strParameter, int_Value);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"4762a3be_9493_41f9_936f26bb1042ba1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strParameter = StrConcat2(o_strParameter, Translate(\"&\"));\r\n// }} \"\"\r\n// {{{ 5 \"SetParametersAll\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SetParametersArr\" \"Begin\"\r\nfunction SetParametersArr( variable i_strParameterName, variable & i_arrValues[], variable i_fltConversionValue, variable i_intTotalDigits, variable i_intTotalChannels, variable & o_strParameter ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable flt_Value;\r\nprivate variable int_Value;\r\n// {{ 5 \"SetParametersArr\" \"InitLocals\"\r\no_strParameter = 0;\r\n// }} \"\"\r\n// {{ 817 1 0 \"44538aa3_fe28_47e1_a81e9da49e89fb35\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_strParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 818 1 0 \"2e82fd94_4629_47b1_a67b6904cbece464\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strParameter = StrConcat2(i_strParameterName, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 819 1 0 \"c07c4fcb_57bf_41a4_8d5731d31ba45850\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < i_intTotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 820 1 0 \"b68d51a3_d0e5_4dbe_a2b38b67c866a9c7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Value = i_arrValues.ElementAt( i -1) * i_fltConversionValue;\r\n// }} \"\"\r\n// {{{ 821 1 0 \"208ef254_d7b3_4b6f_8554caa909907d7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = MthRound(flt_Value, 0);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"37c59107_05d8_4def_9885450df5be93d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(int_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 823 1 0 \"7cce36f3_dad0_4e40_bf823d55bdba1ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrFillLeft(int_Value, Translate(\"0\"), i_intTotalDigits);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"bbbf28b5_2c05_47b7_991edcf442eae82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strParameter = StrConcat2(o_strParameter, int_Value);\r\n// }} \"\"\r\n// {{ 825 1 0 \"098df4af_db5d_4037_93ca3fb47abd70ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i != i_intTotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 826 1 0 \"0d9b9172_46d0_47de_b4974db015067735\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strParameter = StrConcat2(o_strParameter, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 827 1 0 \"098df4af_db5d_4037_93ca3fb47abd70ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 828 1 0 \"c07c4fcb_57bf_41a4_8d5731d31ba45850\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SetParametersArr\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_X_Ranges_STAR\" \"Begin\"\r\nfunction Get_X_Ranges_STAR( device & ML_STAR, variable & o_flt_LeftXMin, variable & o_flt_LeftXMax, variable & o_flt_RightXMin, variable & o_flt_RightXMax ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParamFound;\r\nprivate variable i;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable bol_SimulationMode;\r\nprivate variable int_Count;\r\nprivate variable int_Values;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_X_Ranges_STAR\" \"InitLocals\"\r\no_flt_LeftXMin = 0;\r\no_flt_LeftXMax = 0;\r\no_flt_RightXMin = 0;\r\no_flt_RightXMax = 0;\r\n// }} \"\"\r\n// {{ 631 1 0 \"f408350f_6d96_4cc5_9095f4d4873c0703\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LeftXMax = 0.0;\r\n// }} \"\"\r\n// {{ 632 1 0 \"c92c76f9_d757_40d6_97b5172f1175cfee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LeftXMin = 0.0;\r\n// }} \"\"\r\n// {{ 633 1 0 \"2a0635cc_f7be_456d_8831d376e6e21e25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RightXMax = 0.0;\r\n// }} \"\"\r\n// {{ 634 1 0 \"ce200a08_0453_43f4_9236c8decaaaa422\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RightXMin = 0.0;\r\n// }} \"\"\r\n// {{ 635 1 0 \"6a290605_e8fa_40a0_90dc3019d12f68f5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"533f79f3_4adc_466f_baa638e4a4ecffca\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 638 1 0 \"1172d0cb_ced3_42bd_9c477082b09a5cb9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 639 1 0 \"7e80c2fb_57f1_4974_8ef7e4bbd0fcd248\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 640 1 0 \"959509ed_116d_44dc_a58cb3308284ecd1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 641 1 0 \"4573e745_b31c_4610_bb3e69094b89912d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 642 1 0 \"c95d221f_d3f8_49ff_aba12dd9dc25dc78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 643 1 0 \"c547da47_6d9b_4496_b092949de1259eaa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 644 1 0 \"6a290605_e8fa_40a0_90dc3019d12f68f5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 645 1 0 \"dd702032_04bc_4af3_a8b71ae22c7be37b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbol_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 646 1 0 \"471906b0_5532_4571_bdb92f02e4b6fb53\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"471906b0_5532_4571_bdb92f02e4b6fb53\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 647 1 0 \"f92d1874_244b_4b4f_aac9e1b108744c37\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCheckForError(strFunctionName, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"9e92fba3_c4a3_4c5e_a4fba6d4d66bed7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nParse_Parameter_Multiple(str_ReturnValue, Translate(\"ru\"), 0.1, 5, 4, bol_ParamFound, arr_Values);\r\n// }} \"\"\r\n// {{ 649 1 0 \"bad278cc_5a41_4f33_9be6d8642c981041\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParamFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 650 1 0 \"3e5d1646_a3bc_4d62_879dc27b19f5d167\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_Values=arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 651 1 0 \"a04f6e81_9126_4cdd_a5bc37d02d0b92a3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_Values;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 652 1 0 \"43050eba_bb72_4415_96bafb7cb1933e90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 1)\r\n{\r\n// }} \"\"\r\n// {{ 653 1 0 \"92be56ed_a0b0_4d5e_949aa1a1c2e174c6\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_flt_LeftXMin=arr_Values.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 654 1 0 \"43050eba_bb72_4415_96bafb7cb1933e90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 655 1 0 \"0c6aedc5_08e9_4369_bf11f8bd72a19ca1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 2)\r\n{\r\n// }} \"\"\r\n// {{ 656 1 0 \"d158e06b_49ca_4c46_a49aafab944e2a00\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_flt_LeftXMax=arr_Values.GetAt(2-1);\r\n// }} \"\"\r\n// {{ 657 1 0 \"0c6aedc5_08e9_4369_bf11f8bd72a19ca1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 658 1 0 \"939c746d_1a14_4ff4_8fc21c21e854efdf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 3)\r\n{\r\n// }} \"\"\r\n// {{ 659 1 0 \"662411cb_9f19_4560_8901179d8a107b62\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_flt_RightXMin=arr_Values.GetAt(3-1);\r\n// }} \"\"\r\n// {{ 660 1 0 \"939c746d_1a14_4ff4_8fc21c21e854efdf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 661 1 0 \"cb47b998_2538_4204_a7334c02584a2686\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 4)\r\n{\r\n// }} \"\"\r\n// {{ 662 1 0 \"c37e9424_7af6_40c8_9ef8a8068f194fc8\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_flt_RightXMax=arr_Values.GetAt(4-1);\r\n// }} \"\"\r\n// {{ 663 1 0 \"cb47b998_2538_4204_a7334c02584a2686\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 664 1 0 \"a04f6e81_9126_4cdd_a5bc37d02d0b92a3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 665 1 0 \"bad278cc_5a41_4f33_9be6d8642c981041\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_X_Ranges_STAR\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=user$$valid=0$$time=2020-10-23 13:02$$checksum=a5ed95c5$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Firmware Pipetting Commands.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 7/29/2021 11:19:22 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace FIRMWARE_PIPETTING_COMMANDS {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction GetChannelNumber1mL( device & ML_STAR, variable & o_int_ChannelCount ) void { }\r\nfunction GetChannelNumber5mL( device & ML_STAR, variable & o_int_ChannelCount ) void { }\r\nfunction GetChannelPatternWithTips( device & ML_STAR, variable i_bln_1mL, variable & o_str_ChannelPattern ) void { }\r\nfunction GetChannelRaster1mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void { }\r\nfunction GetChannelRaster5mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void { }\r\nfunction GetChannelXCoordinate( device & ML_STAR, variable & o_flt_CurrentXCoord ) void { }\r\nfunction GetChannelYCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_YCoords[] ) void { }\r\nfunction GetChannelZCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void { }\r\nfunction GetChannelZCoordinatesLastLLD( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void { }\r\nfunction GetMPHExist( device & ML_STAR, variable & o_int_MPHExists ) void { }\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { }\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction MPH96GetCoordinates( device & ML_STAR, variable & o_flt_CurrentXCoord, variable & o_flt_CurrentYCoord, variable & o_flt_CurrentZCoord ) void { }\r\nfunction MPH96GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2021-07-29 11:19$$checksum=d2f0cb19$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Firmware Pipetting Commands.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n#include \"HSL_MethodHelper.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\FW_HelperLibrary.hs_\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace FIRMWARE_PIPETTING_COMMANDS {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction GetChannelNumber1mL( device & ML_STAR, variable & o_int_ChannelCount ) void ;\r\nfunction GetChannelNumber5mL( device & ML_STAR, variable & o_int_ChannelCount ) void ;\r\nfunction GetChannelPatternWithTips( device & ML_STAR, variable i_bln_1mL, variable & o_str_ChannelPattern ) void ;\r\nfunction GetChannelRaster1mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void ;\r\nfunction GetChannelRaster5mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void ;\r\nfunction GetChannelXCoordinate( device & ML_STAR, variable & o_flt_CurrentXCoord ) void ;\r\nfunction GetChannelYCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_YCoords[] ) void ;\r\nfunction GetChannelZCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void ;\r\nfunction GetChannelZCoordinatesLastLLD( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void ;\r\nfunction GetMPHExist( device & ML_STAR, variable & o_int_MPHExists ) void ;\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ;\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction MPH96GetCoordinates( device & ML_STAR, variable & o_flt_CurrentXCoord, variable & o_flt_CurrentYCoord, variable & o_flt_CurrentZCoord ) void ;\r\nfunction MPH96GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nHELPERLIBRARY::_InitLibrary();\r\nFW_HELPERLIBRARY::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nHELPERLIBRARY::_ExitLibrary();\r\nFW_HELPERLIBRARY::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"GetChannelXCoordinate\" \"Begin\"\r\nfunction GetChannelXCoordinate( device & ML_STAR, variable & o_flt_CurrentXCoord ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_ReturnValue;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable bln_ParamFound;\r\nprivate variable str_Value;\r\nprivate variable int_Value;\r\nprivate variable flt_Value;\r\n// {{ 5 \"GetChannelXCoordinate\" \"InitLocals\"\r\no_flt_CurrentXCoord = 0;\r\n// }} \"\"\r\n// {{{ 62 1 0 \"8f507e5f_1916_47c6_827cc3b6512a8924\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 63 1 0 \"d5d9631c_2685_4b99_9c55ef54b81a7e1a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentXCoord = 0.0;\r\n// }} \"\"\r\n// {{ 64 1 0 \"ef2cf56a_9705_4ac8_b11334487fbc73e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 65 1 0 \"5e4a0ce0_3e2d_4ce2_b8b8bcd8962fb200\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 67 1 0 \"08de56e3_a090_4f80_9372865a19a49b20\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 68 1 0 \"9ff994eb_2377_405c_a3d4cd541929e261\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 69 1 0 \"e7ed4376_efb0_48f9_993a21d94f9a35d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 70 1 0 \"07d6ff75_3203_4763_9b69679d806609fb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 71 1 0 \"ab33da02_8ef1_477d_a24ae51eef4bf47e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 72 1 0 \"8c5da471_9017_4f47_84f805e4ccf46cf3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 73 1 0 \"ef2cf56a_9705_4ac8_b11334487fbc73e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 74 1 0 \"b1625b2e_13f9_4b63_ab99b6a5f8f18635\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 75 1 0 \"b3962518_52c7_4a35_abecc16974456838\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 76 1 0 \"f3b30415_6852_499c_b13b04cf38dca36f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 77 1 0 \"3f0a26c8_9a83_4054_beee9535b636d8c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RX\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 78 1 0 \"c80bb90d_5daa_4e68_8868e8212bcbdfd5\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c80bb90d_5daa_4e68_8868e8212bcbdfd5\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 79 1 0 \"f3b30415_6852_499c_b13b04cf38dca36f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 80 1 0 \"db2e9f58_d2d9_4625_a993c5589de6a641\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1XMRX\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 81 1 0 \"9f482c66_8601_448c_88839d367c7c1de5\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"9f482c66_8601_448c_88839d367c7c1de5\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 82 1 0 \"f3b30415_6852_499c_b13b04cf38dca36f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"af46d51f_f752_4c92_be7c4a726441a7a6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"3121dd51_58a3_464c_9d9be6ba5e82750a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rx\"), 0.1, 5, bln_ParamFound, flt_Value);\r\n// }} \"\"\r\n// {{ 85 1 0 \"b3962518_52c7_4a35_abecc16974456838\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 86 1 0 \"50ea72b7_a8dc_4399_838709db849334b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ParamFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 87 1 0 \"b3962518_52c7_4a35_abecc16974456838\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 88 1 0 \"17a22148_349e_4c0b_99bb785396fa8e85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ParamFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 89 1 0 \"8e704eab_b3f9_4106_af0c685801c27945\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 90 1 0 \"08ffbef2_bf8f_45ee_b088060b1b18ba36\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentXCoord = int_Value / (10.0 * 1.0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 91 1 0 \"0163ba20_b1a0_4f9b_8eedd9b74e28aba8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentXCoord = flt_Value;\r\n// }} \"\"\r\n// {{ 92 1 0 \"17a22148_349e_4c0b_99bb785396fa8e85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelXCoordinate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelYCoordinates\" \"Begin\"\r\nfunction GetChannelYCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_YCoords[] ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable str_ReturnValue;\r\nprivate variable arr_Values[];\r\nprivate variable bln_ParamFound;\r\nprivate variable str_ParamSearch;\r\n// {{ 5 \"GetChannelYCoordinates\" \"InitLocals\"\r\no_arr_YCoords.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"41df05de_9ddc_454d_a19d6a04ccca9245\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 95 1 0 \"1739b86a_4cde_4941_a56eb73738839c6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_YCoords.SetSize(G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 96 1 0 \"4e682004_e348_4565_b1beda6b7c26f778\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"5888d632_e9f1_44db_b1b3b4dcb4b7fed7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 99 1 0 \"afb1181a_fc75_425e_8df3513d6203c57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 100 1 0 \"ac21991a_7444_4b00_ba3889250f7ddd7e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 101 1 0 \"86f86123_71af_4616_bff2b0deab644888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 102 1 0 \"cf66b8c3_3a63_438d_ab42e71015735257\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 103 1 0 \"44020009_12a3_4681_b0bc1fbfa359b3ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 104 1 0 \"5b907a36_3d93_45ab_85e021c5279c113a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 105 1 0 \"4e682004_e348_4565_b1beda6b7c26f778\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 106 1 0 \"df74fee0_989e_405b_bafcb181730f3d40\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 107 1 0 \"a7756d77_187f_4d60_86f4c3caefd027b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 108 1 0 \"c8168305_eb6b_4f5c_8a7e55bd1f9da250\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 109 1 0 \"3083bd22_aad7_4201_a89d85402b06bf49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 110 1 0 \"b86505df_48e1_4643_b7d4c9502ba13e72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RY\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 111 1 0 \"d740a4b8_cdcb_4ba6_94f4b96a91b932d3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"ry\");\r\n// }} \"\"\r\n// {{ 112 1 0 \"3083bd22_aad7_4201_a89d85402b06bf49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 113 1 0 \"7a67a8d0_d85b_4216_89973a7987f2429f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0UY\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 114 1 0 \"6ea23281_df87_4753_934148d2bad462c7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"uy\");\r\n// }} \"\"\r\n// {{ 115 1 0 \"3083bd22_aad7_4201_a89d85402b06bf49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 116 1 0 \"b08419f1_d948_436b_92d93bfaf58c68c6\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b08419f1_d948_436b_92d93bfaf58c68c6\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 117 1 0 \"c8168305_eb6b_4f5c_8a7e55bd1f9da250\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 118 1 0 \"9a63c702_5f18_4969_a6732da660771aa3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 119 1 0 \"5f9cadcd_0af6_435e_8bf2f0d92b1322e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1PMRY\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 120 1 0 \"c96504fd_ef2a_4983_86474e3e7075774e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"ry\");\r\n// }} \"\"\r\n// {{ 121 1 0 \"9a63c702_5f18_4969_a6732da660771aa3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 122 1 0 \"acf6f87c_45a1_44f5_b72421ec9f298def\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1LMRY\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 123 1 0 \"77c03808_fb3c_4f3e_a1bf13e0811e7d31\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"ry\");\r\n// }} \"\"\r\n// {{ 124 1 0 \"9a63c702_5f18_4969_a6732da660771aa3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 125 1 0 \"1b0b77df_aa51_4e2c_9325e8ae31da084c\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"1b0b77df_aa51_4e2c_9325e8ae31da084c\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 126 1 0 \"c8168305_eb6b_4f5c_8a7e55bd1f9da250\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 127 1 0 \"90067c8f_79cc_4450_b9b58a8e032a313d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 128 1 0 \"2a6dd63e_48ca_426c_adcc3ac2f28561ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, str_ParamSearch, 0.1, bln_ParamFound, arr_Values);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 129 1 0 \"c58eaf5d_b27f_4b92_b35c66b68862569d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, str_ParamSearch, 0.1, 5, G_FW_PIP_COM_TotalChannels, bln_ParamFound, arr_Values);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 130 1 0 \"a7756d77_187f_4d60_86f4c3caefd027b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 131 1 0 \"259084b8_e705_4c64_ae4e4dba82774a22\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ParamFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 132 1 0 \"a7756d77_187f_4d60_86f4c3caefd027b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 133 1 0 \"7c853cd6_bde0_4e16_a9d5a0a7f41f6860\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ParamFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 134 1 0 \"af12afd2_0c6b_4dfd_929dc0265e5e5bd4\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_arr_YCoords=arr_Values;\r\n// }} \"\"\r\n// {{ 135 1 0 \"7c853cd6_bde0_4e16_a9d5a0a7f41f6860\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelYCoordinates\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelZCoordinates\" \"Begin\"\r\nfunction GetChannelZCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable str_ParamSearch;\r\nprivate variable int_Count;\r\nprivate variable bln_ParamFound;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"GetChannelZCoordinates\" \"InitLocals\"\r\no_arr_ZCoords.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"4c83b6a5_e738_460d_8763a9e3bb869d05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 138 1 0 \"460d5a74_12b6_40ef_a6a3ccea24bd965f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_ZCoords.SetSize(G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 139 1 0 \"13221000_0e35_4b53_903b80bf65c7719e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 140 1 0 \"0786c7d1_ca60_4852_91849e2dc9d740ff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 142 1 0 \"e1eff49b_8d74_4e6f_b85ed7d2c73c046f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 143 1 0 \"0dc9dc10_b581_4ab7_8c63aff95fcba782\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 144 1 0 \"57ef6ba8_b164_4a6d_98c5fa0485a2987d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 145 1 0 \"e8fa64ab_90a4_4039_8a2340476dacb720\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 146 1 0 \"42e69ac0_c5f8_45a5_bf52acada41146ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 147 1 0 \"043432d4_2641_4394_9c57eb66d578bf46\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 148 1 0 \"13221000_0e35_4b53_903b80bf65c7719e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 149 1 0 \"d6ec1471_2375_456a_b47caa14e238436a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 150 1 0 \"76141cd6_3d5d_4e2a_a028edb89d7e59e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e7b96b44_3f3e_4a83_a634ccf1b4c0819f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 152 1 0 \"83ab1d51_1b00_41ac_8ae0a485d686bb0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"4f51cd37_a7a4_4012_936c62438e5a54c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RZ\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 154 1 0 \"20e5ae7a_17ab_4a99_999dd9c3cf912dd3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"rz\");\r\n// }} \"\"\r\n// {{ 155 1 0 \"83ab1d51_1b00_41ac_8ae0a485d686bb0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 156 1 0 \"a9371bb1_ccac_4ebd_80747804ebe498f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0UZ\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 157 1 0 \"985ee16c_246b_4867_ac0e779b31c4e43c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"uz\");\r\n// }} \"\"\r\n// {{ 158 1 0 \"83ab1d51_1b00_41ac_8ae0a485d686bb0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 159 1 0 \"72e4a698_f7b5_4765_9698d5a51a8231eb\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"72e4a698_f7b5_4765_9698d5a51a8231eb\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 160 1 0 \"e7b96b44_3f3e_4a83_a634ccf1b4c0819f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 161 1 0 \"9be00fb2_761c_4703_b81d24d50355b796\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 162 1 0 \"99fd6152_c2cc_47a0_b7257dafbf0852ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1PMRZ\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 163 1 0 \"9f078fc7_ae52_4d32_9371f4e178d98577\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"rz\");\r\n// }} \"\"\r\n// {{ 164 1 0 \"9be00fb2_761c_4703_b81d24d50355b796\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 165 1 0 \"5eb8502c_bc95_43f4_9df4fb49ffa10ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1LMRZ\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 166 1 0 \"56c93e64_187a_4882_b4f69155b3030ad8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"rz\");\r\n// }} \"\"\r\n// {{ 167 1 0 \"9be00fb2_761c_4703_b81d24d50355b796\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 168 1 0 \"31f75aaa_7878_4854_9ac0409a97187e14\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"31f75aaa_7878_4854_9ac0409a97187e14\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 169 1 0 \"e7b96b44_3f3e_4a83_a634ccf1b4c0819f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 170 1 0 \"cd3684f6_3dc2_4a52_aa299268de64bfee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 171 1 0 \"5d378cd5_237f_4c06_9917c29da9942f22\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, str_ParamSearch, 0.1, 5, G_FW_PIP_COM_TotalChannels, bln_ParamFound, arr_Values);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 172 1 0 \"5a3d93af_4d25_4365_a6f0e5c55af040c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, str_ParamSearch, 0.1, bln_ParamFound, arr_Values);\r\n// }} \"\"\r\n// {{ 173 1 0 \"76141cd6_3d5d_4e2a_a028edb89d7e59e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 174 1 0 \"7e6dfded_e010_463f_a7a02be4e30fb05e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ParamFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 175 1 0 \"76141cd6_3d5d_4e2a_a028edb89d7e59e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 176 1 0 \"97031d52_9f4d_48a5_a1ad549eb92a29fe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ParamFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 177 1 0 \"7600e984_f6fd_4090_bc8a35a328fe09da\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_arr_ZCoords=arr_Values;\r\n// }} \"\"\r\n// {{ 178 1 0 \"97031d52_9f4d_48a5_a1ad549eb92a29fe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelZCoordinates\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPFindLiquidLevel\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable arr_Params[];\r\nprivate variable str_Value;\r\nprivate variable str_ChPattern;\r\nprivate variable i;\r\nprivate variable str_ChannelValue;\r\nprivate variable int_Value;\r\nprivate variable int_TotalParams;\r\nprivate variable str_Params;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable str_ReturnValue;\r\nprivate variable arr_ZCoords[];\r\nprivate variable int_ChannelValue;\r\n// {{ 5 \"PIPFindLiquidLevel\" \"InitLocals\"\r\no_arr_LiquidHeights.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"4354f773_c318_400b_b64089fd3411f21f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1502 1 0 \"7876417f_1dac_43bf_9f02c44fa9d6e44f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_LiquidHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1503 1 0 \"b40662c4_083a_414d_9f92d873fa623e5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1504 1 0 \"c99c0460_3c49_4811_963cabefd583e64a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1506 1 0 \"58ce4cd7_3149_4c06_9f2d133d11e1ada0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1507 1 0 \"9714c1bc_f022_49b4_86e3d1f84b5b6a17\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"50bc6d21_6c46_4612_92070e383ae42437\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1509 1 0 \"2bbf60fe_d970_460f_be80bbbef6b1d4c0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1510 1 0 \"b53086ed_7fa3_47ca_b15ddf3512903b44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 1511 1 0 \"7c08c7a8_1340_4362_8032a6abb498e1bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 1512 1 0 \"b40662c4_083a_414d_9f92d873fa623e5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1513 1 0 \"c40d4eba_b361_4425_b51254dadd84e956\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 1514 1 0 \"ff9aad09_1b2d_45c5_a71183f04c8400ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0AS\");\r\n// }} \"\"\r\n// {{ 1515 1 0 \"1cb49e05_f33a_48d8_8b2dfc4b42d0ef0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"88b56053_4574_4692_981c7965ddaacfaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"at\"), Translate(\"2&\"));\r\n// }} \"\"\r\n// {{ 1517 1 0 \"d19d526d_e453_49ba_8eece4878b495b2e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1518 1 0 \"1cb49e05_f33a_48d8_8b2dfc4b42d0ef0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1519 1 0 \"eff4cdf7_5f0b_43ef_b9f62aba1731bd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1520 1 0 \"6b079eea_14c9_4672_ac3407051b0d50c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1521 1 0 \"d3058af6_84dc_40a5_b623b6bcd861a685\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillRight(str_ChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 1522 1 0 \"07b1ac92_7918_4def_9179ae9d5e257f7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Value = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 1523 1 0 \"913c6494_053e_4e30_8795ea23b1d0ecc4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"8668938b_e59a_42f6_8d2f779b304a6804\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrLeft(str_ChPattern, i);\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"1633c8a4_74e1_4bf6_ba378115699cba35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrRight(str_ChannelValue, 1);\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"54a8aadb_9a02_4b28_8b581d5bf44e95fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, str_ChannelValue);\r\n// }} \"\"\r\n// {{ 1527 1 0 \"b1d83f94_6c6f_4c3a_be201e81c4ad7098\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i < G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 1528 1 0 \"5b1264e0_a901_47c1_b927e5c1c9f346e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 1529 1 0 \"b1d83f94_6c6f_4c3a_be201e81c4ad7098\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1530 1 0 \"913c6494_053e_4e30_8795ea23b1d0ecc4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1531 1 0 \"e6f85175_a103_49fb_858953b2a8547812\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1532 1 0 \"eff4cdf7_5f0b_43ef_b9f62aba1731bd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1533 1 0 \"4f165fbd_c357_4471_9889488d73511923\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"574813b7_39e8_40b8_9e8360ec0e531402\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"xp\"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1535 1 0 \"3b3ebc07_17d2_4500_91ffcd125605890a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1536 1 0 \"4f165fbd_c357_4471_9889488d73511923\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1537 1 0 \"d81e8a82_298c_4d4e_838c1fdb0f78861b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1538 1 0 \"d7d3152d_ded1_4c62_bfaaa39460219117\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"yp\"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1539 1 0 \"2f06a137_b38a_4079_b13379e253d33098\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1540 1 0 \"d81e8a82_298c_4d4e_838c1fdb0f78861b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1541 1 0 \"72399163_303f_4fe8_92257e01899f880d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1542 1 0 \"1f704208_0949_4d7a_94be09626590b496\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"th\"), i_flt_StartTraverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1543 1 0 \"e0cc888c_e560_4419_a761ca4a2a59020a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1544 1 0 \"72399163_303f_4fe8_92257e01899f880d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1545 1 0 \"18f12a50_9cb8_4eb1_bb114b34559b18cd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"6e633031_69fb_4e6a_82564e2856977ded\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"te\"), i_flt_EndTranverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1547 1 0 \"490c40e5_22dd_439d_8ba7261a5968b0fc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1548 1 0 \"18f12a50_9cb8_4eb1_bb114b34559b18cd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1549 1 0 \"618c9371_82a3_4ec5_89f71887a517d33d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1550 1 0 \"acfe27aa_784a_4c27_a6f8916fd0dc12e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"lp\"), i_flt_LiquidSearchHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1551 1 0 \"5de76943_e738_4502_8a71d3c64f0b1976\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1552 1 0 \"618c9371_82a3_4ec5_89f71887a517d33d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1553 1 0 \"810ec877_0465_44fd_a1aebfbab0b6f2ed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"9baedf98_0b03_4679_98773b8d6cc86507\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"zl\"), 245.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1555 1 0 \"44566210_fb1e_4745_a5e8e58e31214547\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1556 1 0 \"810ec877_0465_44fd_a1aebfbab0b6f2ed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1557 1 0 \"6cf019ea_7589_4bb8_ae8a37f068c00fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"b4b3a09a_b63f_4831_9ef29dee53dc669f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"po\"), 5.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1559 1 0 \"50d59b68_3669_4911_8fc869ea268142fb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1560 1 0 \"6cf019ea_7589_4bb8_ae8a37f068c00fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1561 1 0 \"de9e0fcc_2da5_4fb4_83dae5dfbf262ef5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"0785d231_a06d_413f_b7476259938240d4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"zx\"), i_flt_MinimumHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1563 1 0 \"b6754b18_7737_4356_b5017fcad01d96cb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1564 1 0 \"de9e0fcc_2da5_4fb4_83dae5dfbf262ef5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1565 1 0 \"f351d0bc_9e65_4e5b_a92c7da423ebebfe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1566 1 0 \"e039f855_149b_4f2e_b23b327b41aa8a04\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ip\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1567 1 0 \"182bd253_8413_4310_98ee672a4d07c400\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1568 1 0 \"f351d0bc_9e65_4e5b_a92c7da423ebebfe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1569 1 0 \"d1f09708_6c2a_48cb_97b4bd3ae309236b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"e10a48e7_6795_4b97_a13ef13e8c0a7cde\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"fp\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1571 1 0 \"57ff5d8e_0510_4eaf_b8bc364552be61a9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1572 1 0 \"d1f09708_6c2a_48cb_97b4bd3ae309236b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1573 1 0 \"14607d16_2724_45c9_9f64dfcdabc75de4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1574 1 0 \"975ec0d9_5257_4ccf_b1546ac0fb48e124\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"av\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 1575 1 0 \"ec0d24b9_319c_4628_953ab7c1816232f1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1576 1 0 \"14607d16_2724_45c9_9f64dfcdabc75de4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1577 1 0 \"d3e7d061_50ee_4428_aaabfb4f3157edc6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"22653b99_ea79_4e52_89fe4f937c9e68c0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"as\"), 10.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1579 1 0 \"a1ef6669_c729_48c1_bc5a4d2bada08757\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1580 1 0 \"d3e7d061_50ee_4428_aaabfb4f3157edc6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1581 1 0 \"d8806d13_92cc_499e_b6b11c54a6e8f8d6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1582 1 0 \"72fedd17_3c3b_4aeb_bc3b228d98fd47dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ta\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1583 1 0 \"c1bfd998_a217_4ab9_945b26c954605252\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1584 1 0 \"d8806d13_92cc_499e_b6b11c54a6e8f8d6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1585 1 0 \"6ac88acb_a675_4eff_a8ec1f55a73778e6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1586 1 0 \"4c694794_1551_4b16_953fde07a1e56758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ba\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1587 1 0 \"dcf20846_ddc4_4dfc_80401d6e75d0f1f7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1588 1 0 \"6ac88acb_a675_4eff_a8ec1f55a73778e6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1589 1 0 \"dc9934ce_ebd1_4aaa_8c2ade9b0114b30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"c0752dc0_386a_4ac1_8e78f672750db901\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"oa\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1591 1 0 \"0f953310_c2be_4230_ad747e1a041147d7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1592 1 0 \"dc9934ce_ebd1_4aaa_8c2ade9b0114b30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1593 1 0 \"7e46ce6b_c137_4f4a_ab403ccccec7bd51\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1594 1 0 \"58db6c84_12bb_4c70_9a4c41eb0176773d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"lm\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1595 1 0 \"cbd051a0_bf60_47fc_9404fd8a02c0d7c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1596 1 0 \"970caceb_5b45_47e4_a784d2e7a5613485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1597 1 0 \"f50564ee_e0f6_4519_a2fcce9b03558917\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1598 1 0 \"7e46ce6b_c137_4f4a_ab403ccccec7bd51\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1599 1 0 \"d1e3bb2f_4c53_416c_a302aea201aa2485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1600 1 0 \"f25e3428_44e5_4437_8d181a7e05f14ba6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"ll\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1601 1 0 \"40ac2441_b27e_462d_a9fd312bead03ad5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1602 1 0 \"a6a6913e_ad30_492d_a53cd512bb2a5770\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1603 1 0 \"65e70ee3_5304_4021_be8c6320c5d2f9de\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1604 1 0 \"d1e3bb2f_4c53_416c_a302aea201aa2485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1605 1 0 \"51211b52_16c6_4606_a6259cfb5221e0e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"d390bfd4_0008_4a9f_a3712aaeb2b05a6b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"de\"), 15.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1607 1 0 \"7c19ee95_6ffd_4dec_914b030b30e90b24\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1608 1 0 \"51211b52_16c6_4606_a6259cfb5221e0e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1609 1 0 \"1cbc471e_c562_4840_924bb02f8d09b152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1610 1 0 \"2f79abc5_b48f_4945_a0c332e484e13c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"wt\"), 0.0, 10.0, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1611 1 0 \"1bb99e9f_8557_43f5_bf5f2154720a4b02\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1612 1 0 \"1cbc471e_c562_4840_924bb02f8d09b152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1613 1 0 \"b10ba448_6dd8_4c6e_97e24dfcc4a1cbc9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"afdfda89_f453_4221_bc51480d9582541c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 1615 1 0 \"b689b8f1_c23a_4e84_9b0fb1d0269f903a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1616 1 0 \"b10ba448_6dd8_4c6e_97e24dfcc4a1cbc9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1617 1 0 \"9c93a045_f28b_489a_a9b38d6c00d3155b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"f77d06f5_855d_41a9_b498e1ff1d4bb6aa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mc\"), 0, 1, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1619 1 0 \"b4788b7f_49a4_4e45_9c79be9f6507318e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1620 1 0 \"9c93a045_f28b_489a_a9b38d6c00d3155b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1621 1 0 \"fe7cd9d0_2d88_4ce4_88477490aa132267\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1622 1 0 \"60afbaad_c29d_4b73_ac94764f1f132440\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mp\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1623 1 0 \"f1815f70_be2f_401c_b2dadc0a4f97b6b4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1624 1 0 \"fe7cd9d0_2d88_4ce4_88477490aa132267\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1625 1 0 \"776280b1_a1ac_4433_b8d7352cfb1fa44c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"12c89aa0_c30b_4a99_9dc92bdf1cbdd7a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ms\"), 10.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1627 1 0 \"f152546c_1907_4a1f_9893e206be65c727\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1628 1 0 \"776280b1_a1ac_4433_b8d7352cfb1fa44c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1629 1 0 \"10a10524_6153_481d_9c597a4396132697\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1630 1 0 \"578514c7_b29b_4d54_82d804c309c72981\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mh\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1631 1 0 \"07e1390d_e222_4da5_b941af43529ec947\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1632 1 0 \"10a10524_6153_481d_9c597a4396132697\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1633 1 0 \"c3ae262c_f71c_4ddb_ac6e8a02753a13ea\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"0ac0665f_5264_427b_a736269f8d0027e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gi\"), Translate(\"000&\"));\r\n// }} \"\"\r\n// {{ 1635 1 0 \"a9f2e625_bd67_4e5d_b4d6d1486e03e99b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1636 1 0 \"c3ae262c_f71c_4ddb_ac6e8a02753a13ea\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1637 1 0 \"17088e9a_270e_4c2f_aeaebc973ef9d1ff\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1638 1 0 \"f53c9294_ae72_47f0_8df60d9e7f5c7eb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gj\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1639 1 0 \"1f0de30d_e998_4c24_bd1de1888ebad6ea\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1640 1 0 \"17088e9a_270e_4c2f_aeaebc973ef9d1ff\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"9eaa7e96_2023_49a8_843a7edf4e8e0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1642 1 0 \"e0c16542_6869_4f4a_9cc3620d54c57a83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gk\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1643 1 0 \"6b5f6c5e_95fc_40de_8e4ff520a340f5ec\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1644 1 0 \"9eaa7e96_2023_49a8_843a7edf4e8e0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1645 1 0 \"9f0ffa50_7715_4227_851bc7c26e32e9a0\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 1646 1 0 \"ae926b45_2efd_4a49_bf768a551ca15408\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1647 1 0 \"1aed9fc9_a8c2_47a3_bf4fe0f2d06ce113\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1648 1 0 \"bf04909e_e410_4983_87105ba6c1a85c7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1649 1 0 \"1aed9fc9_a8c2_47a3_bf4fe0f2d06ce113\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"a975cf6e_fa12_4cfa_8a9a8ea9636f9c1e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1651 1 0 \"61bb0474_bb3b_45b6_ae4fa1b682bca5ed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1652 1 0 \"c62e8bd1_efb1_421a_bc9f722a85db5c07\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c62e8bd1_efb1_421a_bc9f722a85db5c07\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 1653 1 0 \"0d2b8b6f_ba0a_4924_9099707e9a38b982\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{{ 1654 1 0 \"157ad8e4_2acc_4a9b_b758c6d8898064e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetChannelZCoordinatesLastLLD(ML_STAR, 1, arr_ZCoords);\r\n// }} \"\"\r\n// {{ 1655 1 0 \"b3d3403a_a55d_4682_9a41a1c8a6555cad\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1656 1 0 \"2b6caa9f_d804_48b8_936fa273d8afa8b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrLeft(i_str_ChannelPattern, i);\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"71b4014d_84f6_40eb_961b0eeb2d28a0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrRight(str_ChannelValue, 1);\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"f4fa1885_069b_4d41_a9e4c865935e151a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChannelValue = StrIVal(str_ChannelValue);\r\n// }} \"\"\r\n// {{ 1659 1 0 \"1dcccf40_6864_4699_948971e107c9cb81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelValue == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1660 1 0 \"cda80af9_0e18_4e23_876c9274f694f841\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_LiquidHeights.AddAsLast(arr_ZCoords.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1661 1 0 \"1dcccf40_6864_4699_948971e107c9cb81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1662 1 0 \"8b0af7af_942e_4f62_948289796f675021\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_LiquidHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1663 1 0 \"1dcccf40_6864_4699_948971e107c9cb81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1664 1 0 \"b3d3403a_a55d_4682_9a41a1c8a6555cad\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1665 1 0 \"61bb0474_bb3b_45b6_ae4fa1b682bca5ed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1666 1 0 \"42eb727d_ca97_405e_923274709bc009bc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1667 1 0 \"0490425c_98be_41d0_9dc79dc82b7e027a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_LiquidHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1668 1 0 \"42eb727d_ca97_405e_923274709bc009bc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1669 1 0 \"61bb0474_bb3b_45b6_ae4fa1b682bca5ed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPFindLiquidLevel\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPMixFromFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable str_Params;\r\nprivate variable i;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalParams;\r\nprivate variable int_Count;\r\nprivate variable str_ChannelValue;\r\nprivate variable int_Value;\r\nprivate variable str_ChPattern;\r\nprivate variable str_Value;\r\nprivate variable arr_Params[];\r\nprivate variable flt_MixDistance;\r\nprivate variable flt_EndHeight;\r\nprivate variable arr_PullOutDistance[];\r\nprivate variable arr_LiquidFollowing[];\r\nprivate variable arr_MixDistance[];\r\n// {{ 5 \"PIPMixFromFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"8cf4a5ca_3017_4e8a_bb7834ee6cacdd4d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"0df78064_3a50_4245_ad5ff4e4f103f77e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1673 1 0 \"541958a3_0ff5_411d_b14a0eb24058d2e3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1675 1 0 \"fdd0d5da_0647_4c1a_afccbfbcb43efa17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1676 1 0 \"93a5dbdd_9982_4df3_a46133d64e09103b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1677 1 0 \"fcc6a71b_8a12_48bf_a42682634c8c1d9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1678 1 0 \"5fc0f136_36f3_4ade_b1e59b016c13c162\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1679 1 0 \"8318ac88_894c_4651_9f57f161c3d4c32b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 1680 1 0 \"7ed24ea5_2bf1_4816_8ca3ff03a0b5a4ff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 1681 1 0 \"0df78064_3a50_4245_ad5ff4e4f103f77e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1682 1 0 \"72cfd020_1487_4e0c_bd518341ea79e6c7\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 1683 1 0 \"3bf225f4_ede9_4c38_b5dbeaf65fbfe962\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0AS\");\r\n// }} \"\"\r\n// {{ 1684 1 0 \"93330a05_d028_40b3_b89322935717888a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1685 1 0 \"8df20299_da4c_4478_8584fd077704872f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"at\"), Translate(\"2&\"));\r\n// }} \"\"\r\n// {{ 1686 1 0 \"5088d316_991c_4ee3_986659e4ebd64b5b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1687 1 0 \"93330a05_d028_40b3_b89322935717888a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1688 1 0 \"276b4f2d_e2b5_4223_84ab21bddc7d31c5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1689 1 0 \"91945455_f70a_43a0_973f43cfefe5c92d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1690 1 0 \"171ff607_e2f3_4eed_8fed3cf86d1f5bc1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillRight(str_ChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 1691 1 0 \"9ae091ba_a104_43ab_a7dba1a00542cf23\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Value = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 1692 1 0 \"652cf3cb_698c_47bc_a91fda80a187f150\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1693 1 0 \"3e28bca1_48f8_4e2e_830e5a033847f0a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrLeft(str_ChPattern, i);\r\n// }} \"\"\r\n// {{{ 1694 1 0 \"4e2a6dee_a16c_4e94_ba4c2cb07fff24e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrRight(str_ChannelValue, 1);\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"4a7020e1_fa32_4008_8f7cf3c251f9c89e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, str_ChannelValue);\r\n// }} \"\"\r\n// {{ 1696 1 0 \"186e7903_9a36_43e5_a7f9ea59ff561dc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i < G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 1697 1 0 \"3ec711b0_3a94_4937_9f026516508a8346\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 1698 1 0 \"186e7903_9a36_43e5_a7f9ea59ff561dc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1699 1 0 \"652cf3cb_698c_47bc_a91fda80a187f150\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1700 1 0 \"549956c4_6b27_4c10_b6264452c06ce1f2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1701 1 0 \"276b4f2d_e2b5_4223_84ab21bddc7d31c5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1702 1 0 \"6b232f1d_75d7_4d24_925385624d35872e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"9e977811_7608_4e46_a72a6231137ac1f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"xp\"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1704 1 0 \"6bb26dee_f661_46ee_aa620f0000b9421b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1705 1 0 \"6b232f1d_75d7_4d24_925385624d35872e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1706 1 0 \"42b615e1_e97f_45c0_87ac75f6e5e2de8a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1707 1 0 \"b8902ebe_2c3a_43a9_8afa42d6f6460499\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"yp\"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1708 1 0 \"66396eba_0641_4bdf_ae5e126ab90116cc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1709 1 0 \"42b615e1_e97f_45c0_87ac75f6e5e2de8a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1710 1 0 \"802b2b09_0bbb_4671_85e4c5f2a4ef7ac1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1711 1 0 \"c836aa90_4c5d_49b6_953b1d59df5bb154\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"th\"), i_flt_StartTraverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1712 1 0 \"5739dcf0_5d39_4ed8_9f8dfbebe42b55ba\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1713 1 0 \"802b2b09_0bbb_4671_85e4c5f2a4ef7ac1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1714 1 0 \"94a4a015_668c_4fec_a2b88b714ad9a418\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1715 1 0 \"f6f9856d_5fdd_4416_9c98e537e156d760\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"te\"), i_flt_EndTranverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1716 1 0 \"5ad1a8c5_03b2_4a70_b019548640886e38\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1717 1 0 \"94a4a015_668c_4fec_a2b88b714ad9a418\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1718 1 0 \"ecb0e6e0_a900_47de_b963a980fb761a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1719 1 0 \"502f1a78_5065_4035_93495cf19e1a42c7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"lp\"), 245.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1720 1 0 \"67c9e95d_aeb7_43da_9b944c3dd4fb59bc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1721 1 0 \"ecb0e6e0_a900_47de_b963a980fb761a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1722 1 0 \"98c5a422_566c_4e71_b5464ad26b872e1e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1723 1 0 \"d0b26b80_f8e5_48f6_be913aa35db15b19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"zl\"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1724 1 0 \"5c80ad99_2afa_4cc5_92a235a9d0c9242a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1725 1 0 \"98c5a422_566c_4e71_b5464ad26b872e1e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1726 1 0 \"dd724ac7_6c79_4822_9334d26952faf9e9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1727 1 0 \"1b2c0495_290e_47bf_9475836805da9039\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PullOutDistance.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1728 1 0 \"49792c13_5e44_48d8_bfcfef2aa9728f51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"po\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1729 1 0 \"ea13e69e_76d0_4bc7_a460d0dddabb699b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1730 1 0 \"dd724ac7_6c79_4822_9334d26952faf9e9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1731 1 0 \"e4ee43d3_25ec_438c_8e113dbbefee4977\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1732 1 0 \"b10cad61_a0fc_4c7f_850ce084e6fad8f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"zx\"), i_flt_MinimumHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1733 1 0 \"17aac994_5ef4_4e95_acfb77cf0fc65b8f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1734 1 0 \"e4ee43d3_25ec_438c_8e113dbbefee4977\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1735 1 0 \"7654d8d1_8420_4096_b53c1aaef4c5c3b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1736 1 0 \"ad779e85_687a_4995_9d8add7d463843ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ip\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1737 1 0 \"c5765c02_1901_42bf_bc0cd37c91b5f2c2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1738 1 0 \"7654d8d1_8420_4096_b53c1aaef4c5c3b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1739 1 0 \"adc2661c_312c_420e_a4525b08db11723c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1740 1 0 \"c9c7e736_688c_4de3_a0f170490ba09002\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowing.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1741 1 0 \"f94f32fd_1767_41d8_9a93ff65cd7066bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"fp\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1742 1 0 \"03a2ad3e_24b9_4ff9_b4e0a489fa78e9a3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1743 1 0 \"adc2661c_312c_420e_a4525b08db11723c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1744 1 0 \"57f27180_ea6e_46cb_836d52e86d19b0be\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1745 1 0 \"818c4615_ef04_4bb3_836838be8955cf70\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"av\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 1746 1 0 \"53b6f946_0fa6_4b2f_a91ef02963affa34\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1747 1 0 \"57f27180_ea6e_46cb_836d52e86d19b0be\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1748 1 0 \"fe4e3c83_3bfd_41ea_9d5eafec468a1ba2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1749 1 0 \"5e06d7cf_c0c3_4e5a_9a27e50fe99736bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"as\"), 10.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1750 1 0 \"44d77a9d_c572_4da5_b620fbe75449f502\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1751 1 0 \"fe4e3c83_3bfd_41ea_9d5eafec468a1ba2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1752 1 0 \"c88f1083_d02b_490d_99f5383542551908\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1753 1 0 \"4199eec8_484e_43a5_9ca5dc652c151ed8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ta\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1754 1 0 \"3ac928fe_f498_400c_a78f14d30fe53f8d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1755 1 0 \"c88f1083_d02b_490d_99f5383542551908\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1756 1 0 \"c3561784_6ddd_43a4_8313ea362218028d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1757 1 0 \"76ea325e_d9c9_4fe2_b70714f463dc4960\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ba\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1758 1 0 \"3db7ade7_110e_466b_b3cdb49cfa0efcac\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1759 1 0 \"c3561784_6ddd_43a4_8313ea362218028d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1760 1 0 \"c034c7b0_5d47_46b0_a92958f39d25f9b7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1761 1 0 \"e17defd5_9403_41a4_ba25db6b6a1b5bbb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"oa\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1762 1 0 \"18f564f7_7ae9_41d1_be7ce863059c9ba6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1763 1 0 \"c034c7b0_5d47_46b0_a92958f39d25f9b7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1764 1 0 \"9f41929e_c832_47e8_a8b125926c5cde36\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1765 1 0 \"29adf0dd_b90e_4860_8bdb499edc4d0649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"lm\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1766 1 0 \"70644afa_3747_470a_94a778d836a48fcf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(0, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1767 1 0 \"48cea96d_e484_4eb9_8af09fd9021c1586\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1768 1 0 \"be560f24_bb2c_42ed_a50d8e739082f803\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1769 1 0 \"9f41929e_c832_47e8_a8b125926c5cde36\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1770 1 0 \"6e7b98ea_b702_4939_bbdea9aca078af91\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1771 1 0 \"5fe2fdd3_c4a9_40ab_8f8b73908e2dbab4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"ll\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1772 1 0 \"6cb28def_e781_438c_b8e951c774807a30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1773 1 0 \"f3da08ab_ddfa_43c4_902533d72e1ae41a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1774 1 0 \"a7fd0968_2a39_420c_ad43d1167252c891\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1775 1 0 \"6e7b98ea_b702_4939_bbdea9aca078af91\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1776 1 0 \"287ce4c1_07af_4dd0_8ded9ab341ac9265\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"339eaafa_2890_4fe2_b572f669355bffc6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"de\"), 15.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1778 1 0 \"ae305e9c_d7e0_43a7_b6ed4de91a354a83\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1779 1 0 \"287ce4c1_07af_4dd0_8ded9ab341ac9265\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1780 1 0 \"740ede35_e977_4ee0_9a7c8acafb16fd5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1781 1 0 \"cfa794fb_f9a0_420b_95e5d10c186224ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"wt\"), 0.0, 10.0, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1782 1 0 \"1a60b869_a9a4_433f_9c98723430d765dd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1783 1 0 \"740ede35_e977_4ee0_9a7c8acafb16fd5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1784 1 0 \"8d139f7b_c45b_4424_a579e6ad1a95d4e0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1785 1 0 \"3b3ddb3c_3e78_4799_803903a89a565c68\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mv\"), i_flt_MixVolume, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 1786 1 0 \"19a12699_9466_40fd_89934ca7a9a688fb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1787 1 0 \"8d139f7b_c45b_4424_a579e6ad1a95d4e0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1788 1 0 \"75a1d213_4bca_4dba_8ecc5faf0c19fd81\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1789 1 0 \"58015eb9_9588_4ec7_8aae8b902f9c4914\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mc\"), i_int_MixCycles, 1, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1790 1 0 \"216259a8_57b5_44da_842dd5c1c27df8cc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1791 1 0 \"75a1d213_4bca_4dba_8ecc5faf0c19fd81\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1792 1 0 \"77952b78_ece0_455f_9d17e7b56cdb000d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1793 1 0 \"91bc97c8_69f9_4f89_8aca0efd64373897\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mp\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1794 1 0 \"8e159b79_32c2_4734_8ebbb57a318ee87f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1795 1 0 \"77952b78_ece0_455f_9d17e7b56cdb000d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1796 1 0 \"5e1b2378_045b_45a1_850504a9452e3f74\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1797 1 0 \"36f062d6_da9a_4846_ad9752620b5cbf0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ms\"), i_flt_MixSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1798 1 0 \"58d2ca58_380a_4703_973b0a4f11c1497d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1799 1 0 \"5e1b2378_045b_45a1_850504a9452e3f74\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1800 1 0 \"098174f5_3b55_44d7_aa72083c022d5661\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1801 1 0 \"cb6c187f_35f1_45fe_be3eb1cd35823571\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_MixDistance.SetSize(0);\r\n// }} \"\"\r\n// {{ 1802 1 0 \"881a2147_52d9_4516_9b71283d4de0dea9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1803 1 0 \"dc4d2f64_3e6f_46f5_b97fdfea5a4748b7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MixDistance = i_arr_MixDistance.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 1804 1 0 \"498dcaa3_d879_421a_bb15100417e9f268\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndHeight = i_arr_FixedHeights.ElementAt( i -1) - flt_MixDistance;\r\n// }} \"\"\r\n// {{ 1805 1 0 \"ecf3ef4e_dcfe_4981_84ebe61759712516\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_EndHeight < i_flt_MinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 1806 1 0 \"b73cbe01_0ac4_4e81_91b2da080adc9eae\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MixDistance = i_arr_FixedHeights.ElementAt( i -1) - i_flt_MinimumHeight;\r\n// }} \"\"\r\n// {{ 1807 1 0 \"dceea0cb_8017_44b0_b3dd9aec520bd464\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MixDistance = flt_MixDistance - 0.5;\r\n// }} \"\"\r\n// {{ 1808 1 0 \"ecf3ef4e_dcfe_4981_84ebe61759712516\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1809 1 0 \"998a8396_4bfc_4dd5_a86feb8d97d1982c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_MixDistance < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1810 1 0 \"0da3cc37_7629_4ef9_94a33a11f9633199\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MixDistance = 0.0;\r\n// }} \"\"\r\n// {{ 1811 1 0 \"998a8396_4bfc_4dd5_a86feb8d97d1982c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1812 1 0 \"4351f6ca_499a_40cc_946cca7014549074\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MixDistance.AddAsLast(flt_MixDistance);\r\n// }} \"\"\r\n// {{ 1813 1 0 \"881a2147_52d9_4516_9b71283d4de0dea9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1814 1 0 \"1012a9ca_c922_4416_8a76d383f3f65984\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"mh\"), arr_MixDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1815 1 0 \"f911cdee_f023_4444_bcbc58c8c0579e67\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1816 1 0 \"098174f5_3b55_44d7_aa72083c022d5661\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1817 1 0 \"185d675e_95a8_45a0_83aeea6535a7ce84\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1818 1 0 \"78d87a09_7831_44fe_b61d0d0de3c8420a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gi\"), Translate(\"000&\"));\r\n// }} \"\"\r\n// {{ 1819 1 0 \"40aee74f_c780_4cf4_a1016efa8888389f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1820 1 0 \"185d675e_95a8_45a0_83aeea6535a7ce84\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1821 1 0 \"51d7ba86_f050_4651_a28ec27d1a6b2c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1822 1 0 \"f5efee5f_3fd2_416a_bce4b24e732a502b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gj\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1823 1 0 \"b3e0d34d_e1be_43fb_bf19be1fda18369f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1824 1 0 \"51d7ba86_f050_4651_a28ec27d1a6b2c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1825 1 0 \"7f897615_b17a_4381_84cd350c604ee2c1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1826 1 0 \"6901236f_ae7a_465c_bf5c4b5ff8ac5190\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gk\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1827 1 0 \"00d141af_8a57_4945_b49e6188d9552db2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1828 1 0 \"7f897615_b17a_4381_84cd350c604ee2c1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1829 1 0 \"f6bb6c9a_54a2_401e_a39db5288c445e97\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 1830 1 0 \"221cc6f2_fc7a_48d8_9b0eeaf85016eed4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1831 1 0 \"e418788e_470a_4b32_8f10878f3b1465dc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1832 1 0 \"49a4b0a9_29d8_4c62_a8046f4da0927079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1833 1 0 \"e418788e_470a_4b32_8f10878f3b1465dc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1834 1 0 \"dbaec4c1_4aee_473d_9cdc695886aa3025\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1835 1 0 \"c119395c_e1eb_410f_9515759216e82081\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1836 1 0 \"843e47b1_e392_4b39_9b1c928002fb44f7\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"843e47b1_e392_4b39_9b1c928002fb44f7\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 1837 1 0 \"87aa134a_d11d_4231_833c0644dd214795\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1838 1 0 \"c119395c_e1eb_410f_9515759216e82081\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPMixFromFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPAspirateFromFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable str_Params;\r\nprivate variable i;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalParams;\r\nprivate variable int_Count;\r\nprivate variable str_ChannelValue;\r\nprivate variable int_Value;\r\nprivate variable str_ChPattern;\r\nprivate variable str_Value;\r\nprivate variable arr_Params[];\r\nprivate variable flt_LiquidFollow;\r\nprivate variable flt_EndLocation;\r\nprivate variable flt_PullOut;\r\nprivate variable flt_FixHeight;\r\nprivate variable arr_PullOutDistance[];\r\nprivate variable arr_LiquidFollowing[];\r\n// {{ 5 \"PIPAspirateFromFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 733 1 0 \"20655276_4c32_47cc_af661877d68c4384\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 734 1 0 \"58a0ce0b_fccc_4995_bf9399d2a85013b6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"d345a137_09c6_4719_a4b739301adbb987\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 737 1 0 \"add921cb_457b_46a6_8175af02b5c7f4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 738 1 0 \"3b635bbb_4445_4b91_ba15d854425b0b56\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 739 1 0 \"2299c249_2ee1_4836_a5389fa9b6fdf055\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 740 1 0 \"95f7d5c3_79ec_4675_99b8803fd5dc7de3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 741 1 0 \"4d246183_4cde_4394_b51ef01f8bbcbfd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 742 1 0 \"e4f4daed_0d52_44d0_9e57d0e03886189a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 743 1 0 \"58a0ce0b_fccc_4995_bf9399d2a85013b6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 744 1 0 \"91fed34c_3e6d_413d_b0ba1991dfd3e92b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 745 1 0 \"959e3f9b_5054_48da_9c252c9a62f059b3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0AS\");\r\n// }} \"\"\r\n// {{ 746 1 0 \"ea2083f4_9d41_49eb_9241f6adb873b8d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 747 1 0 \"334ef6b3_8f26_4c7f_999f8e439dc9364c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"at\"), Translate(\"2&\"));\r\n// }} \"\"\r\n// {{ 748 1 0 \"e7cbcaca_a101_4aad_82cea12e18b75657\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 749 1 0 \"ea2083f4_9d41_49eb_9241f6adb873b8d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 750 1 0 \"ca3738fa_4d7b_4ec9_9928322a3ea35b1a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 751 1 0 \"cb091c3a_207c_4f47_a8add9d094690f3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 752 1 0 \"99c9ff16_fc76_4606_83333149e1fa4951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillRight(str_ChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 753 1 0 \"f8fa7cb6_5da6_4047_ae750202b7d5f7ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Value = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 754 1 0 \"d92de307_a7bc_4116_942972c2998fcc29\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 755 1 0 \"523dd5ae_a9e9_423d_ba949717b8dfae6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrLeft(str_ChPattern, i);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"73c1a12a_07b2_4225_a59c339316b3ce43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrRight(str_ChannelValue, 1);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"8ed0a977_fa98_4ad1_a213660ae0135c5a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, str_ChannelValue);\r\n// }} \"\"\r\n// {{ 758 1 0 \"2f85c017_81a3_4c7d_b3f445e1b94d6bd4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i < G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 759 1 0 \"7a70ca60_b0fe_47d4_ac499550658a3ed0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 760 1 0 \"2f85c017_81a3_4c7d_b3f445e1b94d6bd4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 761 1 0 \"d92de307_a7bc_4116_942972c2998fcc29\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 762 1 0 \"0ce9459e_5d61_4e9a_af1999a4fb6f3359\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 763 1 0 \"ca3738fa_4d7b_4ec9_9928322a3ea35b1a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 764 1 0 \"20ed56f1_9697_46f5_9eed05e18e19b709\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 765 1 0 \"26615a4d_44bf_496b_837f83aa7a2b15d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"xp\"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 766 1 0 \"4cdee343_dfc8_4a20_b078089cdd65c6db\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 767 1 0 \"20ed56f1_9697_46f5_9eed05e18e19b709\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 768 1 0 \"084b6850_1b46_4363_825a75dee3b572fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 769 1 0 \"ea55ba00_d58a_4cfc_acdbee80a75a41d3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"yp\"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 770 1 0 \"8eb978d6_aaf5_4b28_9a7c26f5d8e7548d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 771 1 0 \"084b6850_1b46_4363_825a75dee3b572fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 772 1 0 \"51a8a62a_1513_4f8f_b7bd1d5ec46f98cb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 773 1 0 \"57313ad3_aafd_475d_971b3198be54158f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"th\"), i_flt_StartTraverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 774 1 0 \"0d0e1efb_8f80_4960_a3fbfe6a074eedaf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 775 1 0 \"51a8a62a_1513_4f8f_b7bd1d5ec46f98cb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 776 1 0 \"6161e81a_ba1c_44d7_8c5d7798b5cc6d57\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 777 1 0 \"d132278b_00d0_4c32_b25df0ee73d9de76\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"te\"), i_flt_EndTranverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 778 1 0 \"cb929e94_a212_4e33_97659d2af05b8d1c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 779 1 0 \"6161e81a_ba1c_44d7_8c5d7798b5cc6d57\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"30a0e019_9425_46e1_bdd0c2bc341ffb15\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 781 1 0 \"e905f5f9_401f_4374_a227c5c6a60d6db0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"lp\"), 245.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 782 1 0 \"3b219c90_8d75_4de5_8b17d678d9e93524\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 783 1 0 \"30a0e019_9425_46e1_bdd0c2bc341ffb15\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 784 1 0 \"c9e4df96_4acd_4426_9a3eea9214e5b197\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 785 1 0 \"fe293acd_62eb_489f_911d7ecae9fa7eff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"zl\"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 786 1 0 \"8358f245_a42d_4c88_8997a0e06859d28a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 787 1 0 \"c9e4df96_4acd_4426_9a3eea9214e5b197\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 788 1 0 \"4c075639_fd3f_4058_8219a9c61520c301\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 789 1 0 \"ae0caf16_f0b3_455c_b830717550f7f192\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PullOutDistance.SetSize(0);\r\n// }} \"\"\r\n// {{ 790 1 0 \"ef613f55_65bb_4b62_8ff1aa341b54dfa8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 791 1 0 \"1382a0a9_543c_49a5_a6fd441c570a46e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"a6828413_2471_4f7a_952c98fb511a7bb5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 793 1 0 \"3ef188c7_9467_451c_ab1f06ead5affac0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_arr_FixedHeights.ElementAt( i -1) - 0.0;\r\n// }} \"\"\r\n// {{ 794 1 0 \"8b4f8d03_bd7f_4af5_b1b68923d49ffb94\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = flt_EndLocation - flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 795 1 0 \"5dc51645_95cd_4d1c_9cf17045c68b4e19\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_EndLocation < i_flt_MinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 796 1 0 \"6e11104b_16f9_4d45_94a2984ece3049b2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_flt_MinimumHeight + 0.5;\r\n// }} \"\"\r\n// {{ 797 1 0 \"5dc51645_95cd_4d1c_9cf17045c68b4e19\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 798 1 0 \"2139a5fa_7ce2_4468_ba3ab7e4176fc296\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1) - flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 799 1 0 \"f055be9d_3627_4581_9862efd82f9c6513\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_LiquidFollow < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 800 1 0 \"7df11862_62d7_4810_859283f51bf15948\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = 0.0;\r\n// }} \"\"\r\n// {{ 801 1 0 \"f055be9d_3627_4581_9862efd82f9c6513\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 802 1 0 \"4b20dc6a_c3b1_4b67_86f7d76be9d382fb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = flt_LiquidFollow + i_flt_PullOutDistance;\r\n// }} \"\"\r\n// {{ 803 1 0 \"1382a0a9_543c_49a5_a6fd441c570a46e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"ff13008b_9522_40da_8729cb5f1ec5aa4d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_PullOutDistance.AddAsLast(flt_PullOut);\r\n// }} \"\"\r\n// {{ 805 1 0 \"ef613f55_65bb_4b62_8ff1aa341b54dfa8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 806 1 0 \"f2524f64_d07e_4592_8cbe853b55b9638c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"po\"), arr_PullOutDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 807 1 0 \"f2596fbc_5424_4cb0_8a98f9d4d84fc18a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 808 1 0 \"4c075639_fd3f_4058_8219a9c61520c301\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 809 1 0 \"0ef67afc_7874_42a7_9b5aaf3945a8b3f5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 810 1 0 \"b885e72f_8b1c_452f_87a25cece3cd65a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"zx\"), i_flt_MinimumHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 811 1 0 \"fe1920c6_a99f_4531_b96e88fd2b7083c6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 812 1 0 \"0ef67afc_7874_42a7_9b5aaf3945a8b3f5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 813 1 0 \"66ea33ff_7e72_4e81_a29f7d53ff9208aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 814 1 0 \"e050e20a_1c68_4bf1_af615b66119d0958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ip\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 815 1 0 \"a054e4bb_1b0b_4e71_af592664fdd39fd4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 816 1 0 \"66ea33ff_7e72_4e81_a29f7d53ff9208aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 817 1 0 \"84fcc306_4052_459a_9250821c9a8497c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 818 1 0 \"62c70ecb_b03a_4317_93363a7b61b5c930\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowing.SetSize(0);\r\n// }} \"\"\r\n// {{ 819 1 0 \"62271d5b_4d4e_4915_937208b0c20eac32\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 820 1 0 \"4f08e9ef_1226_45b7_b5c6f77b9a2d72b0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 821 1 0 \"1a7a62b3_aba3_4c8e_a88026c880251868\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_FixHeight = i_arr_FixedHeights.ElementAt( i -1) + i_flt_ZBottom;\r\n// }} \"\"\r\n// {{ 822 1 0 \"4419eabb_49c2_4b51_b952ea620a87fe1f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = flt_FixHeight - flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 823 1 0 \"573e2daf_f306_4b89_895c9acdf5afe55c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_EndLocation < i_flt_MinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 824 1 0 \"e88c6b03_5c04_4d0a_a507841a19bbe9f9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_flt_MinimumHeight + 0.0;\r\n// }} \"\"\r\n// {{ 825 1 0 \"573e2daf_f306_4b89_895c9acdf5afe55c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"cb7e1a90_2f59_457f_9d167c199af34995\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = flt_FixHeight - flt_EndLocation;\r\n// }} \"\"\r\n// {{ 827 1 0 \"ae5a672c_e54a_4166_86acc56d5127776e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_LiquidFollow < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 828 1 0 \"cd1be0c2_d62b_4bc9_926afcb676bdc0db\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = 0.0;\r\n// }} \"\"\r\n// {{ 829 1 0 \"ae5a672c_e54a_4166_86acc56d5127776e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 830 1 0 \"0518d8c5_9536_4291_a92e6bd0018c49d9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowing.AddAsLast(flt_LiquidFollow);\r\n// }} \"\"\r\n// {{ 831 1 0 \"62271d5b_4d4e_4915_937208b0c20eac32\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 832 1 0 \"04a2039d_8cbb_4e45_a65cf1d66b659d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"fp\"), arr_LiquidFollowing, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 833 1 0 \"860e1777_bf41_4513_b90d4d9b82789a0e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 834 1 0 \"84fcc306_4052_459a_9250821c9a8497c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 835 1 0 \"1cfb22cb_c264_4f03_ad3f21690e321b66\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 836 1 0 \"41514075_1d5a_4180_af5f5277d6a02720\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"av\"), i_flt_AspirateVolume, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 837 1 0 \"94c9b8f7_0835_4908_a67359a18e4da95b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 838 1 0 \"1cfb22cb_c264_4f03_ad3f21690e321b66\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"3cd14530_9f21_4968_b95fa707bc5b9b71\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 840 1 0 \"971a64cc_43c2_4236_ab1e217062894e47\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"as\"), i_flt_AspirateSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 841 1 0 \"4f99d000_9d8e_46ec_91a0b210e51e628c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 842 1 0 \"3cd14530_9f21_4968_b95fa707bc5b9b71\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 843 1 0 \"35975e44_d9b5_42b2_a00f04db8e13aa8b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 844 1 0 \"bb205802_d11e_4787_9fe55977d62ef9e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ta\"), i_flt_TransportAirGap, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 845 1 0 \"ae676529_c4c0_4d67_9783a7dc8b4eb191\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 846 1 0 \"35975e44_d9b5_42b2_a00f04db8e13aa8b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 847 1 0 \"161041a7_af1a_448c_bd574ba1ae14ab46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 848 1 0 \"fdaa99bc_85f0_48eb_9a84ca6f5323b291\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ba\"), i_flt_BlowoutVolume, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 849 1 0 \"1c84b2e9_4929_4a6b_ab49e1ce159a8955\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 850 1 0 \"161041a7_af1a_448c_bd574ba1ae14ab46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"15c6bd20_6fcb_478e_9f0c33b38ade9ca4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 852 1 0 \"4f7628b0_1495_4ece_b5687a3007bed104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"oa\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 853 1 0 \"c2055664_7b82_45fc_b2fdd22c07548d9a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 854 1 0 \"15c6bd20_6fcb_478e_9f0c33b38ade9ca4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 855 1 0 \"0075a9c4_d275_4f32_a90b936a3c65d489\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 856 1 0 \"c5c3b301_658d_4c32_9ea2f3e1e2e1d3db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"lm\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 857 1 0 \"b8cd44fa_74f0_4487_892c1ae30e9a5c32\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(0, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 858 1 0 \"51351611_bd36_454f_a93def1525cac777\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 859 1 0 \"86194fc9_06bf_4462_b7d8235be70ef7f7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 860 1 0 \"0075a9c4_d275_4f32_a90b936a3c65d489\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 861 1 0 \"61b57297_bd4a_4a6b_afea250e7b9b1bdd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 862 1 0 \"166934f4_b4bb_41fe_87653aa9cb0bcf07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"ll\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 863 1 0 \"8b481448_b0cb_4ba6_830a17c6d99fd308\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 864 1 0 \"de4042be_7bb6_43eb_b5d888c6749cf444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 865 1 0 \"b4cd4cc4_8654_492a_af0839d89516b609\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 866 1 0 \"61b57297_bd4a_4a6b_afea250e7b9b1bdd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 867 1 0 \"415556cd_e82f_41e7_a2aca3d0b171b1a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 868 1 0 \"3a75a3e0_2fe7_44eb_ba195ff0385415af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"de\"), i_flt_SwapSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 869 1 0 \"6d74db5d_b74c_4e1d_8803d638b739a57b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 870 1 0 \"415556cd_e82f_41e7_a2aca3d0b171b1a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 871 1 0 \"52bdd868_4768_4085_add44b68067f68cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 872 1 0 \"77ad3181_751b_4765_80fc9ad5e3aaba6e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"wt\"), i_int_SettlingTime, 10.0, 2, str_Value);\r\n// }} \"\"\r\n// {{ 873 1 0 \"657d4db8_13ad_4e7d_9d84e1b1558c619e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 874 1 0 \"52bdd868_4768_4085_add44b68067f68cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 875 1 0 \"6cbcddfc_2a18_4c89_a6933c231baefa43\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 876 1 0 \"eff10d4e_f1b5_4ca5_a356a7ad25e76b25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 877 1 0 \"37525ad3_ba83_4fda_93b38eca646763fd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 878 1 0 \"6cbcddfc_2a18_4c89_a6933c231baefa43\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 879 1 0 \"b7838a97_28e7_47f8_b7e8b744793c23c4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 880 1 0 \"b0eecb9d_78d0_4d1f_bb2d1ae68a6d796a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mc\"), 0, 1, 2, str_Value);\r\n// }} \"\"\r\n// {{ 881 1 0 \"cc28ca0a_cb4e_4d6e_94fdfa7fcd52f64c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 882 1 0 \"b7838a97_28e7_47f8_b7e8b744793c23c4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 883 1 0 \"0b7cf5ca_caee_4ca6_98bcfa8d7e5ccba9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 884 1 0 \"f4e9e496_d8bf_45b2_9c3cbc71fb6d8b7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mp\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 885 1 0 \"18012e18_8d12_40be_a4dce1f0127a3b7c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 886 1 0 \"0b7cf5ca_caee_4ca6_98bcfa8d7e5ccba9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 887 1 0 \"ebd6598f_fa00_4881_bc51086c4d8868c1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 888 1 0 \"1fdd47e5_49c7_4b1e_81e32fdba938cc27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ms\"), 10.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 889 1 0 \"7c565be1_c872_47ac_a4e9232f32ffce2b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 890 1 0 \"ebd6598f_fa00_4881_bc51086c4d8868c1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 891 1 0 \"f433f55f_47b0_4fd7_a4ea539fa42655eb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 892 1 0 \"d6d8cdd6_bd6c_45fc_82f550a41066d3fc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mh\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 893 1 0 \"f822dd08_614b_4c09_9af0979c25d4e580\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 894 1 0 \"f433f55f_47b0_4fd7_a4ea539fa42655eb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 895 1 0 \"48d89881_4cf4_411c_b1ae0fd85a475176\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 896 1 0 \"7ad13ace_36af_4539_818090e0acc27abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gi\"), Translate(\"000&\"));\r\n// }} \"\"\r\n// {{ 897 1 0 \"c5dc3474_8ee7_449f_90aa75c7ca77781c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 898 1 0 \"48d89881_4cf4_411c_b1ae0fd85a475176\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 899 1 0 \"1d8f6778_063b_4aed_82914d80f8b7ddf7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 900 1 0 \"659e8a4e_8a13_4b8a_975a44ac8829a8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gj\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 901 1 0 \"28cea189_a94c_4056_a48a28d016b891c8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 902 1 0 \"1d8f6778_063b_4aed_82914d80f8b7ddf7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 903 1 0 \"c1bd976c_1ace_4f35_a8e6ed11483810dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 904 1 0 \"a292ed52_c51e_4663_9cd52cfd147f5b59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gk\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 905 1 0 \"f2e2ea46_0544_4875_96ab8b21c7fbeedd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 906 1 0 \"c1bd976c_1ace_4f35_a8e6ed11483810dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 907 1 0 \"e784a74f_1ed2_4696_8a9562f9c5496087\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 908 1 0 \"ce173261_1089_457f_858b30d62be24609\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 909 1 0 \"cda66be3_266d_4c93_8da351c946827004\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 910 1 0 \"d8e0c0f2_8350_4da2_9d4aff480541287a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 911 1 0 \"cda66be3_266d_4c93_8da351c946827004\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 912 1 0 \"391c08fc_1d44_48c8_887beb7709247f0a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 913 1 0 \"641dae10_3ad1_4b74_a23ffa48629d0159\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 914 1 0 \"fef11d3a_6c3d_4296_acaf454a9754ddf4\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"fef11d3a_6c3d_4296_acaf454a9754ddf4\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 915 1 0 \"018a2e55_735b_43fd_92f684f0ae1b54fd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 916 1 0 \"641dae10_3ad1_4b74_a23ffa48629d0159\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 917 1 0 \"07ee5779_f3e8_4122_93b5f730d9b8db4a\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"07ee5779_f3e8_4122_93b5f730d9b8db4a\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 918 1 0 \"641dae10_3ad1_4b74_a23ffa48629d0159\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPAspirateFromFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPDispenseFromFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable arr_Params[];\r\nprivate variable str_Value;\r\nprivate variable i;\r\nprivate variable str_ChannelValue;\r\nprivate variable str_ChPattern;\r\nprivate variable int_Value;\r\nprivate variable flt_EndLocation;\r\nprivate variable flt_LiquidFollow;\r\nprivate variable flt_PullOut;\r\nprivate variable str_ReturnValue;\r\nprivate variable str_Params;\r\nprivate variable int_TotalParams;\r\nprivate variable int_DispenseMode;\r\nprivate variable arr_PullOutDistance[];\r\n// {{ 5 \"PIPDispenseFromFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"aae08fbb_6f48_4ea8_8af94988af63e95c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1106 1 0 \"970d0915_2377_4a1d_8edbf181ec09559c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1107 1 0 \"26649af4_d3bd_408d_a24362aa778602e3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1109 1 0 \"3d29927a_2ec6_40f1_b6eb6299b604060c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1110 1 0 \"92a17b4c_1edd_4183_a88b41c0930b193f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1111 1 0 \"dbdfea83_b3ea_45fc_b34eb776de0d7c4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1112 1 0 \"7f7e80b2_b06d_469c_abedfbbb6896c955\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1113 1 0 \"42f694d3_1672_4a3f_ad87c4d577694944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 1114 1 0 \"d8704886_2519_4c17_8061b15dd09805fd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 1115 1 0 \"970d0915_2377_4a1d_8edbf181ec09559c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1116 1 0 \"e74d7a47_8850_40b8_b5cc2ece8921430b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 1117 1 0 \"54d2b5e5_1110_43be_8456ed701671be5a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0DS\");\r\n// }} \"\"\r\n// {{ 1118 1 0 \"f7c8aca9_9e7e_4cc9_92b1b8bee4b058b7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1119 1 0 \"116185e2_91e7_4268_bb8e0dedc8dcd111\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 1;\r\n// }} \"\"\r\n// {{ 1120 1 0 \"c139be19_c25e_4f44_acdce82706b0f61b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1121 1 0 \"35477bcf_c3bd_43a6_abccad335b7e8c9e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 0;\r\n// }} \"\"\r\n// {{ 1122 1 0 \"c139be19_c25e_4f44_acdce82706b0f61b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1123 1 0 \"b56bc348_dac8_410e_8bb9ed17f828eb41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1124 1 0 \"2411b75a_4c70_481b_98b82ffe16d85515\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 2;\r\n// }} \"\"\r\n// {{ 1125 1 0 \"b56bc348_dac8_410e_8bb9ed17f828eb41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1126 1 0 \"2ce59cd6_f9ac_4a65_81adb92fa51a90f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 2)\r\n{\r\n// }} \"\"\r\n// {{ 1127 1 0 \"d8413aeb_951c_464d_bc7ca67220670a1a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 0;\r\n// }} \"\"\r\n// {{ 1128 1 0 \"2ce59cd6_f9ac_4a65_81adb92fa51a90f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1129 1 0 \"56a718b0_ab8c_4575_9b0c722ff9f14a57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 3)\r\n{\r\n// }} \"\"\r\n// {{ 1130 1 0 \"15e9472f_c453_4b76_ad8f580361acec94\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 1;\r\n// }} \"\"\r\n// {{ 1131 1 0 \"56a718b0_ab8c_4575_9b0c722ff9f14a57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1132 1 0 \"9fc4fbb4_c642_49a4_a87cb018183f2b46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 4)\r\n{\r\n// }} \"\"\r\n// {{ 1133 1 0 \"1cd66237_48b5_4dd6_a89bc4e437967b28\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 2;\r\n// }} \"\"\r\n// {{ 1134 1 0 \"9fc4fbb4_c642_49a4_a87cb018183f2b46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1135 1 0 \"991c5b90_2af0_48cb_92c78c62488df683\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 5)\r\n{\r\n// }} \"\"\r\n// {{ 1136 1 0 \"be359f4c_3ac8_4ef3_bff8d41f8a5095fa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 3;\r\n// }} \"\"\r\n// {{ 1137 1 0 \"991c5b90_2af0_48cb_92c78c62488df683\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1138 1 0 \"4a47bf00_dd1e_44c9_8979e170994c7f7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 6)\r\n{\r\n// }} \"\"\r\n// {{ 1139 1 0 \"918ee23a_462e_4538_85400efb27d8344a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 4;\r\n// }} \"\"\r\n// {{ 1140 1 0 \"4a47bf00_dd1e_44c9_8979e170994c7f7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"3b0d64fe_b945_4e09_939201edaf38da52\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(Translate(\"dm\"), int_DispenseMode, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1142 1 0 \"9f9d4135_8bd2_413d_b016a6180c0f125e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1143 1 0 \"f7c8aca9_9e7e_4cc9_92b1b8bee4b058b7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1144 1 0 \"645355bf_2888_4bfa_aea0347285f81f83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1145 1 0 \"e760f805_3491_4197_b7c254d764927d2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"6aecb619_e366_4996_b4058e845b16e4f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillRight(str_ChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 1147 1 0 \"6b1e2614_efec_46d4_996e9aaf62253032\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Value = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 1148 1 0 \"afb38f9a_6c58_40c5_9d8882f7939d520d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"50cbf850_ee93_4cb3_9085ae8d352dda0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrLeft(str_ChPattern, i);\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"7e51c3d5_6014_4d13_a20b35016664b30e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrRight(str_ChannelValue, 1);\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"eee33b2a_944b_405e_aaedc7fca3c5f2f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, str_ChannelValue);\r\n// }} \"\"\r\n// {{ 1152 1 0 \"129b2db5_0709_49e3_a843bb761e817ad3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i < G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"66bfb8a2_cebd_4f31_88421dd30ea77f8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 1154 1 0 \"129b2db5_0709_49e3_a843bb761e817ad3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1155 1 0 \"afb38f9a_6c58_40c5_9d8882f7939d520d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1156 1 0 \"ac9e21c5_b13b_4562_b78f52a080059177\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1157 1 0 \"645355bf_2888_4bfa_aea0347285f81f83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1158 1 0 \"3928179e_c49a_4622_90ecb82d3fec70f2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"79794b82_e7e5_4aa8_b0d45b5e6dce033e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"xp\"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1160 1 0 \"e0e4b118_9443_47a0_b8a4f1945fda9263\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1161 1 0 \"3928179e_c49a_4622_90ecb82d3fec70f2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1162 1 0 \"dc60bcb1_1c1b_4391_867211a2a2c40bf5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"f2b5dab0_956d_4ccc_815491b27aee9cde\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"yp\"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"3cb532ce_5507_4aa4_921d551b64287019\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1165 1 0 \"dc60bcb1_1c1b_4391_867211a2a2c40bf5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1166 1 0 \"c657cda0_67a8_4a75_a2f36f92880156f2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"9ebba764_7284_4359_9905e25e55e1cea6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"zx\"), i_flt_MinimumHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1168 1 0 \"1385feca_308f_4c9d_ad380d7782ec63b9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1169 1 0 \"c657cda0_67a8_4a75_a2f36f92880156f2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1170 1 0 \"d215a340_1ed5_4c57_835e597b1565f282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"6fb70c91_395e_48e7_a131ba1fbaeafb0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"th\"), i_flt_StartTraverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1172 1 0 \"c30d489b_c2cf_4113_933fb25eb09f8e00\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1173 1 0 \"d215a340_1ed5_4c57_835e597b1565f282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1174 1 0 \"fbdbbd3d_2cb5_43ab_860c041ee539c6f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"1b03f175_aa0f_41c1_96a46cd86dc5609b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"te\"), i_flt_EndTranverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1176 1 0 \"0567da72_39a1_4831_af6622f4795ff50a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1177 1 0 \"fbdbbd3d_2cb5_43ab_860c041ee539c6f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1178 1 0 \"ff674d79_4b12_426c_a7ef2188522fd718\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"b9efc8f5_1fbb_423c_92531542ed2bca29\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"lp\"), 245.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1180 1 0 \"74115666_3ff1_4418_b5163e8cd15fc4ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1181 1 0 \"ff674d79_4b12_426c_a7ef2188522fd718\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1182 1 0 \"847609b4_5665_4ed2_afc694188e9c7479\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1183 1 0 \"3e8b6592_3a20_4708_8a78a4e2898ea19f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"zl\"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1184 1 0 \"90e4e61f_13bf_4cc8_bc62644026b173c7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1185 1 0 \"847609b4_5665_4ed2_afc694188e9c7479\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1186 1 0 \"90342ece_4c6b_4586_a88eccca4ddc4269\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1187 1 0 \"2e22546f_fa30_4c21_b50751c161c8240c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PullOutDistance.SetSize(0);\r\n// }} \"\"\r\n// {{ 1188 1 0 \"2fb420e8_81b2_4c8c_b2e9613093e8189b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1189 1 0 \"7f910433_6505_4c9f_90eba49d26694178\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = i_arr_DispenseDistance.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 1190 1 0 \"486aa89b_4603_4f08_b2176d5971778b02\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_arr_FixedHeights.ElementAt( i -1) - 0.0;\r\n// }} \"\"\r\n// {{ 1191 1 0 \"42cb3a3a_170b_4d3e_84e6e93d9b3fa7de\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = flt_EndLocation + flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 1192 1 0 \"59ef67f4_5ebe_4547_8c5390dc91bfdf4a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = flt_EndLocation + i_flt_PullOutDistance;\r\n// }} \"\"\r\n// {{ 1193 1 0 \"4af62ff4_cec0_4269_b9109dd915d1688b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_EndLocation > i_flt_MaximumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 1194 1 0 \"a4a020df_170f_4d5d_82efab73313e8fdd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_flt_MaximumHeight - 0.5;\r\n// }} \"\"\r\n// {{ 1195 1 0 \"4af62ff4_cec0_4269_b9109dd915d1688b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1196 1 0 \"4cc6e44e_357e_4342_861ede9ac2c3c8f2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = flt_EndLocation + 0.0;\r\n// }} \"\"\r\n// {{ 1197 1 0 \"0dd8798b_79b8_42e3_bc47c5f7d790d50c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = flt_PullOut - flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 1198 1 0 \"90b840ad_9a81_40d9_962087c3f9495fd5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = flt_PullOut - i_arr_FixedHeights.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 1199 1 0 \"86baedbd_c250_48ff_b4310649d0264411\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_PullOut < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1200 1 0 \"cb31f331_a41a_40ce_9d6a51962c9b75f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = 0.0;\r\n// }} \"\"\r\n// {{ 1201 1 0 \"86baedbd_c250_48ff_b4310649d0264411\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1202 1 0 \"a4b8aed6_35b1_4c3e_8d3d8e415ded46b4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_PullOutDistance.AddAsLast(flt_PullOut);\r\n// }} \"\"\r\n// {{ 1203 1 0 \"2fb420e8_81b2_4c8c_b2e9613093e8189b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1204 1 0 \"927184eb_341c_43de_a4b857abcc83627c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"po\"), arr_PullOutDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1205 1 0 \"e123df16_9080_4a13_8d6a0414f7717284\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1206 1 0 \"90342ece_4c6b_4586_a88eccca4ddc4269\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1207 1 0 \"6e42d6df_eb82_4deb_81487939713adacb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"ab2d3376_d54b_4aec_837fced1e9822708\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ip\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1209 1 0 \"906469f1_6849_47cf_ba8e84854c715086\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1210 1 0 \"6e42d6df_eb82_4deb_81487939713adacb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1211 1 0 \"4bd4d566_09d3_4eeb_ae51b407e5edd648\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"e2771e3b_b1a3_4496_b0502857533a02af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"fp\"), i_arr_DispenseDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"08fd3775_f1e6_4f39_8119960761d60f4a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1214 1 0 \"4bd4d566_09d3_4eeb_ae51b407e5edd648\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1215 1 0 \"9bb18d61_9f92_468d_9ba22b061cb87513\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1216 1 0 \"6f96864e_13f7_4996_bc0a57f6c6105360\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"dv\"), i_flt_DispenseVolume, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 1217 1 0 \"9bc03bc5_6f82_4ad4_b95a35bc53f7319c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1218 1 0 \"9bb18d61_9f92_468d_9ba22b061cb87513\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1219 1 0 \"5b4536c1_05e1_4f3d_8d6fed936c8d1076\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"334387ff_6e86_473a_a1a1d399f4ab6a70\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ds\"), i_flt_DispenseSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1221 1 0 \"d4b4ce63_50b4_46a2_98b5044bb934ed50\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1222 1 0 \"5b4536c1_05e1_4f3d_8d6fed936c8d1076\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1223 1 0 \"10674c74_91d8_4eb0_a9f511fb67c290ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"2fca4f21_55d7_485f_b2ea7dc0c8141742\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ss\"), i_flt_CutOffSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1225 1 0 \"6f3ee5a1_1e5c_464e_a0e97def45a36f0b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1226 1 0 \"10674c74_91d8_4eb0_a9f511fb67c290ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1227 1 0 \"2d3f375f_4e6b_4dff_aa4441a41adf9c9e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"9e522df7_1d81_4860_91a7d59bfb1f585f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"rv\"), i_flt_StopBackVolume, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1229 1 0 \"7d4b77ff_35b0_4677_b0e3138d71be6d8f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1230 1 0 \"2d3f375f_4e6b_4dff_aa4441a41adf9c9e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1231 1 0 \"bf129f6d_e03a_4fa3_ae7ae6b0fecef6a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"970f24f2_0529_4784_b70736cdf6dd60f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ta\"), i_flt_TransportAirGap, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1233 1 0 \"3c010810_892c_4b4c_b25b1dc8c965a3ec\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1234 1 0 \"bf129f6d_e03a_4fa3_ae7ae6b0fecef6a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1235 1 0 \"6061753c_cb73_495f_9997c6ed0729fda4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1236 1 0 \"b544a336_f976_4e62_a8cff65ed76dfc0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ba\"), i_flt_BlowoutVolume, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1237 1 0 \"55f1f238_61b3_4e5b_b4dfc985839a646d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1238 1 0 \"6061753c_cb73_495f_9997c6ed0729fda4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1239 1 0 \"a46062d2_d0e1_43b4_9ac6749337c65a11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"d2224e13_b6e6_421b_b5578b1145257546\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"lm\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"5240ddc4_d3cf_4f72_954e3ebcdacbd307\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(0, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"8d333774_fe4d_416b_afaae1d092371b8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1243 1 0 \"c8c16037_40d1_4cdd_84ad22c14233fb40\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1244 1 0 \"a46062d2_d0e1_43b4_9ac6749337c65a11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"a4bec335_e315_4dc8_9c4cfb7ab1ec0d93\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1246 1 0 \"3a9a13a6_1028_4c34_8ff048ce070d24db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"ll\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"531368ff_68c4_4ae7_b70b7a7d17ca9f7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"8dd7f90d_9e57_488e_89048efbb79d89e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1249 1 0 \"e7bc76dd_3d32_4303_a0aa77edac5e9bb9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1250 1 0 \"a4bec335_e315_4dc8_9c4cfb7ab1ec0d93\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1251 1 0 \"47c74384_f24d_4b07_a5fa91777f6d492c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1252 1 0 \"e083f3d6_9ce6_4dfd_bb6a04355d64b64f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"de\"), i_flt_SwapSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1253 1 0 \"5c953267_f760_49a6_aee8d352774b85e5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1254 1 0 \"47c74384_f24d_4b07_a5fa91777f6d492c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1255 1 0 \"6a2f714f_def7_4bc2_a1f83dd0586acec9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"85aaedc1_a273_49f4_8eb286a549d33b0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"wt\"), i_int_SettlingTime, 10.0, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1257 1 0 \"7c397c25_5fc1_4b67_91457ff026284165\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1258 1 0 \"6a2f714f_def7_4bc2_a1f83dd0586acec9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1259 1 0 \"f53dd4fc_08fa_4bee_b39caba107d27cb0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"12ead56e_2517_441c_a28b90d8aa7b73e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 1261 1 0 \"3d91ae8c_6d15_4348_bdafd19ea49a8fd4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"f53dd4fc_08fa_4bee_b39caba107d27cb0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1263 1 0 \"a0eebc7e_ac51_4834_abcc981793f4b680\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1264 1 0 \"b2a1f2a9_36d6_4dad_a32b81ce5b8858e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mc\"), 0, 1, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1265 1 0 \"85d591a8_9383_4805_81a98955b4abf25b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1266 1 0 \"a0eebc7e_ac51_4834_abcc981793f4b680\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1267 1 0 \"8a291632_8eca_4e08_8cdf27a6cedeec13\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"1f9785eb_2001_40cb_9473b567e20ec365\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mp\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1269 1 0 \"847c778a_ac1b_4aee_81d00ab9b83fc46a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1270 1 0 \"8a291632_8eca_4e08_8cdf27a6cedeec13\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1271 1 0 \"15c29705_93bd_4b97_a739c2af86140b30\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1272 1 0 \"71fd6a05_a86e_40d6_b700c515ddb3c9a5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ms\"), 10.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1273 1 0 \"fcc79538_cdab_4a07_9348bb8ea4302231\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1274 1 0 \"15c29705_93bd_4b97_a739c2af86140b30\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1275 1 0 \"941ddda0_8d5b_492a_8bf3a9df0fa556f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"a9e2f4bf_cfbc_4809_99a57d1b784391cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mh\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1277 1 0 \"cda1c7bf_d9cd_4ff3_b5630d95c20c7bce\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1278 1 0 \"941ddda0_8d5b_492a_8bf3a9df0fa556f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1279 1 0 \"a54fe17f_07db_4279_9349d68e4bc7b749\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"bc3fa4b4_398c_4a2d_ac70d355285bfba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gi\"), Translate(\"000&\"));\r\n// }} \"\"\r\n// {{ 1281 1 0 \"a1a2b992_3515_4ed8_970cb6aea952ad48\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1282 1 0 \"a54fe17f_07db_4279_9349d68e4bc7b749\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1283 1 0 \"17294fd9_66a8_4cdb_ba00d704ae49fe99\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1284 1 0 \"1d846927_e3e1_4ae0_a255020d60448a30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gj\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1285 1 0 \"9e3bb943_24d9_43ac_a325e51d1be29a82\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1286 1 0 \"17294fd9_66a8_4cdb_ba00d704ae49fe99\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1287 1 0 \"bc796b7f_660d_4a1a_8656c09fd43a3ece\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"f42346d6_88a9_4f48_85480cdea291fa66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gk\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1289 1 0 \"7c689a88_8efd_447d_9911e36e5c8e4839\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1290 1 0 \"bc796b7f_660d_4a1a_8656c09fd43a3ece\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1291 1 0 \"584ae0e5_7549_4317_926f0fc82092e1a6\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 1292 1 0 \"f005f53c_e288_4d64_aeeff0173eb58a7e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1293 1 0 \"7c4da3c4_0460_4237_b1968cb6c39095ed\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1294 1 0 \"4a51f3a0_26ad_4914_85b91e0bd363f2b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1295 1 0 \"7c4da3c4_0460_4237_b1968cb6c39095ed\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1296 1 0 \"a889b507_3d5a_4548_b3e72ffa83d0a6f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1297 1 0 \"55275ff0_1d26_47e3_b35175781c810529\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1298 1 0 \"9b3c6270_dd7d_4c2c_83f3a9fc711a5aec\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"9b3c6270_dd7d_4c2c_83f3a9fc711a5aec\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"d7fd3ec9_6217_41e1_beec4f05af2be718\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1300 1 0 \"55275ff0_1d26_47e3_b35175781c810529\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1301 1 0 \"b54e68b4_182a_4b66_9051ad03451c9ed8\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b54e68b4_182a_4b66_9051ad03451c9ed8\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 1302 1 0 \"55275ff0_1d26_47e3_b35175781c810529\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPDispenseFromFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelPatternWithTips\" \"Begin\"\r\nfunction GetChannelPatternWithTips( device & ML_STAR, variable i_bln_1mL, variable & o_str_ChannelPattern ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_ReturnValue;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable str_ParamSearch;\r\nprivate variable bln_ParamFound;\r\nprivate variable arr_Values[];\r\nprivate variable i;\r\nprivate variable int_TotalChannels;\r\n// {{ 5 \"GetChannelPatternWithTips\" \"InitLocals\"\r\no_str_ChannelPattern = 0;\r\n// }} \"\"\r\n// {{{ 7 1 0 \"685a90b8_5bd8_4e8d_896348227ad0254a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 8 1 0 \"f448afd2_5408_4aaa_95b328ed4be782b1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 9 1 0 \"beed1be9_52ff_4a61_a7447a4f06aa07e9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 10 1 0 \"4ff3cc24_72d1_485c_9028b06261a3c96f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 12 1 0 \"e081d5d2_e860_45d3_992912f9aff339ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 13 1 0 \"d1c6e948_8dbe_4412_b076a2a50066822f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 14 1 0 \"e0de645f_8428_41eb_ace4f9f33b936033\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 15 1 0 \"6d43d3c7_e8f5_448d_8afbc99ac60e1d85\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 16 1 0 \"89ad365f_7c22_4a61_afad7218220cabc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 17 1 0 \"5a333338_4133_476b_aa76a889adae91c9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 18 1 0 \"beed1be9_52ff_4a61_a7447a4f06aa07e9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 19 1 0 \"b90edf04_c68c_4969_a89d0444d23d0540\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 20 1 0 \"b1ba102c_8e3b_4041_865b541b6f34481b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalChannels = G_FW_PIP_COM_TotalChannels;\r\n// }} \"\"\r\n// {{ 21 1 0 \"b90edf04_c68c_4969_a89d0444d23d0540\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 22 1 0 \"91b818aa_b1bf_4183_962189df3f317a22\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalChannels = G_FW_XL_COM_TotalChannels;\r\n// }} \"\"\r\n// {{ 23 1 0 \"b90edf04_c68c_4969_a89d0444d23d0540\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 24 1 0 \"7b52f4d3_559b_4506_8364b0e713ff0e04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 25 1 0 \"dceee657_231a_4553_8b1bf76052c8a67c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 26 1 0 \"298e2ef7_8360_40bf_ac264f553af3fd14\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 27 1 0 \"08ee324f_2230_43e2_8d21e45109dd19b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RT\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 28 1 0 \"682964b7_5518_4a6d_b96ba62fe65a54ff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"rt\");\r\n// }} \"\"\r\n// {{ 29 1 0 \"298e2ef7_8360_40bf_ac264f553af3fd14\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 30 1 0 \"8b3242cd_650d_44e7_919bbde5662bc521\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0UT\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 31 1 0 \"21ce5e9a_f597_430b_ae2b64e717d4e9f7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"ut\");\r\n// }} \"\"\r\n// {{ 32 1 0 \"298e2ef7_8360_40bf_ac264f553af3fd14\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 33 1 0 \"8ea7bfda_3189_436a_bde0a3e7b7551c15\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"8ea7bfda_3189_436a_bde0a3e7b7551c15\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 34 1 0 \"dceee657_231a_4553_8b1bf76052c8a67c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 35 1 0 \"864cc80a_d4e0_4059_a1ad9cbc7857da46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 36 1 0 \"b226956e_e135_44db_8f722c93f7abcfa4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1PMQA\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 37 1 0 \"a067115a_b326_48f4_b05dcd338583d53d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"rt\");\r\n// }} \"\"\r\n// {{ 38 1 0 \"864cc80a_d4e0_4059_a1ad9cbc7857da46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"1034386a_c342_4530_af82d360383ec472\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1LMQA\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 40 1 0 \"c713e5e2_c03e_4d95_a75c46a31b306e6a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"rt\");\r\n// }} \"\"\r\n// {{ 41 1 0 \"864cc80a_d4e0_4059_a1ad9cbc7857da46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 42 1 0 \"607e3d3f_d05b_4d49_89f15e3c753e4eb3\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"607e3d3f_d05b_4d49_89f15e3c753e4eb3\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 43 1 0 \"dceee657_231a_4553_8b1bf76052c8a67c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"6122dcfd_2913_4859_aa68ea59e0390621\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"cf8f2bf7_cc1a_466b_83d216e2edfa5a50\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, str_ParamSearch, 1, 1, int_TotalChannels, bln_ParamFound, arr_Values);\r\n// }} \"\"\r\n// {{ 46 1 0 \"7b52f4d3_559b_4506_8364b0e713ff0e04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 47 1 0 \"6e18099b_9532_4f01_b1a36fd62c43326f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ParamFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 48 1 0 \"7b52f4d3_559b_4506_8364b0e713ff0e04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 49 1 0 \"3a2c02ff_6acb_42ba_9bedba7d9dd696da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ParamFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 50 1 0 \"e5ec7fd0_01b3_47a7_9994dd90de82529c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 51 1 0 \"baf718c1_ab53_485c_8523f010ba46b9a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChannelPattern = StrConcat2(o_str_ChannelPattern, arr_Values.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 52 1 0 \"e5ec7fd0_01b3_47a7_9994dd90de82529c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 53 1 0 \"3a2c02ff_6acb_42ba_9bedba7d9dd696da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 54 1 0 \"9799a1aa_565c_442b_b6bcecd09b224154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChannelPattern = StrFillRight(o_str_ChannelPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelPatternWithTips\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelNumber1mL\" \"Begin\"\r\nfunction GetChannelNumber1mL( device & ML_STAR, variable & o_int_ChannelCount ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetChannelNumber1mL\" \"InitLocals\"\r\no_int_ChannelCount = 0;\r\n// }} \"\"\r\n// {{{ 1 1 0 \"ee1115f2_2185_4e57_86c2c9068af4eb96\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2 1 0 \"19c99046_2834_4c65_880ecc86f7c05a57\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_ChannelCount = G_FW_PIP_COM_TotalChannels;\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelNumber1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelRaster1mL\" \"Begin\"\r\nfunction GetChannelRaster1mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetChannelRaster1mL\" \"InitLocals\"\r\no_flt_ChannelRaster = 0;\r\n// }} \"\"\r\n// {{{ 56 1 0 \"ef4abdb0_b4b2_4c8e_8176a9ea4b72e001\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 57 1 0 \"81c75e37_f80d_44fa_bacfcfbf442eb244\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ChannelRaster = G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelRaster1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96AspirateFromFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable i;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_Value;\r\nprivate variable arr_Params[];\r\nprivate variable str_ReturnValue;\r\nprivate variable str_Params;\r\nprivate variable int_TotalParams;\r\nprivate variable flt_AspirationHeight;\r\n// {{ 5 \"MPH96AspirateFromFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 320 1 0 \"125ab2fe_65ae_4757_858cb391d1ef4e69\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 321 1 0 \"97ff6c48_11ad_4868_ae2a30d5fb4e27e0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 322 1 0 \"baff6322_4392_4921_b7dfcb1ce33f60fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 324 1 0 \"9baa364a_b376_44f0_bb765bf2b4cedd7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 325 1 0 \"e9aa3ade_3d0c_42f6_8575038576f2d248\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 326 1 0 \"395e4af3_6dbf_4ad8_91cb931a77872abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 327 1 0 \"c5995883_ac41_48fe_af95b48f4734858d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 328 1 0 \"39a0212d_54e3_4ddc_94596e9abda5cd38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 329 1 0 \"beaeedc6_ba74_4677_8316a9afce5bac6a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 330 1 0 \"97ff6c48_11ad_4868_ae2a30d5fb4e27e0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 331 1 0 \"d15fd069_601b_41f6_a82e0785efa86f44\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 332 1 0 \"068ff2b6_7c78_4e2c_b01b7737a9670b05\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0EA\");\r\n// }} \"\"\r\n// {{ 333 1 0 \"c62ff9b3_45cb_4c92_abe935deddd7e79a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 334 1 0 \"deccb892_b990_4faf_b9b0ba24dc11bf0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"aa\"), Translate(\"2\"));\r\n// }} \"\"\r\n// {{ 335 1 0 \"10441135_5242_4452_92e482bec330c447\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 336 1 0 \"c62ff9b3_45cb_4c92_abe935deddd7e79a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"cc4415b6_1121_4aa6_bbc312786aa79266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 338 1 0 \"b76feddf_f138_4966_96fb00c01cc07feb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"xs\"), i_flt_XCoord, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 339 1 0 \"9b047e7f_9a03_4e32_82d75e378beebb50\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 340 1 0 \"cc4415b6_1121_4aa6_bbc312786aa79266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 341 1 0 \"b70d41f0_cbb4_4d54_b6c5d631b0e3ea5e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 342 1 0 \"2feb26e2_8361_4d74_8de17701b3320bfe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_XCoord > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 343 1 0 \"40975c28_8c1f_44ca_b566ba60231cd564\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"xd\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 344 1 0 \"2feb26e2_8361_4d74_8de17701b3320bfe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 345 1 0 \"2da1ca40_6a67_453a_8476c9a0af81002b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"xd\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 346 1 0 \"2feb26e2_8361_4d74_8de17701b3320bfe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 347 1 0 \"db42c8c9_83f2_4c10_985666d5fbb1869c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 348 1 0 \"b70d41f0_cbb4_4d54_b6c5d631b0e3ea5e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 349 1 0 \"9cbdd8a3_b471_48f5_9babf85e16203f11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 350 1 0 \"36ba39e1_da7e_4c37_a9b2f8a945ec50ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"yh\"), i_flt_YCoord, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 351 1 0 \"ae116732_532a_468d_be15e03e64f3b368\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 352 1 0 \"9cbdd8a3_b471_48f5_9babf85e16203f11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 353 1 0 \"fe2f73b3_aaa5_43ab_929de045eb573b6f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 354 1 0 \"d63b6bea_8a9c_42b2_bd3524d6f16d557c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zh\"), i_flt_StartTraverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 355 1 0 \"adbb02ab_dad5_4db9_92691a68c7c5cd4f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 356 1 0 \"fe2f73b3_aaa5_43ab_929de045eb573b6f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 357 1 0 \"1831f549_9dab_40fc_b7219bccb8f291b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 358 1 0 \"085cf00d_a7b9_40c9_862c379dbd84c972\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"ze\"), i_flt_EndTranverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 359 1 0 \"a3032fe8_1ba4_4bc0_b344a3db010b4ed5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 360 1 0 \"1831f549_9dab_40fc_b7219bccb8f291b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 361 1 0 \"db803f06_4ae9_4c76_a5609efc812cf28c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 362 1 0 \"313cf9b7_8967_408f_a2af8ea806b3ce02\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"lz\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 363 1 0 \"4aed9df6_a71f_43c5_859cc281b0b50393\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 364 1 0 \"db803f06_4ae9_4c76_a5609efc812cf28c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 365 1 0 \"59d00afe_cbef_493c_bf5d370ac1a29981\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 366 1 0 \"310979e9_8f3e_4db7_9a35918de9f2be1b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AspirationHeight = i_flt_AspHeight + i_flt_ZBottom;\r\n// }} \"\"\r\n// {{{ 367 1 0 \"c1e4301f_7149_4424_bed6a90a55127ba9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zt\"), flt_AspirationHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 368 1 0 \"01cf9442_514f_4a1c_909984a4d46fbb9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 369 1 0 \"59d00afe_cbef_493c_bf5d370ac1a29981\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 370 1 0 \"bd86d9b4_ae46_4565_9ae3d314f0d584ae\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 371 1 0 \"a8991def_3ea2_4bef_906aa0b16b9070f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"pp\"), i_flt_PullOutDistance, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 372 1 0 \"ea5840b0_ec1d_4217_a00eaa91c93d4723\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 373 1 0 \"bd86d9b4_ae46_4565_9ae3d314f0d584ae\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"bb4d38c0_a318_4304_8987a35191a940fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 375 1 0 \"4c54cd64_37b5_45c1_ba43face60c4191f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zm\"), i_flt_MinimumHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 376 1 0 \"43b7a4e7_157e_4150_9efaf2954ae3c648\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 377 1 0 \"bb4d38c0_a318_4304_8987a35191a940fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 378 1 0 \"066676bc_5222_47ca_b3a3459b7539a522\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 379 1 0 \"6474aa7a_889b_4f47_84389fb7b9bcb766\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zv\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 380 1 0 \"57ded6af_0fdf_461e_871dc91e72d1358f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 381 1 0 \"066676bc_5222_47ca_b3a3459b7539a522\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 382 1 0 \"7688b5e9_b526_452a_b4a53c6b604b884b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 383 1 0 \"51d61dcf_8b04_40ca_9a3f200cf1eb042b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zq\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 384 1 0 \"b30999f6_2bcb_49fd_83d6553ad99369d8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 385 1 0 \"7688b5e9_b526_452a_b4a53c6b604b884b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 386 1 0 \"8d314fdb_7580_4cc7_b3a00d374be7f3df\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 387 1 0 \"97b98794_9d8e_402b_bc4737939c2edf53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"iw\"), i_flt_SubmergeDepth, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 388 1 0 \"bbf849d1_1a09_4955_971c8bcd179db9e3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 389 1 0 \"8d314fdb_7580_4cc7_b3a00d374be7f3df\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 390 1 0 \"8653b0b8_ccf1_445c_b70e0b448fe01d03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 391 1 0 \"db6e942b_349b_4519_8e57ba8fa3a410b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"ix\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 392 1 0 \"eca9e048_bdfe_4639_b461bef5eddecd85\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 393 1 0 \"8653b0b8_ccf1_445c_b70e0b448fe01d03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 394 1 0 \"aeeffc1a_5dc7_444e_ab4ae02b35b241f1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 395 1 0 \"86e8ccc7_6215_4554_b8b8ece7714a8115\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"fh\"), i_flt_AspirateDistance, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 396 1 0 \"34f3681c_b021_4849_b2bd670976b0e3a5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 397 1 0 \"aeeffc1a_5dc7_444e_ab4ae02b35b241f1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"9438a31f_391e_494d_bff0529691367be2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 399 1 0 \"d86bd6f0_33a1_43a2_895dadf87351ac96\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"af\"), i_flt_AspirateVolume, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 400 1 0 \"cf00b876_5f4b_4c61_95c9a3b59e26b2aa\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 401 1 0 \"9438a31f_391e_494d_bff0529691367be2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 402 1 0 \"8690dc85_171b_4afb_a56b7c0808b0a4e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 403 1 0 \"fab371b3_7175_4556_9ed2f34f549273a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"ag\"), i_flt_AspirateSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 404 1 0 \"3ed2ef57_79e7_4b6e_a8316dd6282a0f29\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 405 1 0 \"8690dc85_171b_4afb_a56b7c0808b0a4e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"5f2272c3_e47f_4430_bd3c7b85fe149974\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 407 1 0 \"e3530b53_ae48_4427_bdd6e1e7fb59e9cd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"vt\"), i_flt_TransportAirGap, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 408 1 0 \"41827f0b_02a2_4039_a8dc836b37197dcc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 409 1 0 \"5f2272c3_e47f_4430_bd3c7b85fe149974\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 410 1 0 \"7abb325e_cdeb_4e7e_aa0b196ce239d7b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 411 1 0 \"bdde2684_b4d0_4cce_84aa7fc9a0cb040f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"bv\"), i_flt_BlowoutVolume, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 412 1 0 \"8a670d22_f7c7_4cee_9150531bf1c562e8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 413 1 0 \"7abb325e_cdeb_4e7e_aa0b196ce239d7b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 414 1 0 \"a5e7bd35_6b4c_4959_9448d53278ad24b0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 415 1 0 \"932118bb_1ffa_4d09_be8136b23fef970f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"wv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 416 1 0 \"774a2dbe_8d5c_45d8_b9e56a7c9fd9f462\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 417 1 0 \"a5e7bd35_6b4c_4959_9448d53278ad24b0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 418 1 0 \"4cb11be0_28f3_4709_a2832cc4a49130e6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 419 1 0 \"eef940ff_687f_462f_9618ca276b91dbfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"cm\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 420 1 0 \"5bf30e84_92b9_4d37_96e9d4618e78923c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 421 1 0 \"4cb11be0_28f3_4709_a2832cc4a49130e6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 422 1 0 \"6a3da7d5_f574_4de3_914bacb63efc246f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 423 1 0 \"315e489c_ffba_4dcf_93b66c246d2980e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"cs\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 424 1 0 \"b370ae62_a390_49b2_bb2e4a0742c32fcf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 425 1 0 \"6a3da7d5_f574_4de3_914bacb63efc246f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 426 1 0 \"6acd6af0_ca05_4bb0_93f79e88cc687da0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 427 1 0 \"96ae202d_ced0_4d9f_bdf41db06085849b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"bs\"), i_flt_SwapSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 428 1 0 \"570f420a_c452_47ec_96a3896304f21806\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 429 1 0 \"6acd6af0_ca05_4bb0_93f79e88cc687da0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 430 1 0 \"dce55014_2c22_4b0e_9debe7d607c9578d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 431 1 0 \"9ba31cfe_dc11_4656_be92dfc80274dd54\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"wh\"), i_int_SettlingTime, 10.0, 2, str_Value);\r\n// }} \"\"\r\n// {{ 432 1 0 \"36aa8c94_6c6a_4d6c_bac711224c276c97\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 433 1 0 \"dce55014_2c22_4b0e_9debe7d607c9578d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 434 1 0 \"ce12465f_ac0f_4aa7_949d2550cabe0b02\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 435 1 0 \"03f11220_ea9c_4d71_999aeec655131db1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"hv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 436 1 0 \"c77ae46b_0748_453b_8130d8b2b4cb6f24\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 437 1 0 \"ce12465f_ac0f_4aa7_949d2550cabe0b02\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 438 1 0 \"ece62b5b_de50_4915_95b4339b3bdb5fc4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 439 1 0 \"a2b8751c_aa7e_477b_b4017e7506c18e92\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"hc\"), Translate(\"00\"));\r\n// }} \"\"\r\n// {{ 440 1 0 \"807d7090_f276_4e25_9763c054584c1523\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 441 1 0 \"ece62b5b_de50_4915_95b4339b3bdb5fc4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 442 1 0 \"d23bde29_8714_4c7c_a071314eaf88e150\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 443 1 0 \"e02ec5a6_d7d7_439a_ad27d81db20c5645\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"hp\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 444 1 0 \"e5a2adcc_6e60_4c86_98283414f0987976\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 445 1 0 \"d23bde29_8714_4c7c_a071314eaf88e150\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 446 1 0 \"4ba25f8c_fdc4_4c2d_94dc9bca417a9041\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 447 1 0 \"6ad2e74e_45d7_4593_8bcea7161ecfaddc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"mj\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 448 1 0 \"0c2fc195_d05a_4f12_87ebfbae0445fe55\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 449 1 0 \"4ba25f8c_fdc4_4c2d_94dc9bca417a9041\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 450 1 0 \"fb987632_dfdb_4962_be85cea7f174b9c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 451 1 0 \"5be7d4f1_0974_472f_bf2b38d139cb5f9c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"hs\"), 3.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 452 1 0 \"3f875822_3af9_4d63_848e168e5641bab7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 453 1 0 \"fb987632_dfdb_4962_be85cea7f174b9c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 454 1 0 \"adc57b3f_4925_4422_a8f8005aa0221416\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 455 1 0 \"f0305ae4_a67b_4c76_b8770c3f1a3378b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"cw\"), Translate(\"FFFFFFFFFFFFFFFFFFFFFFFF\"));\r\n// }} \"\"\r\n// {{ 456 1 0 \"63c65cd8_99fd_43ca_88de37f57467e7d7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 457 1 0 \"adc57b3f_4925_4422_a8f8005aa0221416\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 458 1 0 \"1485dde8_a83e_4471_a1e80dbdc4d926d3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 459 1 0 \"7b758703_9ed7_4122_aecd787b33008ff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gj\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 460 1 0 \"f2dbd7c9_428d_4c9c_9af4e9f74dd3313f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 461 1 0 \"1485dde8_a83e_4471_a1e80dbdc4d926d3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 462 1 0 \"f5bbd450_a342_44ac_b4ae4f543035e9be\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 463 1 0 \"aa7e4be5_0912_4b11_baf3c47beb3bdc6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gk\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 464 1 0 \"12928fdc_8973_45c7_9a0341e0046fd27c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 465 1 0 \"f5bbd450_a342_44ac_b4ae4f543035e9be\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 466 1 0 \"5a31fcba_f7ab_4e9e_8a5d6498713e0323\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 467 1 0 \"24192c24_cb2a_48bb_9f6929d3cedf607d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 468 1 0 \"d7abe2dd_54c8_43dc_a9c72298d2d61ea9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 469 1 0 \"d3a39bff_afc5_406d_abb208bc8386b0d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 470 1 0 \"d7abe2dd_54c8_43dc_a9c72298d2d61ea9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 471 1 0 \"c3cad658_246e_428a_b007681f16c08eb4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 472 1 0 \"e673ffda_6491_42a7_9e5f820d7de110cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 473 1 0 \"2ba18b80_0c29_44af_9e46d7297c8fcffc\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"2ba18b80_0c29_44af_9e46d7297c8fcffc\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 474 1 0 \"acabd556_0619_4c34_b60787ea13e43d31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 475 1 0 \"e673ffda_6491_42a7_9e5f820d7de110cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96AspirateFromFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96DispenseFromFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable str_Params;\r\nprivate variable i;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalParams;\r\nprivate variable int_Count;\r\nprivate variable str_Value;\r\nprivate variable arr_Params[];\r\nprivate variable int_DispenseMode;\r\nprivate variable flt_DispenseHeight;\r\n// {{ 5 \"MPH96DispenseFromFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 477 1 0 \"b8207341_307b_49ae_8cebd2a9e4eb1bfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 478 1 0 \"881c0c8d_8405_4361_8c1ceb936f5b4fcc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 479 1 0 \"5237e25a_8fb6_4346_969c1025645cb640\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 481 1 0 \"4d810c55_85fa_4cb8_8cb30849ae680748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 482 1 0 \"e50d703a_dc70_4dfd_a8b872c53474c28c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 483 1 0 \"d02f441a_debe_47a4_9febba42d0c00948\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 484 1 0 \"3396bd98_224d_4b7d_b5a38409d46a01eb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 485 1 0 \"06eaf030_0902_4d58_be219a8335c7344b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 486 1 0 \"4d8be66a_1f18_43e6_869dced0c451dd34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 487 1 0 \"881c0c8d_8405_4361_8c1ceb936f5b4fcc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 488 1 0 \"479b046a_5a27_4c80_999441059e7cba81\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 489 1 0 \"7f86b54f_4632_4328_8447bf7822b1f9e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0ED\");\r\n// }} \"\"\r\n// {{ 490 1 0 \"b70c5ead_6dee_4618_9161fa0636bc4969\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 491 1 0 \"8c2414c4_2e1d_4561_b85a5e7e1c3620ef\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 1;\r\n// }} \"\"\r\n// {{ 492 1 0 \"c048cd63_c8bc_43d2_84fd8cbfdc33b660\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 493 1 0 \"0044f330_3b60_42d1_ad965ccd12429a80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 0;\r\n// }} \"\"\r\n// {{ 494 1 0 \"c048cd63_c8bc_43d2_84fd8cbfdc33b660\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 495 1 0 \"1cc10116_79e9_4471_819b227d649307a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 1)\r\n{\r\n// }} \"\"\r\n// {{ 496 1 0 \"fbfaa2b4_c26a_402f_b1f8937d97a02eea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 2;\r\n// }} \"\"\r\n// {{ 497 1 0 \"1cc10116_79e9_4471_819b227d649307a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 498 1 0 \"cd2846ea_aab6_48e0_98c5d2f303384787\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 2)\r\n{\r\n// }} \"\"\r\n// {{ 499 1 0 \"fd7cc30f_32a6_40b3_95f2c4920bd26a3b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 0;\r\n// }} \"\"\r\n// {{ 500 1 0 \"cd2846ea_aab6_48e0_98c5d2f303384787\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 501 1 0 \"c67dba3c_c449_4534_a17bcd4be262dafb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 3)\r\n{\r\n// }} \"\"\r\n// {{ 502 1 0 \"03d2a998_1fa3_4025_a12b95c22f3316b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 1;\r\n// }} \"\"\r\n// {{ 503 1 0 \"c67dba3c_c449_4534_a17bcd4be262dafb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"5920f2b5_f16f_4f2a_887c68f3731dbe3a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 4)\r\n{\r\n// }} \"\"\r\n// {{ 505 1 0 \"33c4f68e_66e2_4b3f_af169ed6cba4f935\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 2;\r\n// }} \"\"\r\n// {{ 506 1 0 \"5920f2b5_f16f_4f2a_887c68f3731dbe3a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 507 1 0 \"61d1e91e_8d0a_4b29_92aed7bfbdc9892b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 5)\r\n{\r\n// }} \"\"\r\n// {{ 508 1 0 \"91fd8c85_36e5_4467_99bf071f23174ad3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 3;\r\n// }} \"\"\r\n// {{ 509 1 0 \"61d1e91e_8d0a_4b29_92aed7bfbdc9892b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 510 1 0 \"e5b9ee81_a6c7_4991_b84ec98fe2b34542\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"da\"), int_DispenseMode);\r\n// }} \"\"\r\n// {{ 511 1 0 \"49bddb75_87bf_4efa_832bedeae601e59d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 512 1 0 \"b70c5ead_6dee_4618_9161fa0636bc4969\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"fa821c1e_4907_4cf4_944c8aa24d06e363\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 514 1 0 \"0ea9db37_2b9a_4157_9276dec2cac440d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"xs\"), i_flt_XCoord, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 515 1 0 \"f00ee213_9254_4ea8_b0914144492c95cd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 516 1 0 \"fa821c1e_4907_4cf4_944c8aa24d06e363\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"e4b1fa86_3046_4194_9a1a215a92e86b3e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 518 1 0 \"388b0a72_ef7e_42be_b2336fca70413316\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_XCoord > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 519 1 0 \"84257e64_9028_4e10_853ba6eebf56016f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"xd\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 520 1 0 \"388b0a72_ef7e_42be_b2336fca70413316\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 521 1 0 \"d87b5ade_c186_4311_ab52b4eee78aeecd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"xd\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 522 1 0 \"388b0a72_ef7e_42be_b2336fca70413316\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 523 1 0 \"52ebc6b2_74d4_43c8_857ec5fe9ebdc0e4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 524 1 0 \"e4b1fa86_3046_4194_9a1a215a92e86b3e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"5d6b9019_9376_4abe_8bc27b7a932d45e9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 526 1 0 \"3fa6576a_763f_4c22_b557a490f7bf293c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"yh\"), i_flt_YCoord, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 527 1 0 \"8585085b_c1bb_4092_b7c52607f4929ba8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 528 1 0 \"5d6b9019_9376_4abe_8bc27b7a932d45e9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 529 1 0 \"d06c7e77_9f70_4fa9_ac12c4f253814ca1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 530 1 0 \"21fd49be_8710_4552_a071a0a14e969770\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zm\"), i_flt_MinimumHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 531 1 0 \"e5a0274b_3d49_4bfc_987070f5c0b747fe\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 532 1 0 \"d06c7e77_9f70_4fa9_ac12c4f253814ca1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 533 1 0 \"77c5032a_3e32_4fdd_9681358c07342a08\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 534 1 0 \"e87c608d_f130_431c_aaf433938752898e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zv\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 535 1 0 \"4e0928d9_7717_4c31_962d8c272a5cb684\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 536 1 0 \"77c5032a_3e32_4fdd_9681358c07342a08\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 537 1 0 \"d8b4069b_47ce_409c_be8af6b743e082ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 538 1 0 \"5003b6b4_dbca_44aa_8fc350c0c82d501d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zq\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 539 1 0 \"e03ce2e9_64bf_4c64_b869d01008fd3a21\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 540 1 0 \"d8b4069b_47ce_409c_be8af6b743e082ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 541 1 0 \"07ef1005_b933_4cc7_9a530c92b151ca76\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 542 1 0 \"4e16f3c3_2590_413e_9c26931010eff6da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"lz\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 543 1 0 \"44801acb_1a0b_4d71_a78618061e7d16d3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 544 1 0 \"07ef1005_b933_4cc7_9a530c92b151ca76\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 545 1 0 \"a0dbdcac_d44f_4def_a5d073bf9c6afc19\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 546 1 0 \"46ab9a5e_7490_4266_90bcf052b16a07e8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = i_flt_DispHeight + i_flt_ZBottom;\r\n// }} \"\"\r\n// {{{ 547 1 0 \"c31efaf2_33ed_49b8_b13fe6b232acb8d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zt\"), flt_DispenseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 548 1 0 \"d17bd6ba_dd80_4a35_a6e31e2173e96d92\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 549 1 0 \"a0dbdcac_d44f_4def_a5d073bf9c6afc19\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 550 1 0 \"ab4aff20_a74f_42ae_98f92befe3aa2442\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 551 1 0 \"813db301_77de_4065_93466f6e357a93b4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"pp\"), i_flt_PullOutDistance, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 552 1 0 \"578f5a07_3e30_4eb5_8dd5a3b06182172c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 553 1 0 \"ab4aff20_a74f_42ae_98f92befe3aa2442\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 554 1 0 \"c9df9ba8_d5ad_434c_9dbfa5980f36532e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 555 1 0 \"5b4abfee_af3b_486a_ba4ea4c16b872b09\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"iw\"), i_flt_SubmergeDepth, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 556 1 0 \"55e18cd8_1158_41b2_9fb3168a259bfde1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 557 1 0 \"c9df9ba8_d5ad_434c_9dbfa5980f36532e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 558 1 0 \"f4a4d167_574a_4ac0_8daf0aa97323ccf9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 559 1 0 \"b32856db_4022_4b8d_8fef073762e13c25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"ix\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 560 1 0 \"76ba8cc4_809e_4d4c_9facb85e26a304d7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 561 1 0 \"f4a4d167_574a_4ac0_8daf0aa97323ccf9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 562 1 0 \"87d3187f_6dba_489c_835ee6120303b1aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 563 1 0 \"95a49c48_a94a_48ce_b3f7bdb32f7efbca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"fh\"), i_flt_DispenseDistance, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 564 1 0 \"228011eb_2e4b_4288_9a0b72c283c4b662\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 565 1 0 \"87d3187f_6dba_489c_835ee6120303b1aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 566 1 0 \"18c3f3d9_57b7_4fc8_94efa0177359028b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 567 1 0 \"f75372c1_3d6f_4159_a0be0cf87437b236\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"zh\"), i_flt_StartTraverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 568 1 0 \"bd7605c1_ec23_4855_a77edea96b55fa75\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 569 1 0 \"18c3f3d9_57b7_4fc8_94efa0177359028b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 570 1 0 \"d05625ac_1483_46c8_9f5b105c0c145fc8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 571 1 0 \"6cf0ec28_f451_4abd_a2e371181db24b06\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"ze\"), i_flt_EndTranverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 572 1 0 \"71b10552_7adc_43f7_a338545ad221c128\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 573 1 0 \"d05625ac_1483_46c8_9f5b105c0c145fc8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 574 1 0 \"0bc5cef9_c7d8_4335_bc22f62db71764a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 575 1 0 \"0a099b12_73fb_4177_a1f0f2ca74b07915\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"df\"), i_flt_DispenseVolume, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 576 1 0 \"ad628400_91bd_4b9e_bbaeca2e57a2ac0c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 577 1 0 \"0bc5cef9_c7d8_4335_bc22f62db71764a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 578 1 0 \"047e30f7_5b85_4ab8_a650a506e61b726f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 579 1 0 \"957f27e0_0d6a_4f41_b685417f6be4957e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"dg\"), i_flt_DispenseSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 580 1 0 \"e00b052a_b9c0_47b1_b87fbce0553a9c5a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 581 1 0 \"047e30f7_5b85_4ab8_a650a506e61b726f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 582 1 0 \"a3b9c87a_cee0_478d_b227e7b12919ddcd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 583 1 0 \"9e1d1968_85bc_4a1f_b0bc9629f7515232\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"es\"), i_flt_CutOffSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 584 1 0 \"14bb715d_62e7_4edd_a2ae71cd5be80584\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 585 1 0 \"a3b9c87a_cee0_478d_b227e7b12919ddcd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 586 1 0 \"6a5a29a7_d3ff_465f_8ab1bbd75d801aa1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 587 1 0 \"140d7d1f_1c79_4fa4_a3da4ec0c98137da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"ev\"), i_flt_StopBackVolume, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 588 1 0 \"7a0822eb_94e9_4d6e_bc40ce62ebeb35b4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 589 1 0 \"6a5a29a7_d3ff_465f_8ab1bbd75d801aa1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 590 1 0 \"a65d8cd5_6bf3_42d5_b498be035a64e0ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 591 1 0 \"24eced1c_f486_496d_a53148d0bfd20e34\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"vt\"), i_flt_TransportAirGap, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 592 1 0 \"007156bd_79db_42e2_b713718463832de1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 593 1 0 \"a65d8cd5_6bf3_42d5_b498be035a64e0ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 594 1 0 \"84da6875_f937_40f5_b829d689ab6bb246\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 595 1 0 \"69934ee8_b922_4f97_9b3e863955e4d808\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"bv\"), i_flt_BlowoutVolume, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 596 1 0 \"653fdf89_1df4_4688_86a9fab106508d68\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 597 1 0 \"84da6875_f937_40f5_b829d689ab6bb246\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 598 1 0 \"ffcdf493_1347_49c5_a7a22baef1ce37a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 599 1 0 \"4399907c_1680_4646_b0ba98115a1de27c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"wv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 600 1 0 \"6a747a8a_81b0_4be9_bfed66f893362ea5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 601 1 0 \"ffcdf493_1347_49c5_a7a22baef1ce37a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 602 1 0 \"8e202ab7_e387_4ccd_b0e5bb9e53534df9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 603 1 0 \"d3217856_5f01_46f5_bf4eedd35f32fe02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"cm\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 604 1 0 \"0acb3463_587a_4392_82481fe01896afa9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 605 1 0 \"8e202ab7_e387_4ccd_b0e5bb9e53534df9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 606 1 0 \"b878c225_17d0_4fc0_9780adbba43beee6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 607 1 0 \"9121f107_85ae_4677_83426669f92314a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"cs\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 608 1 0 \"05bcc6cf_ccc4_4959_a47bc4afab7624dc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 609 1 0 \"b878c225_17d0_4fc0_9780adbba43beee6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 610 1 0 \"5d39a9d2_5379_4b35_9a955de501a42df3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 611 1 0 \"02cc93c8_a328_4969_9babe0b5e7b5e523\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"bs\"), i_flt_SwapSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 612 1 0 \"fdf871a0_dc9f_4d47_80d610d6bf1acbbe\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 613 1 0 \"5d39a9d2_5379_4b35_9a955de501a42df3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 614 1 0 \"dd3b7108_0104_4f8c_b2ba89d2d2336918\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 615 1 0 \"1d1dfdcc_c024_465b_9de35e21a3c7b17b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"wh\"), i_int_SettlingTime, 10.0, 2, str_Value);\r\n// }} \"\"\r\n// {{ 616 1 0 \"8b18a7b0_629a_49f7_9dccc6755d244111\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 617 1 0 \"dd3b7108_0104_4f8c_b2ba89d2d2336918\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 618 1 0 \"f68441bc_ddbf_41bb_8093c4e7fb8c4bbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 619 1 0 \"18b41d6c_e7dd_41ce_be913b9a23bf25e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"hv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 620 1 0 \"fe000cc7_5dcd_4e9f_8a727a69a6e592cd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 621 1 0 \"f68441bc_ddbf_41bb_8093c4e7fb8c4bbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 622 1 0 \"279d900b_23a1_4047_997638d6ce082098\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 623 1 0 \"4e4f6a10_b66f_490e_b9acf74fc74c59b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"hc\"), Translate(\"00\"));\r\n// }} \"\"\r\n// {{ 624 1 0 \"3a4a98da_2b4f_4e87_aed85df436eac9ca\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 625 1 0 \"279d900b_23a1_4047_997638d6ce082098\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 626 1 0 \"723d1700_6758_466a_bfbdf6457a61e420\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 627 1 0 \"ef481af4_1139_47f8_a88859ddbdbd2e35\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"hp\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 628 1 0 \"83aca9d7_56ef_4420_aa30877882358d37\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 629 1 0 \"723d1700_6758_466a_bfbdf6457a61e420\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 630 1 0 \"93c2470d_3948_42d0_9e54de1cb370b432\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 631 1 0 \"c2ab8a2c_29c1_42e2_a55dd4baeba5ee70\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"mj\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 632 1 0 \"de3a8430_da7e_4812_bab4ce3ed48d8d4a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 633 1 0 \"93c2470d_3948_42d0_9e54de1cb370b432\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 634 1 0 \"55882ebf_97ff_4bb2_bae06467caf40e32\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 635 1 0 \"37fd9788_61c3_4e5e_83b9d9e479e80711\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"hs\"), 3.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 636 1 0 \"be8afc3e_b657_45cf_a8ef03b8cd450d24\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 637 1 0 \"55882ebf_97ff_4bb2_bae06467caf40e32\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 638 1 0 \"4c52e23c_cf34_4022_9fb7e9c3702da7b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 639 1 0 \"3892e081_fde6_4348_83b7b917430e043b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"cw\"), Translate(\"FFFFFFFFFFFFFFFFFFFFFFFF\"));\r\n// }} \"\"\r\n// {{ 640 1 0 \"7cebb7fa_08c8_4761_8c64c010aac6d01c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 641 1 0 \"4c52e23c_cf34_4022_9fb7e9c3702da7b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 642 1 0 \"8a79ecda_372f_4238_a8fb5538bb6f949c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 643 1 0 \"253cbee9_4c14_4c61_8d82c0f56d8469b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gj\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 644 1 0 \"db5a4755_3997_4e21_ba90df6315f93574\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 645 1 0 \"8a79ecda_372f_4238_a8fb5538bb6f949c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 646 1 0 \"fb7c0e5b_6748_4950_b822e4c81872a172\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 647 1 0 \"da99c95d_7690_411b_adb2e9ec647ed5bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gk\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 648 1 0 \"81dce19e_bf13_42e6_ab7f3ffb0019cc9e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 649 1 0 \"fb7c0e5b_6748_4950_b822e4c81872a172\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 650 1 0 \"1b1a285e_88d8_4742_a19366fec4100d54\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 651 1 0 \"d6fbe33b_ec65_48a5_a7d0da2778ad391c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 652 1 0 \"820fd4ed_247e_4329_8f18dff412c38756\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 653 1 0 \"d20b1dca_75bd_48bc_ad66ba57ff6a1531\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 654 1 0 \"820fd4ed_247e_4329_8f18dff412c38756\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 655 1 0 \"c95b454f_df9b_42ae_943e398528a7ec16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 656 1 0 \"5dbd0411_f39d_48ab_93136097f1234c9f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 657 1 0 \"8c07b7be_da28_4394_a5008fead644ec34\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"8c07b7be_da28_4394_a5008fead644ec34\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 658 1 0 \"5b05c111_18d9_4bef_aba4ab7c7ca490d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 659 1 0 \"5dbd0411_f39d_48ab_93136097f1234c9f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96DispenseFromFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetMPHExist\" \"Begin\"\r\nfunction GetMPHExist( device & ML_STAR, variable & o_int_MPHExists ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetMPHExist\" \"InitLocals\"\r\no_int_MPHExists = 0;\r\n// }} \"\"\r\n// {{{ 223 1 0 \"8aae0695_9c2f_4b55_b03b31693555f5c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 224 1 0 \"ce6bf58c_91c5_4469_b03ef07500f331e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_MPHExists = G_FW_PIP_COM_MPH_Exist;\r\n// }} \"\"\r\n// {{{ 5 \"GetMPHExist\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96GetTipPresence\" \"Begin\"\r\nfunction MPH96GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void {\r\n// }} \"\"\r\nprivate variable strFW_digits;\r\nprivate variable str_ReturnValue;\r\nprivate variable str_Params;\r\nprivate variable i;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable int_TotalParams;\r\nprivate variable arr_Params[];\r\n// {{ 5 \"MPH96GetTipPresence\" \"InitLocals\"\r\no_bln_TipLoaded = 0;\r\n// }} \"\"\r\n// {{{ 705 1 0 \"63c9dcd3_eead_44bb_96096b2a6d109c77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 706 1 0 \"6e847874_106b_4a30_8fe8c21cfb708b9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bln_TipLoaded = 0;\r\n// }} \"\"\r\n// {{ 707 1 0 \"c4e7a088_17dc_46c9_b40b58ecb1143015\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 708 1 0 \"5df08781_8d0a_437c_910d0d7c9f662d1e\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 709 1 0 \"ad4923c3_0949_4108_a742bfbce004bf83\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 710 1 0 \"4f1ffa49_0a9c_4152_bdaeed5ebaafeef4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 711 1 0 \"043394a9_24c4_44d9_a87aeb9acf2d86b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 712 1 0 \"4f1ffa49_0a9c_4152_bdaeed5ebaafeef4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 713 1 0 \"74ce99d6_088d_4f00_9dd70a5ec8bbb1de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 714 1 0 \"8ebb47d5_ef98_45a6_a4ee2ab001870fed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0QH\");\r\n// }} \"\"\r\n// {{ 715 1 0 \"74ce99d6_088d_4f00_9dd70a5ec8bbb1de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 716 1 0 \"96ed2d0f_0555_428f_847a6ea3d8d1950e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"A1HMQA\");\r\n// }} \"\"\r\n// {{ 717 1 0 \"74ce99d6_088d_4f00_9dd70a5ec8bbb1de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 718 1 0 \"2a44f2c5_8399_4d5d_9564d03c8157e705\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 719 1 0 \"92af59ed_bd44_4152_bdadef5c89cdeb5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 720 1 0 \"9d15528e_5782_4a9b_a55e3e85cfed7070\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 721 1 0 \"e3e7de18_494e_44a3_ab4136a61ad6270a\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e3e7de18_494e_44a3_ab4136a61ad6270a\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 722 1 0 \"9d15528e_5782_4a9b_a55e3e85cfed7070\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 723 1 0 \"d2844c47_3355_4f96_89628d198c79a746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(str_FirmwareCommand, str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 724 1 0 \"e714ddeb_42a3_4a32_ae2c28c8263fb5b3\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e714ddeb_42a3_4a32_ae2c28c8263fb5b3\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 725 1 0 \"9d15528e_5782_4a9b_a55e3e85cfed7070\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 726 1 0 \"1f1cd098_9ac6_4857_b87e1ad728525702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrRight(str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"bfb2ab34_cb27_480e_b843fe7ffd6aae27\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrIVal(strFW_digits);\r\n// }} \"\"\r\n// {{ 728 1 0 \"2697dd62_fbc1_48d5_836735941d9b35bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bln_TipLoaded = strFW_digits;\r\n// }} \"\"\r\n// {{ 729 1 0 \"92af59ed_bd44_4152_bdadef5c89cdeb5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nif(o_bln_TipLoaded == 1)o_bln_TipLoaded = hslTrue;\r\nif(o_bln_TipLoaded == 0)o_bln_TipLoaded = hslFalse;\r\n// {{{ 731 1 0 \"181ab455_1c54_4f4c_bbd900025f83ecf0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"     MPH96 Tip Loaded:  \"), o_bln_TipLoaded);\r\n// }} \"\"\r\n// {{{ 5 \"MPH96GetTipPresence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96GetCoordinates\" \"Begin\"\r\nfunction MPH96GetCoordinates( device & ML_STAR, variable & o_flt_CurrentXCoord, variable & o_flt_CurrentYCoord, variable & o_flt_CurrentZCoord ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable int_Count;\r\nprivate variable bln_ParamFound;\r\nprivate variable str_Value;\r\nprivate variable int_XDirection;\r\n// {{ 5 \"MPH96GetCoordinates\" \"InitLocals\"\r\no_flt_CurrentXCoord = 0;\r\no_flt_CurrentYCoord = 0;\r\no_flt_CurrentZCoord = 0;\r\n// }} \"\"\r\n// {{{ 661 1 0 \"c5f8967d_69f2_40b3_83816dc4b64ddb3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 662 1 0 \"ac559337_e983_42e1_bebb76da76534058\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentXCoord = 0.0;\r\n// }} \"\"\r\n// {{ 663 1 0 \"3ac5fb50_90e2_4be1_8acfa5771c76b08a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentYCoord = 0.0;\r\n// }} \"\"\r\n// {{ 664 1 0 \"35147b50_2a8a_462f_a7258d1b8a6c70bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentZCoord = 0.0;\r\n// }} \"\"\r\n// {{ 665 1 0 \"4d623a89_9e95_42e4_a3e506fb6f732e1d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 666 1 0 \"58557b24_b295_44c6_adb37a0ba968b25c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 668 1 0 \"ec97d68c_7adf_4118_a24ec9582522ccb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 669 1 0 \"dfd648b9_f39f_4b17_a014e67069f0db3e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 670 1 0 \"543d9884_8130_4a35_98dc2eec5f50bd80\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 671 1 0 \"798ff654_1f48_416d_af5b71b6f8686539\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 672 1 0 \"b0ae397a_3e27_4d27_adb7733e3daecaca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 673 1 0 \"78b52d61_c509_444e_972f1d405bc841bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 674 1 0 \"4d623a89_9e95_42e4_a3e506fb6f732e1d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 675 1 0 \"09d08929_56ea_4597_8e9bb06ed78a5826\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 676 1 0 \"3b081931_9df2_4eee_a0b159fb9c5c248c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 677 1 0 \"31f0e8d9_c44a_45ff_b60d7391e2fccd0d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 678 1 0 \"479cc84d_a9ec_492b_bb942c1a661703d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0QI\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 679 1 0 \"3a127675_368a_4080_8339e9f4a5fdd37c\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"3a127675_368a_4080_8339e9f4a5fdd37c\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 680 1 0 \"2056d2c6_3a25_4222_a76d740e78601dc2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"9c3cf705_049c_4ae2_a739596ca9c7cabb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"xs\"), 0.1, 5, bln_ParamFound, o_flt_CurrentXCoord);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"f010b50f_8121_4655_a5bf199cdc2143e4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"xd\"), 1, 1, bln_ParamFound, str_Value);\r\n// }} \"\"\r\n// {{ 683 1 0 \"1ee698f6_3520_4274_a2d5f5820d530bbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ParamFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 684 1 0 \"6c1f21e8_3e79_43e1_be319df9ee39c22c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 685 1 0 \"b47d66c4_07d0_49d0_80e971d1ce55bf3e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::ConvertToInteger(str_Value, int_XDirection);\r\n// }} \"\"\r\n// {{ 686 1 0 \"1ee698f6_3520_4274_a2d5f5820d530bbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 687 1 0 \"d433f8f9_7ecf_4f39_a56fb3033c6710f8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_XDirection == 1)\r\n{\r\n// }} \"\"\r\n// {{ 688 1 0 \"242ab735_e573_48f1_97f5cff8e6a7b2a8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentXCoord = o_flt_CurrentXCoord * -1;\r\n// }} \"\"\r\n// {{ 689 1 0 \"d433f8f9_7ecf_4f39_a56fb3033c6710f8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 690 1 0 \"e4dab6cc_d141_4034_9f45d0cb184717fd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"yh\"), 0.1, 4, bln_ParamFound, o_flt_CurrentYCoord);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"0f130d67_69dc_41d0_a9d849b38f678326\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"za\"), 0.1, 4, bln_ParamFound, o_flt_CurrentZCoord);\r\n// }} \"\"\r\n// {{ 692 1 0 \"31f0e8d9_c44a_45ff_b60d7391e2fccd0d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 693 1 0 \"81576bbf_f83d_45da_8824165afc3d8c40\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1HMQI\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 694 1 0 \"c9ead723_3995_4926_ba31b27d0345aa27\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c9ead723_3995_4926_ba31b27d0345aa27\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 695 1 0 \"6a1c605e_09a5_48bc_827b5399c4aaf2be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 696 1 0 \"d9226658_10c5_43be_8e88f1315b466ede\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rx\"), 0.1, 6, bln_ParamFound, o_flt_CurrentXCoord);\r\n// }} \"\"\r\n// {{{ 697 1 0 \"e015de7f_a09e_45d3_bca9e7d3f636d713\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"ry\"), 0.1, 4, bln_ParamFound, o_flt_CurrentYCoord);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"6a90688e_ac0d_4666_96801f7992ab1f44\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rz\"), 0.1, 4, bln_ParamFound, o_flt_CurrentZCoord);\r\n// }} \"\"\r\n// {{ 699 1 0 \"31f0e8d9_c44a_45ff_b60d7391e2fccd0d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 700 1 0 \"3b081931_9df2_4eee_a0b159fb9c5c248c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 701 1 0 \"0014e1f7_2d1d_4bf2_b514d16dba743c77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"X Coord:  \"), o_flt_CurrentXCoord, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 702 1 0 \"485f67a0_f071_4527_9fa9345d6724f417\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Y Coord:  \"), o_flt_CurrentYCoord, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 703 1 0 \"be82bf8d_36b0_43fe_a4964c070fa6463f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Z Coord:  \"), o_flt_CurrentZCoord, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"MPH96GetCoordinates\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Volume_1mL\" \"Begin\"\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalFound;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_Tip_Volume_1mL\" \"InitLocals\"\r\no_flt_MaxTipVolume = 0;\r\no_flt_CurrentVolumeInTip = 0;\r\n// }} \"\"\r\n// {{ 226 1 0 \"c99740c5_bb24_44cf_96befcc2993a0216\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 227 1 0 \"2ad681b2_417d_40dc_9a6a9dc6f57e3449\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 229 1 0 \"1500e804_dca8_48ce_a47d10d80457dd89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 230 1 0 \"a4cfc372_fbb9_421a_8f1dc6871863daea\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 231 1 0 \"f9edf6c4_8b57_47d7_83a4ce9f20e08519\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 232 1 0 \"eafacbc7_23c3_468c_88c37f685f47f085\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 233 1 0 \"b14ecd9f_c49b_4e0e_8694398e8a6aa164\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 234 1 0 \"3762023a_caf3_45e4_a09c6b37bac70dab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 235 1 0 \"c99740c5_bb24_44cf_96befcc2993a0216\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 236 1 0 \"0e1a4250_140d_4c55_aad13f9d1e820998\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 237 1 0 \"87cce606_662b_4f1a_abe026426e0ca555\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = 0.0;\r\n// }} \"\"\r\n// {{ 238 1 0 \"57c0287f_78e4_463a_8437abeca50abe06\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = 0.0;\r\n// }} \"\"\r\n// {{ 239 1 0 \"81d8b1a9_ea71_41ce_80db97f4c0170a54\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 240 1 0 \"88d52258_ffca_451e_82a700449709fde0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 241 1 0 \"870cc81c_26a9_42f5_9987d1f1a6e83866\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 242 1 0 \"1be598ca_3125_47b1_9a289e567da440be\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 0.046876;\r\n// }} \"\"\r\n// {{ 243 1 0 \"524e6c12_b900_4893_b4370871ae55a940\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 244 1 0 \"a26acadf_36d8_432d_9ed845df62a43ff4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"P\"), i_int_CurrentChannel, Translate(\"QC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 245 1 0 \"ef96bc25_004e_4007_8cc2cc4ff3981a84\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"ef96bc25_004e_4007_8cc2cc4ff3981a84\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 246 1 0 \"88d52258_ffca_451e_82a700449709fde0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 247 1 0 \"2d7e1eac_030e_4995_99cd4f20c0860108\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 248 1 0 \"84d3114d_5648_4d2c_815fa2aefa24196c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 0.046876;\r\n// }} \"\"\r\n// {{ 249 1 0 \"b200110c_4a75_46ba_ac3da9292afb8f13\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 250 1 0 \"dabd88d5_c834_4725_9dba715f4ae8c4ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"A1P\"), i_int_CurrentChannel, Translate(\"QC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 251 1 0 \"c7632cb8_1605_4ddb_ae71a1a1de0aa2e6\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c7632cb8_1605_4ddb_ae71a1a1de0aa2e6\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 252 1 0 \"88d52258_ffca_451e_82a700449709fde0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 253 1 0 \"66e80300_0e73_438c_bd8d50bd789bc0eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 254 1 0 \"cbb1e185_ae15_4cf7_ac949bb2226719ee\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 255 1 0 \"22757394_cc2e_47af_b132729b0cc635dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"qc\"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 256 1 0 \"c9ab594b_5c05_46d4_be1e4f712576f6cb\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalFound=arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 257 1 0 \"061e9610_0e77_4270_8258493f2c7e1dae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 1)\r\n{\r\n// }} \"\"\r\n// {{ 258 1 0 \"6e719122_674d_457e_b9e7d6990ae9dfaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 259 1 0 \"b2281962_9f52_4cbc_924df9a1bb4f924c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"e6a83208_844e_4dd9_8b47015d3372d2fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 261 1 0 \"6e719122_674d_457e_b9e7d6990ae9dfaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 262 1 0 \"061e9610_0e77_4270_8258493f2c7e1dae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 263 1 0 \"3e59413b_e4d3_45df_986aa2ca415669ec\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 264 1 0 \"0c705e83_b740_45e4_9bd6eed03c8740e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 2)\r\n{\r\n// }} \"\"\r\n// {{ 265 1 0 \"652318e7_40fa_4f4f_9776db3c30a464c8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 266 1 0 \"44818059_59a5_4b23_9fd8ac71df0f12e6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"cd8644ef_7469_49e2_829b992f24779be6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip);\r\n// }} \"\"\r\n// {{ 268 1 0 \"652318e7_40fa_4f4f_9776db3c30a464c8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 269 1 0 \"0c705e83_b740_45e4_9bd6eed03c8740e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 270 1 0 \"81d8b1a9_ea71_41ce_80db97f4c0170a54\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Max tip volume:  \",o_flt_MaxTipVolume,\" uL\");\r\nTrace(\"     \",\"Current tip volume:  \",o_flt_CurrentVolumeInTip,\" uL\");\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"Get_Tip_Volume_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelZCoordinatesLastLLD\" \"Begin\"\r\nfunction GetChannelZCoordinatesLastLLD( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable str_ParamSearch;\r\nprivate variable int_Count;\r\nprivate variable bln_ParamFound;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"GetChannelZCoordinatesLastLLD\" \"InitLocals\"\r\no_arr_ZCoords.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"cc58f1a1_38d1_42b0_b16cc4bc4c972a7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 181 1 0 \"dd8af6ac_02f7_4d20_ae97ca2f7003cbb0\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_ZCoords.SetSize(G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 182 1 0 \"317e6747_ba6b_4fe6_81c16c69ef407fd0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 183 1 0 \"84f0cee4_6f5f_4e63_ae8d535b100ac185\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 185 1 0 \"e5cb312c_deb0_4a50_88df694f13a6a021\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 186 1 0 \"ac4f4d1b_e518_4a39_ae4dce6668192cea\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 187 1 0 \"1896844d_ead1_42a0_983ba664f44c9669\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 188 1 0 \"64de4def_bc54_48c0_b275b673c02b82e5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 189 1 0 \"085104b2_9259_4a50_8ad2ed0db441fa6c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 190 1 0 \"0cda61a6_acc8_4e0e_99c1f7b598adb4f9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 191 1 0 \"317e6747_ba6b_4fe6_81c16c69ef407fd0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 192 1 0 \"d1e65e94_d6d8_49e0_94297a97f5cefe92\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 193 1 0 \"37bb13a2_5f1d_40b7_b7e4ea36b2c2f590\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 194 1 0 \"6c3e8177_7639_4508_b1a1de9ecc46cec0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 195 1 0 \"e8a8f9c7_b301_4733_a6a760a002ed8552\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 196 1 0 \"ac7cc1bc_fd88_4385_b011a89b98865204\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RL\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 197 1 0 \"a2e91ea4_a7c8_4a06_b16708d1d989a95b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"lh\");\r\n// }} \"\"\r\n// {{ 198 1 0 \"e8a8f9c7_b301_4733_a6a760a002ed8552\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 199 1 0 \"babe919b_75ab_48a2_a15f7ba145f253f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0UL\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 200 1 0 \"7e70beba_3204_49d8_8de0dc6d7f6f5579\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"ul\");\r\n// }} \"\"\r\n// {{ 201 1 0 \"e8a8f9c7_b301_4733_a6a760a002ed8552\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 202 1 0 \"2897a272_6060_443c_9ae7b21f6e5f0188\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"2897a272_6060_443c_9ae7b21f6e5f0188\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 203 1 0 \"6c3e8177_7639_4508_b1a1de9ecc46cec0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 204 1 0 \"96d1f524_e8ea_402a_904ad9eb07f74398\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_1mL == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 205 1 0 \"ff717543_36ad_4017_b240fbe3505dd96b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1PMRL\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 206 1 0 \"c5310bb2_8abc_40a7_8af626d68b951869\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"rl\");\r\n// }} \"\"\r\n// {{ 207 1 0 \"96d1f524_e8ea_402a_904ad9eb07f74398\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 208 1 0 \"193f54e6_4d61_4d10_a734bca8667207fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1LMRL\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 209 1 0 \"cf5b3723_19b0_4a13_91540881dc47361c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ParamSearch = Translate(\"rl\");\r\n// }} \"\"\r\n// {{ 210 1 0 \"96d1f524_e8ea_402a_904ad9eb07f74398\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 211 1 0 \"9e81983a_2b6d_4ed7_9821fdffa8d2d172\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"9e81983a_2b6d_4ed7_9821fdffa8d2d172\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 212 1 0 \"6c3e8177_7639_4508_b1a1de9ecc46cec0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 213 1 0 \"68c57e83_9cb1_4ce5_bfbdcfa9be445444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 214 1 0 \"8c420c64_bdee_4c6c_b989375869830d73\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, str_ParamSearch, 0.1, 5, G_FW_PIP_COM_TotalChannels, bln_ParamFound, arr_Values);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 215 1 0 \"a56981a6_bd84_4e30_9bc6af5dd46bc082\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, str_ParamSearch, 0.1, bln_ParamFound, arr_Values);\r\n// }} \"\"\r\n// {{ 216 1 0 \"37bb13a2_5f1d_40b7_b7e4ea36b2c2f590\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 217 1 0 \"613c93a8_a048_4739_98995c8c8441cf98\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ParamFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 218 1 0 \"37bb13a2_5f1d_40b7_b7e4ea36b2c2f590\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 219 1 0 \"657cad0e_7715_4220_8055a5a026f6d3f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ParamFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"8b90c8e4_d6cb_48f0_9ef53fadfdafb016\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_arr_ZCoords=arr_Values;\r\n// }} \"\"\r\n// {{ 221 1 0 \"657cad0e_7715_4220_8055a5a026f6d3f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelZCoordinatesLastLLD\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPAspirateFromFixedHeight_ArrayVolumes\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable str_Params;\r\nprivate variable flt_LiquidFollow;\r\nprivate variable flt_EndLocation;\r\nprivate variable i;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable strFunctionName;\r\nprivate variable flt_FixHeight;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalParams;\r\nprivate variable int_Count;\r\nprivate variable str_ChannelValue;\r\nprivate variable flt_PullOut;\r\nprivate variable int_Value;\r\nprivate variable str_ChPattern;\r\nprivate variable str_Value;\r\nprivate variable arr_Params[];\r\nprivate variable arr_PullOutDistance[];\r\nprivate variable arr_LiquidFollowing[];\r\n// {{ 5 \"PIPAspirateFromFixedHeight_ArrayVolumes\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 920 1 0 \"9a3a8a2c_2942_4d13_ae5fd294bd799f00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 921 1 0 \"484308ed_2e13_4918_bf46a949924a3dab\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 922 1 0 \"e4ec46d5_2d2b_4009_894817d91033e9d9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 924 1 0 \"0a0cb0f6_61c4_443a_baecb8b92576080e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 925 1 0 \"3f988253_98d0_4f97_89298f7b1b047db2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 926 1 0 \"74d30de1_0768_40ab_844faa9968340ad3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 927 1 0 \"a65de8a9_1e4b_42ae_b4ba814144d9879c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 928 1 0 \"194f245a_03d8_47d1_bd8453b7cae51cd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 929 1 0 \"6837a081_7e1f_41ff_8dcc5b7fb13e0817\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 930 1 0 \"484308ed_2e13_4918_bf46a949924a3dab\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 931 1 0 \"68bab662_9f9f_460d_8fc0f5f91cabf538\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 932 1 0 \"5fc21ef4_c48a_40f8_840d5a9254084421\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0AS\");\r\n// }} \"\"\r\n// {{ 933 1 0 \"b5be6625_db9c_453b_9ce53eec06179ea0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 934 1 0 \"36da9999_a6ef_46a8_a4cf21302e9de090\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"at\"), Translate(\"2&\"));\r\n// }} \"\"\r\n// {{ 935 1 0 \"11d7590d_06be_463f_9656f597a640381e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 936 1 0 \"b5be6625_db9c_453b_9ce53eec06179ea0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"aeda547e_be44_4704_8966a3550caeb675\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 938 1 0 \"500d6147_6ea4_4c25_abf3b85281c75db6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 939 1 0 \"cade5aa2_5667_4691_8d8665f49949169a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillRight(str_ChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 940 1 0 \"df1ab12a_fa62_45bb_8e2f1f4d5aafcd4c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Value = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 941 1 0 \"d29560df_3175_40f2_8587bbe713b3619d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 942 1 0 \"ca773cb3_916e_4512_a2352ebbcb364b15\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrLeft(str_ChPattern, i);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"e7528f94_cb16_44f4_be70fb13b33aa47e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrRight(str_ChannelValue, 1);\r\n// }} \"\"\r\n// {{{ 944 1 0 \"8da77ebf_0bf0_498b_a11a0710ac3186c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, str_ChannelValue);\r\n// }} \"\"\r\n// {{ 945 1 0 \"824409e7_dbd0_4d12_8aae242ae2a3cd9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i < G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 946 1 0 \"bf840d11_3d38_4ee9_8b6e28e49bd29650\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 947 1 0 \"824409e7_dbd0_4d12_8aae242ae2a3cd9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 948 1 0 \"d29560df_3175_40f2_8587bbe713b3619d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 949 1 0 \"18beb88e_5bb8_4877_ab6bb27e93bc002e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 950 1 0 \"aeda547e_be44_4704_8966a3550caeb675\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 951 1 0 \"13ad6c1a_fbb9_4f7d_9794b1dbf5d3260a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 952 1 0 \"b8466796_b95f_49bf_994252ec410f21fd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"xp\"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 953 1 0 \"8b86b744_c49c_4f0a_893590a0212413a9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 954 1 0 \"13ad6c1a_fbb9_4f7d_9794b1dbf5d3260a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 955 1 0 \"6d324c76_581a_43ee_846ae0d004faf322\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 956 1 0 \"5501d561_79e6_4eb3_a1d9b6bf19541915\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"yp\"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 957 1 0 \"2a766025_80fa_46e1_b97f59a168e4f4be\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 958 1 0 \"6d324c76_581a_43ee_846ae0d004faf322\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 959 1 0 \"e9271615_7a0d_4211_a69b54d33b8b3365\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 960 1 0 \"61699d96_aa04_4168_a75ad5d15d492f9e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"th\"), i_flt_StartTraverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 961 1 0 \"f808df3f_c3db_419b_812a9fcc577acad0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 962 1 0 \"e9271615_7a0d_4211_a69b54d33b8b3365\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 963 1 0 \"bc1a3b59_c5a0_4fad_b1a5f640db9e3c4a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 964 1 0 \"a0dca42a_dddd_4079_997f02c1da4d652d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"te\"), i_flt_EndTranverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 965 1 0 \"90b46e38_2b12_4f38_a6150e61e259a53c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 966 1 0 \"bc1a3b59_c5a0_4fad_b1a5f640db9e3c4a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 967 1 0 \"89fe963b_7ebd_486d_baf1ca0083d44fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 968 1 0 \"45efcb76_2ba1_4b09_899c42b87acc2156\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"lp\"), 245.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 969 1 0 \"bb5f06b9_76c8_4526_b732e3b4451ef436\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 970 1 0 \"89fe963b_7ebd_486d_baf1ca0083d44fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 971 1 0 \"bdd75d49_5d6d_445d_b435c0d3ff5d3e55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 972 1 0 \"8e71050d_def9_4f3a_82ec0d0c06bc28db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"zl\"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 973 1 0 \"96333cba_d403_495b_92fc6d3abdddc76b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 974 1 0 \"bdd75d49_5d6d_445d_b435c0d3ff5d3e55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 975 1 0 \"d3f3a22d_ea7e_4bff_a1090362b7ae416d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 976 1 0 \"1676975a_2967_489f_96382fff7febede1\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PullOutDistance.SetSize(0);\r\n// }} \"\"\r\n// {{ 977 1 0 \"a5b911e7_3017_4b95_8704992661917970\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 978 1 0 \"4543b8bb_4b00_4d2b_b50b3fc7a44b6d5c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 979 1 0 \"bc4bc3cd_b577_41d9_91d0b6e9f5b3ce2b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 980 1 0 \"aaa4356d_8853_4d6c_95b4237abfa0b597\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_arr_FixedHeights.ElementAt( i -1) - 0.0;\r\n// }} \"\"\r\n// {{ 981 1 0 \"7e6c6e04_5099_4a93_99871ae3c0e3b86b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = flt_EndLocation - flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 982 1 0 \"e0a4eb6a_04b4_47f7_8cde2e42dd04dc5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_EndLocation < i_flt_MinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 983 1 0 \"2d011787_df9f_4829_8e0f2e01e0759995\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_flt_MinimumHeight + 0.5;\r\n// }} \"\"\r\n// {{ 984 1 0 \"e0a4eb6a_04b4_47f7_8cde2e42dd04dc5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 985 1 0 \"bf1d085b_1422_4f2c_a55ae832d3c40bbe\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1) - flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 986 1 0 \"04716494_0b8f_4378_a4c6b156bc9338c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_LiquidFollow < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 987 1 0 \"0604e9ea_6f67_43c5_b2ad400c44d23ada\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = 0.0;\r\n// }} \"\"\r\n// {{ 988 1 0 \"04716494_0b8f_4378_a4c6b156bc9338c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 989 1 0 \"c11738ab_9f6d_452b_9c356100b44b5493\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = flt_LiquidFollow + i_flt_PullOutDistance;\r\n// }} \"\"\r\n// {{ 990 1 0 \"4543b8bb_4b00_4d2b_b50b3fc7a44b6d5c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 991 1 0 \"f0d409de_45f0_44fc_a1ce74319359a4a8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_PullOutDistance.AddAsLast(flt_PullOut);\r\n// }} \"\"\r\n// {{ 992 1 0 \"a5b911e7_3017_4b95_8704992661917970\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 993 1 0 \"5428791a_ecad_4305_a010f853a23d97fd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"po\"), arr_PullOutDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 994 1 0 \"a608995a_44a9_4248_b7943382cd7c372c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 995 1 0 \"d3f3a22d_ea7e_4bff_a1090362b7ae416d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 996 1 0 \"83413f21_a076_47e4_a0125a5335fb9cc1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 997 1 0 \"6ba4c50f_6c0d_4eb3_bdf43ca0dee1d5ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"zx\"), i_flt_MinimumHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 998 1 0 \"150d822a_6ecc_4e3d_98539811c4ea5f2a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 999 1 0 \"83413f21_a076_47e4_a0125a5335fb9cc1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1000 1 0 \"3aca521d_a846_48c2_bffe20d22ba78a10\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"394a67ff_31d7_424c_aff531420781ca1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ip\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1002 1 0 \"7f13b082_249a_4439_872642a990fa8b4c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1003 1 0 \"3aca521d_a846_48c2_bffe20d22ba78a10\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1004 1 0 \"c414d108_327e_457e_a7c44a4e4a566f0f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1005 1 0 \"544ab340_0bb0_4ff5_bad806778e77a363\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowing.SetSize(0);\r\n// }} \"\"\r\n// {{ 1006 1 0 \"f7d6666a_0e0c_4474_b584f633d743e635\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1007 1 0 \"1603f392_3f35_40ee_ab40402539eb4a4d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 1008 1 0 \"870bb524_6022_410a_8575c377d0e7e0ed\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_FixHeight = i_arr_FixedHeights.ElementAt( i -1) + i_flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1009 1 0 \"2c40154b_84e7_48d8_8faf478dc19d4b7b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = flt_FixHeight - flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 1010 1 0 \"1bde191b_9568_4a99_af50c22133db90af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_EndLocation < i_flt_MinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 1011 1 0 \"be27308b_3ccb_4544_9b8869be76b295fc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_flt_MinimumHeight + 0.0;\r\n// }} \"\"\r\n// {{ 1012 1 0 \"1bde191b_9568_4a99_af50c22133db90af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1013 1 0 \"c6d1d52f_45d1_490a_8409afa60ec622ae\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = flt_FixHeight - flt_EndLocation;\r\n// }} \"\"\r\n// {{ 1014 1 0 \"b683a03d_889f_4543_8df87c948702b7af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_LiquidFollow < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1015 1 0 \"e13d9bb2_59b6_4143_be5c8e5f91a03114\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = 0.0;\r\n// }} \"\"\r\n// {{ 1016 1 0 \"b683a03d_889f_4543_8df87c948702b7af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1017 1 0 \"488fab17_3957_4d37_9b62c6f14180b17a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowing.AddAsLast(flt_LiquidFollow);\r\n// }} \"\"\r\n// {{ 1018 1 0 \"f7d6666a_0e0c_4474_b584f633d743e635\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"b50abe86_e595_4333_9e1c2eda70f2c2b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"fp\"), arr_LiquidFollowing, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1020 1 0 \"3f403fdc_6b84_45da_8c0f0f9e36db9de8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1021 1 0 \"c414d108_327e_457e_a7c44a4e4a566f0f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1022 1 0 \"17a6f287_e408_4b75_8f732e5297660e24\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"d1e50ee2_3692_4a74_8f64ecfe744cbc14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"av\"), i_arr_AspirateVolume, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1024 1 0 \"54e56743_470a_480e_8d6eaf9d0e71beaa\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1025 1 0 \"17a6f287_e408_4b75_8f732e5297660e24\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1026 1 0 \"5f630f5b_f713_45f9_b5ef5ad4687d7bd0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"d76d2af4_7d9c_46a3_ae313cd08060af7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"as\"), i_flt_AspirateSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1028 1 0 \"5e97cc18_b11a_4d81_bfd58c16b0f5a7e0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1029 1 0 \"5f630f5b_f713_45f9_b5ef5ad4687d7bd0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1030 1 0 \"64cd6ec5_7f1b_4829_ba7c9affb4af679d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"4f9004c1_8bde_41fe_9b6dad43eb57ea99\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ta\"), i_flt_TransportAirGap, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1032 1 0 \"40fb534a_449b_4ef0_9685b3b37c668086\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1033 1 0 \"64cd6ec5_7f1b_4829_ba7c9affb4af679d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1034 1 0 \"e2a85a7b_1470_4b24_b9230e51d09203ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"b9c00e39_e82d_4c1c_bd82eff4ba5704bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ba\"), i_flt_BlowoutVolume, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1036 1 0 \"fd6d9cd6_902c_41a9_a2940fffe23185a2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1037 1 0 \"e2a85a7b_1470_4b24_b9230e51d09203ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1038 1 0 \"1a406342_3bd6_4527_82918e4e36e94351\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"44c73b78_4342_4638_abdcff9ec1d14029\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"oa\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1040 1 0 \"4e9b9dac_0053_45d8_a195598e951680d1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1041 1 0 \"1a406342_3bd6_4527_82918e4e36e94351\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1042 1 0 \"2405b584_445e_4f68_9f26b5279afc9c69\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"848f79ae_b838_49bd_bd96ee680e51e8b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"lm\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"c71b825f_d0cb_4f7d_8508395864801220\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(0, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"363b691f_e83e_42dc_bd7faa6a1a765a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1046 1 0 \"26c51bf5_d1ea_4c7c_ac58cc6d7a98d240\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1047 1 0 \"2405b584_445e_4f68_9f26b5279afc9c69\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1048 1 0 \"d236f6fa_50cf_4303_a057dd526654c399\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"53de9ca3_f68d_43d8_aa25c61ccd928b41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"ll\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"460dbf3a_a492_4ef7_8dff06c293d44311\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"a1509f77_6343_4d8c_95fc63260f9d2d4f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1052 1 0 \"4b776bdf_d1fd_4fd4_995d4dbdc9d78915\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1053 1 0 \"d236f6fa_50cf_4303_a057dd526654c399\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1054 1 0 \"861c7adf_c5ec_4e16_9b35198b3ba433a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"d88c4131_6937_4277_a88f184882190848\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"de\"), i_flt_SwapSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1056 1 0 \"f5f92bb8_5e61_4983_8e8f540f9986b135\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1057 1 0 \"861c7adf_c5ec_4e16_9b35198b3ba433a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1058 1 0 \"414b8b2c_10e7_4136_bc2b97ef55b92444\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"77b54e08_d850_44ac_99a5fa5fe959c7b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"wt\"), i_int_SettlingTime, 10.0, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1060 1 0 \"02b3efd4_022b_43e0_861a02067c808369\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1061 1 0 \"414b8b2c_10e7_4136_bc2b97ef55b92444\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1062 1 0 \"95b6b7c4_f009_458d_bbe2098f1becaf20\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"cede3310_16d8_4add_96a5764a66f9398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 1064 1 0 \"1ae8ef42_4c9e_4767_87f46d4bae83544f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1065 1 0 \"95b6b7c4_f009_458d_bbe2098f1becaf20\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1066 1 0 \"6de31cc4_81d8_4290_a9711241b4f4b4d6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"e4fcf385_4a4b_427b_906881094a0cdc1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mc\"), 0, 1, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1068 1 0 \"550a730a_85d2_4baf_aa34371699ca98ac\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1069 1 0 \"6de31cc4_81d8_4290_a9711241b4f4b4d6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1070 1 0 \"d6a6e19c_e9c1_4e4e_920ad4808e88cd10\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"c4478707_019b_4417_b91064d20c28feb1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mp\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1072 1 0 \"7d53c675_dc02_420f_98789444ae476131\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1073 1 0 \"d6a6e19c_e9c1_4e4e_920ad4808e88cd10\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1074 1 0 \"ea121f4e_e153_4ff7_80782cd8c480ca8b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"d2da25bc_271b_4c2a_8084da74ecdc293a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ms\"), 10.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1076 1 0 \"71bbf379_e740_4e03_9ba750683f34333a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1077 1 0 \"ea121f4e_e153_4ff7_80782cd8c480ca8b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1078 1 0 \"f36b0e62_12e2_4d5f_a2c366bc4af6534f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"ab4e69aa_4344_47e9_8c03b74ee5894fbd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mh\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1080 1 0 \"4add9de4_42db_4c1b_859ea26020e39e96\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"f36b0e62_12e2_4d5f_a2c366bc4af6534f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1082 1 0 \"21889970_dea4_437b_bed8fb9ddaad6cd6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"27edd796_e737_4755_b63e5163a4914759\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gi\"), Translate(\"000&\"));\r\n// }} \"\"\r\n// {{ 1084 1 0 \"03a2abc4_637d_4551_beb5bc7d5cb792a7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1085 1 0 \"21889970_dea4_437b_bed8fb9ddaad6cd6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1086 1 0 \"e5555857_e599_4bb8_a73164ae5c526bd7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"1a854e1a_bde1_41dc_abedfc7d10622aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gj\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1088 1 0 \"8071ddfe_427e_4683_aa81b79e2b4edc56\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1089 1 0 \"e5555857_e599_4bb8_a73164ae5c526bd7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1090 1 0 \"35072636_8007_411f_b97db6f03cfc7c8a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"860f41b4_a49a_4e17_906788b07810de41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gk\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1092 1 0 \"a45a1908_57ba_47fc_b726314b4fef8ef0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1093 1 0 \"35072636_8007_411f_b97db6f03cfc7c8a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1094 1 0 \"81e98615_ea48_435d_9c49ed8d65f7180d\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 1095 1 0 \"5b58bb5e_dac0_4533_913e0ca42114e85e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1096 1 0 \"d55ecb3e_6957_40a8_964056f10a1f801e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"c7ff29eb_7c89_49f5_89ea486248a0a2b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1098 1 0 \"d55ecb3e_6957_40a8_964056f10a1f801e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"f39ff15f_e006_4bc8_a585c6ee2aa23884\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1100 1 0 \"c192e6c9_c9c1_4660_9c199436b43dc3e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1101 1 0 \"e41152cf_42d5_468f_80c610425a747e08\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e41152cf_42d5_468f_80c610425a747e08\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"67250a8d_be3e_4105_88ca3701c41888e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1103 1 0 \"c192e6c9_c9c1_4660_9c199436b43dc3e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPAspirateFromFixedHeight_ArrayVolumes\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPDispenseFromFixedHeight_ArrayVolumes\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable str_Params;\r\nprivate variable i;\r\nprivate variable flt_EndLocation;\r\nprivate variable flt_LiquidFollow;\r\nprivate variable str_FirmwareCommand;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_DispenseMode;\r\nprivate variable int_TotalParams;\r\nprivate variable int_Count;\r\nprivate variable str_ChannelValue;\r\nprivate variable flt_PullOut;\r\nprivate variable int_Value;\r\nprivate variable str_ChPattern;\r\nprivate variable str_Value;\r\nprivate variable arr_Params[];\r\nprivate variable arr_PullOutDistance[];\r\n// {{ 5 \"PIPDispenseFromFixedHeight_ArrayVolumes\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1304 1 0 \"7c0baacc_f10b_40a6_9f87eb6e0136266d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1305 1 0 \"b2b3c9d5_5e67_4815_b55c582c675af6cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1306 1 0 \"5db64fbe_da21_47ee_a27d65c1c9949ed1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1308 1 0 \"8ab6432c_1739_459a_a033538479822b5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1309 1 0 \"e7a220dd_f862_4eba_9be62cf43de09c6b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"25ce81e5_4093_4a5f_9ef614c24be1e948\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1311 1 0 \"ff2b6579_fcac_488c_9e0a6d1b4aabf72a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1312 1 0 \"72e000c5_cf5c_4d15_8ec6f2fc2f41c968\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 1313 1 0 \"e4d7c850_408c_4de9_a42a9ef2dc243bf3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 1314 1 0 \"b2b3c9d5_5e67_4815_b55c582c675af6cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1315 1 0 \"c272ea88_bd5d_4fd7_90af58ee151b879d\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Params.SetSize(0);\r\n// }} \"\"\r\n// {{ 1316 1 0 \"a6e6454c_78eb_4282_a1cbf4e7c6bd6727\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FirmwareCommand = Translate(\"C0DS\");\r\n// }} \"\"\r\n// {{ 1317 1 0 \"5fb43361_5cf8_4b86_afa491d2ff6d11ff\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1318 1 0 \"38b54daa_fca8_44d2_9b50409dacde9aea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 1;\r\n// }} \"\"\r\n// {{ 1319 1 0 \"2ee47076_5bd4_4101_89fa49f2181887f0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1320 1 0 \"7c8b6d9f_18c8_46fc_b30ac9b6e9b931a2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 0;\r\n// }} \"\"\r\n// {{ 1321 1 0 \"2ee47076_5bd4_4101_89fa49f2181887f0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1322 1 0 \"cb5fcfc1_7d55_4af1_af734d3fb7918b90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1323 1 0 \"183bfb31_da4f_407c_b40767600e49dae3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 2;\r\n// }} \"\"\r\n// {{ 1324 1 0 \"cb5fcfc1_7d55_4af1_af734d3fb7918b90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1325 1 0 \"2962c7fb_7faa_4933_8c5f02bbc501d93b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 2)\r\n{\r\n// }} \"\"\r\n// {{ 1326 1 0 \"98c9efe3_bcc3_4b37_9d368e3726993b75\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 0;\r\n// }} \"\"\r\n// {{ 1327 1 0 \"2962c7fb_7faa_4933_8c5f02bbc501d93b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1328 1 0 \"ad586d99_3f8a_4076_ad771629f6233a5e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 3)\r\n{\r\n// }} \"\"\r\n// {{ 1329 1 0 \"f7f10f70_fbb2_45ed_85d4a11c9f2b1289\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 1;\r\n// }} \"\"\r\n// {{ 1330 1 0 \"ad586d99_3f8a_4076_ad771629f6233a5e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1331 1 0 \"6b35c5d8_9ed9_4d80_bdb8a683574785c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 4)\r\n{\r\n// }} \"\"\r\n// {{ 1332 1 0 \"d6fad0a3_1ddb_45c1_9f63efdd9c39cfaa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 2;\r\n// }} \"\"\r\n// {{ 1333 1 0 \"6b35c5d8_9ed9_4d80_bdb8a683574785c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1334 1 0 \"b1f7c689_677c_4c5e_a349c32d59c2be26\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 5)\r\n{\r\n// }} \"\"\r\n// {{ 1335 1 0 \"54d579d6_edd6_4d2c_a71a20cfce607532\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 3;\r\n// }} \"\"\r\n// {{ 1336 1 0 \"b1f7c689_677c_4c5e_a349c32d59c2be26\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1337 1 0 \"95fe9aa6_9647_4fdc_8b926fd02820eb2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_DispenseMode == 6)\r\n{\r\n// }} \"\"\r\n// {{ 1338 1 0 \"2483b720_9ed2_45be_a5d41854dd34f195\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseMode = 4;\r\n// }} \"\"\r\n// {{ 1339 1 0 \"95fe9aa6_9647_4fdc_8b926fd02820eb2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"83d9099f_7c21_4230_9cea602b6848d90e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(Translate(\"dm\"), int_DispenseMode, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1341 1 0 \"261aee9b_7467_4d38_91383068a79f5db4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1342 1 0 \"5fb43361_5cf8_4b86_afa491d2ff6d11ff\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1343 1 0 \"624faa85_dcc0_4c31_84875a288c92b907\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"5ff8d449_1ed8_4b43_98bea9ae52688cf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"65152c52_23e1_4b40_995b6425d7e8d612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillRight(str_ChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 1346 1 0 \"bd985c53_bf9b_4ba9_acb514eb75676d39\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Value = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 1347 1 0 \"e463785c_4f0c_4685_893449b2b725db67\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"1a347561_90ed_4d59_a313211fa019cf19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrLeft(str_ChPattern, i);\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"543e483e_6d0d_4db0_a9fb7f90bf860540\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelValue = StrRight(str_ChannelValue, 1);\r\n// }} \"\"\r\n// {{{ 1350 1 0 \"74498f5b_5a0d_4dfc_ba789ea921c57196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, str_ChannelValue);\r\n// }} \"\"\r\n// {{ 1351 1 0 \"d69b2172_2049_453a_99d780885e6d25b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i < G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 1352 1 0 \"a31f904d_8500_4337_80dc5e1ee902b05f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(str_Value, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 1353 1 0 \"d69b2172_2049_453a_99d780885e6d25b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1354 1 0 \"e463785c_4f0c_4685_893449b2b725db67\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1355 1 0 \"334ef6b6_a7ed_4232_98d6484264efd04a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1356 1 0 \"624faa85_dcc0_4c31_84875a288c92b907\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1357 1 0 \"6332c056_ffd3_453a_a8718068e5828b29\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1358 1 0 \"a33c8b27_14a3_41d6_aefdf04fd7c1a8d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"xp\"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1359 1 0 \"d54974e2_db0d_4d3a_8e06ae2d0ffca4dd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1360 1 0 \"6332c056_ffd3_453a_a8718068e5828b29\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1361 1 0 \"e6fec685_aa86_4a32_853546c74db43370\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1362 1 0 \"8c07a545_3194_4deb_9759a0acb5983c4c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"yp\"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1363 1 0 \"b3870596_0f7e_4a91_9d80ae9592754b8e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1364 1 0 \"e6fec685_aa86_4a32_853546c74db43370\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1365 1 0 \"51fbd8b9_3aea_4086_8cc0ffeeea331439\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"5bbf3d62_2e04_49a5_89e74ffa5038e49b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"zx\"), i_flt_MinimumHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1367 1 0 \"8e6ef7ac_2113_4b74_86e2fed5dcbb7b59\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1368 1 0 \"51fbd8b9_3aea_4086_8cc0ffeeea331439\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1369 1 0 \"c7b29c01_36dc_4b9a_a9def3b807af9690\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1370 1 0 \"f0cb4105_56bc_49d7_b17063c8af82fce2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"th\"), i_flt_StartTraverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1371 1 0 \"d33f8158_eadf_4e3a_9a3a94954ea09634\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1372 1 0 \"c7b29c01_36dc_4b9a_a9def3b807af9690\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1373 1 0 \"9203d5c2_1620_4254_90bc2028a06c7bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"ce584b50_cbe0_4b6b_84df430865ef4c44\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParameter(Translate(\"te\"), i_flt_EndTranverseHeight, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"e045695d_873a_4e97_a0687c5571b0b77d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1376 1 0 \"9203d5c2_1620_4254_90bc2028a06c7bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1377 1 0 \"861ecd5a_fe2d_489d_85e59c5896b2d25c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"9cccd8f2_5cb8_4891_80e01cc981ac9656\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"lp\"), 245.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1379 1 0 \"fc2aad27_efbf_4d85_8d50c2e1fecfd7eb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1380 1 0 \"861ecd5a_fe2d_489d_85e59c5896b2d25c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1381 1 0 \"ced12e31_e0a7_411f_b2de42411a801067\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1382 1 0 \"8e4d6db8_8476_4be5_a16da909bec3c93a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"zl\"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1383 1 0 \"42efcd98_e9c7_4a83_9f8ad3c304fdafce\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1384 1 0 \"ced12e31_e0a7_411f_b2de42411a801067\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1385 1 0 \"befcd0f0_4547_4eb7_b77ae5f2d021d0b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1386 1 0 \"8cfe825e_c79f_4f68_a1fc5fe341422082\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PullOutDistance.SetSize(0);\r\n// }} \"\"\r\n// {{ 1387 1 0 \"04a4d790_e572_44a6_b38c0be54f3174e2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1388 1 0 \"2604f440_c75c_4ea7_8e86584dadfe7b9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = i_arr_DispenseDistance.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 1389 1 0 \"ac6cb32a_dee3_4106_8fc1006e3976a978\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_arr_FixedHeights.ElementAt( i -1) - 0.0;\r\n// }} \"\"\r\n// {{ 1390 1 0 \"bd63c733_8406_4e50_bbb426cc80165fb6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = flt_EndLocation + flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 1391 1 0 \"c767737b_8fab_46bc_8d8ac3962ad153b0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = flt_EndLocation + i_flt_PullOutDistance;\r\n// }} \"\"\r\n// {{ 1392 1 0 \"0293d1bd_040c_41d8_a2eca4d83b9e990e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_EndLocation > i_flt_MaximumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 1393 1 0 \"4323e18d_42b3_4cc8_80c4cabb48eca8a8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndLocation = i_flt_MaximumHeight - 0.5;\r\n// }} \"\"\r\n// {{ 1394 1 0 \"0293d1bd_040c_41d8_a2eca4d83b9e990e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1395 1 0 \"ff87967f_432a_484b_9cfcb1083ab21baa\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = flt_EndLocation + 0.0;\r\n// }} \"\"\r\n// {{ 1396 1 0 \"150aa8bf_8325_4ddb_8615eaea5c12697b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = flt_PullOut - flt_LiquidFollow;\r\n// }} \"\"\r\n// {{ 1397 1 0 \"a302338e_8277_4b9e_a3b84f3576eab32b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = flt_PullOut - i_arr_FixedHeights.ElementAt( i -1);\r\n// }} \"\"\r\n// {{ 1398 1 0 \"87039c09_ff4d_43c0_94ca12d6612bbfea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_PullOut < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1399 1 0 \"d2c2b102_246b_45cb_b90787566ba502b8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PullOut = 0.0;\r\n// }} \"\"\r\n// {{ 1400 1 0 \"87039c09_ff4d_43c0_94ca12d6612bbfea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1401 1 0 \"7ea7bc40_8d14_4514_87df6bc71f814752\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_PullOutDistance.AddAsLast(flt_PullOut);\r\n// }} \"\"\r\n// {{ 1402 1 0 \"04a4d790_e572_44a6_b38c0be54f3174e2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"1c034f38_80e1_4c86_85270d8dfcfc7b61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"po\"), arr_PullOutDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1404 1 0 \"a55316af_9084_4254_8ce8794074358251\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1405 1 0 \"befcd0f0_4547_4eb7_b77ae5f2d021d0b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1406 1 0 \"020edf2a_2f19_42dc_8d5b7adc24f7e409\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"94430471_4933_48ff_9aecca474f750bb3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ip\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1408 1 0 \"f4d784f8_bf34_44bb_8d293dc54e05d7d6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1409 1 0 \"020edf2a_2f19_42dc_8d5b7adc24f7e409\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1410 1 0 \"cb97d0be_4062_4817_9e5756a62e75954b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"6b76f23a_c750_4d28_854abe6a181a4558\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"fp\"), i_arr_DispenseDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1412 1 0 \"a0deb586_2e2f_4302_91dd3bcd02bc0e80\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1413 1 0 \"cb97d0be_4062_4817_9e5756a62e75954b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1414 1 0 \"36bfb394_7fc6_4958_b00d6e1a31355726\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1415 1 0 \"0b6ae436_e2c9_4b2e_bc558efeae8f7f1b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersArr(Translate(\"dv\"), i_arr_DispenseVolume, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value);\r\n// }} \"\"\r\n// {{ 1416 1 0 \"018434d8_ee4e_4b64_ae8f114b44e0078a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1417 1 0 \"36bfb394_7fc6_4958_b00d6e1a31355726\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1418 1 0 \"e460cfc9_7c93_430b_be58b76dd96ee74b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"57aa4aea_b118_4b2f_a40eeeaad1e1bc40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ds\"), i_flt_DispenseSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1420 1 0 \"37dc318c_a16d_4a16_817172c468f71fd1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1421 1 0 \"e460cfc9_7c93_430b_be58b76dd96ee74b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1422 1 0 \"59499580_766e_4716_ab0b36b3256d02f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1423 1 0 \"4433b223_d3ba_4cee_ae6ed7fd80c8bb56\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ss\"), i_flt_CutOffSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1424 1 0 \"80a950f7_c9c1_494d_87333547343d1f1f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1425 1 0 \"59499580_766e_4716_ab0b36b3256d02f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1426 1 0 \"400d2368_a189_49bb_9ad3afdc1985cb5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"966c1f2d_b3cb_4373_a64ae6bec9e88d4c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"rv\"), i_flt_StopBackVolume, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1428 1 0 \"a25eaa29_aa66_4c40_a033a1fff796c0cb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1429 1 0 \"400d2368_a189_49bb_9ad3afdc1985cb5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1430 1 0 \"bdebee86_c24e_4a77_9f80fb3adfc716fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1431 1 0 \"eabecaf5_9272_4749_b1baace21e14ba27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ta\"), i_flt_TransportAirGap, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1432 1 0 \"97c30544_41fd_4c76_bd898fb899850530\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1433 1 0 \"bdebee86_c24e_4a77_9f80fb3adfc716fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1434 1 0 \"d3d168ec_fc46_4f2f_85779752c9457c84\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"274ff24d_6462_4932_882564ea9a97d706\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ba\"), i_flt_BlowoutVolume, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1436 1 0 \"4b9787c3_e6a7_4c43_ae438f265e12e844\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1437 1 0 \"d3d168ec_fc46_4f2f_85779752c9457c84\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1438 1 0 \"82049daa_eea8_4da3_a8bbac32e99e8d70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"370fc510_d68d_491d_a8f018f7d52ebc9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"lm\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"6a718259_4f8a_4427_adba379175e5148a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(0, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"31711ecf_c7fb_4ef7_8fdc75a709f7c63d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1442 1 0 \"21346387_6ddd_4702_911bb3df929a8bfa\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1443 1 0 \"82049daa_eea8_4da3_a8bbac32e99e8d70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1444 1 0 \"6d8042e5_fcf2_493e_a2cd07ff7104c2aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1445 1 0 \"adbf504c_8a1f_4567_859948293c95ad49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"ll\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"302fce50_a9bd_41d6_89296f6ae866320a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"9c878000_246c_4a20_bfc370831c60510c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat4(str_Value, int_Value, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1448 1 0 \"87f66c4a_473f_446c_a51b601714e64bbe\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1449 1 0 \"6d8042e5_fcf2_493e_a2cd07ff7104c2aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1450 1 0 \"731ade0f_83a0_42bc_a11a362ba44d3d7c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"a405e6d1_154f_4b67_b1528073c0346377\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"de\"), i_flt_SwapSpeed, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1452 1 0 \"b9692a1a_7469_4611_b466a6c9d580066f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1453 1 0 \"731ade0f_83a0_42bc_a11a362ba44d3d7c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1454 1 0 \"0a8b61f1_018e_45f8_b865a2ecbe3ec7f3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"4dfeabba_c20f_4436_8c4797404d4c896b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"wt\"), i_int_SettlingTime, 10.0, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1456 1 0 \"62525ed1_86e6_4ec0_946a0bee2cd0243c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1457 1 0 \"0a8b61f1_018e_45f8_b865a2ecbe3ec7f3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1458 1 0 \"a93c234d_9cf2_4be3_9646a94cd1fd0a74\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1459 1 0 \"251b30fa_9053_435a_960b4e4236307251\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mv\"), 0.0, 10.0, 5, str_Value);\r\n// }} \"\"\r\n// {{ 1460 1 0 \"157f5099_d49c_4ada_a56e9470ee19fb4a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1461 1 0 \"a93c234d_9cf2_4be3_9646a94cd1fd0a74\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1462 1 0 \"86b4178f_7d81_413f_927c02bcb8ef769c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"401c42b1_bdfa_4f45_98c8a8ee479e036c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mc\"), 0, 1, 2, str_Value);\r\n// }} \"\"\r\n// {{ 1464 1 0 \"af9289e7_8c58_4636_9c734424a749ebb7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1465 1 0 \"86b4178f_7d81_413f_927c02bcb8ef769c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1466 1 0 \"57a380ec_5d42_48bd_82226920c291fe2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"153c321b_e412_4add_8dacbf0df1b11b1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mp\"), 0.0, 10.0, 3, str_Value);\r\n// }} \"\"\r\n// {{ 1468 1 0 \"46388a12_8bdf_4c84_b4389f3773e67af4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1469 1 0 \"57a380ec_5d42_48bd_82226920c291fe2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1470 1 0 \"23d76617_5e50_4feb_82139a6b873697b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"38af4deb_8f74_45b6_8a815867d0de92d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"ms\"), 10.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1472 1 0 \"ec1d4f3f_3698_44eb_a2aef660f6865827\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1473 1 0 \"23d76617_5e50_4feb_82139a6b873697b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1474 1 0 \"e7ac3e37_6751_43f7_ae189f0de6957ad3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"55f8b4cf_264e_419f_92e624b25a90423e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::SetParametersAll(Translate(\"mh\"), 0.0, 10.0, 4, str_Value);\r\n// }} \"\"\r\n// {{ 1476 1 0 \"171c5de9_ee35_4815_87044442d5c4a5f3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1477 1 0 \"e7ac3e37_6751_43f7_ae189f0de6957ad3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1478 1 0 \"ce438748_a281_4e39_9eccb9221590bdb0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"4ae01db9_fd1b_4779_b543f4dcc7bd8629\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gi\"), Translate(\"000&\"));\r\n// }} \"\"\r\n// {{ 1480 1 0 \"6a13cc2d_6110_4e87_aad6d3435846cf74\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1481 1 0 \"ce438748_a281_4e39_9eccb9221590bdb0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1482 1 0 \"b6b4c8cf_d0d2_45fc_bfbde4a6ada7d2ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"d638f2d4_3600_4772_9269efda6090fa5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gj\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1484 1 0 \"6136f59a_8326_4b41_895495d0d7abefc2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1485 1 0 \"b6b4c8cf_d0d2_45fc_bfbde4a6ada7d2ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1486 1 0 \"58feaa3a_5d13_4660_861373536eb40dee\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"67c0faa7_e259_4d0a_88f71bd5d7c751ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrConcat2(Translate(\"gk\"), Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1488 1 0 \"54703d1b_c3c1_44f4_8a58359a3179e2bc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Params.AddAsLast(str_Value);\r\n// }} \"\"\r\n// {{ 1489 1 0 \"58feaa3a_5d13_4660_861373536eb40dee\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1490 1 0 \"a4601fbf_1015_41a0_a48e10a9c2dbc2d0\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParams=arr_Params.GetSize();\r\n// }} \"\"\r\n// {{ 1491 1 0 \"e5b07196_07e8_4e81_a1e9aa8119811c92\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Params = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1492 1 0 \"eb380651_9984_4dde_b96d35df33ed5f3c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParams;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1493 1 0 \"18d94b55_1a34_492a_8ce04cc75c25e3dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1494 1 0 \"eb380651_9984_4dde_b96d35df33ed5f3c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"3df79614_2e36_41f5_b0434ed7edffae53\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Firmware Command:  \"), str_FirmwareCommand, Translate(\"  :  \"), str_Params, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1496 1 0 \"5fa9165d_743c_4d9e_ab5b589535d707c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1497 1 0 \"e010b6f2_78bf_4632_be2aa286cda18776\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e010b6f2_78bf_4632_be2aa286cda18776\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 1498 1 0 \"569684ba_b55f_4a08_a4721638358a6529\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1499 1 0 \"5fa9165d_743c_4d9e_ab5b589535d707c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIPDispenseFromFixedHeight_ArrayVolumes\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelNumber5mL\" \"Begin\"\r\nfunction GetChannelNumber5mL( device & ML_STAR, variable & o_int_ChannelCount ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetChannelNumber5mL\" \"InitLocals\"\r\no_int_ChannelCount = 0;\r\n// }} \"\"\r\n// {{{ 4 1 0 \"5eadf372_7f6d_40c4_a2c2b7be42ce2612\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 5 1 0 \"338a8122_3162_4e32_b056293acd740a34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_ChannelCount = G_FW_XL_COM_TotalChannels;\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelNumber5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelRaster5mL\" \"Begin\"\r\nfunction GetChannelRaster5mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetChannelRaster5mL\" \"InitLocals\"\r\no_flt_ChannelRaster = 0;\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9e93a6e2_cf61_48bc_8e82ba8929d0f23a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 60 1 0 \"c52e0ac2_3124_44dc_a4c777716b270df4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ChannelRaster = G_FW_XL_COM_Raster;\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelRaster5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Volume_5mL\" \"Begin\"\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalFound;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_Tip_Volume_5mL\" \"InitLocals\"\r\no_flt_MaxTipVolume = 0;\r\no_flt_CurrentVolumeInTip = 0;\r\n// }} \"\"\r\n// {{ 273 1 0 \"60a64b0f_e5ec_4df4_a186b39ad3d12bd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 274 1 0 \"ba1f6888_a9ab_435e_900b5e3889da4d99\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 276 1 0 \"f53a62cc_dcf8_4f7d_85bef8bf2a7db230\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 277 1 0 \"be1e77ce_c325_4df1_8e4c7cd9bc7a4345\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 278 1 0 \"471ca568_8837_4c0a_836609fa48cab444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 279 1 0 \"26066c3f_211f_44ba_aa548c99af927539\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 280 1 0 \"b202cf5c_3b29_4d54_b464f7b576d376de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 281 1 0 \"8505736b_8747_439a_90e691254f97eab8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 282 1 0 \"60a64b0f_e5ec_4df4_a186b39ad3d12bd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 283 1 0 \"9083b1e4_2f58_486d_bad0810ea848dd8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 284 1 0 \"4d82225d_ceaa_43d8_b5dcc72bf1ae20c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = 0.0;\r\n// }} \"\"\r\n// {{ 285 1 0 \"feb8955c_289b_4435_aac6859f9cf1eb06\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = 0.0;\r\n// }} \"\"\r\n// {{ 286 1 0 \"fb25930c_f3a1_4478_91451a5b885a7df7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 287 1 0 \"cfe087ec_1481_4196_8b5d3e75939de8f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_FirmwareType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 288 1 0 \"803105de_09c5_484b_973fad35802be690\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 289 1 0 \"8b14f2dc_af4e_460e_ba67141edeb4bd01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 0.044711063;\r\n// }} \"\"\r\n// {{ 290 1 0 \"f7d6be36_1da3_4298_a60c43592c0abde6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 291 1 0 \"47b2d09f_5ba1_43e6_98ec860c770b3b94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"L\"), i_int_CurrentChannel, Translate(\"QC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 292 1 0 \"4adaa130_c0ec_4c54_83596ec9e2945c19\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"4adaa130_c0ec_4c54_83596ec9e2945c19\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 293 1 0 \"cfe087ec_1481_4196_8b5d3e75939de8f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 294 1 0 \"df73c13a_b607_415b_bf57ed83b38c775e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"8725f898_b146_4ce1_880ec4ac793bd31f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 0.044741106;\r\n// }} \"\"\r\n// {{ 296 1 0 \"a69e6542_9c81_4345_a35ced8ba9049d5b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 297 1 0 \"8782527b_f83b_4969_a3c965a41e7ccdf0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"A1L\"), i_int_CurrentChannel, Translate(\"QC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 298 1 0 \"891d951e_f974_4cb8_b678ca0dfc3f1754\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"891d951e_f974_4cb8_b678ca0dfc3f1754\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 299 1 0 \"cfe087ec_1481_4196_8b5d3e75939de8f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 300 1 0 \"3513adf9_401a_471e_b0f1cb8c49e1fb27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 301 1 0 \"c763309a_c139_49ea_9e0f5ba5224f7726\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 302 1 0 \"36197976_9f7d_481c_bb54ccb24aff5752\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"qc\"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 303 1 0 \"71ee7801_ef12_417a_bd46b693ac11df66\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalFound=arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 304 1 0 \"afc022aa_117a_496c_8e09818fa9f94fbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 1)\r\n{\r\n// }} \"\"\r\n// {{ 305 1 0 \"d7454024_dc21_4700_97bb3f760096bbcf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 306 1 0 \"c87bd61e_de99_4b48_a442f6c404e84c7b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"1428a845_2918_4290_addedc268fc0ea77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 308 1 0 \"d7454024_dc21_4700_97bb3f760096bbcf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 309 1 0 \"afc022aa_117a_496c_8e09818fa9f94fbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 310 1 0 \"1b53d4d8_d33c_4c4f_a152fc9abd10538d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 311 1 0 \"c45db941_9469_4ff9_91106a2c5f9c28fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 2)\r\n{\r\n// }} \"\"\r\n// {{ 312 1 0 \"46b774dc_4359_4c46_b52d998189b8c8cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 313 1 0 \"2cefdba4_9b59_495e_8a26baf2d9296d4a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"e2753d0f_eead_449c_a2575a357eced7f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip);\r\n// }} \"\"\r\n// {{ 315 1 0 \"46b774dc_4359_4c46_b52d998189b8c8cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 316 1 0 \"c45db941_9469_4ff9_91106a2c5f9c28fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 317 1 0 \"fb25930c_f3a1_4478_91451a5b885a7df7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Max tip volume:  \",o_flt_MaxTipVolume,\" uL\");\r\nTrace(\"     \",\"Current tip volume:  \",o_flt_CurrentVolumeInTip,\" uL\");\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"Get_Tip_Volume_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2021-07-29 11:19$$checksum=c22e39db$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/HelperLibrary.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 4/20/2022 4:45:49 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace HELPERLIBRARY {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction AdjustSequence( device & ML_STAR, sequence i_seq_SequenceToAdjust, variable i_int_StartingPosition, variable i_int_EndingPosition, sequence & o_seq_AdjustedSequence ) void { }\r\nfunction CalculateVolumeToHeight( device & ML_STAR, variable iLabwareID, variable iLiquidVolume, variable iStartHeight ) variable {  return (0); }\r\nfunction CalculateXYFromDiameterAndAngle( variable iDiameter, variable iPhi_Degree, variable & oDelta_X, variable & oDelta_Y ) void { }\r\nfunction ConvertToFloat( variable iVariable, variable & oVariable ) void { }\r\nfunction ConvertToInteger( variable iVariable, variable & oVariable ) void { }\r\nfunction GetCarrierAndSiteID( device & Instrument, variable i_str_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void { }\r\nfunction GetCenterSpotContainer( variable & o_str_CenterSpotContainerPath ) void { }\r\nfunction GetCenterSpotLabware( variable & o_str_CenterSpotLabwarePath ) void { }\r\nfunction GetChannelLimits( device & ML_STAR, variable i_Channel_Type, variable & o_Y_Max[], variable & o_Y_Min[], variable & o_Raster ) variable {  return (0); }\r\nfunction GetConfigurationFile( device & i_Instrument, variable i_LabwareID, variable & o_ConfigFile ) void { }\r\nfunction GetConnectedContainer( device & ML_STAR, variable i_str_LabID, variable & o_bool_ConnectedContainer ) void { }\r\nfunction GetContainerBaseOffset( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_containerBaseOffset ) void { }\r\nfunction GetContainerBaseThickness( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_containerBaseThickness ) void { }\r\nfunction GetContainerConfigurationFile( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_str_ContainerFileName ) void { }\r\nfunction GetContainerDepth( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void { }\r\nfunction GetContainerGeometry( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_str_ContainerGeometry ) void { }\r\nfunction GetContainerShape( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_int_ContainerShape ) void { }\r\nfunction GetContainerWidth( device & ML_STAR, variable i_str_LabID, variable & o_flt_ContainerWidth ) void { }\r\nfunction GetDefaultSequence( device & ML_STAR, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void { }\r\nfunction GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable {  return (0); }\r\nfunction GetFirstPosition( device & ML_STAR, variable i_str_LabID, variable & o_str_PosID ) void { }\r\nfunction GetIndexingFormat( device & io_instrument, variable i_str_Labware, variable & o_positionIndexingFormat ) void { }\r\nfunction GetLabwareCenter2( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void { }\r\nfunction GetLabwareFileName( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareFileName ) void { }\r\nfunction GetLabwareLW( device & Instrument, variable i_str_LabID, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void { }\r\nfunction GetLabwareName( device & ML_STAR, variable i_str_LabID, variable & o_str_ViewName ) void { }\r\nfunction GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { }\r\nfunction GetLabwareType( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareType ) void { }\r\nfunction GetLabwareVisibility( device & ML_STAR, variable i_str_LabID, variable & o_int_LabwareVisibility ) void { }\r\nfunction GetRackHeight( device & ML_STAR, variable i_str_LabID, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void { }\r\nfunction GetRowColumnNumber( device & Instrument, variable i_str_LabwareID, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void { }\r\nfunction GetTempSortingFilePath( variable & o_str_TempSortingFilePath ) void { }\r\nfunction GetTipName( device & ML_STAR, variable i_str_TipLabware, variable & o_str_TipName, variable & o_int_TipType ) void { }\r\nfunction GetTransportSequence( device & ML_STAR, variable i_str_LabID, sequence & o_seq_TransportSequence ) void { }\r\nfunction GetZTranslate( device & ML_STAR, variable i_str_LabID, variable & o_flt_ZTranslate, variable & o_flt_ZTransValue ) void { }\r\nfunction Lookup( variable & array[], variable item ) variable {  return (0); }\r\nfunction RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void { }\r\nfunction ReplaceLabware( device & ML_STAR, variable i_str_LabID, variable i_str_NewConfigFile ) void { }\r\nfunction SetAbsolutePositionForLabwareID( device & io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { }\r\nfunction Set_Channel_Pattern( variable & io_Channel_Pattern, variable i_Channel_Number, variable i_Value ) void { }\r\nfunction Set_Relative_Position_for_LabwareID( device & io_devDevice, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { }\r\nfunction SortSequence( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID ) void { }\r\nfunction SortSequenceRaster( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID, variable i_flt_YRaster ) void { }\r\nfunction SortSequences( device & Instrument, sequence & io_Sequence1, sequence & io_Sequence2, variable i_bln_ByLabID ) void { }\r\nfunction SplitString( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { }\r\nfunction TipCapacityCheck( device & Instrument, variable i_str_TipLabware, variable & o_flt_TipCapacity ) void { }\r\nfunction TipCheck( device & Instrument, sequence & i_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void { }\r\nfunction _ConvertToFloat( variable & io_Variable ) void { }\r\nfunction _ConvertToInt( variable & io_Variable ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2022-04-20 16:45$$checksum=e738357c$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/HelperLibrary.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"Alpha Numeric Conversion\\\\Alpha Numeric Conversion.hs_\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSLTipCountingLib.hsl\"\r\n#include \"HSLDeckVisualize.hsl\"\r\n#include \"HSLStatistics.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace HELPERLIBRARY {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction AdjustSequence( device & ML_STAR, sequence i_seq_SequenceToAdjust, variable i_int_StartingPosition, variable i_int_EndingPosition, sequence & o_seq_AdjustedSequence ) void ;\r\nfunction CalculateVolumeToHeight( device & ML_STAR, variable iLabwareID, variable iLiquidVolume, variable iStartHeight ) variable ;\r\nfunction CalculateXYFromDiameterAndAngle( variable iDiameter, variable iPhi_Degree, variable & oDelta_X, variable & oDelta_Y ) void ;\r\nfunction ConvertToFloat( variable iVariable, variable & oVariable ) void ;\r\nfunction ConvertToInteger( variable iVariable, variable & oVariable ) void ;\r\nprivate function FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void ;\r\nfunction GetCarrierAndSiteID( device & Instrument, variable i_str_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void ;\r\nfunction GetCenterSpotContainer( variable & o_str_CenterSpotContainerPath ) void ;\r\nfunction GetCenterSpotLabware( variable & o_str_CenterSpotLabwarePath ) void ;\r\nfunction GetChannelLimits( device & ML_STAR, variable i_Channel_Type, variable & o_Y_Max[], variable & o_Y_Min[], variable & o_Raster ) variable ;\r\nfunction GetConfigurationFile( device & i_Instrument, variable i_LabwareID, variable & o_ConfigFile ) void ;\r\nfunction GetConnectedContainer( device & ML_STAR, variable i_str_LabID, variable & o_bool_ConnectedContainer ) void ;\r\nfunction GetContainerBaseOffset( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_containerBaseOffset ) void ;\r\nfunction GetContainerBaseThickness( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_containerBaseThickness ) void ;\r\nfunction GetContainerConfigurationFile( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_str_ContainerFileName ) void ;\r\nfunction GetContainerDepth( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void ;\r\nfunction GetContainerGeometry( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_str_ContainerGeometry ) void ;\r\nfunction GetContainerShape( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_int_ContainerShape ) void ;\r\nfunction GetContainerWidth( device & ML_STAR, variable i_str_LabID, variable & o_flt_ContainerWidth ) void ;\r\nfunction GetDefaultSequence( device & ML_STAR, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void ;\r\nfunction GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable ;\r\nfunction GetFirstPosition( device & ML_STAR, variable i_str_LabID, variable & o_str_PosID ) void ;\r\nfunction GetIndexingFormat( device & io_instrument, variable i_str_Labware, variable & o_positionIndexingFormat ) void ;\r\nfunction GetLabwareCenter2( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void ;\r\nprivate function GetLabwareCenter2_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void ;\r\nprivate function GetLabwareCenter_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_Center_X, variable & o_flt_Center_Y ) void ;\r\nfunction GetLabwareFileName( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareFileName ) void ;\r\nfunction GetLabwareLW( device & Instrument, variable i_str_LabID, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void ;\r\nfunction GetLabwareName( device & ML_STAR, variable i_str_LabID, variable & o_str_ViewName ) void ;\r\nfunction GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ;\r\nprivate 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 ;\r\nfunction GetLabwareType( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareType ) void ;\r\nfunction GetLabwareVisibility( device & ML_STAR, variable i_str_LabID, variable & o_int_LabwareVisibility ) void ;\r\nprivate function GetProbeAdjustment( device & ML_STAR, variable i_str_LabID, variable & o_flt_XProbeAdjustment, variable & o_flt_YProbeAdjustment, variable & o_flt_ZProbeAdjustment ) void ;\r\nfunction GetRackHeight( device & ML_STAR, variable i_str_LabID, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void ;\r\nfunction GetRowColumnNumber( device & Instrument, variable i_str_LabwareID, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void ;\r\nfunction GetTempSortingFilePath( variable & o_str_TempSortingFilePath ) void ;\r\nfunction GetTipName( device & ML_STAR, variable i_str_TipLabware, variable & o_str_TipName, variable & o_int_TipType ) void ;\r\nfunction GetTransportSequence( device & ML_STAR, variable i_str_LabID, sequence & o_seq_TransportSequence ) void ;\r\nfunction GetZTranslate( device & ML_STAR, variable i_str_LabID, variable & o_flt_ZTranslate, variable & o_flt_ZTransValue ) void ;\r\nfunction Lookup( variable & array[], variable item ) variable ;\r\nfunction RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void ;\r\nprivate function RemoveTruncatedSequencePositionsOLD( device & ML_STAR, sequence & io_Sequence ) void ;\r\nfunction ReplaceLabware( device & ML_STAR, variable i_str_LabID, variable i_str_NewConfigFile ) void ;\r\nfunction SetAbsolutePositionForLabwareID( device & io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ;\r\nfunction Set_Channel_Pattern( variable & io_Channel_Pattern, variable i_Channel_Number, variable i_Value ) void ;\r\nfunction Set_Relative_Position_for_LabwareID( device & io_devDevice, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ;\r\nfunction SortSequence( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID ) void ;\r\nfunction SortSequenceRaster( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID, variable i_flt_YRaster ) void ;\r\nfunction SortSequences( device & Instrument, sequence & io_Sequence1, sequence & io_Sequence2, variable i_bln_ByLabID ) void ;\r\nfunction SplitString( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nfunction TipCapacityCheck( device & Instrument, variable i_str_TipLabware, variable & o_flt_TipCapacity ) void ;\r\nfunction TipCheck( device & Instrument, sequence & i_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void ;\r\nfunction _ConvertToFloat( variable & io_Variable ) void ;\r\nfunction _ConvertToInt( variable & io_Variable ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nANC::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nANC::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"GetLabwareCenter_OLD\" \"Begin\"\r\nprivate function GetLabwareCenter_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_Center_X, variable & o_flt_Center_Y ) void {\r\n// }} \"\"\r\nprivate variable flt_BoundaryX;\r\nprivate variable flt_BoundaryY;\r\nprivate variable flt_RackWidthX;\r\nprivate variable flt_RackWidthY;\r\nprivate variable flt_HalfRackWidthX;\r\nprivate variable flt_HalfRackWidthY;\r\nprivate variable flt_Angle;\r\n// {{ 5 \"GetLabwareCenter_OLD\" \"InitLocals\"\r\no_flt_Center_X = 0;\r\no_flt_Center_Y = 0;\r\n// }} \"\"\r\n// {{ 387 1 0 \"3ba277ed_40a7_4471_9411073e92ba87b9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_X = 0.0;\r\n// }} \"\"\r\n// {{ 388 1 0 \"ee9c188f_d889_413a_a6cb988b04606220\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_Y = 0.0;\r\n// }} \"\"\r\n// {{ 389 1 0 \"46b7754f_a226_4ff6_836cdcb746c7a0b9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryX = 0.0;\r\n// }} \"\"\r\n// {{ 390 1 0 \"ae4ab0f7_6021_415c_95eef25a0bc4d2ba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryY = 0.0;\r\n// }} \"\"\r\n// {{ 391 1 0 \"0ff64bd9_bb9a_4bc3_bbc6f75c8e0a3c7e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthX = 0.0;\r\n// }} \"\"\r\n// {{ 392 1 0 \"19a3b357_0526_4de3_b2a41299c8088154\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthY = 0.0;\r\n// }} \"\"\r\n// {{ 393 1 0 \"144d39f5_32b1_4973_82a2ec7d8a15b580\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Angle = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nflt_BoundaryX = objRackDataParams.Item1(\"Labwr_Bndry1X\");\r\nflt_BoundaryY = objRackDataParams.Item1(\"Labwr_Bndry1Y\");\r\nflt_RackWidthX = objRackDataParams.Item1(\"Labwr_XDim\");\r\nflt_RackWidthY = objRackDataParams.Item1(\"Labwr_YDim\");\r\nflt_Angle = objEditLabware5.Angle();\r\n\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 395 1 0 \"847b42f4_6388_46ef_8364fd4eea4dea87\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Angle == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 396 1 0 \"a602bfbe_0402_4139_b4a57b18707785d1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfRackWidthX = flt_RackWidthX / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 397 1 0 \"754a9cdd_a605_49c6_afaa8ec4a8e7da67\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfRackWidthY = flt_RackWidthY / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 398 1 0 \"47fd2a8a_0c9d_4e28_9f509a4b33778889\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_X = flt_BoundaryX + flt_HalfRackWidthX;\r\n// }} \"\"\r\n// {{ 399 1 0 \"59af96fa_4dbf_461e_85c169cd7c24e38b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_Y = flt_BoundaryY + flt_HalfRackWidthY;\r\n// }} \"\"\r\n// {{ 400 1 0 \"847b42f4_6388_46ef_8364fd4eea4dea87\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 401 1 0 \"548cac89_9812_4bd4_8b3b480a1f6c7758\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Angle == 180.0)\r\n{\r\n// }} \"\"\r\n// {{ 402 1 0 \"5466f38a_5b2f_4c7f_9cb37567859887c0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfRackWidthX = flt_RackWidthX / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 403 1 0 \"26b39e92_8f10_4c74_88186f25f0e46b4f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfRackWidthY = flt_RackWidthY / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 404 1 0 \"a0a9fae9_f749_43c7_b375294939b8c3df\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_X = flt_BoundaryX - flt_HalfRackWidthX;\r\n// }} \"\"\r\n// {{ 405 1 0 \"3532b160_8b98_4343_973f1fb8ea2305a6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_Y = flt_BoundaryY - flt_HalfRackWidthY;\r\n// }} \"\"\r\n// {{ 406 1 0 \"548cac89_9812_4bd4_8b3b480a1f6c7758\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 407 1 0 \"1f44821d_7069_4f1b_80dbf2e493e12416\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Angle == 270.0)\r\n{\r\n// }} \"\"\r\n// {{ 408 1 0 \"08374814_2e20_44f1_891f76eed34dcf98\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfRackWidthX = flt_RackWidthX / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 409 1 0 \"462fec21_3dfc_487a_bdd3ed75f7c35bf6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfRackWidthY = flt_RackWidthY / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 410 1 0 \"d2c6525b_cf36_4df2_b90ce4396fe851fc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_X = flt_BoundaryX - flt_HalfRackWidthY;\r\n// }} \"\"\r\n// {{ 411 1 0 \"87ea7889_9159_480e_a24c44af5d834c85\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_Y = flt_BoundaryY + flt_HalfRackWidthX;\r\n// }} \"\"\r\n// {{ 412 1 0 \"1f44821d_7069_4f1b_80dbf2e493e12416\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 413 1 0 \"19efda46_4468_4bfa_9d4c01d1d293dd38\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Angle == 90.0)\r\n{\r\n// }} \"\"\r\n// {{ 414 1 0 \"feb7bfb8_4c8f_497f_933721ab3e5bf5ab\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfRackWidthX = flt_RackWidthX / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 415 1 0 \"72cb01cd_fc69_4f48_a8dbb726f557d948\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfRackWidthY = flt_RackWidthY / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 416 1 0 \"64266667_38de_4dcf_8aec143acf9fa398\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_X = flt_BoundaryX + flt_HalfRackWidthY;\r\n// }} \"\"\r\n// {{ 417 1 0 \"4ec953ba_d21c_4fc6_8b1f776c7227a246\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Center_Y = flt_BoundaryY - flt_HalfRackWidthX;\r\n// }} \"\"\r\n// {{ 418 1 0 \"19efda46_4468_4bfa_9d4c01d1d293dd38\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareCenter_OLD\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetFirstPosition\" \"Begin\"\r\nfunction GetFirstPosition( device & ML_STAR, variable i_str_LabID, variable & o_str_PosID ) void {\r\n// }} \"\"\r\nprivate variable int_TotalColumns;\r\nprivate variable int_Index;\r\nprivate variable int_TotalRows;\r\nprivate variable int_Increment;\r\n// {{ 5 \"GetFirstPosition\" \"InitLocals\"\r\no_str_PosID = 0;\r\n// }} \"\"\r\n// {{ 301 1 0 \"c8b440f7_009b_4141_96c0c3007ba0a893\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalRows = 0;\r\n// }} \"\"\r\n// {{ 302 1 0 \"dcaad2ec_0f35_45b5_b8e492f5e2d85228\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalColumns = 0;\r\n// }} \"\"\r\n// {{ 303 1 0 \"438777c5_7760_459f_902a101dc77d227d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = 0;\r\n// }} \"\"\r\n// {{ 304 1 0 \"2ae3e88d_d8f9_4488_9be13b67431b741b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Increment = 0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nint_TotalRows = objRack4.Rows();\r\nint_TotalColumns = objRack4.Columns();\r\nint_Index = objRack4.Index();\r\nint_Increment = objRack4.Increment();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 306 1 0 \"cee06bd8_a364_4f64_a8a48f943a51870f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 307 1 0 \"cf6e20cf_d35f_470e_bde04ceb4966569b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nANC::Convert_Numbers_to_Alpha_Numeric(int_Increment, 1, int_TotalRows, int_TotalColumns, o_str_PosID);\r\n// }} \"\"\r\n// {{ 308 1 0 \"cee06bd8_a364_4f64_a8a48f943a51870f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 309 1 0 \"4bfd1307_0f95_484d_8c4ed030c4bb59e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_PosID = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 310 1 0 \"cee06bd8_a364_4f64_a8a48f943a51870f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetFirstPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetDefaultSequence\" \"Begin\"\r\nfunction GetDefaultSequence( device & ML_STAR, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void {\r\n// }} \"\"\r\nprivate variable int_Increment;\r\nprivate variable int_TotalColumns;\r\nprivate variable int_Index;\r\nprivate variable int_TotalRows;\r\nprivate variable i;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalPositions;\r\n// {{ 5 \"GetDefaultSequence\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 233 1 0 \"ccd7f7ab_c072_4e70_9f15e93df5140777\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_DefaultSequence);\r\n// }} \"\"\r\n// {{ 234 1 0 \"efd5d9da_ee30_4508_aa2dfcc59018958e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalRows = 0;\r\n// }} \"\"\r\n// {{ 235 1 0 \"ae71793f_d5b3_4fd7_a36e66012ead1df3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalColumns = 0;\r\n// }} \"\"\r\n// {{ 236 1 0 \"d3ba81c8_4671_42bc_93aba1d248de30f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = 0;\r\n// }} \"\"\r\n// {{ 237 1 0 \"d8adb416_9cdc_443a_92fd00de3eeb446b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Increment = 0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nint_TotalRows = objRack4.Rows();\r\nint_TotalColumns = objRack4.Columns();\r\nint_Index = objRack4.Index();\r\nint_Increment = objRack4.Increment();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 239 1 0 \"f6c9da22_cf8c_4738_a70f0a72de085142\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalPositions = int_TotalColumns * int_TotalRows;\r\n// }} \"\"\r\n// {{ 240 1 0 \"0134623f_4b32_42e6_a94d75d7d8a19b81\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 241 1 0 \"35f367a2_b87d_46f5_8772a2b676b9317c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"1d9ef885_dfb1_497e_be598dd08dc99d33\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nANC::Convert_Numbers_to_Alpha_Numeric(i_bool_SortByColumn, i, int_TotalRows, int_TotalColumns, str_PosID);\r\n// }} \"\"\r\n// {{ 243 1 0 \"35f367a2_b87d_46f5_8772a2b676b9317c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 244 1 0 \"2e26872a_f389_49ec_96d92031564d67aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = StrConcat2(i, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 245 1 0 \"35f367a2_b87d_46f5_8772a2b676b9317c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 246 1 0 \"c50fec5e_2baa_42c1_ae8febd0637f79db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_DefaultSequence, i_str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 247 1 0 \"0134623f_4b32_42e6_a94d75d7d8a19b81\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 248 1 0 \"61c7eced_16f5_4ac3_8b3af29b2a599728\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_DefaultSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 249 1 0 \"7cfdae6c_9786_4a60_9b9e4c63bb8cc301\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceSequence(o_seq_DefaultSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"GetDefaultSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelLimits\" \"Begin\"\r\nfunction GetChannelLimits( device & ML_STAR, variable i_Channel_Type, variable & o_Y_Max[], variable & o_Y_Min[], variable & o_Raster ) variable {\r\n// }} \"\"\r\nprivate variable y_value;\r\nprivate variable raster_labhand_channels;\r\nprivate variable minimum_y;\r\nprivate variable chan_index;\r\nprivate variable num_labhand_channels;\r\nprivate variable num_camera_channels;\r\nprivate variable raster_1mL_channels;\r\nprivate variable num_1mL_channels;\r\nprivate variable raster_5mL_channels;\r\nprivate variable raster_camera_channels;\r\nprivate variable maximum_y;\r\nprivate variable num_5mL_channels;\r\nprivate variable ret_Num_Channels;\r\nprivate variable chan_offset;\r\nprivate variable arr_max_y_5mL[];\r\nprivate variable arr_min_y_labhand[];\r\nprivate variable arr_min_y_1mL[];\r\nprivate variable arr_min_y_5mL[];\r\nprivate variable arr_max_y_labhand[];\r\nprivate variable arr_max_y_1mL[];\r\nprivate variable type_labhand_channels;\r\n// {{ 5 \"GetChannelLimits\" \"InitLocals\"\r\no_Y_Max.SetSize( 0);\r\no_Y_Min.SetSize( 0);\r\no_Raster = 0;\r\n// }} \"\"\r\n// {{ 78 1 0 \"ea336ebe_bc81_4c01_b429969c3e16dae7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Num_Channels = 0;\r\n// }} \"\"\r\n// {{ 79 1 0 \"f59b8491_143f_417b_ad1dfe648c381420\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Raster = 0;\r\n// }} \"\"\r\n// {{ 80 1 0 \"9923fc5f_9eed_42d3_80a762f5e641e5e4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_Y_Max.SetSize(0);\r\n// }} \"\"\r\n// {{ 81 1 0 \"d3ba671f_a59c_4607_9ccedc50b056222b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_Y_Min.SetSize(0);\r\n// }} \"\"\r\n// {{{ 82 1 0 \"9127229f_0d90_4420_8badf09befa86ff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrConcat2(i_Channel_Type, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 83 1 0 \"d6ffd722_c18a_4c68_86d7d7c0f1344357\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrIVal(i_Channel_Type);\r\n// }} \"\"\r\n// {{ 84 1 0 \"824ee71a_394f_4ace_8c0632bae4e5dcf6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type < 0)\r\n{\r\n// }} \"\"\r\n// {{{ 85 1 0 \"fff13015_d158_4877_8a5956786fc82dc1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 86 1 0 \"b362e070_80ac_4144_92363a6e871e3807\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Num_Channels);\r\n// }} \"\"\r\n// {{ 87 1 0 \"824ee71a_394f_4ace_8c0632bae4e5dcf6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 88 1 0 \"27ce5445_7451_46a7_8eb864f8d122af81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 89 1 0 \"dcf8bcb6_b235_41e4_a0895f9dc5f25857\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 90 1 0 \"baf16651_7d55_44d3_9cde2031f6e327ee\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Num_Channels);\r\n// }} \"\"\r\n// {{ 91 1 0 \"27ce5445_7451_46a7_8eb864f8d122af81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 92 1 0 \"44e04681_e0e6_4874_a6f14fdf66a94806\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 93 1 0 \"6cd127ca_f412_4327_8d7d2f79055deb3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"f1dd7d11_29b2_4c5a_b6a9189c6a4cdf4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"438bffdc_8fff_4612_98a676b0d09e2b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47);\r\n// }} \"\"\r\n// {{{ 96 1 0 \"56a03ed9_ea7e_4d6c_b443f0ba2d3b7419\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_camera_channels = DevGetCfgValueWithKey(ML_STAR, 45);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Total Camera Channels:  \",num_camera_channels);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 98 1 0 \"788b58c2_f89b_4ac7_9f2fa02a5694bfaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nraster_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 26);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"e5f1f606_b625_4018_9c0736002e7e269c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nraster_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 42);\r\n// }} \"\"\r\n// {{{ 100 1 0 \"a8daad3c_eb84_4ad1_97c761eb5925b839\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nraster_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 48);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"e5a5b7fd_4120_404d_9a0e73b64875034f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntype_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 58);\r\n// }} \"\"\r\n// {{ 102 1 0 \"5a23a4ac_3f9f_4bc0_aa08a6c6ee9a1fba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (type_labhand_channels == 4)\r\n{\r\n// }} \"\"\r\n// {{ 103 1 0 \"a70a1bbb_4c6a_46eb_aab6ff94aac91edc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 104 1 0 \"eb457f28_b4bd_4ef3_986e73926542e73b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnum_labhand_channels = 0;\r\n// }} \"\"\r\n// {{ 105 1 0 \"5a23a4ac_3f9f_4bc0_aa08a6c6ee9a1fba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 106 1 0 \"8af282d9_7ecf_49ce_8943ed94eb2f2bd4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (type_labhand_channels == 5)\r\n{\r\n// }} \"\"\r\n// {{ 107 1 0 \"b810931a_9c5c_4377_9773fcd5d6b748db\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 108 1 0 \"77683ab6_6f3e_48a6_9f1bb16b5926a0fd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnum_labhand_channels = 0;\r\n// }} \"\"\r\n// {{ 109 1 0 \"8af282d9_7ecf_49ce_8943ed94eb2f2bd4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 110 1 0 \"0f228898_fadf_426e_87055fab9fbb603d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nraster_camera_channels = 18;\r\n// }} \"\"\r\n// {{ 111 1 0 \"16568ff7_a171_4706_8d48c736971d6d44\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nraster_camera_channels = 22.5;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 112 1 0 \"5f3ec8e0_6491_47ed_8b9c2eec42744ce5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nraster_camera_channels = 29.5;\r\n// }} \"\"\r\n// {{ 113 1 0 \"44e04681_e0e6_4874_a6f14fdf66a94806\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 114 1 0 \"046ae8a3_3ac1_4977_a0ac2412246a0b24\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 115 1 0 \"6f9b04fd_4552_47a5_8e0a50c82ed9b0b9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmaximum_y = 613.5;\r\n// }} \"\"\r\n// {{ 116 1 0 \"251c347e_acf8_4329_b0c89de985a332d9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nmaximum_y = 614.5;\r\n// }} \"\"\r\n// {{ 117 1 0 \"5443e481_0e0f_42e5_87aa2ff7c958a04b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = maximum_y;\r\n// }} \"\"\r\n// {{ 118 1 0 \"d1b7d9df_5a33_4046_8676446200610f15\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 119 1 0 \"89abbd40_780b_4aea_a55f2106230249d9\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_max_y_1mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 120 1 0 \"b74263e3_5c4f_4cf9_be2fe49e3ffbc328\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(chan_index = 0; chan_index < num_1mL_channels;)\r\n{\r\nchan_index = chan_index + 1;\r\n// }} \"\"\r\n// {{ 121 1 0 \"2e3651a5_91f0_4ca6_ad8eb2d9eb55e37d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = chan_index * raster_1mL_channels;\r\n// }} \"\"\r\n// {{ 122 1 0 \"c8494529_c5c9_49d2_8b61b92efc952185\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = maximum_y - y_value;\r\n// }} \"\"\r\n// {{ 123 1 0 \"68ea8426_7d73_4c67_bdcd501cf33d857b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_max_y_1mL.AddAsLast(y_value);\r\n// }} \"\"\r\n// {{ 124 1 0 \"b74263e3_5c4f_4cf9_be2fe49e3ffbc328\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nmaximum_y = maximum_y - (num_1mL_channels * raster_1mL_channels);\r\n// {{ 126 1 0 \"7c81d0b1_8b57_4e7f_a90ab55d848e1582\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 127 1 0 \"0eba1ace_53eb_4540_aeeea8569425c2ac\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_max_y_5mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9ad84e1c_94a2_4902_bd549388a436fb96\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(chan_index = 0; chan_index < num_5mL_channels;)\r\n{\r\nchan_index = chan_index + 1;\r\n// }} \"\"\r\n// {{ 129 1 0 \"cf66ecc0_40f2_4abb_ab9716df34c8a8ec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = chan_index * raster_5mL_channels;\r\n// }} \"\"\r\n// {{ 130 1 0 \"19ac8a5f_68b7_440d_96168c405c91dd08\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = maximum_y - y_value;\r\n// }} \"\"\r\n// {{ 131 1 0 \"6d915fd2_e4fe_482a_a659e8fba2346916\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_max_y_5mL.AddAsLast(y_value);\r\n// }} \"\"\r\n// {{ 132 1 0 \"9ad84e1c_94a2_4902_bd549388a436fb96\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nmaximum_y = maximum_y - (num_5mL_channels * raster_5mL_channels);\r\n// {{ 134 1 0 \"93f4b5e4_08ba_4675_9556d010942f0910\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 135 1 0 \"e8ffccb9_edd3_48bd_bca8bb3f4e97caec\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_max_y_labhand.SetSize(0);\r\n// }} \"\"\r\n// {{ 136 1 0 \"9fcbe538_a2e6_442a_bfd2bef110d1fdd8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(chan_index = 0; chan_index < num_labhand_channels;)\r\n{\r\nchan_index = chan_index + 1;\r\n// }} \"\"\r\n// {{ 137 1 0 \"0dc434fd_558c_41f0_a3294e0a5aa587d5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = chan_index * raster_labhand_channels;\r\n// }} \"\"\r\n// {{ 138 1 0 \"fbdee2f0_c9dd_4250_ba68c1825f6f4e33\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = maximum_y - y_value;\r\n// }} \"\"\r\n// {{ 139 1 0 \"0e9d9631_a3c1_4f78_8250f4018865a8ad\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_max_y_labhand.AddAsLast(y_value);\r\n// }} \"\"\r\n// {{ 140 1 0 \"9fcbe538_a2e6_442a_bfd2bef110d1fdd8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 141 1 0 \"046ae8a3_3ac1_4977_a0ac2412246a0b24\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 142 1 0 \"a0515340_0c7b_421f_a80b891f32e59806\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"07d7a07d_da6d_4fa6_a4eef30fa2fd5626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nminimum_y = -1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 144 1 0 \"28428876_1bff_46a0_a4c39ac7be51c3d4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nminimum_y = 6.0;\r\n// }} \"\"\r\n// {{ 145 1 0 \"fc2181d2_1257_4f50_99d3b91844fa3306\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nminimum_y = -0.5;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 146 1 0 \"27e7c182_6096_49f8_8df45245bd87f3bb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = 0.0;\r\n// }} \"\"\r\nminimum_y = minimum_y + (num_camera_channels * raster_camera_channels);\r\n// {{ 148 1 0 \"9190cc47_0515_4ca8_9652eaeedbf2cb60\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_min_y_labhand.SetSize(0);\r\n// }} \"\"\r\n// {{ 149 1 0 \"78c5aedf_6d7c_4907_865a6e82d4c0f2fb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(chan_offset = 0; chan_offset < num_labhand_channels;)\r\n{\r\nchan_offset = chan_offset + 1;\r\n// }} \"\"\r\n// {{ 150 1 0 \"83411ddf_2f6a_4a67_b55794711ab1d1d3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nchan_index = num_labhand_channels - chan_offset;\r\n// }} \"\"\r\n// {{ 151 1 0 \"002539cb_d3f8_4765_a4cc0c935d124cec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nchan_index = chan_index + 1;\r\n// }} \"\"\r\n// {{ 152 1 0 \"e4b7144d_abb3_4926_b5eaa24c257f0e2c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = chan_index * raster_labhand_channels;\r\n// }} \"\"\r\n// {{ 153 1 0 \"46bd42ff_3aaf_443a_b294282cf83b98f6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = minimum_y + y_value;\r\n// }} \"\"\r\n// {{ 154 1 0 \"68ed3784_5241_4d99_84fcdb477f6090fb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_min_y_labhand.AddAsLast(y_value);\r\n// }} \"\"\r\n// {{ 155 1 0 \"78c5aedf_6d7c_4907_865a6e82d4c0f2fb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nminimum_y = minimum_y + (num_labhand_channels * raster_labhand_channels);\r\n// {{ 157 1 0 \"c9c3f0ce_5188_4c63_ae326ab0690bffcd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_min_y_5mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 158 1 0 \"9f5d335d_c0a4_4f15_9a7530d0599b4065\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(chan_offset = 0; chan_offset < num_5mL_channels;)\r\n{\r\nchan_offset = chan_offset + 1;\r\n// }} \"\"\r\n// {{ 159 1 0 \"01515408_ed18_45db_a8bf2d5a8d18c1d1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nchan_index = num_5mL_channels - chan_offset;\r\n// }} \"\"\r\n// {{ 160 1 0 \"7f57655b_0626_47ee_8e516ca7e58ce328\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nchan_index = chan_index + 1;\r\n// }} \"\"\r\n// {{ 161 1 0 \"bc9c207f_3467_49bf_a8d922d6f6e2b211\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = chan_index * raster_5mL_channels;\r\n// }} \"\"\r\n// {{ 162 1 0 \"588eb412_7f69_49c7_9b72dde665758c57\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = minimum_y + y_value;\r\n// }} \"\"\r\n// {{ 163 1 0 \"9d660dd9_3d19_4e86_b09f38b00a60c9f8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_min_y_5mL.AddAsLast(y_value);\r\n// }} \"\"\r\n// {{ 164 1 0 \"9f5d335d_c0a4_4f15_9a7530d0599b4065\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nminimum_y = minimum_y + (num_5mL_channels * raster_5mL_channels);\r\n// {{ 166 1 0 \"12147f80_80e5_4015_b2216690387ed1bf\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_min_y_1mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 167 1 0 \"883ae312_793c_4fde_a836d00ae53a6725\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(chan_offset = 0; chan_offset < num_1mL_channels;)\r\n{\r\nchan_offset = chan_offset + 1;\r\n// }} \"\"\r\n// {{ 168 1 0 \"5ac1f7b3_29b5_439f_bfb20ccd2b37b0d7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nchan_index = num_1mL_channels - chan_offset;\r\n// }} \"\"\r\n// {{ 169 1 0 \"539f981f_99a3_4e11_8d8964bf1a66a183\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nchan_index = chan_index + 1;\r\n// }} \"\"\r\n// {{ 170 1 0 \"5079d029_71ed_4402_90b7b969f8d63ad6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = chan_index * raster_1mL_channels;\r\n// }} \"\"\r\n// {{ 171 1 0 \"7d4759ae_3552_4c63_8a9e966a48d94a1d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ny_value = minimum_y + y_value;\r\n// }} \"\"\r\n// {{ 172 1 0 \"d93101e8_a683_47d3_a36a68e6294393e9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_min_y_1mL.AddAsLast(y_value);\r\n// }} \"\"\r\n// {{ 173 1 0 \"883ae312_793c_4fde_a836d00ae53a6725\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 174 1 0 \"a0515340_0c7b_421f_a80b891f32e59806\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 175 1 0 \"abf52a84_8669_46f0_b07d9ea29e17fd01\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 176 1 0 \"b597dc83_5eb7_49e3_886672f268701d1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 177 1 0 \"dcb7264d_e7e5_4175_ae9a08b76fda61b3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 178 1 0 \"2050d3e0_e288_4f10_b3b317b91c8d242b\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_Y_Max=arr_max_y_1mL;\r\n// }} \"\"\r\n// {{ 179 1 0 \"01694b3c_2ff2_47df_aaa1a3247b6faa5b\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_Y_Min=arr_min_y_1mL;\r\n// }} \"\"\r\n// {{ 180 1 0 \"f4e7c4ee_dd71_4359_b8b8e31f4f5c47ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Raster = raster_1mL_channels;\r\n// }} \"\"\r\n// {{{ 181 1 0 \"6ada8780_f22c_4b6b_a5544de1e9ae6eac\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (num_1mL_channels);\r\n// }} \"\"\r\n// {{ 182 1 0 \"b597dc83_5eb7_49e3_886672f268701d1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"22bd27bc_d9d9_4705_ba816d5facff5142\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 184 1 0 \"f6043c58_46f6_4c93_b72dc1678ee402a3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"dc686eef_5ae0_464b_93f8926b3b59ff7f\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_Y_Max=arr_max_y_5mL;\r\n// }} \"\"\r\n// {{ 186 1 0 \"0733b7d8_3f82_4649_bb47fe65b21db6a9\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_Y_Min=arr_min_y_5mL;\r\n// }} \"\"\r\n// {{ 187 1 0 \"ce7c61c2_a7c4_42e6_9c2c15616430e50d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Raster = raster_5mL_channels;\r\n// }} \"\"\r\n// {{{ 188 1 0 \"1be90bc1_95d6_468a_920e5594644f2a80\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (num_5mL_channels);\r\n// }} \"\"\r\n// {{ 189 1 0 \"22bd27bc_d9d9_4705_ba816d5facff5142\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 190 1 0 \"6af2c6e5_e19b_4553_93d371fa6d06c2dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 191 1 0 \"b74ab50d_68e6_4353_83a7815ed353d9d0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 192 1 0 \"e7f431d6_4233_4891_abde639180989db8\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_Y_Max=arr_max_y_labhand;\r\n// }} \"\"\r\n// {{ 193 1 0 \"7d9122fe_452f_4329_bef219e468198bfb\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\no_Y_Min=arr_min_y_labhand;\r\n// }} \"\"\r\n// {{ 194 1 0 \"4d7bac82_a777_490b_8b51e8a87816eb18\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Raster = raster_labhand_channels;\r\n// }} \"\"\r\n// {{{ 195 1 0 \"8d29e814_82cb_4b62_9fe2223aedb75bc5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (num_labhand_channels);\r\n// }} \"\"\r\n// {{ 196 1 0 \"6af2c6e5_e19b_4553_93d371fa6d06c2dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetChannelLimits\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SetAbsolutePositionForLabwareID\" \"Begin\"\r\nfunction SetAbsolutePositionForLabwareID( device & io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void {\r\n// }} \"\"\r\n// {{ 5 \"SetAbsolutePositionForLabwareID\" \"InitLocals\"\r\n// }} \"\"\r\n// Set Absolute Position\r\n{\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n      variable PosVals[];\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n      //strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      //if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      //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);\r\n\r\n      //EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      //LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object Decklayout5;\r\n          object MoveParameters;\r\n\r\n          objDecklayout.GetObject(\"IDeckLayout5\", Decklayout5);\r\n\r\n          //EnterSemaphore();             \r\n          //io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          //LeaveSemaphore();\r\n\r\n          //StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Current position: (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n\r\n          MoveParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          MoveParameters.Add(i_strLabwareID, P_LABWARE_ID);\r\n          MoveParameters.Add(i_fltPositionX, P_XCOORD);\r\n          MoveParameters.Add(i_fltPositionY, P_YCOORD);\r\n          MoveParameters.Add(i_fltPositionZ, P_ZCOORD);\r\n          MoveParameters.Add(i_fltPositionR, P_RZCOORD);\r\n\r\n          Decklayout5.MoveLabware(objLabware, MoveParameters);\r\n\r\n          // Trace new position\r\n          //EnterSemaphore();\r\n          //io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          //LeaveSemaphore();\r\n\r\n          objLabware.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          Decklayout5.ReleaseObject();\r\n          MoveParameters.ReleaseObject();\r\n          //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"New position:     (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n          //return(hslTrue);\r\n        }\r\n        //else\r\n        //{\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          //objDecklayout.ReleaseObject();\r\n          //return(hslFalse);\r\n        //}\r\n     // }\r\n      //else\r\n      //{\r\n        //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        //return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n//Trace(errorID);\r\n        if (errorID==-1574764487)\r\n        {\r\n          Trace(\"LabwareID is  unknown.\");\r\n          //return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          //Trace(\"Unknown error occured.\");\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n}\r\n// {{{ 5 \"SetAbsolutePositionForLabwareID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SplitString\" \"Begin\"\r\nfunction SplitString( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"SplitString\" \"InitLocals\"\r\narrTokens.SetSize( 0);\r\n// }} \"\"\r\n// {{ 690 1 0 \"42996e8f_b700_4a6e_b78eff23c14a2c77\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 691 1 0 \"d1635855_122b_4a8c_90631189a9867182\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 692 1 0 \"6d54fc12_063e_4f8c_833c4bfdcb71cc6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 693 1 0 \"abf5d1ce_6910_4487_a7cccb79cff6b4c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n      //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"SplitString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetConfigurationFile\" \"Begin\"\r\nfunction GetConfigurationFile( device & i_Instrument, variable i_LabwareID, variable & o_ConfigFile ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetConfigurationFile\" \"InitLocals\"\r\no_ConfigFile = 0;\r\n// }} \"\"\r\n// {{ 198 1 0 \"faa9720c_7cb8_43ca_8afc88512d7da9cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_ConfigFile = Translate(\"\");\r\n// }} \"\"\r\n//Get Config File\r\n\r\n{\r\n   object objDeckLayout;\r\n\r\n   objDeckLayout = i_Instrument.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      object objLabware;\r\n\r\n      onerror goto HandleLabwareError;\r\n      objLabware = objDeckLayout.Labware(i_LabwareID);\r\n      onerror goto 0;\r\n      err.Clear();\r\n\r\n      if(!objLabware.IsNull())\r\n      {\r\n         object objEditLabware5;\r\n\r\n         objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n         o_ConfigFile = objEditLabware5.Filename;\r\n\r\n         objEditLabware5.ReleaseObject();\r\n         objDeckLayout.ReleaseObject();\r\n         objLabware.ReleaseObject();\r\n      }\r\n   }\r\n\r\n         // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n         if(errorID != 0)\r\n         {\r\n            if (errorID==-1574764487)\r\n            {\r\n                Trace(\"LabwareID is  unknown.\");\r\n            }\r\n            else\r\n            {\r\n                Trace(\"Unknown error occured.\");\r\n            }\r\n         }\r\n      }\r\n}\r\n// {{{ 5 \"GetConfigurationFile\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertToFloat\" \"Begin\"\r\nfunction ConvertToFloat( variable iVariable, variable & oVariable ) void {\r\n// }} \"\"\r\nprivate variable str_Variable;\r\n// {{ 5 \"ConvertToFloat\" \"InitLocals\"\r\noVariable = 0;\r\n// }} \"\"\r\n// {{{ 36 1 0 \"d7b82e20_1082_487d_ab4c6c1195734338\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Variable = StrConcat2(iVariable, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 37 1 0 \"4b71f87f_caf5_4b19_94bef433bbbfd38d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\noVariable = StrFVal(str_Variable);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertToFloat\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerWidth\" \"Begin\"\r\nfunction GetContainerWidth( device & ML_STAR, variable i_str_LabID, variable & o_flt_ContainerWidth ) void {\r\n// }} \"\"\r\nprivate variable flt_ContainerDiameter;\r\nprivate variable str_PosID;\r\n// {{ 5 \"GetContainerWidth\" \"InitLocals\"\r\no_flt_ContainerWidth = 0;\r\n// }} \"\"\r\n// {{ 228 1 0 \"91037bbe_ecd2_4112_a7c98ff1c4a2b358\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerDiameter = 0.0;\r\n// }} \"\"\r\n// {{{ 229 1 0 \"bf9f208f_a3c8_4451_9d71f55b7da30ab0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetFirstPosition(ML_STAR, i_str_LabID, str_PosID);\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\n\r\nflt_ContainerDiameter = objEditLabware5.CntrDiameter(str_PosID);\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 231 1 0 \"3745d894_ae29_4de8_b6c0ce3d2c2d7686\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ContainerWidth = flt_ContainerDiameter;\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerWidth\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetCenterSpotLabware\" \"Begin\"\r\nfunction GetCenterSpotLabware( variable & o_str_CenterSpotLabwarePath ) void {\r\n// }} \"\"\r\nprivate variable str_CenterSpot;\r\nprivate variable str_FileName;\r\n// {{ 5 \"GetCenterSpotLabware\" \"InitLocals\"\r\no_str_CenterSpotLabwarePath = 0;\r\n// }} \"\"\r\n// {{ 69 1 0 \"19f84dba_e569_4ff4_8e7cd26ef393d586\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_CenterSpotLabwarePath = Translate(\"\");\r\n// }} \"\"\r\n// {{ 70 1 0 \"6a83c753_dfa7_46e5_96c90c55568a4a71\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CenterSpot = Translate(\"\");\r\n// }} \"\"\r\nstr_CenterSpot = GetFileName();\r\n// {{{ 72 1 0 \"34436c34_75da_443e_ba399f933b500c33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FileName = HSLExtensions::File::GetFileName(str_CenterSpot);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"21b1cd64_b64f_47d0_9fd9a83dbbfd878e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_CenterSpot, str_FileName, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 74 1 0 \"de060277_1c39_4714_bb7b43d28158fd8d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CenterSpot = StrConcat8(str_CenterSpot, Translate(\"\\\\\"), Translate(\"CenterSpot\"), Translate(\".rck\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 75 1 0 \"0c16cc42_d931_4676_9228face067b65e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_CenterSpot, Translate(\"\\\\\"), Translate(\"\\\\\\\\\"));\r\n// }} \"\"\r\n// {{ 76 1 0 \"99ad1890_daea_4c6c_affd795f34e73e14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_CenterSpotLabwarePath = str_CenterSpot;\r\n// }} \"\"\r\n// {{{ 5 \"GetCenterSpotLabware\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetCenterSpotContainer\" \"Begin\"\r\nfunction GetCenterSpotContainer( variable & o_str_CenterSpotContainerPath ) void {\r\n// }} \"\"\r\nprivate variable str_CenterSpot;\r\nprivate variable str_FileName;\r\n// {{ 5 \"GetCenterSpotContainer\" \"InitLocals\"\r\no_str_CenterSpotContainerPath = 0;\r\n// }} \"\"\r\n// {{ 60 1 0 \"d9567e1e_cfa8_4190_abe003a047a72635\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_CenterSpotContainerPath = Translate(\"\");\r\n// }} \"\"\r\n// {{ 61 1 0 \"11dbcb88_a754_439d_895bb43ab8ff6d18\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CenterSpot = Translate(\"\");\r\n// }} \"\"\r\nstr_CenterSpot = GetFileName();\r\n// {{{ 63 1 0 \"a1a22edc_c510_4154_8756b98a10d723c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FileName = HSLExtensions::File::GetFileName(str_CenterSpot);\r\n// }} \"\"\r\n// {{{ 64 1 0 \"16e047ee_213b_4d78_a3496db8a2f7a142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_CenterSpot, str_FileName, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 65 1 0 \"1ee2d424_f2cc_4157_bdf7c22087f36251\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CenterSpot = StrConcat8(str_CenterSpot, Translate(\"\\\\\"), Translate(\"CenterSpot\"), Translate(\".ctr\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 66 1 0 \"7aee8259_e759_4a68_b2c496fd825599f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_CenterSpot, Translate(\"\\\\\"), Translate(\"\\\\\\\\\"));\r\n// }} \"\"\r\n// {{ 67 1 0 \"2144e644_dbca_42f9_8444bb57260d2319\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_CenterSpotContainerPath = str_CenterSpot;\r\n// }} \"\"\r\n// {{{ 5 \"GetCenterSpotContainer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertToInteger\" \"Begin\"\r\nfunction ConvertToInteger( variable iVariable, variable & oVariable ) void {\r\n// }} \"\"\r\nprivate variable str_Variable;\r\n// {{ 5 \"ConvertToInteger\" \"InitLocals\"\r\noVariable = 0;\r\n// }} \"\"\r\n// {{{ 39 1 0 \"99d92331_8d54_450b_8a5d4fbdb35f0ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Variable = StrConcat2(iVariable, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 40 1 0 \"8218847c_0ad8_4149_be748609a2fe423d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\noVariable = StrIVal(str_Variable);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertToInteger\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetIndexingFormat\" \"Begin\"\r\nfunction GetIndexingFormat( device & io_instrument, variable i_str_Labware, variable & o_positionIndexingFormat ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetIndexingFormat\" \"InitLocals\"\r\no_positionIndexingFormat = 0;\r\n// }} \"\"\r\n// {{ 312 1 0 \"43339f38_48ba_4ff7_ad335b0a4aff2e73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_positionIndexingFormat = 0;\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = io_instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(i_str_Labware);\r\nlabware.GetObject(\"IRectRack2\", rack);\r\n\r\no_positionIndexingFormat = rack.index;\r\n\r\n}\r\n// {{{ 5 \"GetIndexingFormat\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetTipName\" \"Begin\"\r\nfunction GetTipName( device & ML_STAR, variable i_str_TipLabware, variable & o_str_TipName, variable & o_int_TipType ) void {\r\n// }} \"\"\r\nprivate variable int_Length;\r\nprivate variable str_TipType;\r\nprivate variable int_TipType;\r\n// {{ 5 \"GetTipName\" \"InitLocals\"\r\no_str_TipName = 0;\r\no_int_TipType = 0;\r\n// }} \"\"\r\n// {{ 519 1 0 \"817a9847_e3d6_411f_aed418256ab325fa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 520 1 0 \"585a7905_a380_4198_b62640e136442c61\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipType = DevGetLabwareData(ML_STAR, i_str_TipLabware, Translate(\"MlStarTipRack\"));\r\n// }} \"\"\r\n// {{{ 521 1 0 \"fae47452_771c_4557_83166abe3cb2bf02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_TipType);\r\n// }} \"\"\r\n// {{ 522 1 0 \"9e55246f_bd81_4be2_91d793fc4144ba0f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 523 1 0 \"debeb5ed_d2b7_4a2a_85a531aa55c01c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TipType = StrIVal(str_TipType);\r\n// }} \"\"\r\n// {{ 524 1 0 \"9e55246f_bd81_4be2_91d793fc4144ba0f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 525 1 0 \"d09b3e82_0537_4b44_a85bde56dc0797f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipType = -1;\r\n// }} \"\"\r\n// {{ 526 1 0 \"9e55246f_bd81_4be2_91d793fc4144ba0f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 527 1 0 \"36177b00_b09b_4f5a_b3d8a9721f20498c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_TipType = int_TipType;\r\n// }} \"\"\r\n// {{ 528 1 0 \"0640acdf_49fe_480b_836579b83f27d8bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 529 1 0 \"1699751f_f020_4b19_9a27f0274839292b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"300uL Tips\");\r\n// }} \"\"\r\n// {{ 530 1 0 \"0640acdf_49fe_480b_836579b83f27d8bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 531 1 0 \"b0c7fe89_d8dc_4a20_9d9d450d2d7f0513\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 532 1 0 \"e36147e5_7496_4677_85ca8cd771627364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"300uL Tips\");\r\n// }} \"\"\r\n// {{ 533 1 0 \"b0c7fe89_d8dc_4a20_9d9d450d2d7f0513\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 534 1 0 \"2c75644d_2186_4510_b14735d260d55682\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 30)\r\n{\r\n// }} \"\"\r\n// {{ 535 1 0 \"2f22366f_e904_43a1_bd5ea7c46ae0fd7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"300uL Tips\");\r\n// }} \"\"\r\n// {{ 536 1 0 \"2c75644d_2186_4510_b14735d260d55682\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 537 1 0 \"ca0fb59c_4085_4722_9a8834a8c1c3c063\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 2)\r\n{\r\n// }} \"\"\r\n// {{ 538 1 0 \"03cb7fa5_d304_4d4a_b3332674f03b744f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"10uL Tips\");\r\n// }} \"\"\r\n// {{ 539 1 0 \"ca0fb59c_4085_4722_9a8834a8c1c3c063\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 540 1 0 \"27e87592_6e4a_4874_bc0afc69ccb9c267\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 3)\r\n{\r\n// }} \"\"\r\n// {{ 541 1 0 \"48b27773_b881_4be5_8a21afbfec5cc063\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"10uL Tips\");\r\n// }} \"\"\r\n// {{ 542 1 0 \"27e87592_6e4a_4874_bc0afc69ccb9c267\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 543 1 0 \"82402819_a9f3_437a_9014f0187cd65301\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 32)\r\n{\r\n// }} \"\"\r\n// {{ 544 1 0 \"26708fe6_a89b_43d3_b9e18b8969333e65\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"10uL Tips\");\r\n// }} \"\"\r\n// {{ 545 1 0 \"82402819_a9f3_437a_9014f0187cd65301\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 546 1 0 \"ba28e3af_bd0b_421c_a6ef02d63c26f9e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 4)\r\n{\r\n// }} \"\"\r\n// {{ 547 1 0 \"86db7263_f632_4ce0_884dcc68c81946ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"1000uL Tips\");\r\n// }} \"\"\r\n// {{ 548 1 0 \"ba28e3af_bd0b_421c_a6ef02d63c26f9e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 549 1 0 \"47f5e723_8e3e_4529_af6e3c00d30b59c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 5)\r\n{\r\n// }} \"\"\r\n// {{ 550 1 0 \"adcc4822_b0d3_4867_8cea5b650f42b60e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"1000uL Tips\");\r\n// }} \"\"\r\n// {{ 551 1 0 \"47f5e723_8e3e_4529_af6e3c00d30b59c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 552 1 0 \"662fb244_7c9b_4b3a_a08b7a20ff60d4a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 10)\r\n{\r\n// }} \"\"\r\n// {{ 553 1 0 \"00c1b0ad_aeeb_433d_a65c0e683bfa46ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"Teaching Needles\");\r\n// }} \"\"\r\n// {{ 554 1 0 \"662fb244_7c9b_4b3a_a08b7a20ff60d4a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 555 1 0 \"d77f5373_102e_4c5c_8eef8190d9e32c14\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 22)\r\n{\r\n// }} \"\"\r\n// {{ 556 1 0 \"737266d4_2665_42c6_bba347ced1dfb7ff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"50uL Tips\");\r\n// }} \"\"\r\n// {{ 557 1 0 \"d77f5373_102e_4c5c_8eef8190d9e32c14\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 558 1 0 \"2abb6610_aedd_48e3_86d3701bbcaf31b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 23)\r\n{\r\n// }} \"\"\r\n// {{ 559 1 0 \"8e8d6032_de4d_4d30_8a8bd5e003ac1435\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"50uL Tips\");\r\n// }} \"\"\r\n// {{ 560 1 0 \"2abb6610_aedd_48e3_86d3701bbcaf31b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 561 1 0 \"110020a6_6f45_4421_9655b16223d38eca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 31)\r\n{\r\n// }} \"\"\r\n// {{ 562 1 0 \"7b6b9be4_3174_4809_a9912416c888ff11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"50uL Tips\");\r\n// }} \"\"\r\n// {{ 563 1 0 \"110020a6_6f45_4421_9655b16223d38eca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 564 1 0 \"efe46ef8_d9ff_4b1d_b65ae333659c92bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 36)\r\n{\r\n// }} \"\"\r\n// {{ 565 1 0 \"f3813768_588a_4963_b0fae40d641a574a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"300uL Slim Tips\");\r\n// }} \"\"\r\n// {{ 566 1 0 \"efe46ef8_d9ff_4b1d_b65ae333659c92bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 567 1 0 \"93478e02_2ad6_4fdf_8b7e2b4841f30715\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 45)\r\n{\r\n// }} \"\"\r\n// {{ 568 1 0 \"0ce3fb16_9d6e_40c1_9f06c40e709c9452\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipName = Translate(\"300uL Slim Tips\");\r\n// }} \"\"\r\n// {{ 569 1 0 \"93478e02_2ad6_4fdf_8b7e2b4841f30715\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetTipName\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"FindLiquidHeight\" \"Begin\"\r\nprivate function FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void {\r\n// }} \"\"\r\nprivate variable flt_LiquidLevelDeck;\r\nprivate variable NotUsed;\r\nprivate variable flt_ZBottom;\r\nprivate variable str_LabID;\r\nprivate variable bool_Simulation;\r\n// {{ 5 \"FindLiquidHeight\" \"InitLocals\"\r\no_flt_LiquidHeight = 0;\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ca059c24_f10e_4a72_9e721ee9b30f8bfe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_Simulation = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 43 1 0 \"97d23cc1_1cbc_4b43_a85133c6410146d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Labware);\r\n// }} \"\"\r\n// {{{ 44 1 0 \"0690e87e_e227_4927_a988e9b720053fff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_LiquidLevelDeck = StepReturn::GetLastLiquidLevel(i_int_Channel, i_str_LiquidLevelReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"d7a2782c_1648_41e9_b57c1bb7c29b6336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, str_LabID, NotUsed, NotUsed, flt_ZBottom, NotUsed);\r\n// }} \"\"\r\n// {{ 46 1 0 \"c282cfca_6627_41b1_84ae06f9794804ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_Simulation == 1)\r\n{\r\n// }} \"\"\r\n// {{ 47 1 0 \"a859b8d2_bff1_40b6_aa959bb2b8aa7d7e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"---------------- SIMULATED ADD 5mm TO LIQUID HEIGHT\"));\r\n// }} \"\"\r\n// {{ 48 1 0 \"bbb8c31a_59d6_4e14_a8c0fae86050d978\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidLevelDeck = flt_ZBottom + 5.0;\r\n// }} \"\"\r\n// {{ 49 1 0 \"c282cfca_6627_41b1_84ae06f9794804ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 50 1 0 \"07c10261_ee3b_48f5_b7318d121bb46a25\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LiquidHeight = flt_LiquidLevelDeck - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 51 1 0 \"51e9b7bd_58bc_4887_9419d0d5bb20cacd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_flt_LiquidHeight < 0)\r\n{\r\n// }} \"\"\r\n// {{ 52 1 0 \"f766168f_9bea_4c61_9f85b13350c98503\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LiquidHeight = 0;\r\n// }} \"\"\r\n// {{ 53 1 0 \"51e9b7bd_58bc_4887_9419d0d5bb20cacd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"******** Liquid Level Height for \",str_LabID,\" is \",o_flt_LiquidHeight);\r\n// {{{ 5 \"FindLiquidHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCheck\" \"Begin\"\r\nfunction TipCheck( device & Instrument, sequence & i_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void {\r\n// }} \"\"\r\nprivate dialog customDialog706FAA79E4E040d68E3F244DA0881AB6;\r\nprivate variable int_CurrentPosition;\r\nprivate variable flt_TipCapacity;\r\nprivate variable int_NumLabIDs;\r\nprivate variable str_TipMessage;\r\nprivate variable int_EndPosition;\r\nprivate variable int_PositionsRemaining;\r\nprivate variable str_TipLabware;\r\nprivate variable str_TipName;\r\nprivate variable arr_LabIDs[];\r\n// {{ 5 \"TipCheck\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 736 1 0 \"922bfa86_018c_42b2_809cc36a3d4615d3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========  Check tip sequence\"));\r\n// }} \"\"\r\n// {{{ 737 1 0 \"1c3d88bc_5361_494d_983669d662e24cff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(i_seq_Tips, arr_LabIDs);\r\n// }} \"\"\r\n// {{ 738 1 0 \"0f8c0c70_471b_448c_b8d32c0acef69ca7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_NumLabIDs=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 739 1 0 \"e40bc71e_5af2_42b2_a6fc17fc0fee037f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumLabIDs == 0)\r\n{\r\n// }} \"\"\r\n// {{ 740 1 0 \"2721609f_9c0d_49d9_b8db9c1e5f2cdb67\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  No labware detected in sequence\"));\r\n// }} \"\"\r\n// {{{ 741 1 0 \"c53f4659_d85a_44bc_9f0b87c83f4034aa\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 742 1 0 \"e40bc71e_5af2_42b2_a6fc17fc0fee037f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 743 1 0 \"298654bf_f99f_47d8_8d30cbc6f4e2f805\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumLabIDs > 0)\r\n{\r\n// }} \"\"\r\n// {{ 744 1 0 \"6439ce16_0a71_4fda_a2e2da9b53d09d57\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_TipLabware=arr_LabIDs.GetAt(1-1);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"1c257b60_e5f0_439e_a10a21578ce536c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCapacityCheck(Instrument, str_TipLabware, flt_TipCapacity);\r\n// }} \"\"\r\n// {{ 746 1 0 \"298654bf_f99f_47d8_8d30cbc6f4e2f805\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 747 1 0 \"47ee026d_9082_479f_9c1f170ee607ee3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 748 1 0 \"298654bf_f99f_47d8_8d30cbc6f4e2f805\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 749 1 0 \"4fa41955_f485_4b69_83939d135ba00256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 750 1 0 \"40fabed3_2b54_4da2_bab4591af87dabc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 751 1 0 \"4573027c_43f9_4be1_a1ae1f2c0a3985a8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 752 1 0 \"932acddb_bc5a_442e_b16f7e89a43419b7\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = i_seq_Tips.GetCurrentPosition();\r\n// }} \"\"\r\n// {{ 753 1 0 \"1a8219e8_6f93_4cf6_aedfcda992a672d8\" \"{B31F353D-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_EndPosition = i_seq_Tips.GetCount();\r\n// }} \"\"\r\n// {{ 754 1 0 \"dd7bfeb0_4c79_4455_9a3d2c218c794ba2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_CurrentPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 755 1 0 \"0122085d_6fce_49ac_b0297477938d65b6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = int_EndPosition + 1;\r\n// }} \"\"\r\n// {{ 756 1 0 \"dd7bfeb0_4c79_4455_9a3d2c218c794ba2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 757 1 0 \"ade20c58_6c3d_4c9e_9bc9277acfa20cf4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_EndPosition - int_CurrentPosition;\r\n// }} \"\"\r\n// {{ 758 1 0 \"f0ba240a_e10d_484a_8fd1d351563996fc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_PositionsRemaining + 1;\r\n// }} \"\"\r\nTrace(\"     \",\"Positions Remaining:  \",int_PositionsRemaining,\"  Tips Needed:  \",i_int_TipsNeeded);\r\n// {{ 760 1 0 \"a908afeb_6cbc_4f1f_9f3b1d23cf8a1b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsRemaining >= i_int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 761 1 0 \"8d2d6099_888b_421a_8c05814e76c262dd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Sufficient tips found\"));\r\n// }} \"\"\r\n// {{ 762 1 0 \"c117e974_82af_416d_830b1655e4f7d145\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 763 1 0 \"a908afeb_6cbc_4f1f_9f3b1d23cf8a1b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 764 1 0 \"55852e66_6a4b_4fe4_a263ddd4058a1dc2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{ 765 1 0 \"181352df_f60a_447b_8a9ca42e39ced194\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialog706FAA79E4E040d68E3F244DA0881AB6.InitCustomDialog( \"181352df_f60a_447b_8a9ca42e39ced194\" );\r\ncustomDialog706FAA79E4E040d68E3F244DA0881AB6.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialog706FAA79E4E040d68E3F244DA0881AB6.ShowCustomDialog();\r\n// }} \"\"\r\n// {{ 766 1 0 \"12215a7e_2613_4119_bcc480dbce64ca00\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_Tips.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"7bb73106_7b69_452d_bb7be777a1eb1bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTipCount::Edit2(i_seq_Tips, i_str_TipCounter, Instrument, 99999);\r\n// }} \"\"\r\n// {{ 768 1 0 \"4573027c_43f9_4be1_a1ae1f2c0a3985a8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCheck\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCapacityCheck\" \"Begin\"\r\nfunction TipCapacityCheck( device & Instrument, variable i_str_TipLabware, variable & o_flt_TipCapacity ) void {\r\n// }} \"\"\r\nprivate variable str_TipType;\r\nprivate variable int_TipType;\r\n// {{ 5 \"TipCapacityCheck\" \"InitLocals\"\r\no_flt_TipCapacity = 0;\r\n// }} \"\"\r\n// {{ 696 1 0 \"f3f73451_d2f2_48b0_9d313e3ccbd76cfa\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A455AB1F404B4082BD50E99095DD4F0A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 697 1 0 \"e633943b_12cc_4414_85b72678e15a7a88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipType = DevGetLabwareData(Instrument, i_str_TipLabware, Translate(\"MlStarTipRack\"));\r\n// }} \"\"\r\n// {{ 698 1 0 \"f3f73451_d2f2_48b0_9d313e3ccbd76cfa\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A455AB1F404B4082BD50E99095DD4F0A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 699 1 0 \"f3f73451_d2f2_48b0_9d313e3ccbd76cfa\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 700 1 0 \"18176fd8_74d6_4cf1_93658a5bff5f9113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TipType = StrIVal(str_TipType);\r\n// }} \"\"\r\n// {{ 701 1 0 \"c17f4ce1_bb5b_4b57_b909714c2cdaee09\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 0.0;\r\n// }} \"\"\r\n// {{ 702 1 0 \"e77304ce_9f08_475a_8fb8fcf92df0d529\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 2)\r\n{\r\n// }} \"\"\r\n// {{ 703 1 0 \"0fc9bca5_9267_48f4_b5048ff04aaea490\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 10;\r\n// }} \"\"\r\n// {{ 704 1 0 \"e77304ce_9f08_475a_8fb8fcf92df0d529\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 705 1 0 \"9280d3ff_cb0d_4e65_bd99e99296aa60bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 32)\r\n{\r\n// }} \"\"\r\n// {{ 706 1 0 \"0943290d_3cb2_472d_aad83ecb5f517f50\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 10;\r\n// }} \"\"\r\n// {{ 707 1 0 \"9280d3ff_cb0d_4e65_bd99e99296aa60bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 708 1 0 \"80f4d6a8_c9cb_429c_95ee496fe54382ea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 3)\r\n{\r\n// }} \"\"\r\n// {{ 709 1 0 \"4f80064a_110c_4ac3_84c49ba556775a46\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 10;\r\n// }} \"\"\r\n// {{ 710 1 0 \"80f4d6a8_c9cb_429c_95ee496fe54382ea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 711 1 0 \"7d2e79b0_a521_453b_a685fcd9a686937b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 22)\r\n{\r\n// }} \"\"\r\n// {{ 712 1 0 \"f2d090dd_bf93_445b_987d91afdcc53519\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 713 1 0 \"7d2e79b0_a521_453b_a685fcd9a686937b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"b60d124b_a6ef_4764_8c0a29d1b8dd7e5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 31)\r\n{\r\n// }} \"\"\r\n// {{ 715 1 0 \"9f5a8e82_d85e_40a7_862cb16245b007bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 716 1 0 \"b60d124b_a6ef_4764_8c0a29d1b8dd7e5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 717 1 0 \"00df9924_112f_42ee_8cf31c7fdaeef7e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 23)\r\n{\r\n// }} \"\"\r\n// {{ 718 1 0 \"148d410a_ff32_46cd_a2933afa36b5ee60\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 719 1 0 \"00df9924_112f_42ee_8cf31c7fdaeef7e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 720 1 0 \"a6510d15_d3bb_4ca0_ba5b0e886a153d5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 721 1 0 \"d82a8ccf_3547_436b_9cb21e4761366346\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 300;\r\n// }} \"\"\r\n// {{ 722 1 0 \"a6510d15_d3bb_4ca0_ba5b0e886a153d5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 723 1 0 \"9035782d_e104_442d_97d17a169aea3d46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 30)\r\n{\r\n// }} \"\"\r\n// {{ 724 1 0 \"4426cc11_4df5_47f0_b36210ab58042744\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 300;\r\n// }} \"\"\r\n// {{ 725 1 0 \"9035782d_e104_442d_97d17a169aea3d46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 726 1 0 \"ab1e7236_e314_4f08_bd399648c7f63f72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 727 1 0 \"265e1266_a3eb_4a35_bf6393e593cf9e4b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 300;\r\n// }} \"\"\r\n// {{ 728 1 0 \"ab1e7236_e314_4f08_bd399648c7f63f72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 729 1 0 \"7243b919_086f_41f6_a3bd5faa1c5ed439\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 4)\r\n{\r\n// }} \"\"\r\n// {{ 730 1 0 \"d6bb9c5f_bc7d_4b4a_89c4d393165c26c5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 1000;\r\n// }} \"\"\r\n// {{ 731 1 0 \"7243b919_086f_41f6_a3bd5faa1c5ed439\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 732 1 0 \"550d6a6c_a565_44cf_902d05c8d70b722b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 5)\r\n{\r\n// }} \"\"\r\n// {{ 733 1 0 \"d37ae73f_016e_4cb1_8c90ffe5f672e962\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 1000;\r\n// }} \"\"\r\n// {{ 734 1 0 \"550d6a6c_a565_44cf_902d05c8d70b722b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCapacityCheck\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetConnectedContainer\" \"Begin\"\r\nfunction GetConnectedContainer( device & ML_STAR, variable i_str_LabID, variable & o_bool_ConnectedContainer ) void {\r\n// }} \"\"\r\nprivate variable bool_ConectedCarrier;\r\n// {{ 5 \"GetConnectedContainer\" \"InitLocals\"\r\no_bool_ConnectedContainer = 0;\r\n// }} \"\"\r\n// {{ 201 1 0 \"44149f1a_5cc1_422b_952ff48c2733b4bd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ConectedCarrier = 0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n//objRack4.GetRackData(objRackDataParams);\r\n//bool_ConectedCarrier = objRackDataParams.Item1(\"ConnectedCtr\");\r\nbool_ConectedCarrier = objRack4.ConnectedCtr();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 203 1 0 \"22e80592_f9d9_41d1_99a1810c755594cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_ConnectedContainer = bool_ConectedCarrier;\r\n// }} \"\"\r\n// {{{ 5 \"GetConnectedContainer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareVisibility\" \"Begin\"\r\nfunction GetLabwareVisibility( device & ML_STAR, variable i_str_LabID, variable & o_int_LabwareVisibility ) void {\r\n// }} \"\"\r\nprivate variable int_LabwareVisibility;\r\n// {{ 5 \"GetLabwareVisibility\" \"InitLocals\"\r\no_int_LabwareVisibility = 0;\r\n// }} \"\"\r\n// {{ 472 1 0 \"5f5bcbeb_1353_4d98_ba0089b3bf443a0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LabwareVisibility = 0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware6\", objEditLabware5);\r\n\r\nint_LabwareVisibility = objEditLabware5.Visible();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 474 1 0 \"ed6685a6_355e_4c1e_90a04df5c1a43b43\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_LabwareVisibility = int_LabwareVisibility;\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareVisibility\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareFileName\" \"Begin\"\r\nfunction GetLabwareFileName( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareFileName ) void {\r\n// }} \"\"\r\nprivate variable str_LabwareFileName;\r\n// {{ 5 \"GetLabwareFileName\" \"InitLocals\"\r\no_str_LabwareFileName = 0;\r\n// }} \"\"\r\n// {{ 420 1 0 \"124675bf_5e64_4213_bc88c306bfbffa2c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabwareFileName = Translate(\"\");\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware6\", objEditLabware5);\r\n\r\nstr_LabwareFileName = objEditLabware5.FileName();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 422 1 0 \"25f22063_b7e9_41c4_9698e8fb06926407\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LabwareFileName = str_LabwareFileName;\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareFileName\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareName\" \"Begin\"\r\nfunction GetLabwareName( device & ML_STAR, variable i_str_LabID, variable & o_str_ViewName ) void {\r\n// }} \"\"\r\nprivate variable str_Name;\r\nprivate variable str_ViewName;\r\n// {{ 5 \"GetLabwareName\" \"InitLocals\"\r\no_str_ViewName = 0;\r\n// }} \"\"\r\n// {{ 428 1 0 \"92247661_65bd_45a8_8abe6524af37909c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ViewName = Translate(\"\");\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware6\", objEditLabware5);\r\n\r\nstr_ViewName = objEditLabware5.DisplayName();\r\nstr_Name = objEditLabware5.Name();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 430 1 0 \"fbb902c5_1378_4a41_9e89bfd31b2922a6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ViewName = str_ViewName;\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareName\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareType\" \"Begin\"\r\nfunction GetLabwareType( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareType ) void {\r\n// }} \"\"\r\nprivate variable str_LabwareType;\r\n// {{ 5 \"GetLabwareType\" \"InitLocals\"\r\no_str_LabwareType = 0;\r\n// }} \"\"\r\n// {{ 468 1 0 \"6323894e_30e4_401a_922f4d855fca0d63\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabwareType = Translate(\"\");\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware6\", objEditLabware5);\r\n\r\nstr_LabwareType = objEditLabware5.Type();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 470 1 0 \"47e9d6ef_2172_4c1b_8a3a7dc66b141706\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LabwareType = str_LabwareType;\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareType\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareOrigin_OLD\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable flt_BoundaryX;\r\nprivate variable flt_BoundaryY;\r\nprivate variable flt_RackWidthX;\r\nprivate variable flt_RackWidthY;\r\nprivate variable flt_RackBase;\r\nprivate variable flt_BaseOffset;\r\nprivate variable flt_ContainerBaseThickness;\r\nprivate variable flt_ContainerOffset;\r\nprivate variable str_FirstPosition;\r\n// {{ 5 \"GetLabwareOrigin_OLD\" \"InitLocals\"\r\no_flt_X_Coord = 0;\r\no_flt_Y_Coord = 0;\r\no_flt_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 449 1 0 \"79fb3527_4f65_4511_9c5f3e985a696d57\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 450 1 0 \"9a1ca9af_bd09_4da2_b065be8743081eb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 451 1 0 \"eeed632c_c0fa_406c_945503cad0df4c3a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 452 1 0 \"bbbc873d_4747_48b6_888144a8c1b501b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryX = 0.0;\r\n// }} \"\"\r\n// {{ 453 1 0 \"8182a9c8_8c49_4b60_b5085a889b44dd56\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryY = 0.0;\r\n// }} \"\"\r\n// {{ 454 1 0 \"34c557e4_44a1_4074_9c54719ffdbb64cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthX = 0.0;\r\n// }} \"\"\r\n// {{ 455 1 0 \"eaba73e2_fc14_445b_bd3b9c6b0cc75da3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthY = 0.0;\r\n// }} \"\"\r\n// {{ 456 1 0 \"687a7d2b_0a83_46d4_b88263aabf527f53\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackBase = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nflt_BoundaryX = objRackDataParams.Item1(\"Labwr_Bndry1X\");\r\nflt_BoundaryY = objRackDataParams.Item1(\"Labwr_Bndry1Y\");\r\nflt_RackWidthX = objRackDataParams.Item1(\"Labwr_XDim\");\r\nflt_RackWidthY = objRackDataParams.Item1(\"Labwr_YDim\");\r\nflt_RackBase = objRack4.RackBase();\r\n\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{{ 458 1 0 \"42714814_c1dd_417a_9c95208b8dbd61e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetFirstPosition(ML_STAR, i_str_LabID, str_FirstPosition);\r\n// }} \"\"\r\n// {{ 459 1 0 \"b6617210_13d6_40b3_8350d7d6860c9fb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = flt_BoundaryX;\r\n// }} \"\"\r\n// {{ 460 1 0 \"c3a5c855_2e0d_4895_8010b22bbf7ea27f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = flt_BoundaryY;\r\n// }} \"\"\r\n// {{ 461 1 0 \"bc3162bf_0538_49c8_be8b0b5fcd7ad656\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = flt_RackBase;\r\n// }} \"\"\r\n// {{{ 462 1 0 \"5683dfe7_d309_4e6b_ade190cb33a8d773\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetContainerBaseThickness(ML_STAR, i_str_LabID, str_FirstPosition, flt_ContainerBaseThickness);\r\n// }} \"\"\r\n// {{{ 463 1 0 \"558e966d_5490_4eba_970ec0d2811298d3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetContainerBaseOffset(ML_STAR, i_str_LabID, str_FirstPosition, flt_BaseOffset);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 464 1 0 \"a2df9d45_7891_47e8_a667660399e853b5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerOffset = flt_ContainerBaseThickness + flt_BaseOffset;\r\n// }} \"\"\r\n// {{ 465 1 0 \"3bf1b61c_fb04_4012_ac0dced27fc47701\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = flt_RackBase - flt_ContainerBaseThickness;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 466 1 0 \"6f93061d_6567_4807_8662231fe935a2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_Z_Coord = MthRound(o_flt_Z_Coord, 1);\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareOrigin_OLD\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetZTranslate\" \"Begin\"\r\nfunction GetZTranslate( device & ML_STAR, variable i_str_LabID, variable & o_flt_ZTranslate, variable & o_flt_ZTransValue ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetZTranslate\" \"InitLocals\"\r\no_flt_ZTranslate = 0;\r\no_flt_ZTransValue = 0;\r\n// }} \"\"\r\n// {{ 576 1 0 \"e5eb7bd7_9135_4642_973feb4721ae62d4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZTranslate = 0.0;\r\n// }} \"\"\r\n// {{ 577 1 0 \"522ff36f_38bb_49d0_94fc0bcd0a2f2a1c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZTransValue = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\n//flt_RackHeight = objRackDataParams.Item1(\"Labwr_ZDim\");\r\n//o_flt_RackClearanceHeight = objEditLabware5.Clearance(str_PosID);\r\n//flt_RackBase = objRack4.RackBase();\r\no_flt_ZTranslate = objRack4.ZTranslate();\r\no_flt_ZTransValue = objRack4.ZTransValue();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{{ 579 1 0 \"b3da8f2a_b17b_4923_a9898e2907f6d2c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_ZTranslate = MthRound(o_flt_ZTranslate, 1);\r\n// }} \"\"\r\n// {{{ 580 1 0 \"390c29ae_ecf1_4d9c_9303946fbbb982c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_ZTransValue = MthRound(o_flt_ZTransValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"GetZTranslate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerBaseThickness\" \"Begin\"\r\nfunction GetContainerBaseThickness( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_containerBaseThickness ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetContainerBaseThickness\" \"InitLocals\"\r\no_containerBaseThickness = 0;\r\n// }} \"\"\r\n// {{ 209 1 0 \"7f7065fc_fdad_43a7_a26893eed32fdb26\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_containerBaseThickness = 0;\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = io_instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(i_str_Labware);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\n\r\nrack.CntrAtPosition(ctr,i_str_PositionID);\r\no_containerBaseThickness = ctr.ContainerBaseDepth;\r\n\r\nrack.ReleaseObject(); \r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 211 1 0 \"90407a24_6444_4450_930836477f228f54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_containerBaseThickness = MthRound(o_containerBaseThickness, 1);\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerBaseThickness\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerBaseOffset\" \"Begin\"\r\nfunction GetContainerBaseOffset( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_containerBaseOffset ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetContainerBaseOffset\" \"InitLocals\"\r\no_containerBaseOffset = 0;\r\n// }} \"\"\r\n// {{ 205 1 0 \"7d1dfd04_0d47_4951_b54a0107781220b7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_containerBaseOffset = 0;\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = io_instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(i_str_Labware);\r\nlabware.GetObject(\"IRectRack2\", rack); //  IEditLabware6\r\n\r\no_containerBaseOffset = rack.ContainerBaseOffset(i_str_PosID);\r\n\r\nrack.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 207 1 0 \"ca748d28_1205_4213_b2cba3fe302d51c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_containerBaseOffset = MthRound(o_containerBaseOffset, 1);\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerBaseOffset\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerDepth\" \"Begin\"\r\nfunction GetContainerDepth( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetContainerDepth\" \"InitLocals\"\r\no_ContainerDepth = 0;\r\no_ContainerClearanceHeight = 0;\r\n// }} \"\"\r\n// {{ 216 1 0 \"a0e4c53d_5808_452a_a1e1e6e9304ca4c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_ContainerDepth = 0;\r\n// }} \"\"\r\n// {{ 217 1 0 \"000d7a36_54f8_4279_82a6e40a58bd905c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_ContainerClearanceHeight = 0.0;\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = io_instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(i_str_Labware);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\n\r\nrack.CntrAtPosition(ctr,i_str_PositionID);\r\no_ContainerDepth = ctr.Depth;\r\no_ContainerClearanceHeight = ctr.Clearance;\r\n\r\nrack.ReleaseObject(); \r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 219 1 0 \"79122a28_e977_4b35_8ea2f9ce1dd0bdeb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_ContainerClearanceHeight = MthRound(o_ContainerClearanceHeight, 1);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"bf3d3ad4_b888_4ea3_97d460885f2344f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_ContainerDepth = MthRound(o_ContainerDepth, 1);\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerDepth\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerConfigurationFile\" \"Begin\"\r\nfunction GetContainerConfigurationFile( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_str_ContainerFileName ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetContainerConfigurationFile\" \"InitLocals\"\r\no_str_ContainerFileName = 0;\r\n// }} \"\"\r\n// {{ 213 1 0 \"6916e8d0_13d9_4e5c_9b29105e0ba21f25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ContainerFileName = Translate(\"\");\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = io_instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(i_str_Labware);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\n\r\nrack.CntrAtPosition(ctr,i_str_PosID);\r\no_str_ContainerFileName = ctr.FileName;\r\n\r\nrack.ReleaseObject(); \r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 5 \"GetContainerConfigurationFile\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerGeometry\" \"Begin\"\r\nfunction GetContainerGeometry( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_str_ContainerGeometry ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetContainerGeometry\" \"InitLocals\"\r\no_str_ContainerGeometry = 0;\r\n// }} \"\"\r\n// {{ 222 1 0 \"1f89e551_dd7a_4c65_a6e0a86b6b7820af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ContainerGeometry = Translate(\"\");\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = io_instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(i_str_Labware);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\n\r\nrack.CntrAtPosition(ctr,i_str_PositionID);\r\no_str_ContainerGeometry = ctr.geometry;\r\n\r\nrack.ReleaseObject(); \r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 5 \"GetContainerGeometry\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetContainerShape\" \"Begin\"\r\nfunction GetContainerShape( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_int_ContainerShape ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetContainerShape\" \"InitLocals\"\r\no_int_ContainerShape = 0;\r\n// }} \"\"\r\n// {{ 225 1 0 \"335efb5e_587d_4cbf_994a3dc14b765274\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_ContainerShape = 0.0;\r\n// }} \"\"\r\n{\r\nobject rack;\r\nobject ctr;\r\nobject labware;\r\nobject m_decklayout;\t\t\r\nvariable labwareId;\r\n\r\nm_decklayout = io_instrument.GetDeckLayoutObject();\r\n//labwareId = SeqGetLabwareId(i_sequenceLabware);\r\nlabware = m_decklayout.Labware(i_str_Labware);\r\nlabware.GetObject2(\"{3E5213CF-57C9-4911-B33E-05E77130E4DB}\", rack); //  IEditLabware6\r\n\r\nrack.CntrAtPosition(ctr,i_str_PositionID);\r\no_int_ContainerShape = ctr.Shape;\r\n\r\nrack.ReleaseObject(); \r\nctr.ReleaseObject(); \r\nlabware.ReleaseObject(); \r\nm_decklayout.ReleaseObject(); \r\n}\r\n\r\n// {{{ 5 \"GetContainerShape\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetProbeAdjustment\" \"Begin\"\r\nprivate function GetProbeAdjustment( device & ML_STAR, variable i_str_LabID, variable & o_flt_XProbeAdjustment, variable & o_flt_YProbeAdjustment, variable & o_flt_ZProbeAdjustment ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetProbeAdjustment\" \"InitLocals\"\r\no_flt_XProbeAdjustment = 0;\r\no_flt_YProbeAdjustment = 0;\r\no_flt_ZProbeAdjustment = 0;\r\n// }} \"\"\r\n// {{ 476 1 0 \"f17c65dd_7378_4201_807f40b5ba572503\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XProbeAdjustment = 0.0;\r\n// }} \"\"\r\n// {{ 477 1 0 \"c1ae0e2a_0a87_4441_8e12463f56663c8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YProbeAdjustment = 0.0;\r\n// }} \"\"\r\n// {{ 478 1 0 \"2115123b_0c33_4fbc_b5118f0be69a12e3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZProbeAdjustment = 0.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware3\", objEditLabware5);\r\n\r\no_flt_XProbeAdjustment = objEditLabware5.XProbeAdjustment;\r\no_flt_YProbeAdjustment = objEditLabware5.YProbeAdjustment;\r\no_flt_ZProbeAdjustment = objEditLabware5.ZProbeAdjustment;\r\n\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"GetProbeAdjustment\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"AdjustSequence\" \"Begin\"\r\nfunction AdjustSequence( device & ML_STAR, sequence i_seq_SequenceToAdjust, variable i_int_StartingPosition, variable i_int_EndingPosition, sequence & o_seq_AdjustedSequence ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable int_TotalSequencePositions;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\n// {{ 5 \"AdjustSequence\" \"InitLocals\"\r\n{ sequence __temp; o_seq_AdjustedSequence = __temp; }\r\n// }} \"\"\r\n// {{{ 1 1 0 \"2a575e19_dbec_4a20_b950e99a10285537\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalSequencePositions = SeqGetTotal(i_seq_SequenceToAdjust);\r\n// }} \"\"\r\n// {{ 2 1 0 \"f31c8a1a_445c_43b0_a4bca112b6a969ce\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_SequenceToAdjust.SetCurrentPosition(i_int_StartingPosition);\r\n// }} \"\"\r\n// {{ 3 1 0 \"e073a8ce_16d4_4807_8a5074fc74edc3f2\" \"{B31F353C-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_SequenceToAdjust.SetCount(i_int_EndingPosition);\r\n// }} \"\"\r\n// {{{ 4 1 0 \"f7b34b19_82e5_4924_a93d96a59d71c2a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{ 5 1 0 \"c738b45a_4711_415d_889335f43e7f68b9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalSequencePositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 6 1 0 \"6ede4c03_acba_46d4_9fd43e877bc4e1ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_SequenceToAdjust);\r\n// }} \"\"\r\n// {{{ 7 1 0 \"05c2a3cf_1ced_49e0_b55f6b55ae6788af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_SequenceToAdjust);\r\n// }} \"\"\r\n// {{{ 8 1 0 \"09faec89_efe8_4b28_a829bfe1a53c44dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_SequenceToAdjust, 1);\r\n// }} \"\"\r\n// {{ 9 1 0 \"5ef68546_ff6c_4f88_bd33fcb21d888d8d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_PosID != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 10 1 0 \"49f08b6d_e36f_41d1_90d1ff28b858481f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_AdjustedSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 11 1 0 \"5ef68546_ff6c_4f88_bd33fcb21d888d8d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 12 1 0 \"c738b45a_4711_415d_889335f43e7f68b9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 13 1 0 \"b0595e6e_102d_4779_b85a874965973c0c\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_AdjustedSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"AdjustSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"RemoveTruncatedSequencePositionsOLD\" \"Begin\"\r\nprivate function RemoveTruncatedSequencePositionsOLD( device & ML_STAR, sequence & io_Sequence ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable int_TotalSequencePositions;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate sequence seq_AdjustedSequence;\r\n// {{ 5 \"RemoveTruncatedSequencePositionsOLD\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 592 1 0 \"2939bf42_f149_45f7_8b8b0e46835bd130\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalSequencePositions = SeqGetTotal(io_Sequence);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"c4dda7bc_a8e9_44c6_b1c9881d28609daa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{ 594 1 0 \"12223b72_d6a8_4d37_991d9dbfff71b567\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalSequencePositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 595 1 0 \"d712505c_8e6e_4880_b351ff8f88c2ad1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(io_Sequence);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"f25b328e_318b_4972_9ba2c9655186b09d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(io_Sequence);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"26f265bf_0d7f_47c5_aac0720bbeeea5b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(io_Sequence, 1);\r\n// }} \"\"\r\n// {{ 598 1 0 \"4066de0b_6cfe_4cc2_b683d878c9aca9dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 599 1 0 \"015f1044_c801_4c3d_84429af9e2a803b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_PosID != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 600 1 0 \"b9391fea_fb7c_48ec_8cc2c1ab088d909d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_AdjustedSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 601 1 0 \"015f1044_c801_4c3d_84429af9e2a803b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 602 1 0 \"4066de0b_6cfe_4cc2_b683d878c9aca9dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 603 1 0 \"12223b72_d6a8_4d37_991d9dbfff71b567\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 604 1 0 \"90db56ee_50b5_47ee_8ac5d407606e1a9a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_AdjustedSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"2ea11682_cf8e_409e_be67ec0d74ce7fc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence, seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{{ 5 \"RemoveTruncatedSequencePositionsOLD\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ReplaceLabware\" \"Begin\"\r\nfunction ReplaceLabware( device & ML_STAR, variable i_str_LabID, variable i_str_NewConfigFile ) void {\r\n// }} \"\"\r\nprivate variable flt_Current_Z;\r\nprivate variable int_LabwareVisibility;\r\nprivate variable flt_Current_A;\r\nprivate variable flt_Current_X;\r\nprivate variable flt_Current_Y;\r\nprivate variable str_CurrentTemplateID;\r\nprivate variable str_CurrentTemplateSiteID;\r\nprivate variable arr_LabID[];\r\nprivate variable arr_LabID_Vis[];\r\n// {{ 5 \"ReplaceLabware\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 607 1 0 \"1ffa73ad_6b7d_4436_a16499a2d347d84a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetLabwareVisibility(ML_STAR, i_str_LabID, int_LabwareVisibility);\r\n// }} \"\"\r\n// {{ 608 1 0 \"163721c0_0452_4e63_85d399dc52efbb3f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 609 1 0 \"eec89ec7_45c0_420a_9fd4f414d02cdba0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LabID.AddAsLast(i_str_LabID);\r\n// }} \"\"\r\n// {{ 610 1 0 \"a27e9a47_f30b_474f_854655c09b6aaad1\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LabID_Vis.SetSize(0);\r\n// }} \"\"\r\n// {{ 611 1 0 \"68473b11_b6cd_4cf1_b4e6d8b61f6b7e69\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LabID_Vis.AddAsLast(int_LabwareVisibility);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"24d00924_ee99_4075_a9fbd31a19b8f0f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSetAbsolutePositionForLabwareID(ML_STAR, i_str_LabID, flt_Current_X, flt_Current_Y, flt_Current_Z, flt_Current_A);\r\n// }} \"\"\r\n// {{{ 613 1 0 \"041a7dd3_5cf9_4fb3_9b0f758455889892\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetCarrierAndSiteID(ML_STAR, i_str_LabID, str_CurrentTemplateID, str_CurrentTemplateSiteID);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"99a94ec7_3eaf_48fd_b6771c9bf6ca937c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevRemoveLabware(ML_STAR, i_str_LabID);\r\n// }} \"\"\r\n// {{ 615 1 0 \"ea7431e9_7d5d_409c_bedf30a49385840e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_CurrentTemplateID == \"default\")\r\n{\r\n// }} \"\"\r\n// {{{ 616 1 0 \"5f9896b2_42e6_41d7_8c28c6fe6ac9da71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddLabware(ML_STAR, i_str_LabID, i_str_NewConfigFile, flt_Current_X, flt_Current_Y, flt_Current_Z, flt_Current_A);\r\n// }} \"\"\r\n// {{ 617 1 0 \"ea7431e9_7d5d_409c_bedf30a49385840e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 618 1 0 \"528d8ff4_ea0c_4ac6_9814a72b59283142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddLabwareToTemplate(ML_STAR, i_str_LabID, i_str_NewConfigFile, str_CurrentTemplateID, str_CurrentTemplateSiteID);\r\n// }} \"\"\r\n// {{ 619 1 0 \"ea7431e9_7d5d_409c_bedf30a49385840e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 620 1 0 \"a351b4e3_1e7a_4190_aaf41184b7382ac1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateLoadedLabware(ML_STAR, arr_LabID, arr_LabID_Vis, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"ReplaceLabware\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetCarrierAndSiteID\" \"Begin\"\r\nfunction GetCarrierAndSiteID( device & Instrument, variable i_str_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetCarrierAndSiteID\" \"InitLocals\"\r\no_str_TemplateID = 0;\r\no_str_TemplateSiteID = 0;\r\n// }} \"\"\r\n// {{ 56 1 0 \"0fe4025a_f7c5_499d_bb1c2bf1eae91a90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TemplateID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 57 1 0 \"41595d44_70a7_4156_bb74c6109c58c918\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TemplateSiteID = Translate(\"\");\r\n// }} \"\"\r\n{\r\n  object obj_Decklayout;\r\n  obj_Decklayout = Instrument.GetDeckLayoutObject();\r\n  if (!obj_Decklayout.IsNull())\r\n      {\r\n          object EditDecklayout5;\r\n          object Parameter;\r\n          object LabwareObjects;\r\n          object LabwareNames;\r\n          variable Array_Keys[];\r\n          variable intCounter;\r\n          obj_Decklayout.GetObject(\"IEditDeckLayout5\", EditDecklayout5);\r\n          LabwareObjects.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          LabwareNames.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          obj_Decklayout.TemplateLabwareNames(LabwareObjects);\r\n          Array_Keys = LabwareObjects.GetKeys();\r\n          for(intCounter=1; intCounter<=Array_Keys.GetSize(); intCounter++)\r\n          {\r\n            LabwareNames = LabwareObjects.Item1(intCounter);\r\n            if(LabwareNames.Item1(\"Labwr_Id\") == i_str_Labware)\r\n            {\r\n              //var_return = 1; \r\n              o_str_TemplateSiteID = LabwareNames.Item1(\"Labwr_DkSiteId\");\r\n              o_str_TemplateID = LabwareNames.Item1(\"Labwr_TemplateId\");            \r\n            } \r\n          }\r\n          obj_Decklayout.ReleaseObject();\r\n          EditDecklayout5.ReleaseObject();\r\n          Parameter.ReleaseObject();\r\n          LabwareObjects.ReleaseObject();\r\n          LabwareNames.ReleaseObject();\r\n     }\r\n}\r\n\r\n\r\n\r\n// {{{ 5 \"GetCarrierAndSiteID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetRowColumnNumber\" \"Begin\"\r\nfunction GetRowColumnNumber( device & Instrument, variable i_str_LabwareID, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetRowColumnNumber\" \"InitLocals\"\r\no_int_RowCount = 0;\r\no_int_ColumnCount = 0;\r\no_bool_AlphaNumeric = 0;\r\no_bool_IncrementContainer = 0;\r\n// }} \"\"\r\n// {{ 499 1 0 \"2692d37e_412b_4b80_a350cc84a05f41f7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_AlphaNumeric = 0;\r\n// }} \"\"\r\n// {{ 500 1 0 \"65f67b49_5555_4cbb_92c6a50c130c1154\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_ColumnCount = 0;\r\n// }} \"\"\r\n// {{ 501 1 0 \"f0f83718_3e06_43a5_928da60fabb66776\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_RowCount = 0;\r\n// }} \"\"\r\n// {{ 502 1 0 \"da36996e_150c_48e2_92b56040a30eda9d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_IncrementContainer = 0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabwareID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\no_int_RowCount = objRack4.Rows();\r\no_int_ColumnCount = objRack4.Columns();\r\no_bool_AlphaNumeric = objRack4.Index();\r\no_bool_IncrementContainer = objRack4.Increment();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{{ 5 \"GetRowColumnNumber\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareLW\" \"Begin\"\r\nfunction GetLabwareLW( device & Instrument, variable i_str_LabID, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void {\r\n// }} \"\"\r\n// {{ 5 \"GetLabwareLW\" \"InitLocals\"\r\no_flt_Labware_L = 0;\r\no_flt_Labware_W = 0;\r\n// }} \"\"\r\n// {{ 424 1 0 \"f6323e62_bd06_4f00_acb3e924aac4ed70\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Labware_W = 0.0;\r\n// }} \"\"\r\n// {{ 425 1 0 \"11ab5143_efd0_4466_a5ccbbcc20a8fc02\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Labware_L = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\no_flt_Labware_W = objRackDataParams.Item1(\"Labwr_XDim\");\r\no_flt_Labware_L = objRackDataParams.Item1(\"Labwr_YDim\");\r\n\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{{ 5 \"GetLabwareLW\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareCenter2_OLD\" \"Begin\"\r\nprivate function GetLabwareCenter2_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void {\r\n// }} \"\"\r\nprivate variable int_Increment;\r\nprivate variable int_TotalColumns;\r\nprivate variable int_Index;\r\nprivate variable int_TotalRows;\r\nprivate variable str_PosID;\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_Y_Coord;\r\nprivate variable int_EndPosition;\r\nprivate variable arr_Y_Coordinate[];\r\nprivate variable arr_X_Coordinate[];\r\n// {{ 5 \"GetLabwareCenter2_OLD\" \"InitLocals\"\r\no_flt_X_Center = 0;\r\no_flt_Y_Center = 0;\r\n// }} \"\"\r\n// {{ 356 1 0 \"b75803c4_499e_43de_a1fa56eb56b08800\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalRows = 0;\r\n// }} \"\"\r\n// {{ 357 1 0 \"dc152a9e_c294_4b2d_aa38b11a2f888eae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalColumns = 0;\r\n// }} \"\"\r\n// {{ 358 1 0 \"9e0b2841_5de3_4d0c_8eac99ca80e6d761\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = 0;\r\n// }} \"\"\r\n// {{ 359 1 0 \"ecca85ae_53e9_4d2b_a18c348b6da88e43\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Increment = 0;\r\n// }} \"\"\r\n// {{ 360 1 0 \"79db16cc_b63d_4bbe_91ced19708edb159\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Center = 0.0;\r\n// }} \"\"\r\n// {{ 361 1 0 \"2573f1a8_73e6_43c0_a718a00a9b1c590b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Center = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nint_TotalRows = objRack4.Rows();\r\nint_TotalColumns = objRack4.Columns();\r\nint_Index = objRack4.Index();\r\nint_Increment = objRack4.Increment();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 363 1 0 \"4dccff9b_adfe_44a1_85a5a30918c40518\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_X_Coordinate.SetSize(0);\r\n// }} \"\"\r\n// {{ 364 1 0 \"b0b3edf9_1b5d_4bc5_ac4700f6aed2a1ef\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Y_Coordinate.SetSize(0);\r\n// }} \"\"\r\n// {{ 365 1 0 \"deedd98d_cf52_4029_ac05666080867d50\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_EndPosition = int_TotalColumns * int_TotalRows;\r\n// }} \"\"\r\n// {{ 366 1 0 \"d30c3429_c299_45ad_868be925cf27b488\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 367 1 0 \"d38a6e23_8e27_46be_a3c858b20ee5cec5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 368 1 0 \"dcd725a7_df9a_4aed_9530368cf174dc34\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nANC::Convert_Numbers_to_Alpha_Numeric(int_Increment, 1, int_TotalRows, int_TotalColumns, str_PosID);\r\n// }} \"\"\r\n// {{ 369 1 0 \"d38a6e23_8e27_46be_a3c858b20ee5cec5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 370 1 0 \"a5e9ba3d_5be5_4572_9d17acac6f6a8f74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = StrConcat2(1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 371 1 0 \"d38a6e23_8e27_46be_a3c858b20ee5cec5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 372 1 0 \"14ff9ae8_361e_49e7_b132cd8b8c5a92e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, i_str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 373 1 0 \"08077110_ab71_4b12_9de227749b64eaa1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_X_Coordinate.AddAsLast(flt_X_Coord);\r\n// }} \"\"\r\n// {{ 374 1 0 \"5cf19ad3_e9de_4976_886df959109d2001\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Y_Coordinate.AddAsLast(flt_Y_Coord);\r\n// }} \"\"\r\n// {{ 375 1 0 \"661085f4_0f7c_4027_a7bb226c3c9ed1a1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 376 1 0 \"edd1a44d_572c_4026_b65ff3fea8bc0718\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 377 1 0 \"4c5763d2_8674_462c_a31996dd81b6675a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nANC::Convert_Numbers_to_Alpha_Numeric(int_Increment, int_EndPosition, int_TotalRows, int_TotalColumns, str_PosID);\r\n// }} \"\"\r\n// {{ 378 1 0 \"edd1a44d_572c_4026_b65ff3fea8bc0718\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 379 1 0 \"1684e001_838b_4e92_a7d15aa909270608\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = StrConcat2(int_EndPosition, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 380 1 0 \"edd1a44d_572c_4026_b65ff3fea8bc0718\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 381 1 0 \"c5b814fb_ed3b_4159_837e9ebe2bf43e30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, i_str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 382 1 0 \"f230b179_0f94_4bc4_b23e5ff121f33608\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_X_Coordinate.AddAsLast(flt_X_Coord);\r\n// }} \"\"\r\n// {{ 383 1 0 \"e089ccbb_96fd_422b_bd19c3b788fbed5e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Y_Coordinate.AddAsLast(flt_Y_Coord);\r\n// }} \"\"\r\n// {{{ 384 1 0 \"5437b8c3_d551_4c53_a3f5b82b57283339\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_X_Center = HSLStatisitics::Stat_Average(arr_X_Coordinate);\r\n// }} \"\"\r\n// {{{ 385 1 0 \"c235ea1d_05a7_4a7b_a61e6544735c0668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_Y_Center = HSLStatisitics::Stat_Average(arr_Y_Coordinate);\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareCenter2_OLD\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Set_Relative_Position_for_LabwareID\" \"Begin\"\r\nfunction Set_Relative_Position_for_LabwareID( device & io_devDevice, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void {\r\n// }} \"\"\r\n// {{ 5 \"Set_Relative_Position_for_LabwareID\" \"InitLocals\"\r\n// }} \"\"\r\n{\r\n    // HxPars keys\r\n    static string P_XCOORD(\"Labwr_XCoord\");\r\n    static string P_YCOORD(\"Labwr_YCoord\");\r\n    static string P_ZCOORD(\"Labwr_ZCoord\");\r\n    static string P_RZCOORD(\"Labwr_Rotation\");\r\n    static string P_LABWARE_ID(\"Labwr_Id\");\r\n\r\n    // Helper functions\r\n    //private function ConvertToFloat(variable iVariable, variable& oVariable) variable;\r\n    //private function CheckBool(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    //private function CheckInteger(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    //private function CheckIntegerRange(variable iVariable, variable iTraceEntry, variable iMin, variable iMax, variable iFunctionName) variable;\r\n    //private function CheckString(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    //private function CheckFloat(variable iVariable, variable iTraceEntry, variable iFunctionName) variable;\r\n    //private function StatusTrace(variable i_intState, variable i_intTraceLevel, variable i_strTraceString, variable i_strFunctionName) void;\r\n    //private function EnterSemaphore();\r\n    //private function LeaveSemaphore();\r\n    //private function ExtractFunctionName(variable i_strFunctionName) variable;\r\n    //private function ReverseFind(string i_strString, string i_strSubString) variable;\r\n\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    // RelativePositionValuesSetForLabwareID\r\n    ////////////////////////////////////////////////////////////////////////////\r\n    //function RelativePositionValuesSetForLabwareID(device& io_devDevice,\r\n                                                  // variable i_strLabwareID,\r\n                                                  // variable i_fltPositionX,\r\n                                                  // variable i_fltPositionY,\r\n                                                  // variable i_fltPositionZ,\r\n                                                  // variable i_fltPositionR) variable\r\n    {\r\n      variable PosVals[];\r\n      variable myValue;\r\n      object   objDecklayout;\r\n      variable strFunctionName(\"\");\r\n\r\n     // strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n     // if(!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID, strFunctionName);\r\n\r\n      //EnterSemaphore();\r\n      objDecklayout = io_devDevice.GetDeckLayoutObject();\r\n      //LeaveSemaphore();\r\n   \r\n      if(!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n        variable strPos(\"\");\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if(!objLabware.IsNull())\r\n        {\r\n          object Decklayout5;\r\n          object MoveParameters;\r\n          variable fltPos, fltPosShift;\r\n\r\n          objDecklayout.GetObject(\"IDeckLayout5\", Decklayout5);\r\n\r\n          MoveParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          MoveParameters.Add(i_strLabwareID, P_LABWARE_ID);\r\n\r\n          //EnterSemaphore();\r\n          io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          //LeaveSemaphore();\r\n\r\n          //StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, \"Current position: (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n\r\n          ConvertToFloat(PosVals[0],fltPos);\r\n          ConvertToFloat(i_fltPositionX,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_XCOORD);\r\n\r\n          ConvertToFloat(PosVals[1],fltPos);\r\n          ConvertToFloat(i_fltPositionY,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_YCOORD);\r\n\r\n          ConvertToFloat(PosVals[2],fltPos);\r\n          ConvertToFloat(i_fltPositionZ,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_ZCOORD);\r\n\r\n          ConvertToFloat(PosVals[3],fltPos);\r\n          ConvertToFloat(i_fltPositionR,fltPosShift);\r\n          MoveParameters.Add(fltPos+fltPosShift, P_RZCOORD);\r\n\r\n          Decklayout5.MoveLabware(objLabware, MoveParameters);\r\n\r\n          //EnterSemaphore();\r\n          io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals);\r\n          //LeaveSemaphore();\r\n\r\n          objLabware.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          Decklayout5.ReleaseObject();\r\n          MoveParameters.ReleaseObject();\r\n          //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"New position:     (\" + FStr(PosVals[0]) + \"/\" + FStr(PosVals[1]) + \"/\" + FStr(PosVals[2]) + \"/\" + FStr(PosVals[3]) + \")\", strFunctionName);\r\n          //return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n\r\n          objDecklayout.ReleaseObject();\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        //return(hslFalse);\r\n      }\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          Trace(\"LabwareID is  unknown.\");\r\n          //return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          //Trace(\"Unknown error occured.\");\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n    //////////////////////////////////////////////////////////////////////////\r\n    // private function ConvertToFloat\r\n    //////////////////////////////////////////////////////////////////////////\r\n}\r\n// {{{ 5 \"Set_Relative_Position_for_LabwareID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Set_Channel_Pattern\" \"Begin\"\r\nfunction Set_Channel_Pattern( variable & io_Channel_Pattern, variable i_Channel_Number, variable i_Value ) void {\r\n// }} \"\"\r\nprivate variable current_channel;\r\nprivate variable total_channels;\r\nprivate variable channel_index;\r\nprivate variable loopCounter1;\r\nprivate variable additional_channels;\r\nprivate variable str_parse;\r\nprivate variable arr_channel_pattern[];\r\n// {{ 5 \"Set_Channel_Pattern\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 624 1 0 \"456d482d_8ebb_4a2b_b845f9483d4be195\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 625 1 0 \"311d098f_f350_4728_8148577c16384069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntotal_channels = StrGetLength(io_Channel_Pattern);\r\n// }} \"\"\r\n// {{ 626 1 0 \"79f60d5a_8432_4be4_b7076a203709c263\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 627 1 0 \"cdad9bab_306b_49c3_a547f5fa0d3537dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Number = StrConcat2(i_Channel_Number, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 628 1 0 \"df4929f1_816c_493d_bc84a5fc67769d74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Number = StrIVal(i_Channel_Number);\r\n// }} \"\"\r\n// {{ 629 1 0 \"eff5d9ad_a0a7_4dc1_a832a1b0bfb57849\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 630 1 0 \"f58c6f0f_0947_4c54_bdc2300c1a0195f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Value = StrConcat2(i_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 631 1 0 \"8819250a_03db_49a3_af4e3b0576a6d99a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Value != \"0\")\r\n{\r\n// }} \"\"\r\n// {{ 632 1 0 \"81b3fc4a_2eb1_482b_954b8e16f3cd0ae3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Value != \"1\")\r\n{\r\n// }} \"\"\r\n// {{{ 633 1 0 \"524dba23_ef41_4e3e_96d950a6108dc9ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(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);\r\n// }} \"\"\r\n// {{ 634 1 0 \"c7e5dd19_5b31_40c3_b103b9e9b8be033f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Value = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 635 1 0 \"81b3fc4a_2eb1_482b_954b8e16f3cd0ae3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 636 1 0 \"8819250a_03db_49a3_af4e3b0576a6d99a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 637 1 0 \"117b5694_7628_4cb6_98baaf8f6b5de1b5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 638 1 0 \"99483fcf_3612_4d09_af00c58eecfbfc72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Number > total_channels)\r\n{\r\n// }} \"\"\r\n// {{ 639 1 0 \"31002bd2_e7af_4b71_941066936c4bfcec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nadditional_channels = i_Channel_Number - total_channels;\r\n// }} \"\"\r\n// {{ 640 1 0 \"979f6fd4_0e98_4648_b1b7f49cd7067243\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < additional_channels;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 641 1 0 \"8be106da_6055_4278_9f93fdcdaa8ccbb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Channel_Pattern = StrConcat2(io_Channel_Pattern, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 642 1 0 \"979f6fd4_0e98_4648_b1b7f49cd7067243\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 643 1 0 \"3dfd312a_a6be_44c4_bcff2c5fd4c52ea9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = i_Channel_Number;\r\n// }} \"\"\r\n// {{ 644 1 0 \"99483fcf_3612_4d09_af00c58eecfbfc72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 645 1 0 \"3f832199_aeb2_451c_8a5123eee5cbb05b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_parse = total_channels;\r\n// }} \"\"\r\n// {{ 646 1 0 \"9ce4d45c_4870_4c58_8e9190b0fc776731\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 647 1 0 \"b7851d8e_8869_488f_9bcb86e8fbf5fbe5\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_channel_pattern.SetSize(total_channels);\r\n// }} \"\"\r\n// {{ 648 1 0 \"1b455199_a89e_4536_82f1bc619ca75778\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(channel_index = 0; channel_index < total_channels;)\r\n{\r\nchannel_index = channel_index + 1;\r\n// }} \"\"\r\n// {{{ 649 1 0 \"7bdc470a_ac46_4959_80facc19d987fbb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncurrent_channel = StrRight(io_Channel_Pattern, str_parse);\r\n// }} \"\"\r\n// {{{ 650 1 0 \"036db6d9_e5e2_4e27_967d246f71d3e7e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncurrent_channel = StrLeft(current_channel, 1);\r\n// }} \"\"\r\n// {{ 651 1 0 \"f6bd6219_05b8_470b_9c5a538a1f1de1b6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_channel_pattern.SetAt(channel_index-1, current_channel);\r\n// }} \"\"\r\n// {{ 652 1 0 \"f4ac660e_04de_4a32_9e046d8ff0cf03ef\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_parse = str_parse - 1;\r\n// }} \"\"\r\n// {{ 653 1 0 \"1b455199_a89e_4536_82f1bc619ca75778\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 654 1 0 \"57a0c715_25f4_4f2e_b50c222ffe3d1f07\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 655 1 0 \"7da22874_90f5_4081_98c4c93fd94aca56\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_channel_pattern.SetAt(i_Channel_Number-1, i_Value);\r\n// }} \"\"\r\n// {{ 656 1 0 \"f45bc91c_20d2_428f_b09d4caec67702f5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 657 1 0 \"55b764ac_1826_4350_bf512e9f3facfe5d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Channel_Pattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 658 1 0 \"3435d964_2e49_4c03_b9ff0c684403f81b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(channel_index = 0; channel_index < total_channels;)\r\n{\r\nchannel_index = channel_index + 1;\r\n// }} \"\"\r\n// {{ 659 1 0 \"a1f1d1df_516e_4fcd_8d50863b7842d31c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ncurrent_channel=arr_channel_pattern.GetAt(channel_index-1);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"806fade0_867a_49f5_ab6cf191fdc42164\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Channel_Pattern = StrConcat2(io_Channel_Pattern, current_channel);\r\n// }} \"\"\r\n// {{ 661 1 0 \"3435d964_2e49_4c03_b9ff0c684403f81b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Set_Channel_Pattern\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetTempSortingFilePath\" \"Begin\"\r\nfunction GetTempSortingFilePath( variable & o_str_TempSortingFilePath ) void {\r\n// }} \"\"\r\nprivate variable str_FileName;\r\nprivate variable str_SubFileName;\r\nprivate variable bln_FileExists;\r\n// {{ 5 \"GetTempSortingFilePath\" \"InitLocals\"\r\no_str_TempSortingFilePath = 0;\r\n// }} \"\"\r\n// {{ 505 1 0 \"91e664f2_d2e4_4312_b19abfd4d89a738d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TempSortingFilePath = Translate(\"\");\r\n// }} \"\"\r\n// {{ 506 1 0 \"b5748e98_e5dd_4c50_a92ae664e982fb01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_SubFileName = Translate(\"\");\r\n// }} \"\"\r\nstr_SubFileName = GetFileName();\r\n// {{{ 508 1 0 \"1c76f021_3ec5_4622_a5de1447d63f8ca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FileName = HSLExtensions::File::GetFileName(str_SubFileName);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"File name:  \",str_FileName);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 510 1 0 \"95f70832_4437_403a_9e423080b1aa13da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_SubFileName, str_FileName, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 511 1 0 \"5a3fe9bb_25e7_46e4_94a4f2529b2f6c76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_TempSortingFilePath = StrConcat8(str_SubFileName, Translate(\"\"), Translate(\"TEMP_SORT_FILE\"), Translate(\".xls\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 512 1 0 \"ad9faea0_55c8_47aa_b5d82012259b507e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(o_str_TempSortingFilePath, Translate(\"\\\\\"), Translate(\"\\\\\\\\\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Temp File name:  \",o_str_TempSortingFilePath);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 514 1 0 \"c270d669_50a4_47c1_8ef41d0f6d25cfbb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_FileExists = HSLExtensions::File::Exists(o_str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 515 1 0 \"9cd374e4_8c68_4a5d_8167eaba07b3e696\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 516 1 0 \"d0183f5b_00ef_40bb_aac0f3bf29c1ffdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(o_str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 517 1 0 \"9cd374e4_8c68_4a5d_8167eaba07b3e696\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetTempSortingFilePath\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetTransportSequence\" \"Begin\"\r\nfunction GetTransportSequence( device & ML_STAR, variable i_str_LabID, sequence & o_seq_TransportSequence ) void {\r\n// }} \"\"\r\nprivate variable str_PosID;\r\n// {{ 5 \"GetTransportSequence\" \"InitLocals\"\r\n{ sequence __temp; o_seq_TransportSequence = __temp; }\r\n// }} \"\"\r\n// {{{ 571 1 0 \"aa4bf041_120d_4e0f_96632ee8486b80a0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetFirstPosition(ML_STAR, i_str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{{ 572 1 0 \"bb9cdf50_2e0d_4280_b5b78dc88c7fa9dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TransportSequence);\r\n// }} \"\"\r\n// {{{ 573 1 0 \"08da6a0f_5c8b_47a0_8accf6da68cdaccc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_TransportSequence, i_str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 574 1 0 \"ff36b244_b293_4793_9ee220aa611896aa\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_TransportSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"GetTransportSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetDefinitionFileValue\" \"Begin\"\r\nfunction GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable {\r\n// }} \"\"\r\nprivate variable str_DataDefinition;\r\nprivate variable strFunctionName;\r\nprivate variable bool_FileExists;\r\nprivate variable str_Instance;\r\nprivate variable bool_ReturnValue;\r\nprivate variable str_Extension;\r\n// {{ 5 \"GetDefinitionFileValue\" \"InitLocals\"\r\no_str_Value = 0;\r\n// }} \"\"\r\n// {{ 251 1 0 \"be6bb0b9_27fc_4f57_a3d8c122e39f352d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_Value = Translate(\"\");\r\n// }} \"\"\r\n// {{ 252 1 0 \"b581d28f_95e8_486a_9ea39dad56a98b08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 0;\r\n// }} \"\"\r\n// {{ 253 1 0 \"8e70a97e_f40f_4968_9273cd7574f9cdda\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"c1448306_ea4f_4f3e_98d3c44d51b66473\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 256 1 0 \"8a442f8c_fb4d_4b27_a19b976a3cf5e88f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(i_str_ConfigFilePath);\r\n// }} \"\"\r\n// {{ 257 1 0 \"75ded585_2b12_4f8d_bf0b79e274ee4b62\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 0)\r\n{\r\n// }} \"\"\r\nTrace(i_str_ConfigFilePath,\" - File doesn't exist!\");\r\n// {{{ 259 1 0 \"39dc6bb6_888f_45b1_bb60d9d684c42fcb\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_ReturnValue);\r\n// }} \"\"\r\n// {{ 260 1 0 \"75ded585_2b12_4f8d_bf0b79e274ee4b62\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 261 1 0 \"b520d252_9e82_4d64_a6a4877252d20f39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ValueToSearch = StrConcat2(i_str_ValueToSearch, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 262 1 0 \"8e70a97e_f40f_4968_9273cd7574f9cdda\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 263 1 0 \"f34afdc2_52cd_4d3f_824cbf9c5612db80\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Extension = HSLExtensions::File::GetFileExtension(i_str_ConfigFilePath);\r\n// }} \"\"\r\n// {{ 264 1 0 \"61986ddc_c4eb_44d7_acea092f61df2bdd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"\");\r\n// }} \"\"\r\n// {{ 265 1 0 \"c85eead5_e296_43d6_b7d333bafa6c9d3a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"\");\r\n// }} \"\"\r\n// {{ 266 1 0 \"92bccf0b_a2aa_429d_87024e9f12408d45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"rck\")\r\n{\r\n// }} \"\"\r\n// {{ 267 1 0 \"ffb1e29e_c522_4db7_95c46c3cf98ebf27\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"RECTRACK\");\r\n// }} \"\"\r\n// {{ 268 1 0 \"e8e21c80_abde_46b7_84490559e40c5703\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 269 1 0 \"92bccf0b_a2aa_429d_87024e9f12408d45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 270 1 0 \"6226a753_bbf6_441d_a23d426bd6023aa5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"ctr\")\r\n{\r\n// }} \"\"\r\n// {{ 271 1 0 \"1442a91c_667a_47dd_83b8a628583d52f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"CONTAINER\");\r\n// }} \"\"\r\n// {{ 272 1 0 \"c3735e42_50f4_4bef_bacdbf5f1ce7058e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 273 1 0 \"6226a753_bbf6_441d_a23d426bd6023aa5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 274 1 0 \"6b9aa912_0612_4c1c_9c72dc02cb2e8f29\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"tml\")\r\n{\r\n// }} \"\"\r\n// {{ 275 1 0 \"62cbf670_165e_4e40_912b43908309a418\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"TEMPLATE\");\r\n// }} \"\"\r\n// {{ 276 1 0 \"8e4dc791_8c42_4774_b1eb18c7c717718b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 277 1 0 \"6b9aa912_0612_4c1c_9c72dc02cb2e8f29\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 278 1 0 \"86d4d450_2432_474f_b3369fe32baad9f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"lid\")\r\n{\r\n// }} \"\"\r\n// {{ 279 1 0 \"758a2ab4_7f9c_41a4_8102dc3e89854c11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"COVER\");\r\n// }} \"\"\r\n// {{ 280 1 0 \"0c40bb3f_9e0c_4bb0_9c77b677b5528aa7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"default\");\r\n// }} \"\"\r\n// {{ 281 1 0 \"86d4d450_2432_474f_b3369fe32baad9f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 282 1 0 \"e86b3e65_b5b8_4da6_9460c65fb175af23\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Extension == \"lay\")\r\n{\r\n// }} \"\"\r\n// {{ 283 1 0 \"896d925b_9a68_4a84_a0483ba2c0001a37\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DataDefinition = Translate(\"DECKLAY\");\r\n// }} \"\"\r\n// {{ 284 1 0 \"b154386a_2e5c_4c8b_b06ea534349415dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Instance = Translate(\"ML_STAR\");\r\n// }} \"\"\r\n// {{ 285 1 0 \"e86b3e65_b5b8_4da6_9460c65fb175af23\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Data definition:  \",str_DataDefinition);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 287 1 0 \"c4950a15_8897_4584_a69e0d43342e18f7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"18d2ae9f_d183_4976_ad45c4322967d5ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_DataDefinition != \"\")\r\n{\r\n// }} \"\"\r\n{\r\n   object objCfgFile;\r\n\r\n   objCfgFile.CreateObject(\"HXCFGFILLIB.HxCfgFile\");\r\n   objCfgFile.LoadFile(i_str_ConfigFilePath);\r\n\r\n   onerror goto HandleError;\r\n\r\n   if(objCfgFile.ExistDataDef(str_DataDefinition,str_Instance) == 1)\r\n   {\r\n      //o_str_Value = objCfgFile.GetDataDefValueAsString(str_DataDefinition,\"default\",i_str_ValueToSearch);\r\n      objCfgFile.LookupDataDefValueAsString(str_DataDefinition,str_Instance,i_str_ValueToSearch,o_str_Value);\r\n   }\r\n   onerror goto 0;\r\n   err.Clear();\r\n\r\n   objCfgFile.ReleaseObject();\r\n\r\n   HandleError:\r\n   {\r\n   objCfgFile.ReleaseObject();\r\n   }\r\n}\r\n// {{ 290 1 0 \"7d54b18d_b90d_42f5_804d61536efac50b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_str_Value != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 291 1 0 \"d13b4662_77f9_4aae_982d49d4577b73fa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 1;\r\n// }} \"\"\r\n// {{ 292 1 0 \"7d54b18d_b90d_42f5_804d61536efac50b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 293 1 0 \"4bce011a_4c08_440c_84bdd749ac3dd718\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 0;\r\n// }} \"\"\r\n// {{ 294 1 0 \"7d54b18d_b90d_42f5_804d61536efac50b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"18d2ae9f_d183_4976_ad45c4322967d5ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"File type:  \",str_Extension,\" unknown!\");\r\n// {{ 297 1 0 \"e2a2e08f_202a_47c5_b2376db5277b5729\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_ReturnValue = 0;\r\n// }} \"\"\r\n// {{ 298 1 0 \"18d2ae9f_d183_4976_ad45c4322967d5ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 299 1 0 \"db57ab77_1564_43a1_9f90e6583a6874ab\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_ReturnValue);\r\n// }} \"\"\r\n// {{{ 5 \"GetDefinitionFileValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToFloat\" \"Begin\"\r\nfunction _ConvertToFloat( variable & io_Variable ) void {\r\n// }} \"\"\r\n// {{ 5 \"_ConvertToFloat\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 770 1 0 \"e85fbb24_8627_490c_9906f3335ada2931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Variable = StrConcat2(io_Variable, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 771 1 0 \"7c2130fc_419c_4b14_a4c68cb540a0bafc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Variable = StrFVal(io_Variable);\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToFloat\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInt\" \"Begin\"\r\nfunction _ConvertToInt( variable & io_Variable ) void {\r\n// }} \"\"\r\n// {{ 5 \"_ConvertToInt\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 773 1 0 \"3ec0389d_d182_4b32_9e6e3d403ec1b99a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Variable = StrConcat2(io_Variable, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 774 1 0 \"830eca01_a045_4ca8_a98ba70f46893e87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Variable = StrIVal(io_Variable);\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInt\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareOrigin\" \"Begin\"\r\nfunction GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable flt_RackBase;\r\nprivate variable str_LabID;\r\nprivate variable flt_BoundaryX;\r\nprivate variable flt_BoundaryY;\r\nprivate variable flt_RackWidthX;\r\nprivate variable flt_RackWidthY;\r\n// {{ 5 \"GetLabwareOrigin\" \"InitLocals\"\r\no_flt_X_Coord = 0;\r\no_flt_Y_Coord = 0;\r\no_flt_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 432 1 0 \"333ccbc0_cfff_4ec8_9f94e4405c18535b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID = i_str_LabID;\r\n// }} \"\"\r\n// {{ 433 1 0 \"66e906bb_9f08_4377_938af2bb94c70976\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 434 1 0 \"a0dac30d_6863_4bc6_ade453a9353c0355\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 435 1 0 \"dee0269b_4915_40b2_ad99c7caa91cab3c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 436 1 0 \"6c50145f_53a5_49d9_9beb9a84ab0cc220\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryX = 0.0;\r\n// }} \"\"\r\n// {{ 437 1 0 \"9c0c0b2b_15f9_4649_bfe6b08212290964\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BoundaryY = 0.0;\r\n// }} \"\"\r\n// {{ 438 1 0 \"ce5cfb47_438b_4f5d_ae377ae0e3ec46dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthX = 0.0;\r\n// }} \"\"\r\n// {{ 439 1 0 \"c3641241_da49_49b0_a18d34a777bd9c08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackWidthY = 0.0;\r\n// }} \"\"\r\n// {{ 440 1 0 \"207e7dee_5f5a_425d_874a7489e005396a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackBase = 0.0;\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = Instrument.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nflt_BoundaryX = objRackDataParams.Item1(\"Labwr_Bndry1X\");\r\nflt_BoundaryY = objRackDataParams.Item1(\"Labwr_Bndry1Y\");\r\nflt_RackWidthX = objRackDataParams.Item1(\"Labwr_XDim\");\r\nflt_RackWidthY = objRackDataParams.Item1(\"Labwr_YDim\");\r\nflt_RackBase = objRack4.RackBase();\r\n\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 442 1 0 \"1afacbb7_b4d4_44e7_a2b27ec1910cea12\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = flt_BoundaryX;\r\n// }} \"\"\r\n// {{ 443 1 0 \"208a4482_7851_4619_b3cd2d78a58f0776\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = flt_BoundaryY;\r\n// }} \"\"\r\n// {{ 444 1 0 \"e00622d1_fe95_4b68_a180efde1876f267\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = flt_RackBase;\r\n// }} \"\"\r\n// {{{ 445 1 0 \"f632fdab_ccb1_4c36_8355dd2ce8b9a3d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_X_Coord = MthRound(o_flt_X_Coord, 1);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"cbe82450_8c9b_4a50_825b9ed94e31f67d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_Y_Coord = MthRound(o_flt_Y_Coord, 1);\r\n// }} \"\"\r\n// {{{ 447 1 0 \"06543618_621c_492c_820c5e148bacfd89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_Z_Coord = MthRound(o_flt_Z_Coord, 1);\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareOrigin\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareCenter2\" \"Begin\"\r\nfunction GetLabwareCenter2( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void {\r\n// }} \"\"\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_Offset_X;\r\nprivate variable flt_Width;\r\nprivate variable flt_Offset_Y;\r\nprivate variable flt_Origin_X;\r\nprivate variable str_ConfigFilePath;\r\nprivate variable flt_Origin_Y;\r\nprivate variable flt_HalfHyp;\r\nprivate variable flt_HalfLength;\r\nprivate variable flt_Center_X;\r\nprivate variable str_X;\r\nprivate variable flt_Origin_Z;\r\nprivate variable flt_Radians;\r\nprivate variable flt_Center_Y;\r\nprivate variable str_Y;\r\nprivate variable flt_Calculation;\r\nprivate variable flt_HalfWidth;\r\nprivate variable flt_Hypotenuse;\r\nprivate variable flt_Pi;\r\nprivate variable flt_Length;\r\nprivate variable flt_AdjustedPlateAngle;\r\nprivate variable flt_PlateAngle;\r\nprivate variable flt_CosineCalculation;\r\nprivate variable flt_LabwareAngle;\r\nprivate variable flt_SineCalculation;\r\n// {{ 5 \"GetLabwareCenter2\" \"InitLocals\"\r\no_flt_X_Center = 0;\r\no_flt_Y_Center = 0;\r\n// }} \"\"\r\n// {{ 315 1 0 \"5785d595_68fc_4de0_a89c9dfb2a8da1ba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Center = 0.0;\r\n// }} \"\"\r\n// {{ 316 1 0 \"71516cce_d6c9_426b_94e0e5cabf84ca14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Center = 0.0;\r\n// }} \"\"\r\n// {{ 317 1 0 \"bf1a51f7_4c62_4db7_b9629e762ee9432b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Pi = 3.14159265359;\r\n// }} \"\"\r\n// {{ 318 1 0 \"3e840746_9384_4070_a41edc8a2887bd7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ConfigFilePath = Translate(\"\");\r\n// }} \"\"\r\n//Get Config File\r\n\r\n{\r\n   object objDeckLayout;\r\n\r\n   objDeckLayout = ML_STAR.GetDeckLayoutObject();\r\n\r\n   if(!objDeckLayout.IsNull())\r\n   {\r\n      object objLabware;\r\n\r\n      onerror goto HandleLabwareError;\r\n      objLabware = objDeckLayout.Labware(i_str_LabID);\r\n      onerror goto 0;\r\n      err.Clear();\r\n\r\n      if(!objLabware.IsNull())\r\n      {\r\n         object objEditLabware5;\r\n\r\n         objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n        str_ConfigFilePath = objEditLabware5.Filename;\r\n\r\n         objEditLabware5.ReleaseObject();\r\n         objDeckLayout.ReleaseObject();\r\n         objLabware.ReleaseObject();\r\n      }\r\n   }\r\n\r\n         // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n         if(errorID != 0)\r\n         {\r\n            if (errorID==-1574764487)\r\n            {\r\n                Trace(\"LabwareID is  unknown.\");\r\n            }\r\n            else\r\n            {\r\n                Trace(\"Unknown error occured.\");\r\n            }\r\n         }\r\n      }\r\n}\r\n// {{{ 320 1 0 \"4b39a671_21ee_4002_b2ff19f3d377d7cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetDefinitionFileValue(str_ConfigFilePath, Translate(\"Dim.Dx\"), str_X);\r\n// }} \"\"\r\n// {{{ 321 1 0 \"88955104_3517_49a0_a270879441ffa709\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetDefinitionFileValue(str_ConfigFilePath, Translate(\"Dim.Dy\"), str_Y);\r\n// }} \"\"\r\n// {{{ 322 1 0 \"b04efeeb_3950_4025_be30bf67e8596046\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Width = StrFVal(str_X);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"cf054720_36e5_4ede_9fc0f5093759ec98\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Length = StrFVal(str_Y);\r\n// }} \"\"\r\n// {{{ 324 1 0 \"4613366d_a08e_4e13_9d75aca3b86c87c9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetLabwareOrigin(ML_STAR, i_str_LabID, flt_Origin_X, flt_Origin_Y, flt_Origin_Z);\r\n// }} \"\"\r\n// {{ 325 1 0 \"159de3d5_aa37_4842_973e10c82802eb96\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 326 1 0 \"cfde975e_ad11_42da_89aacff2a3a358e1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Hypotenuse = 0.0;\r\n// }} \"\"\r\nflt_Hypotenuse = flt_Length^2 + flt_Width^2;\r\n// {{{ 328 1 0 \"9e319c3c_448e_4ddb_b098bad8fbdcb611\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Hypotenuse = MthPow(flt_Hypotenuse, 0.5);\r\n// }} \"\"\r\n// {{{ 329 1 0 \"8b00fb57_2962_40ea_b1cc09ffed5e8038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Hypotenuse = MthRound(flt_Hypotenuse, 1);\r\n// }} \"\"\r\n// {{ 330 1 0 \"85f2d104_5142_47d7_9a147ba8ce2b2069\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 331 1 0 \"7396b8f0_d180_4daa_9192219ea8c3d23a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfHyp = flt_Hypotenuse / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 332 1 0 \"9779b720_4e64_4810_a47e70923c86f6f3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfLength = flt_Length / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 333 1 0 \"71633f84_541a_4298_8bfec79c8d87a34a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfWidth = flt_Width / (2 * 1.0);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"9c81bc0d_11a4_43b6_9a40027cd7a41a77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, i_str_LabID, flt_NotUsed, flt_NotUsed, flt_NotUsed, flt_LabwareAngle);\r\n// }} \"\"\r\n// {{ 335 1 0 \"f7616020_ca36_456b_9fefed6b5f162118\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"f9c71207_bf7a_4ba8_b53acaf198731d95\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Calculation = flt_HalfLength / (flt_HalfWidth * 1.0);\r\n// }} \"\"\r\n// {{{ 337 1 0 \"1e22acfd_26d1_42d1_8d0e98ce575a1327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_PlateAngle = MthATan(flt_Calculation);\r\n// }} \"\"\r\nflt_PlateAngle = flt_PlateAngle * (180.0 / flt_Pi);\r\n// {{{ 339 1 0 \"5e37f1ab_69b0_4c53_976b644a1cb9afac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_PlateAngle = MthRound(flt_PlateAngle, 1);\r\n// }} \"\"\r\n// {{ 340 1 0 \"212df273_4e26_4ecf_8c8d1b963e80007c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LabwareAngle = flt_LabwareAngle * -1;\r\n// }} \"\"\r\n// {{ 341 1 0 \"427799ee_f679_491c_a4f08d2dc675c36a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AdjustedPlateAngle = flt_LabwareAngle + flt_PlateAngle;\r\n// }} \"\"\r\n// {{ 342 1 0 \"8f14ae15_3eae_462c_9dce27031d6bd7a8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\nflt_Radians = flt_AdjustedPlateAngle * (flt_Pi / 180);\r\n// {{{ 344 1 0 \"4167af72_cd4c_47d4_a73d36d5e5aed59f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_CosineCalculation = MthCos(flt_Radians);\r\n// }} \"\"\r\n// {{{ 345 1 0 \"8bf8918a_e56f_4e06_bf82e4b568b973bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_SineCalculation = MthSin(flt_Radians);\r\n// }} \"\"\r\n// {{ 346 1 0 \"cf494bbe_973b_4d1b_b0864ff1b53b3d05\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Offset_X = flt_CosineCalculation * flt_HalfHyp;\r\n// }} \"\"\r\n// {{{ 347 1 0 \"34ce83f1_0a94_4416_8d3571bf0ecd6680\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Offset_X = MthRound(flt_Offset_X, 1);\r\n// }} \"\"\r\n// {{ 348 1 0 \"de918329_d031_40ee_bab425a8cb303dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Offset_Y = flt_SineCalculation * flt_HalfHyp;\r\n// }} \"\"\r\n// {{{ 349 1 0 \"91b52b26_ca5d_4dc1_ad8d0724c0b48cd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Offset_Y = MthRound(flt_Offset_Y, 1);\r\n// }} \"\"\r\n// {{ 350 1 0 \"f0d56d85_3e5f_46e1_aaa8d49df6f9c611\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 351 1 0 \"bed2663a_6004_4116_8c93db5061f52065\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Center_X = flt_Origin_X + flt_Offset_X;\r\n// }} \"\"\r\n// {{ 352 1 0 \"1d5774b3_0803_4114_82a1d67d67e0969b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Center_Y = flt_Origin_Y + flt_Offset_Y;\r\n// }} \"\"\r\n// {{{ 353 1 0 \"489b41ee_bd0e_45bf_951cd58bc61820cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_X_Center = MthRound(flt_Center_X, 1);\r\n// }} \"\"\r\n// {{{ 354 1 0 \"b10c5f86_c8eb_4472_9cdd1cd30acaccae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_Y_Center = MthRound(flt_Center_Y, 1);\r\n// }} \"\"\r\n// {{{ 5 \"GetLabwareCenter2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetRackHeight\" \"Begin\"\r\nfunction GetRackHeight( device & ML_STAR, variable i_str_LabID, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void {\r\n// }} \"\"\r\nprivate variable flt_RackHeight;\r\nprivate variable flt_RackBase;\r\nprivate variable str_ConfigFile;\r\nprivate variable bln_ValueFound;\r\nprivate variable str_PosID;\r\nprivate variable str_Value;\r\n// {{ 5 \"GetRackHeight\" \"InitLocals\"\r\no_flt_RackHeight = 0;\r\no_flt_RackClearanceHeight = 0;\r\n// }} \"\"\r\n// {{ 481 1 0 \"149b9ecd_9eef_4167_bb923d4e4818746c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackClearanceHeight = 0.0;\r\n// }} \"\"\r\n// {{ 482 1 0 \"bdee4e84_3d73_4034_98230cd77613fb01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackHeight = 0.0;\r\n// }} \"\"\r\n// {{ 483 1 0 \"3a8b19e7_efbc_449f_bf12a1cfdae64252\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackBase = 0.0;\r\n// }} \"\"\r\n// {{ 484 1 0 \"8ba30f43_027a_4488_b64d1a77245f88f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_RackHeight = 0.0;\r\n// }} \"\"\r\n// {{ 485 1 0 \"47e06867_16f1_4b62_ace488e78054bed8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 486 1 0 \"01661b8d_8495_4b00_98594a9cd802a0da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetFirstPosition(ML_STAR, i_str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{{ 487 1 0 \"e15139a0_5840_4ccb_be812a51590552ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetConfigurationFile(ML_STAR, i_str_LabID, str_ConfigFile);\r\n// }} \"\"\r\n{\r\nobject objRackDataParams;\r\nobject objDecklayout;\r\nobject objLabware;\r\nobject objTemplate;\r\nobject objRack;\r\nobject objRack4;\r\nobject objEditLabware5;\r\n\r\nobjRackDataParams.CreateObject(\"HXPARAMSLib.HxPars\");\r\nobjDecklayout = ML_STAR.GetDeckLayoutObject();\r\nobjLabware = objDecklayout.Labware(i_str_LabID);\r\n\r\nobjLabware.GetObject(\"ITemplateDeckData\", objTemplate);\r\nobjLabware.GetObject(\"IRectRack4\", objRack4);\r\nobjLabware.GetObject(\"IRectRack\", objRack);\r\nobjLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\nobjRack4.GetRackData(objRackDataParams);\r\nflt_RackHeight = objRackDataParams.Item1(\"Labwr_ZDim\");\r\n//o_flt_RackClearanceHeight = objEditLabware5.Clearance(str_PosID);\r\nflt_RackBase = objRack4.RackBase();\r\n\r\nobjRackDataParams.ReleaseObject();\r\nobjDecklayout.ReleaseObject();\r\nobjLabware.ReleaseObject();\r\nobjTemplate.ReleaseObject();\r\nobjRack.ReleaseObject();\r\nobjRack4.ReleaseObject();\r\nobjEditLabware5.ReleaseObject();\r\n}\r\n// {{ 489 1 0 \"5f7f3c95_dbf7_471f_a7584e56b78c7377\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackHeight = flt_RackBase + flt_RackHeight;\r\n// }} \"\"\r\n// {{{ 490 1 0 \"bc51132c_0292_46bf_a5fa888f7e0be63f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = GetDefinitionFileValue(str_ConfigFile, Translate(\"Clearance\"), str_Value);\r\n// }} \"\"\r\n// {{ 491 1 0 \"a7e62a8b_9a9e_4a08_999fbebbddfbd05d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 492 1 0 \"67a28f4d_3cf4_4fe3_a19f7b539ba5e685\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_RackClearanceHeight = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 493 1 0 \"1ad1df3b_1421_4671_a999e4e83db79af1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackClearanceHeight = flt_RackBase + o_flt_RackClearanceHeight;\r\n// }} \"\"\r\n// {{ 494 1 0 \"a7e62a8b_9a9e_4a08_999fbebbddfbd05d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 495 1 0 \"c43a2f19_8d2c_41fd_8cac07da346f8a23\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_RackClearanceHeight = o_flt_RackHeight;\r\n// }} \"\"\r\n// {{ 496 1 0 \"a7e62a8b_9a9e_4a08_999fbebbddfbd05d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Rack Base:  \",flt_RackBase);\r\nTrace(\"Rack Dimension Z:  \",flt_RackHeight);\r\nTrace(\"Rack Height:  \",o_flt_RackHeight);\r\nTrace(\"Rack Clearance Height:  \",o_flt_RackClearanceHeight);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"GetRackHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"RemoveTruncatedSequencePositions\" \"Begin\"\r\nfunction RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void {\r\n// }} \"\"\r\n// {{ 5 \"RemoveTruncatedSequencePositions\" \"InitLocals\"\r\n// }} \"\"\r\n{\r\n   variable int_CurrentPosition;\r\n   variable int_TotalSequencePositions;\r\n   sequence seq_AdjustedSequence;\r\n   variable i;\r\n\r\n   int_CurrentPosition = io_Sequence.GetCurrentPosition();\r\n\r\n   seq_AdjustedSequence.CopySequence(io_Sequence);\r\n\r\n   int_TotalSequencePositions = io_Sequence.GetTotal();\r\n\r\n   SeqRemoveAll(io_Sequence);\r\n\r\n   for(i = int_CurrentPosition; i <= int_TotalSequencePositions;)\r\n   {\r\n      if(int_CurrentPosition == 0) break;\r\n      seq_AdjustedSequence.SetCurrentPosition(i);\r\n\r\n      if(seq_AdjustedSequence.GetLabwareId() != \"\" && seq_AdjustedSequence.GetPositionId() != \"\") \r\n      {\r\n\r\n         io_Sequence.Add(seq_AdjustedSequence.GetLabwareId(), seq_AdjustedSequence.GetPositionId());\r\n      }\r\n\r\n      i = i + 1;\r\n   }\r\n\r\n   io_Sequence.SetCurrentPosition(1);\r\n}\r\n// {{{ 5 \"RemoveTruncatedSequencePositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SortSequence\" \"Begin\"\r\nfunction SortSequence( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID ) void {\r\n// }} \"\"\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable str_SQL_Sort;\r\n// {{ 5 \"SortSequence\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 665 1 0 \"b4882176_9e2e_46a4_a49e2ac40c6e6aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 666 1 0 \"5afdf3dd_fe8c_47f3_bd372cb974748861\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_ByLabID == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 667 1 0 \"6a54fe91_8d3e_416d_b2063a1d3c76e02c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM SORT ORDER BY LAB_ID ASC, X_COORD ASC, Y_COORD DESC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 668 1 0 \"5afdf3dd_fe8c_47f3_bd372cb974748861\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 669 1 0 \"2807140a_6365_438e_878e7a2e1d41715c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 670 1 0 \"5afdf3dd_fe8c_47f3_bd372cb974748861\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n{\r\n   variable int_CurrentPosition;\r\n   variable int_TotalSequencePositions;\r\n   sequence seq_AdjustedSequence;\r\n   variable i;\r\n\r\n   file WriteFile;\r\n   file ReadFile;\r\n   variable str_LabID;\r\n   variable str_PosID;\r\n   variable flt_X;\r\n   variable flt_Y;\r\n   variable arr_Coordinates[];\r\n\r\n   int_CurrentPosition = io_Sequence.GetCurrentPosition();\r\n\r\n   seq_AdjustedSequence.CopySequence(io_Sequence);\r\n\r\n   int_TotalSequencePositions = io_Sequence.GetTotal();\r\n\r\n   SeqRemoveAll(io_Sequence);\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n\r\n   if(WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite))\r\n   {\r\n\r\n      for(i = int_CurrentPosition; i <= int_TotalSequencePositions;)\r\n      {\r\n         if(int_CurrentPosition == 0) break;\r\n         seq_AdjustedSequence.SetCurrentPosition(i);\r\n\r\n         if(seq_AdjustedSequence.GetLabwareId() != \"\" && seq_AdjustedSequence.GetPositionId() != \"\") \r\n         {\r\n            str_LabID = seq_AdjustedSequence.GetLabwareId();\r\n            str_PosID = seq_AdjustedSequence.GetPositionId();\r\n            Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID);\r\n            flt_X = arr_Coordinates[0];\r\n            flt_Y = arr_Coordinates[1];\r\n\r\n            WriteFile.WriteRecord();\r\n         }\r\n\r\n         i = i + 1;\r\n      }\r\n\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n\r\n   ReadFile.RemoveFields();\r\n   ReadFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   ReadFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   ReadFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   ReadFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n\r\n   if(ReadFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead, str_SQL_Sort))\r\n   {\r\n      while(ReadFile.Eof() == 0)\r\n      {\r\n         ReadFile.ReadRecord();\r\n         io_Sequence.Add(str_LabID,str_PosID);\r\n      }\r\n   }\r\n\r\n   else\r\n   {\r\n      Trace(\"ERROR OCCURRED DURING SORT\");\r\n      io_Sequence.CopySequence(seq_AdjustedSequence);\r\n   }\r\n\r\n   ReadFile.Close();\r\n   ReadFile.RemoveFields();\r\n\r\n   io_Sequence.SetCurrentPosition(1);\r\n}\r\n// {{{ 5 \"SortSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Lookup\" \"Begin\"\r\nfunction Lookup( variable & array[], variable item ) variable {\r\n// }} \"\"\r\nprivate variable index;\r\nprivate variable lookupreturn;\r\n// {{ 5 \"Lookup\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 582 1 0 \"f918c839_22a0_44d4_a1875cb1cf83638f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlookupreturn = Util::Lookup(array, item, index);\r\n// }} \"\"\r\n// {{ 583 1 0 \"a738f837_2e72_4662_aac6fa7dd533626e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lookupreturn > 0)\r\n{\r\n// }} \"\"\r\n// {{ 584 1 0 \"96d8071f_2136_47d3_a3c1d0c36601575a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nindex = index + 1;\r\n// }} \"\"\r\n// {{{ 585 1 0 \"a7edec9f_b096_4102_bc9ebdf80797df70\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (index);\r\n// }} \"\"\r\n// {{ 586 1 0 \"a738f837_2e72_4662_aac6fa7dd533626e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 587 1 0 \"39494638_4368_4973_88cd022ff1d68d03\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{ 588 1 0 \"a738f837_2e72_4662_aac6fa7dd533626e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Lookup\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SortSequences\" \"Begin\"\r\nfunction SortSequences( device & Instrument, sequence & io_Sequence1, sequence & io_Sequence2, variable i_bln_ByLabID ) void {\r\n// }} \"\"\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable str_SQL_Sort;\r\n// {{ 5 \"SortSequences\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 682 1 0 \"ce098eee_9916_4aaa_b6c2757090bb0143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 683 1 0 \"b07779e6_f7ff_4a6a_a9980db1497cc059\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_ByLabID == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 684 1 0 \"b84cd2c9_5f30_4b68_87ca5c22019cbe11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM SORT ORDER BY LAB_ID ASC, X_COORD ASC, Y_COORD DESC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 685 1 0 \"b07779e6_f7ff_4a6a_a9980db1497cc059\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 686 1 0 \"46d3fb8a_c166_4ff4_9145e48426e6f692\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 687 1 0 \"b07779e6_f7ff_4a6a_a9980db1497cc059\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n{\r\n   variable int_CurrentPosition;\r\n   variable int_TotalSequencePositions;\r\n   sequence seq_AdjustedSequence1;\r\n   sequence seq_AdjustedSequence2;\r\n   variable i;\r\n\r\n   file WriteFile;\r\n   file ReadFile;\r\n   variable str_LabID;\r\n   variable str_PosID;\r\n   variable str_LabID2;\r\n   variable str_PosID2;\r\n   variable flt_X;\r\n   variable flt_Y;\r\n   variable arr_Coordinates[];\r\n\r\n   int_CurrentPosition = io_Sequence1.GetCurrentPosition();\r\n\r\n   seq_AdjustedSequence1.CopySequence(io_Sequence1);\r\n   seq_AdjustedSequence2.CopySequence(io_Sequence2);\r\n\r\n\r\n   int_TotalSequencePositions = io_Sequence1.GetTotal();\r\n\r\n   SeqRemoveAll(io_Sequence1);\r\n   SeqRemoveAll(io_Sequence2);\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n   WriteFile.AddField(\"LAB_ID_2\", str_LabID2, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID_2\", str_PosID2, hslString, 255);\r\n\r\n   if(WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite))\r\n   {\r\n\r\n      for(i = int_CurrentPosition; i <= int_TotalSequencePositions;)\r\n      {\r\n         if(int_CurrentPosition == 0) break;\r\n         seq_AdjustedSequence1.SetCurrentPosition(i);\r\n         seq_AdjustedSequence2.SetCurrentPosition(i);\r\n\r\n         if(seq_AdjustedSequence1.GetLabwareId() != \"\" && seq_AdjustedSequence1.GetPositionId() != \"\") \r\n         {\r\n            str_LabID = seq_AdjustedSequence1.GetLabwareId();\r\n            str_PosID = seq_AdjustedSequence1.GetPositionId();\r\n            Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID);\r\n            flt_X = arr_Coordinates[0];\r\n            flt_Y = arr_Coordinates[1];\r\n            str_LabID2 = seq_AdjustedSequence2.GetLabwareId();\r\n            str_PosID2 = seq_AdjustedSequence2.GetPositionId();\r\n\r\n            WriteFile.WriteRecord();\r\n         }\r\n\r\n         i = i + 1;\r\n      }\r\n\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n\r\n   ReadFile.RemoveFields();\r\n   ReadFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   ReadFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   ReadFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   ReadFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n   ReadFile.AddField(\"LAB_ID_2\", str_LabID2, hslString, 255);\r\n   ReadFile.AddField(\"POS_ID_2\", str_PosID2, hslString, 255);\r\n\r\n   if(ReadFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead, str_SQL_Sort))\r\n   {\r\n      while(ReadFile.Eof() == 0)\r\n      {\r\n         ReadFile.ReadRecord();\r\n         io_Sequence1.Add(str_LabID,str_PosID);\r\n         io_Sequence2.Add(str_LabID2,str_PosID2);\r\n      }\r\n   }\r\n\r\n   else\r\n   {\r\n      Trace(\"ERROR OCCURRED DURING SORT\");\r\n      io_Sequence1.CopySequence(seq_AdjustedSequence1);\r\n      io_Sequence2.CopySequence(seq_AdjustedSequence2);\r\n   }\r\n\r\n   ReadFile.Close();\r\n   ReadFile.RemoveFields();\r\n\r\n   io_Sequence1.SetCurrentPosition(1);\r\n   io_Sequence2.SetCurrentPosition(1);\r\n}\r\n// {{{ 5 \"SortSequences\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CalculateXYFromDiameterAndAngle\" \"Begin\"\r\nfunction CalculateXYFromDiameterAndAngle( variable iDiameter, variable iPhi_Degree, variable & oDelta_X, variable & oDelta_Y ) void {\r\n// }} \"\"\r\nprivate variable tmp_Phi;\r\nprivate variable tmp_SinPhi;\r\nprivate variable iRadius;\r\nprivate variable tmp_CosPhi;\r\n// {{ 5 \"CalculateXYFromDiameterAndAngle\" \"InitLocals\"\r\noDelta_X = 0;\r\noDelta_Y = 0;\r\n// }} \"\"\r\n// {{ 24 1 0 \"94200683_d132_48fa_bd6dc3a020af8300\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 25 1 0 \"034cb667_900f_4f85_a6ad42da452dc1a6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 26 1 0 \"69b737e3_6fe8_4bf8_821bf51be27fd90a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\niRadius = iDiameter;\r\n// }} \"\"\r\n// {{ 27 1 0 \"edd5c5c2_0ec6_4026_815e1b24653a9f9a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmp_Phi = iPhi_Degree * 3.1415926;\r\n// }} \"\"\r\n// {{ 28 1 0 \"54b91f80_e958_4475_b515d6108b404d8a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmp_Phi = tmp_Phi / (180.0 * 1.0);\r\n// }} \"\"\r\n// {{{ 29 1 0 \"ce576a51_0d42_4b25_94ad2566214a9f1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmp_CosPhi = MthCos(tmp_Phi);\r\n// }} \"\"\r\n// {{ 30 1 0 \"d6bdb605_2594_4d64_aeaf25b122e8c325\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\noDelta_X = iRadius * tmp_CosPhi;\r\n// }} \"\"\r\n// {{{ 31 1 0 \"efa4a9b3_07de_4bca_88147b0b5fdb5a43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntmp_SinPhi = MthSin(tmp_Phi);\r\n// }} \"\"\r\n// {{ 32 1 0 \"104c2926_e35d_4514_8e3bd4f828cff285\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\noDelta_Y = iRadius * tmp_SinPhi;\r\n// }} \"\"\r\n// {{{ 33 1 0 \"0469093b_04bb_4d54_9b255eed8b476068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\noDelta_X = MthRound(oDelta_X, 1);\r\n// }} \"\"\r\n// {{{ 34 1 0 \"778fa82a_6dd6_40e4_aa36fdf7db046f7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\noDelta_Y = MthRound(oDelta_Y, 1);\r\n// }} \"\"\r\n// {{{ 5 \"CalculateXYFromDiameterAndAngle\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CalculateVolumeToHeight\" \"Begin\"\r\nfunction CalculateVolumeToHeight( device & ML_STAR, variable iLabwareID, variable iLiquidVolume, variable iStartHeight ) variable {\r\n// }} \"\"\r\nprivate variable tmp_TubeDiameter;\r\nprivate variable tmp_TubeRadius;\r\nprivate variable tmp_Height;\r\n// {{ 5 \"CalculateVolumeToHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 15 1 0 \"dc05dad0_21a4_4324_b1bab26044971811\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"321c42b8_67d1_4f2f_a9b4896e99805c8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetContainerWidth(ML_STAR, iLabwareID, tmp_TubeDiameter);\r\n// }} \"\"\r\n// {{ 17 1 0 \"0c2a6ee0_78ba_42c5_884f1f70fd430b6b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmp_TubeRadius = tmp_TubeDiameter / (2.0 * 1.0);\r\n// }} \"\"\r\n// {{ 18 1 0 \"e8af591f_6ad7_4e24_a448bcb3e3611e6d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 19 1 0 \"89976b65_56b8_42b6_bc80f85b12af1f52\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntmp_Height = 0.0;\r\n// }} \"\"\r\n// {{ 20 1 0 \"c090f8a2_75b8_48ae_bd621a5dffcad42d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n{  \r\n   variable SphericVolumeOfTubeBottom;\r\n   variable VolumeBetweenStartAndConeSegment;\r\n   \r\n   SphericVolumeOfTubeBottom=tmp_TubeRadius*3.1415926/3.0*MthPow(tmp_TubeRadius,2)*7/4;\r\n\r\n   VolumeBetweenStartAndConeSegment=3.1415926*MthPow(tmp_TubeRadius,2)*(iStartHeight-tmp_TubeRadius);\r\n   \r\n   if (iLiquidVolume<=VolumeBetweenStartAndConeSegment)   //Volumen oberhalb BottomCone ist ausreichend also Zylinder rechnen \r\n   {\r\n      tmp_Height = (iLiquidVolume) / (3.1415926 * MthPow(tmp_TubeRadius, 2));\r\n   }\r\n   else\r\n   {\r\n     if (iLiquidVolume > SphericVolumeOfTubeBottom)\r\n     {\r\n     //height above Cone   \r\n      tmp_Height = (iLiquidVolume-SphericVolumeOfTubeBottom)  / (3.1415926 * MthPow(tmp_TubeRadius, 2));\r\n      //+ height in zylinder\r\n      tmp_Height = tmp_Height + (tmp_TubeRadius);\r\n     }\r\n     else\r\n     {      //Cutted ConeVol Pi/3*(R*R+R*r+r*r) with r=R/2 gives Pi/3*R*R*7/4 \r\n         tmp_Height = iLiquidVolume  / (3.1415926/3.0*MthPow(tmp_TubeRadius,2)*7/4);\r\n     }\r\n   }\r\n}\r\n\r\n// {{{ 22 1 0 \"8f077eb0_eedd_45d3_802af42e2a4cf77d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (tmp_Height);\r\n// }} \"\"\r\n// {{{ 5 \"CalculateVolumeToHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SortSequenceRaster\" \"Begin\"\r\nfunction SortSequenceRaster( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID, variable i_flt_YRaster ) void {\r\n// }} \"\"\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable str_SQL_Sort;\r\n// {{ 5 \"SortSequenceRaster\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 673 1 0 \"e5a4d0f6_fff1_4a9c_a98b666c96c560ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 674 1 0 \"b8670065_4865_406f_91cea5b72ef22931\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_ByLabID == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 675 1 0 \"ea62cde6_f3c4_4431_8326905f881a755d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM SORT ORDER BY LAB_ID ASC, X_COORD ASC, RASTER_CHECK DESC, Y_COORD DESC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 676 1 0 \"b8670065_4865_406f_91cea5b72ef22931\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 677 1 0 \"ecced08f_4838_440c_aeb6622a050c4db9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM SORT ORDER BY X_COORD ASC, RASTER_CHECK DESC, Y_COORD DESC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 678 1 0 \"b8670065_4865_406f_91cea5b72ef22931\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n{\r\n   variable int_CurrentPosition;\r\n   variable int_TotalSequencePositions;\r\n   sequence seq_AdjustedSequence;\r\n   variable i;\r\n\r\n   file WriteFile;\r\n   file ReadFile;\r\n   variable str_LabID;\r\n   variable str_PosID;\r\n   variable flt_X;\r\n   variable flt_Y;\r\n   variable int_R;\r\n   variable flt_CurrentY;\r\n   variable flt_CurrentX;\r\n   variable arr_Coordinates[];\r\n\r\n   int_CurrentPosition = io_Sequence.GetCurrentPosition();\r\n\r\n   seq_AdjustedSequence.CopySequence(io_Sequence);\r\n\r\n   int_TotalSequencePositions = io_Sequence.GetTotal();\r\n\r\n   SeqRemoveAll(io_Sequence);\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n   WriteFile.AddField(\"RASTER_CHECK\",int_R, hslInteger);\r\n\r\n   if(WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite))\r\n   {\r\n\r\n      for(i = int_CurrentPosition; i <= int_TotalSequencePositions;)\r\n      {\r\n         if(int_CurrentPosition == 0) break;\r\n         seq_AdjustedSequence.SetCurrentPosition(i);\r\n\r\n         if(seq_AdjustedSequence.GetLabwareId() != \"\" && seq_AdjustedSequence.GetPositionId() != \"\") \r\n         {\r\n            str_LabID = seq_AdjustedSequence.GetLabwareId();\r\n            str_PosID = seq_AdjustedSequence.GetPositionId();\r\n            Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID);\r\n            flt_X = arr_Coordinates[0];\r\n            flt_Y = arr_Coordinates[1];\r\n\r\n            if(i == int_CurrentPosition) \r\n            {\r\n               int_R = 1;\r\n               flt_CurrentY = flt_Y;\r\n               flt_CurrentX = flt_X;\r\n            }\r\n            else if(flt_X != flt_CurrentX)\r\n            {\r\n               int_R = 1;\r\n               flt_CurrentY = flt_Y;\r\n               flt_CurrentX = flt_X;\r\n            }          \r\n            else\r\n            {\r\n               int_R = (flt_CurrentY - flt_Y) / i_flt_YRaster;\r\n            }\r\n\r\n            if(int_R >= 1.0)\r\n            {\r\n               int_R = 1;\r\n               flt_CurrentY = flt_Y;\r\n            }\r\n            else int_R = 0;\r\n\r\n            WriteFile.WriteRecord();\r\n         }\r\n\r\n         i = i + 1;\r\n      }\r\n\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n\r\n   ReadFile.RemoveFields();\r\n   ReadFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   ReadFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   ReadFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   ReadFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n   ReadFile.AddField(\"RASTER_CHECK\",int_R, hslInteger);\r\n\r\n   if(ReadFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead, str_SQL_Sort))\r\n   {\r\n      while(ReadFile.Eof() == 0)\r\n      {\r\n         ReadFile.ReadRecord();\r\n         io_Sequence.Add(str_LabID,str_PosID);\r\n      }\r\n   }\r\n\r\n   else\r\n   {\r\n      Trace(\"ERROR OCCURRED DURING SORT\");\r\n      io_Sequence.CopySequence(seq_AdjustedSequence);\r\n   }\r\n\r\n   ReadFile.Close();\r\n   ReadFile.RemoveFields();\r\n\r\n   io_Sequence.SetCurrentPosition(1);\r\n}\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 680 1 0 \"1f9f3808_ca9e_433a_8cf01bf071a22e3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceSequence(io_Sequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"SortSequenceRaster\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2022-04-20 16:45$$checksum=605d76f9$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Liquid Level Check.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 9/23/2019 10:30:09 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace LIQUID_LEVEL_CHECK {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void { }\r\nfunction 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); }\r\nfunction 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); }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2019-09-23 10:30$$checksum=652b603e$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Liquid Level Check.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"HSLFilLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n#include \"STAR Tools\\\\STAR Tip Tools.hs_\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace LIQUID_LEVEL_CHECK {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nprivate function _Get_CenterWell( device & ML_STAR, sequence i_seq_Reservoir, variable & o_str_WellID ) void ;\r\nprivate function _Get_LiquidClass( variable i_int_TipType, variable & o_str_LiquidClass ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nHELPERLIBRARY::_InitLibrary();\r\nSTAR_TIP_TOOLS::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nHELPERLIBRARY::_ExitLibrary();\r\nSTAR_TIP_TOOLS::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"MeasureLiquidLevel_Single\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_FunctionName;\r\nprivate variable str_TipCounter;\r\nprivate variable int_Total1mLChannels;\r\nprivate variable ret_FunctionSuccessful;\r\nprivate variable str_TipName;\r\nprivate variable str_TipLabID;\r\nprivate variable int_Length;\r\nprivate variable str_WasteLabID;\r\nprivate variable int_Value;\r\nprivate variable str_Value;\r\nprivate variable str_ReservoirLabID;\r\nprivate variable int_TotalPositions;\r\nprivate variable int_TipType;\r\nprivate variable str_LiquidClass;\r\nprivate variable str_ChannelPattern;\r\nprivate variable str_CenterWell;\r\nprivate sequence seq_LLCheck;\r\nprivate variable str_IncrementSequence;\r\nprivate variable int_IncrementSequence;\r\nprivate variable flt_VolumeMeasureduL;\r\nprivate variable flt_VolumeMeasuredmL;\r\nprivate variable flt_LiquidLevel;\r\nprivate variable str_ReturnValue;\r\nprivate variable flt_VolumeMeasured;\r\nprivate variable str_LabID;\r\nprivate variable int_LLD_Sensitivity;\r\nprivate variable str_PosID;\r\nprivate variable bool_ConnectedContainer;\r\n// {{ 5 \"MeasureLiquidLevel_Single\" \"InitLocals\"\r\no_flt_VolumeMeasured = 0;\r\n// }} \"\"\r\n// {{ 203 1 0 \"e90544d9_4738_4f3a_a570cf7b79f679dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_FunctionSuccessful = 0;\r\n// }} \"\"\r\n// {{ 204 1 0 \"cfb89b58_2f36_4d92_a9656b652de5e856\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_VolumeMeasured = 0.0;\r\n// }} \"\"\r\n// {{ 205 1 0 \"aad3d293_6822_4fde_a7293fe0a5937f81\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FunctionName = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 206 1 0 \"da29512f_614e_47d2_a5cf8356fb27bc17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_LLCheck);\r\n// }} \"\"\r\n// {{ 207 1 0 \"50be0b10_ea44_4ce4_8fe34f0c0feba3b6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 208 1 0 \"40c1d59f_eab9_4ec7_adcc9fc423e3cd69\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 209 1 0 \"c17facbb_6b3f_4696_a3faf0dede057fc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Total1mLChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\nTrace(\"     \",\"Total Channels:  \",int_Total1mLChannels);\r\n// {{ 211 1 0 \"daf28217_7944_4b98_8a28abf62160058c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Total1mLChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 212 1 0 \"725f7ba4_180a_45b9_b1ece96eddf0f541\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nNO 1mL CHANNELS ARE LOADED ON THE SYSTEM!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 214 1 0 \"050a0f57_e2e0_4fec_8e1f20cfc26f0452\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 215 1 0 \"daf28217_7944_4b98_8a28abf62160058c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 216 1 0 \"0dd0bae2_cd21_4e4b_b7087993dc879cd0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChannelPattern = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 217 1 0 \"73bd48b6_7107_40f8_a2fa7943c505f40c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern = StrFillRight(str_ChannelPattern, Translate(\"0\"), int_Total1mLChannels);\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Pattern:  \",str_ChannelPattern);\r\n// {{ 219 1 0 \"50be0b10_ea44_4ce4_8fe34f0c0feba3b6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 220 1 0 \"c0a72b00_130e_4543_9ab612e46b81244d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 221 1 0 \"b833daf9_bf1f_4813_acb5ea911bfca765\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 222 1 0 \"c310ac30_2ec9_44bc_ae4f60ef8ef76ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipsToUse);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"f8521ab9_bf98_4d18_8d456932045415e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_TipLabID);\r\n// }} \"\"\r\n// {{ 224 1 0 \"51fc769d_e559_449a_a9cf7f053a716e68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 225 1 0 \"a9d1c9e4_90ed_4cf1_9349ea4a87eeb8cd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTipName(ML_STAR, str_TipLabID, str_TipName, int_TipType);\r\n// }} \"\"\r\n// {{ 226 1 0 \"51fc769d_e559_449a_a9cf7f053a716e68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 227 1 0 \"d2639bc3_414b_48b6_8aceb2e04efed86b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipType = Translate(\"UNKNOWN\");\r\n// }} \"\"\r\n// {{ 228 1 0 \"51fc769d_e559_449a_a9cf7f053a716e68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 229 1 0 \"03844497_2858_4302_9b8ca4eaf5c8d057\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipCounter = StrConcat2(i_str_TipCounter, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 230 1 0 \"36f64d58_2974_4164_828207b44bf5f45e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipCounter == \"0\")\r\n{\r\n// }} \"\"\r\n// {{ 231 1 0 \"7d11fc3e_291c_4b8e_b7d17a81a60f9ae5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TipCounter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 232 1 0 \"36f64d58_2974_4164_828207b44bf5f45e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 233 1 0 \"64074e66_671c_4b63_b7c8c741df956a90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipCounter == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 234 1 0 \"0143f375_d4ac_4fbc_be7fb3f7b51a87a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipCounter = StrConcat4(Translate(\"Tip_Counter\"), Translate(\"_\"), int_TipType, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 235 1 0 \"64074e66_671c_4b63_b7c8c741df956a90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Tip Counter:  \",str_TipCounter);\r\n// {{ 237 1 0 \"c0a72b00_130e_4543_9ab612e46b81244d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"e471f455_7f17_4c94_8d49fb76ac3998da\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 239 1 0 \"226c7aa3_40b7_494b_9c722e64e170e8c2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 240 1 0 \"ec109416_1eb2_46d2_be36e280d2a6f2db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::TipCheck(ML_STAR, i_seq_TipsToUse, str_TipCounter, 1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 241 1 0 \"a0d6a6c7_e4c3_431f_878ddc2446bf9f00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheck(ML_STAR, i_seq_TipsToUse, str_TipCounter, 1);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"c50e500c_0746_41b1_a2124eca3023b96b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipsToUse);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"a27ca153_2aaf_4ca5_aec270484840183a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTipName(ML_STAR, str_TipLabID, str_TipName, int_TipType);\r\n// }} \"\"\r\n// {{ 244 1 0 \"b7972478_2acf_4afd_a90aa24694cc69a1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 245 1 0 \"692a7386_2e23_4426_8cd0192740c161ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_IncrementSequence = StrConcat2(i_bool_IncrementTipSequence, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 246 1 0 \"4cde60cb_0f6e_4345_b71a79b4aae47b52\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_IncrementSequence = StrIVal(str_IncrementSequence);\r\n// }} \"\"\r\n// {{ 247 1 0 \"31c9bc7e_8e94_4d64_89cc797ecca1d801\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_IncrementSequence > 1)\r\n{\r\n// }} \"\"\r\n// {{ 248 1 0 \"9f9937f4_311d_418e_96fccaacaa3a2b8e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_IncrementSequence = 1;\r\n// }} \"\"\r\n// {{ 249 1 0 \"31c9bc7e_8e94_4d64_89cc797ecca1d801\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 250 1 0 \"cbd7bf2e_2a08_43ba_965f95f8583e6553\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_IncrementSequence < 0)\r\n{\r\n// }} \"\"\r\n// {{ 251 1 0 \"51b7eb53_d078_4989_94089dd82a5bbfb0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_IncrementSequence = 0;\r\n// }} \"\"\r\n// {{ 252 1 0 \"cbd7bf2e_2a08_43ba_965f95f8583e6553\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Tip Labware:  \",str_TipLabID);\r\nTrace(\"     \",\"Tip Name:  \",str_TipName);\r\nTrace(\"     \",\"Tip Type:  \",int_TipType);\r\nTrace(\"     \",\"Increment Sequence:  \",int_IncrementSequence);\r\n// {{ 254 1 0 \"1b33c415_f032_40f1_99ea627f6c0ef2e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipName == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 255 1 0 \"87371e4f_a56a_4c68_a6ce3994357b8359\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nTIP SEQUENCE DOES NOT POINT TO A TIP LABWARE!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 257 1 0 \"606e2807_14e7_41a4_be0d947e523940ad\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 258 1 0 \"1b33c415_f032_40f1_99ea627f6c0ef2e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 259 1 0 \"55cf6cd8_23a2_435c_84b4e46c01ea7d6b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 260 1 0 \"e9c390f0_d06b_45a8_bbbce20ec156bc51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_Get_LiquidClass(int_TipType, str_LiquidClass);\r\n// }} \"\"\r\nTrace(\"     \",\"Liquid Class:  \",str_LiquidClass);\r\n// {{ 262 1 0 \"798e0ced_6ea9_408a_9147575471972d38\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LiquidClass == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 263 1 0 \"bdd2ac03_14bb_48be_a9b439a36b7cbc38\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nTIP TYPE IS NOT SUPPORTED IN THIS FUNCTION!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 265 1 0 \"bba302ed_b6b7_4ee6_bd6f5d101a45b41a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 266 1 0 \"798e0ced_6ea9_408a_9147575471972d38\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"e471f455_7f17_4c94_8d49fb76ac3998da\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 268 1 0 \"543928b3_ab47_4da6_a428054a009d74e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 269 1 0 \"384cdf04_9f03_49d1_89382d54935be525\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 270 1 0 \"09812169_8f39_4bbf_bcaf85cc8bb2b8c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_WasteLabID = SeqGetLabwareId(i_seq_TipWaste);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"7f076a3c_07fd_459a_946032872e2fe6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_WasteLabID);\r\n// }} \"\"\r\n// {{ 272 1 0 \"0475a959_f43b_479a_bc02dea7d273316d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length == 0)\r\n{\r\n// }} \"\"\r\n// {{ 273 1 0 \"b4f285e4_9468_4f34_885c963a463e88fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Value = 0;\r\n// }} \"\"\r\n// {{ 274 1 0 \"0475a959_f43b_479a_bc02dea7d273316d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 275 1 0 \"962edaf2_6cd9_4f46_84d3c8d0141ad090\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = DevGetLabwareData(ML_STAR, str_WasteLabID, Translate(\"MlStarIsWasteRack\"));\r\n// }} \"\"\r\n// {{{ 276 1 0 \"7e12cae1_de74_40db_ac545d7d86972bf7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_Value);\r\n// }} \"\"\r\n// {{ 277 1 0 \"9387981e_b8dd_4186_888cf030f595e577\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length == 0)\r\n{\r\n// }} \"\"\r\n// {{ 278 1 0 \"52950068_170a_42ed_96cc73649ef0de8b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Value = 0;\r\n// }} \"\"\r\n// {{ 279 1 0 \"9387981e_b8dd_4186_888cf030f595e577\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 280 1 0 \"3775c2bd_ce32_4313_8ee976ca8ad4cb5a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 281 1 0 \"9387981e_b8dd_4186_888cf030f595e577\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 282 1 0 \"0475a959_f43b_479a_bc02dea7d273316d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Waste Labware:  \",str_WasteLabID);\r\n// {{ 284 1 0 \"acec9cc9_5374_4110_9a2d6ef4804ab2b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 0)\r\n{\r\n// }} \"\"\r\n// {{ 285 1 0 \"7715f4ec_6030_43d3_b3f22f96ff11a6c1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nWASTE SEQUENCE DOES NOT POINT TO A TIP WASTE LABWARE!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 287 1 0 \"6008c3b5_515f_4a7f_b7953bfdd09784ef\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 288 1 0 \"acec9cc9_5374_4110_9a2d6ef4804ab2b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 289 1 0 \"543928b3_ab47_4da6_a428054a009d74e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 290 1 0 \"ac5a27ef_fb9d_4d1f_bd0a832d567850ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 291 1 0 \"35eec086_9ffe_4734_becc74e903f7882a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 292 1 0 \"282b2480_766a_449d_b473c13b1875df4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ReservoirLabID = SeqGetLabwareId(i_seq_FullReservoirSequence);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"dc27caf1_b5ed_42ab_9c26e9a05a324b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_ReservoirLabID);\r\n// }} \"\"\r\nTrace(\"     \",\"Reservoir Labware:  \",str_ReservoirLabID);\r\n// {{ 295 1 0 \"3b115983_105c_4c06_91c3cfb66de7fac7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length == 0)\r\n{\r\n// }} \"\"\r\n// {{ 296 1 0 \"1ea5545b_28ed_4df1_bd01e9243a08daeb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nLABWARE ID OF RESERVOIR SEQUENCE IS UNKNOWN!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 298 1 0 \"b1e51d01_5b60_4b00_b3f78f1021b21e33\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 299 1 0 \"3b115983_105c_4c06_91c3cfb66de7fac7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 300 1 0 \"a79ee8e1_23f4_41ac_880cc0593007d755\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 301 1 0 \"ea7bfc9a_eb58_4647_b59132f6c4a8f115\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_FullReservoirSequence);\r\n// }} \"\"\r\nTrace(\"     \",\"Reservoir Positions:  \",int_TotalPositions);\r\n// {{{ 303 1 0 \"cf25bdfa_d6a4_4581_aa3cfd3502886bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_Get_CenterWell(ML_STAR, i_seq_FullReservoirSequence, str_CenterWell);\r\n// }} \"\"\r\nTrace(\"     \",\"Reservoir Check Well:  \",str_CenterWell);\r\n// {{ 305 1 0 \"ac5a27ef_fb9d_4d1f_bd0a832d567850ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 306 1 0 \"86d81a33_f6fb_488b_a0bb0679fe8cd159\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 307 1 0 \"9ab019a8_9d7b_4896_85396d022264dc2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_LLD_Sensitivity = StrConcat2(i_int_LLD_Sensitivity, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 308 1 0 \"b4dea5d6_625d_4187_9f753a9dd02a01af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_LLD_Sensitivity = StrIVal(int_LLD_Sensitivity);\r\n// }} \"\"\r\n// {{ 309 1 0 \"c20fc989_9d0f_47d5_8fcd7a76c429e732\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LLD_Sensitivity < 1)\r\n{\r\n// }} \"\"\r\n// {{ 310 1 0 \"43a84b54_b45e_4b44_bbb554de2fba8b05\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLD_Sensitivity = 1;\r\n// }} \"\"\r\n// {{ 311 1 0 \"c20fc989_9d0f_47d5_8fcd7a76c429e732\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 312 1 0 \"fbb24d4a_be5c_4cfb_9e27619c51881c1d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LLD_Sensitivity > 5)\r\n{\r\n// }} \"\"\r\n// {{ 313 1 0 \"f708961c_eb39_40a9_84da1ee5a39d032b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLD_Sensitivity = 5;\r\n// }} \"\"\r\n// {{ 314 1 0 \"fbb24d4a_be5c_4cfb_9e27619c51881c1d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 315 1 0 \"86d81a33_f6fb_488b_a0bb0679fe8cd159\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 316 1 0 \"5d02e105_6031_4f5c_89e2bc1952ca5b33\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 317 1 0 \"5b84d30f_ad99_4702_908507806512c9a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_LLCheck, str_ReservoirLabID, str_CenterWell);\r\n// }} \"\"\r\n// {{ 318 1 0 \"c48af225_cbf6_434b_83dfb2b887004bc8\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_LLCheck.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 319 1 0 \"8e86d65f_c4b7_4329_bfbbaf5cda2cdf2d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::Optimized1mLTipPickup2(ML_STAR, i_seq_TipsToUse, str_TipCounter, str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 320 1 0 \"0f903fde_5bc1_49ea_9c4d99efd4ceeb83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipLabID == str_WasteLabID)\r\n{\r\n// }} \"\"\r\n// {{{ 321 1 0 \"f76ab270_2aac_4463_87055ddc736ede50\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(i_seq_TipWaste, i_seq_TipsToUse);\r\n// }} \"\"\r\n// {{ 322 1 0 \"0f903fde_5bc1_49ea_9c4d99efd4ceeb83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 323 1 0 \"0c5117d2_c2a6_43e0_b29862a1d80a85f5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 324 1 0 \"43280cd0_05b0_4b11_823802ed169da8e8\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"43280cd0_05b0_4b11_823802ed169da8e8\"); // TipPickUp\r\n}\r\n// }} \"\"\r\n// {{{ 325 1 0 \"25b95489_1488_4bce_bd71df0cd99e3955\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, i_seq_TipsToUse, str_TipCounter);\r\n// }} \"\"\r\n// {{ 326 1 0 \"44274e91_e2f6_492e_9c389516c2dc517e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 327 1 0 \"e195af30_6a2f_4a6e_a1f9573e5dff30de\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"e195af30_6a2f_4a6e_a1f9573e5dff30de\"); // Aspirate\r\n}\r\n// }} \"\"\r\n// {{ 328 1 0 \"8c36e0fe_5c30_4510_afb4add0600902b0\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"8c36e0fe_5c30_4510_afb4add0600902b0\"); // GetLastLiquidLevel\r\n\tstr_ReturnValue = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 329 1 0 \"93e75c71_c7d9_4c9a_8e5e596929372845\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 330 1 0 \"28bc0b9e_9be7_4b38_a89c6a07c52ec07c\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"28bc0b9e_9be7_4b38_a89c6a07c52ec07c\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 331 1 0 \"4272ec9c_b61f_4853_9c77bb221b231d14\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 332 1 0 \"9ed5c402_8378_42e5_b77778d474593547\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFindLiquidHeight(ML_STAR, str_ReturnValue, seq_LLCheck, 1, flt_LiquidLevel);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"ac671cde_ad21_47f5_bf734e8575b692ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_LLCheck);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"c31ddfed_7994_40a0_8318b7d86fc0e07f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_LLCheck);\r\n// }} \"\"\r\n// {{{ 335 1 0 \"1231c29e_fa27_469c_9068cddaa4eb1f75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(seq_LLCheck, 1);\r\n// }} \"\"\r\n// {{{ 336 1 0 \"aa3a717d_8f2b_4bc9_9868882da1480f3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetConnectedContainer(ML_STAR, str_LabID, bool_ConnectedContainer);\r\n// }} \"\"\r\n// {{ 337 1 0 \"08200ec2_fe09_4ce0_8904bb7e7471c09a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 338 1 0 \"24e50547_d0da_46fe_a259c563f9f34971\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_VolumeMeasuredmL = DevComputeContainerVolume(ML_STAR, str_LabID, str_PosID, flt_LiquidLevel, 0);\r\n// }} \"\"\r\n// {{ 339 1 0 \"680dd78e_90a1_427a_bc6044e5ef67cdef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_ConvertTouL == 1)\r\n{\r\n// }} \"\"\r\n// {{ 340 1 0 \"cdff0f37_56a2_4e65_848201332788f39d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 341 1 0 \"c8b5a523_adbc_4882_95f8966e878f266b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasureduL = flt_VolumeMeasuredmL * 1000;\r\n// }} \"\"\r\n// {{ 342 1 0 \"4d17bded_62ea_4e6d_b8f25ba3f8d61548\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_ConnectedContainer == 1)\r\n{\r\n// }} \"\"\r\n// {{ 343 1 0 \"f9bb5000_f5e3_4bdf_82f318662a3edafb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 344 1 0 \"d00b80d1_ea8f_4831_9fcf6fa223c43e09\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = flt_VolumeMeasureduL * int_TotalPositions;\r\n// }} \"\"\r\n// {{ 345 1 0 \"4d17bded_62ea_4e6d_b8f25ba3f8d61548\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 346 1 0 \"427f68c8_9dbb_457a_bffa501c63b322e5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = flt_VolumeMeasureduL;\r\n// }} \"\"\r\n// {{ 347 1 0 \"4d17bded_62ea_4e6d_b8f25ba3f8d61548\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 348 1 0 \"680dd78e_90a1_427a_bc6044e5ef67cdef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 349 1 0 \"79776b79_64ca_407d_881dba161c70d558\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_ConnectedContainer == 1)\r\n{\r\n// }} \"\"\r\n// {{ 350 1 0 \"b10096f0_b61e_42b5_9552f92c94b7d596\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 351 1 0 \"c19eb565_5bfb_4a77_90bff88ab1b073f7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = flt_VolumeMeasuredmL * int_TotalPositions;\r\n// }} \"\"\r\n// {{ 352 1 0 \"79776b79_64ca_407d_881dba161c70d558\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 353 1 0 \"c8d1081f_40e0_4a54_b93e9f57864651cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = flt_VolumeMeasuredmL;\r\n// }} \"\"\r\n// {{ 354 1 0 \"79776b79_64ca_407d_881dba161c70d558\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 355 1 0 \"680dd78e_90a1_427a_bc6044e5ef67cdef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 356 1 0 \"3b1d7d17_0204_4647_915304fa05785871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_VolumeMeasured = MthRound(flt_VolumeMeasured, 1);\r\n// }} \"\"\r\n// {{ 357 1 0 \"e058dbdb_122c_45fa_97c92cc1d2e31917\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_flt_VolumeMeasured < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 358 1 0 \"215b1ed1_e6f0_44f1_84c03b0648d60051\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_VolumeMeasured = 0.0;\r\n// }} \"\"\r\n// {{ 359 1 0 \"e058dbdb_122c_45fa_97c92cc1d2e31917\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 360 1 0 \"c0cb6451_3eb9_47e1_a98946d6620eb8c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_ConvertTouL == 1)\r\n{\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(\"     \",\"Volume Measured:  \",o_flt_VolumeMeasured,\" uL\");\r\nTrace(\"\");\r\n// {{ 362 1 0 \"c0cb6451_3eb9_47e1_a98946d6620eb8c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(\"     \",\"Volume Measured:  \",o_flt_VolumeMeasured,\" mL\");\r\nTrace(\"\");\r\n// {{ 364 1 0 \"c0cb6451_3eb9_47e1_a98946d6620eb8c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 365 1 0 \"ff9702a9_ece0_4136_af9565d0a2dbd875\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_FunctionSuccessful = 1;\r\n// }} \"\"\r\n// {{{ 366 1 0 \"ff0d1996_a693_449a_b62a0c61807581b4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{{ 5 \"MeasureLiquidLevel_Single\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Get_LiquidClass\" \"Begin\"\r\nprivate function _Get_LiquidClass( variable i_int_TipType, variable & o_str_LiquidClass ) void {\r\n// }} \"\"\r\n// {{ 5 \"_Get_LiquidClass\" \"InitLocals\"\r\no_str_LiquidClass = 0;\r\n// }} \"\"\r\n// {{ 401 1 0 \"f1e37e31_de8f_4fe3_b17f1ab1c2b92f0d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"\");\r\n// }} \"\"\r\n// {{ 402 1 0 \"9a8d1049_53eb_47e0_8415cf6e8ae869e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 403 1 0 \"544b4f28_5b0b_477b_829de504ada2ded1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"LLD_Check_S\");\r\n// }} \"\"\r\n// {{ 404 1 0 \"9a8d1049_53eb_47e0_8415cf6e8ae869e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 405 1 0 \"23917478_ea9e_4bb7_b39a892361066ab5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 406 1 0 \"6dfb6f24_4979_48c3_b22ffa7fa9a887a5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"LLD_Check_SF\");\r\n// }} \"\"\r\n// {{ 407 1 0 \"23917478_ea9e_4bb7_b39a892361066ab5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 408 1 0 \"51e69337_49e1_4504_96cc0d92286b2b98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 4)\r\n{\r\n// }} \"\"\r\n// {{ 409 1 0 \"0e35cac7_e86f_4829_8bb8318c30d711fc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"LLD_Check_H\");\r\n// }} \"\"\r\n// {{ 410 1 0 \"51e69337_49e1_4504_96cc0d92286b2b98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 411 1 0 \"673eb83a_33b9_4727_a72804b2b31b676b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 5)\r\n{\r\n// }} \"\"\r\n// {{ 412 1 0 \"cfb28c28_4d95_4fb0_979100e6074f17ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"LLD_Check_HF\");\r\n// }} \"\"\r\n// {{ 413 1 0 \"673eb83a_33b9_4727_a72804b2b31b676b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 414 1 0 \"d850136d_552a_4dd8_a4020fc524f2e9be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 22)\r\n{\r\n// }} \"\"\r\n// {{ 415 1 0 \"e5ae2af7_9f15_4d05_bea42f0eb63aceb1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"LLD_Check_50uL\");\r\n// }} \"\"\r\n// {{ 416 1 0 \"d850136d_552a_4dd8_a4020fc524f2e9be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 417 1 0 \"ea092c6a_b4f6_49b6_b842f3613a62ea46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 23)\r\n{\r\n// }} \"\"\r\n// {{ 418 1 0 \"d153b5e5_7ad9_468f_b09237866e579abe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"LLD_Check_50uLF\");\r\n// }} \"\"\r\n// {{ 419 1 0 \"ea092c6a_b4f6_49b6_b842f3613a62ea46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Get_LiquidClass\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MeasureLiquidLevel_Multi\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_FunctionName;\r\nprivate variable ret_FunctionSuccessful;\r\nprivate sequence seq_LLCheck;\r\nprivate variable str_ChannelPattern;\r\nprivate variable int_Total1mLChannels;\r\nprivate variable str_LiquidClass;\r\nprivate variable int_TotalReservoirs;\r\nprivate variable int_TipType;\r\nprivate variable str_TipCounter;\r\nprivate variable str_TipLabID;\r\nprivate variable str_TipName;\r\nprivate variable int_Length;\r\nprivate variable str_WasteLabID;\r\nprivate variable int_Value;\r\nprivate variable str_Value;\r\nprivate variable i;\r\nprivate variable str_CenterWell;\r\nprivate variable str_ReservoirLabID;\r\nprivate variable int_TotalPositions;\r\nprivate sequence seq_CurrentReservoir;\r\nprivate variable int_RemainingReservoirs;\r\nprivate variable flt_VolumeMeasureduL;\r\nprivate variable flt_VolumeMeasured;\r\nprivate variable int_GetLLDCount;\r\nprivate variable flt_VolumeMeasuredmL;\r\nprivate variable int_ChanNumber;\r\nprivate variable int_ReservoirIndex;\r\nprivate variable arr_PositionsPerReservoir[];\r\nprivate variable str_ReturnValue;\r\nprivate variable flt_LiquidLevel;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable bool_Simulation;\r\nprivate variable int_LLD_Sensitivity;\r\nprivate variable bool_ConnectedContainer;\r\n// {{ 5 \"MeasureLiquidLevel_Multi\" \"InitLocals\"\r\no_arr_VolumesMeasured.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 15 1 0 \"ad31ddb4_abdb_4626_a2478a1967c43c8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_Simulation = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 16 1 0 \"93f20679_1bdf_4e82_a88179351012c056\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_FunctionSuccessful = 0;\r\n// }} \"\"\r\n// {{ 17 1 0 \"66829a2d_dda6_4260_be2ea2c1c6b5d84e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FunctionName = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 18 1 0 \"6337b28e_3961_48f2_a3f31c644a5a01c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_LLCheck);\r\n// }} \"\"\r\n// {{ 19 1 0 \"8cc26343_aa33_4d0f_9207b9338a95e003\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 20 1 0 \"6e807c3f_d422_4778_b80771e2e3c2b6d6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 21 1 0 \"94a414b4_cb94_4096_857a6312ad03cdbe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Total1mLChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\nTrace(\"     \",\"Total Channels:  \",int_Total1mLChannels);\r\n// {{ 23 1 0 \"e330062f_3c35_478b_835a83d2d46aeb73\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Total1mLChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 24 1 0 \"2d32bfbd_8239_420b_92536fa0594b36d6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nNO 1mL CHANNELS ARE LOADED ON THE SYSTEM!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 26 1 0 \"0891dc53_69bc_4cf3_aca6b86acc97eb3b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 27 1 0 \"e330062f_3c35_478b_835a83d2d46aeb73\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 28 1 0 \"8cc26343_aa33_4d0f_9207b9338a95e003\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 29 1 0 \"186cccd7_c021_4102_9e4bbd0151fcaa68\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 30 1 0 \"593b2908_25f6_4cee_b385909de2d192b9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"09d2a797_5800_42aa_969dbd9f236da193\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalReservoirs=i_arrseq_FullReservoirSequences.GetSize();\r\n// }} \"\"\r\nTrace(\"     \",\"Total Reservoirs:  \",int_TotalReservoirs);\r\n// {{ 33 1 0 \"b6ab34d3_1762_4b29_b2fd285cc79f0209\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalReservoirs == 0)\r\n{\r\n// }} \"\"\r\n// {{ 34 1 0 \"497d237c_1db4_46f5_b79de1602743b542\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nNO SEQUENCES WERE FOUND IN ARRAY!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 36 1 0 \"c82083ca_a1e3_434f_8b778a1af9a0e6aa\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 37 1 0 \"b6ab34d3_1762_4b29_b2fd285cc79f0209\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 38 1 0 \"186cccd7_c021_4102_9e4bbd0151fcaa68\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 39 1 0 \"1cd72c52_0e6f_4e17_a1b7870c87de540f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 40 1 0 \"ad066f97_c64a_4712_b1ae085a2479b4d0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 41 1 0 \"84eb0284_2c00_4f8d_8873eb12c0a1251e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipsToUse);\r\n// }} \"\"\r\n// {{{ 42 1 0 \"b8044aba_d878_4afb_87cc297b14273dc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_TipLabID);\r\n// }} \"\"\r\n// {{ 43 1 0 \"43c2a6c8_4e07_4ba6_9da5d9f4e14fb4b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 44 1 0 \"f0b51f81_c941_4f4b_ab18d230c70c1f1b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTipName(ML_STAR, str_TipLabID, str_TipName, int_TipType);\r\n// }} \"\"\r\n// {{ 45 1 0 \"43c2a6c8_4e07_4ba6_9da5d9f4e14fb4b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 46 1 0 \"cbf567af_03cd_4a7e_ae9c59127a6eecc5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipType = Translate(\"UNKNOWN\");\r\n// }} \"\"\r\n// {{ 47 1 0 \"43c2a6c8_4e07_4ba6_9da5d9f4e14fb4b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 48 1 0 \"7b6186f8_ac0d_45ca_ac8e4f5d3dc82702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipCounter = StrConcat2(i_str_TipCounter, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 49 1 0 \"4ec1bee7_ed12_478f_923333158deb7911\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipCounter == \"0\")\r\n{\r\n// }} \"\"\r\n// {{ 50 1 0 \"6dc0c8ad_fbe1_42d7_b65642e12db5024e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TipCounter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 51 1 0 \"4ec1bee7_ed12_478f_923333158deb7911\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 52 1 0 \"0eb0e259_d1a2_4439_bdcda897888be843\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipCounter == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 53 1 0 \"1fb5ec12_2e81_4cb4_8a0a997b7265f626\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipCounter = StrConcat4(Translate(\"Tip_Counter\"), Translate(\"_\"), int_TipType, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 54 1 0 \"0eb0e259_d1a2_4439_bdcda897888be843\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Tip Counter:  \",str_TipCounter);\r\n// {{ 56 1 0 \"1cd72c52_0e6f_4e17_a1b7870c87de540f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 57 1 0 \"e50424cb_7376_444c_8c5a57e97501b1b0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 58 1 0 \"8f0a9c14_cd28_4e68_9dbc33db11f71785\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 59 1 0 \"c1e19a90_a5f8_41be_ba1e91e32b6958ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::TipCheck(ML_STAR, i_seq_TipsToUse, str_TipCounter, int_TotalReservoirs);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 60 1 0 \"366178b4_09c0_4d26_a738055794398771\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheck(ML_STAR, i_seq_TipsToUse, str_TipCounter, int_TotalReservoirs);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"b3bea720_d803_4dda_91ac907eff12314e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipsToUse);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"68fe7f03_a233_4981_84d7775e4a5de8cc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTipName(ML_STAR, str_TipLabID, str_TipName, int_TipType);\r\n// }} \"\"\r\nTrace(\"     \",\"Tip Labware:  \",str_TipLabID);\r\nTrace(\"     \",\"Tip Name:  \",str_TipName);\r\nTrace(\"     \",\"Tip Type:  \",int_TipType);\r\n\r\n// {{ 64 1 0 \"146dfdb4_658b_4389_9642629cdeaa5880\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipName == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 65 1 0 \"656fc12a_e887_4ba8_8c5c6261b143a733\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nTIP SEQUENCE DOES NOT POINT TO A TIP LABWARE!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 67 1 0 \"99b25def_f8fd_4a51_9127c831c38bb5a2\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 68 1 0 \"146dfdb4_658b_4389_9642629cdeaa5880\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 69 1 0 \"ee154012_a4be_4ec1_89bf6908af36a0ac\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 70 1 0 \"3934aec7_7490_4808_af9cdbbefe336f0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_Get_LiquidClass(int_TipType, str_LiquidClass);\r\n// }} \"\"\r\nTrace(\"     \",\"Liquid Class:  \",str_LiquidClass);\r\n// {{ 72 1 0 \"66c09d07_1001_420a_aa4b937af8660313\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LiquidClass == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 73 1 0 \"3a088e6f_3b6e_4d04_a9c34d4800e6b510\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nTIP TYPE IS NOT SUPPORTED IN THIS FUNCTION!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 75 1 0 \"f4f9723f_a022_4303_838cd3e1288fa835\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 76 1 0 \"66c09d07_1001_420a_aa4b937af8660313\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 77 1 0 \"e50424cb_7376_444c_8c5a57e97501b1b0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 78 1 0 \"be4c9113_b30d_4570_80ac5ade5da71ef2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 79 1 0 \"dc9b5f73_7409_4002_8c26622a9cfaa8a1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 80 1 0 \"49ab7502_730f_43c8_976dfe238fc5c88b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_WasteLabID = SeqGetLabwareId(i_seq_TipWaste);\r\n// }} \"\"\r\n// {{{ 81 1 0 \"c65fa5a1_a99b_4111_a2ba2c4087120add\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_WasteLabID);\r\n// }} \"\"\r\n// {{ 82 1 0 \"9ad63703_ea2f_40a5_ab9e4fdf4dc8b228\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length == 0)\r\n{\r\n// }} \"\"\r\n// {{ 83 1 0 \"650fbb1c_966a_4d77_a3f3edc690ca6fab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Value = 0;\r\n// }} \"\"\r\n// {{ 84 1 0 \"9ad63703_ea2f_40a5_ab9e4fdf4dc8b228\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 85 1 0 \"9a3ee54b_97b9_4459_af1e17f96503a4d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = DevGetLabwareData(ML_STAR, str_WasteLabID, Translate(\"MlStarIsWasteRack\"));\r\n// }} \"\"\r\n// {{{ 86 1 0 \"8d888962_d27f_4865_889c6e62a461acbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_Value);\r\n// }} \"\"\r\n// {{ 87 1 0 \"9573d7ee_0b7d_49fd_a3c9ba40d3cb7d5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length == 0)\r\n{\r\n// }} \"\"\r\n// {{ 88 1 0 \"ebebdae6_4c80_4946_8447bf6b531dd755\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Value = 0;\r\n// }} \"\"\r\n// {{ 89 1 0 \"9573d7ee_0b7d_49fd_a3c9ba40d3cb7d5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d7e5af39_ea87_41b1_bef601435f2229ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 91 1 0 \"9573d7ee_0b7d_49fd_a3c9ba40d3cb7d5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 92 1 0 \"9ad63703_ea2f_40a5_ab9e4fdf4dc8b228\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Waste Labware:  \",str_WasteLabID);\r\n// {{ 94 1 0 \"3a3f7865_7723_4f66_b5fd35fe78f3d7e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 0)\r\n{\r\n// }} \"\"\r\n// {{ 95 1 0 \"c89de483_0f96_4982_9e941d4cca05c180\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nWASTE SEQUENCE DOES NOT POINT TO A TIP WASTE LABWARE!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 97 1 0 \"e7000f18_466a_4451_90afd8023d6e73a4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 98 1 0 \"3a3f7865_7723_4f66_b5fd35fe78f3d7e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 99 1 0 \"be4c9113_b30d_4570_80ac5ade5da71ef2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 100 1 0 \"5e937f9f_f096_403e_bdb29a3b29f7a5ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"782b29b5_adc0_4cba_8f098e6d6722382b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_LLD_Sensitivity = StrConcat2(i_int_LLD_Sensitivity, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 102 1 0 \"e1d23163_9431_40a6_8842828a73ac5729\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_LLD_Sensitivity = StrIVal(int_LLD_Sensitivity);\r\n// }} \"\"\r\n// {{ 103 1 0 \"1b712770_a4f2_409d_a847f52075d7fcae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LLD_Sensitivity < 1)\r\n{\r\n// }} \"\"\r\n// {{ 104 1 0 \"bc8290d8_79ae_4266_bcb5262b5991a71c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLD_Sensitivity = 1;\r\n// }} \"\"\r\n// {{ 105 1 0 \"1b712770_a4f2_409d_a847f52075d7fcae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 106 1 0 \"f7d54de1_0e43_4b2a_84cade9ab5962483\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LLD_Sensitivity > 5)\r\n{\r\n// }} \"\"\r\n// {{ 107 1 0 \"016cebe7_a300_4a0e_b2095d13d427d33d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLD_Sensitivity = 5;\r\n// }} \"\"\r\n// {{ 108 1 0 \"f7d54de1_0e43_4b2a_84cade9ab5962483\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 109 1 0 \"5e937f9f_f096_403e_bdb29a3b29f7a5ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 110 1 0 \"a1c3d220_39a0_435f_8d69bd00dd90897d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 111 1 0 \"2a3cf5b9_0aaa_42eb_a1fbea890dabbdd3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PositionsPerReservoir.SetSize(0);\r\n// }} \"\"\r\n// {{ 112 1 0 \"d404f7f2_eb38_4f87_a53b9ea9ff9a0f2e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalReservoirs;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 113 1 0 \"bf4f3619_01f6_4151_b08d855fbb3c378f\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nseq_CurrentReservoir=i_arrseq_FullReservoirSequences.GetAt(i-1);\r\n// }} \"\"\r\n// {{ 114 1 0 \"526e8a6f_6323_418a_a1f02ee95d57111b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 115 1 0 \"4e3779ff_1542_4638_b560301378371331\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 116 1 0 \"a3ba29ab_4e92_4333_bb63478f9fd53e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ReservoirLabID = SeqGetLabwareId(seq_CurrentReservoir);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"c49eacd0_f87d_490f_abf1157dddc04fd0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_ReservoirLabID);\r\n// }} \"\"\r\nTrace(\"     \",\"Reservoir Labware:  \",str_ReservoirLabID);\r\n// {{ 119 1 0 \"c88b094f_91c3_4141_b619a96352d34998\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length == 0)\r\n{\r\n// }} \"\"\r\n// {{ 120 1 0 \"ddfa7ef5_a486_402c_b6d4942fb7790366\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nLABWARE ID OF RESERVOIR SEQUENCE IS UNKNOWN!\\n\\n=========================================\"));\r\n// }} \"\"\r\nTrace(\"----------------------------------- \",str_FunctionName,\" - FINISH\");\r\n// {{{ 122 1 0 \"09a02483_538d_4a71_b2de3143159aed83\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{ 123 1 0 \"c88b094f_91c3_4141_b619a96352d34998\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 124 1 0 \"1bb91cd8_8104_4a63_ab062a31a190e6b9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 125 1 0 \"66cdd0e4_fc25_4101_935ebba9a49932ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(seq_CurrentReservoir);\r\n// }} \"\"\r\n// {{ 126 1 0 \"41e69416_fb76_4589_8a99e32a8ec42dcd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_PositionsPerReservoir.AddAsLast(int_TotalPositions);\r\n// }} \"\"\r\nTrace(\"     \",\"Reservoir Positions:  \",int_TotalPositions);\r\n// {{{ 128 1 0 \"80662e58_880b_4fbc_b4382228081edaf1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_Get_CenterWell(ML_STAR, seq_CurrentReservoir, str_CenterWell);\r\n// }} \"\"\r\nTrace(\"     \",\"Reservoir Check Well:  \",str_CenterWell);\r\n// {{ 130 1 0 \"526e8a6f_6323_418a_a1f02ee95d57111b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 131 1 0 \"c5be8a66_a57f_41e8_b449e7c07b0ebad2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 132 1 0 \"40f55667_5550_460d_9fd9e937e4160b1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_LLCheck, str_ReservoirLabID, str_CenterWell);\r\n// }} \"\"\r\n// {{ 133 1 0 \"d404f7f2_eb38_4f87_a53b9ea9ff9a0f2e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 134 1 0 \"6141eb6d_ab6e_4828_8d97d293564f8b1f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_LLCheck.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 135 1 0 \"185d601f_3b96_427e_b6fce215af16909f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RemainingReservoirs = int_TotalReservoirs;\r\n// }} \"\"\r\n// {{ 136 1 0 \"e038929d_f364_46d0_a30f4d596bd205ab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ReservoirIndex = 1;\r\n// }} \"\"\r\n// {{{ 137 1 0 \"53bd30fc_52e3_4982_bdf01e54c4b72037\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Positions per reservoir\"), arr_PositionsPerReservoir);\r\n// }} \"\"\r\n// {{ 138 1 0 \"13b0bdc6_d4bf_48d3_bb42e98d14762102\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nseq_LLCheck.SetCurrentPosition(1);\r\nwhile (\r\n   (seq_LLCheck.GetCurrentPosition() > 0)\r\n)\r\n{\r\nAlignSequences(hslTrue, seq_LLCheck, 1);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"9d6fe7fa_7f39_4f1a_8fc55aa102c00157\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, i_seq_TipsToUse, seq_LLCheck, str_TipCounter, str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 140 1 0 \"80272638_2144_40d0_95a300483c3eac21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipLabID == str_WasteLabID)\r\n{\r\n// }} \"\"\r\n// {{{ 141 1 0 \"b8e5728c_a3d1_4245_97113d11638abe14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(i_seq_TipWaste, i_seq_TipsToUse);\r\n// }} \"\"\r\n// {{ 142 1 0 \"80272638_2144_40d0_95a300483c3eac21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 143 1 0 \"6305dd84_5504_4071_8e91b88d0a1c0809\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_GetLLDCount = int_RemainingReservoirs;\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7f12bb_8c49_4669_ba678e20c6d2c868\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RemainingReservoirs > int_Total1mLChannels)\r\n{\r\n// }} \"\"\r\n// {{ 145 1 0 \"a0902f48_6a1f_4b22_81922ee8a975900c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_GetLLDCount = int_Total1mLChannels;\r\n// }} \"\"\r\n// {{ 146 1 0 \"8f7f12bb_8c49_4669_ba678e20c6d2c868\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 147 1 0 \"72a8a026_bd87_427c_907eea2e18370bb2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RemainingReservoirs = int_RemainingReservoirs - int_GetLLDCount;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 148 1 0 \"f93e05f4_2c75_4c34_8db398234b32c73a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 149 1 0 \"e08b20c1_b1c4_4828_92fdf7f4f604661b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChannelPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 150 1 0 \"f40c5626_0a82_4fab_909f62f54bb1405a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern = StrFillLeft(str_ChannelPattern, Translate(\"1\"), int_GetLLDCount);\r\n// }} \"\"\r\n// {{{ 151 1 0 \"8695bf45_cd39_4a52_9b9d5a3a1c6df6f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern = StrFillRight(str_ChannelPattern, Translate(\"0\"), int_Total1mLChannels);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 152 1 0 \"5e4a2037_6c5b_4eaa_a826bc05ee980201\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 153 1 0 \"7eef809f_09f8_45b4_b666b9871422095b\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"7eef809f_09f8_45b4_b666b9871422095b\"); // TipPickUp\r\n}\r\n// }} \"\"\r\n// {{{ 154 1 0 \"eeef15a2_eac2_4c4e_82e4e64775349d3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, i_seq_TipsToUse, str_TipCounter);\r\n// }} \"\"\r\n// {{ 155 1 0 \"91e21fef_e880_4899_b2c369e14bd04a56\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 156 1 0 \"8bbb2ba3_d956_4eb7_80918f57fd791a3a\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"8bbb2ba3_d956_4eb7_80918f57fd791a3a\"); // Aspirate\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"77205af1_2f8d_44ce_b329b3be4e22a436\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"77205af1_2f8d_44ce_b329b3be4e22a436\"); // GetLastLiquidLevel\r\n\tstr_ReturnValue = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"2d806c88_ea5e_4490_99223043114d6291\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 159 1 0 \"3f8f88ed_9aa2_47a9_a2d3cfccd30c6fe8\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"3f8f88ed_9aa2_47a9_a2d3cfccd30c6fe8\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 160 1 0 \"d650c0d0_1466_4e97_a81f8fe282792f57\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 161 1 0 \"4452c092_ffe0_49cf_b7bcb9622ee886d8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChanNumber = 0; int_ChanNumber < int_GetLLDCount;)\r\n{\r\nint_ChanNumber = int_ChanNumber + 1;\r\n// }} \"\"\r\n// {{{ 162 1 0 \"31ae3420_52f0_4da5_87076ff33acc4d5b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFindLiquidHeight(ML_STAR, str_ReturnValue, seq_LLCheck, int_ChanNumber, flt_LiquidLevel);\r\n// }} \"\"\r\n// {{{ 163 1 0 \"188366bb_aacd_45a4_ba4bc0179920573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_LLCheck);\r\n// }} \"\"\r\n// {{{ 164 1 0 \"7a77ea7e_a755_40fb_9cf2733941fb87d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_LLCheck);\r\n// }} \"\"\r\n// {{{ 165 1 0 \"615bbe48_ffe0_40a0_8820b9805f0251f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(seq_LLCheck, 1);\r\n// }} \"\"\r\n// {{{ 166 1 0 \"71739464_aadc_4e61_adc664c673f3a7bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetConnectedContainer(ML_STAR, str_LabID, bool_ConnectedContainer);\r\n// }} \"\"\r\n// {{ 167 1 0 \"be37a44a_2252_4c83_8adc14ca8616d6de\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 168 1 0 \"68430cc7_eb30_4b64_984e090296043724\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_VolumeMeasuredmL = DevComputeContainerVolume(ML_STAR, str_LabID, str_PosID, flt_LiquidLevel, 0);\r\n// }} \"\"\r\n// {{ 169 1 0 \"d99e3291_fe0f_4a32_ac634c89d0a0d5d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_ConvertTouL == 1)\r\n{\r\n// }} \"\"\r\n// {{ 170 1 0 \"410b4be3_32e4_4e61_b91107597e0d72b8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 171 1 0 \"77ba5310_7219_4be9_94f46fd722277eb0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasureduL = flt_VolumeMeasuredmL * 1000;\r\n// }} \"\"\r\n// {{ 172 1 0 \"ee0ce757_2931_4be3_b76ede0132755dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_ConnectedContainer == 1)\r\n{\r\n// }} \"\"\r\n// {{ 173 1 0 \"71dd8251_2c9f_4ae0_956940ed77c30fb9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 174 1 0 \"f2766e0b_c954_4299_a845b1aaf2b5ead2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = flt_VolumeMeasureduL * arr_PositionsPerReservoir.ElementAt( int_ReservoirIndex -1);\r\n// }} \"\"\r\n// {{ 175 1 0 \"ee0ce757_2931_4be3_b76ede0132755dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 176 1 0 \"2a44fb98_7411_40e6_83abab51802219c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = flt_VolumeMeasureduL;\r\n// }} \"\"\r\n// {{ 177 1 0 \"ee0ce757_2931_4be3_b76ede0132755dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 178 1 0 \"d99e3291_fe0f_4a32_ac634c89d0a0d5d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 179 1 0 \"340a9267_c2ab_4d7f_98099f081ac4d816\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_ConnectedContainer == 1)\r\n{\r\n// }} \"\"\r\n// {{ 180 1 0 \"f22b1498_85ea_45b8_bfbb5d86fb7d3a20\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 181 1 0 \"77fde561_f967_4884_bcf60f73a67d279e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = flt_VolumeMeasuredmL * arr_PositionsPerReservoir.ElementAt( int_ReservoirIndex -1);\r\n// }} \"\"\r\n// {{ 182 1 0 \"340a9267_c2ab_4d7f_98099f081ac4d816\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 183 1 0 \"e1cea54a_5a9a_4e5f_ae3739e6e19f5e13\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = flt_VolumeMeasuredmL;\r\n// }} \"\"\r\n// {{ 184 1 0 \"340a9267_c2ab_4d7f_98099f081ac4d816\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 185 1 0 \"d99e3291_fe0f_4a32_ac634c89d0a0d5d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 186 1 0 \"5957cf64_52a5_467d_abbc6b3c89f4f43e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_VolumeMeasured = MthRound(flt_VolumeMeasured, 1);\r\n// }} \"\"\r\n// {{ 187 1 0 \"7fed99ab_6dff_4947_b482bbf0f21664b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeMeasured < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 188 1 0 \"2b219b64_efa3_4e5a_becab91a7c2f3034\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeMeasured = 0.0;\r\n// }} \"\"\r\n// {{ 189 1 0 \"7fed99ab_6dff_4947_b482bbf0f21664b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 190 1 0 \"8faec59d_953e_465b_895d8df3002ff08f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_VolumesMeasured.AddAsLast(flt_VolumeMeasured);\r\n// }} \"\"\r\n// {{ 191 1 0 \"ab276033_ba93_45c0_84b9966a86d0d1ef\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ReservoirIndex = int_ReservoirIndex + 1;\r\n// }} \"\"\r\n// {{ 192 1 0 \"7442922c_eaf8_4f3c_90ba7acb8b2598ba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_ConvertTouL == 1)\r\n{\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(\"     \",\"Volume Measured:  \",flt_VolumeMeasured,\" uL\");\r\nTrace(\"\");\r\n// {{ 194 1 0 \"7442922c_eaf8_4f3c_90ba7acb8b2598ba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(\"     \",\"Volume Measured:  \",flt_VolumeMeasured,\" mL\");\r\nTrace(\"\");\r\n// {{ 196 1 0 \"7442922c_eaf8_4f3c_90ba7acb8b2598ba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 197 1 0 \"4452c092_ffe0_49cf_b7bcb9622ee886d8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 198 1 0 \"13b0bdc6_d4bf_48d3_bb42e98d14762102\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (\r\n   (seq_LLCheck.GetCurrentPosition() > 0 && seq_LLCheck.GetMax() == 0 )\r\n)\r\n{ MECC::EndlessSequenceLoopWarning(GetFileName()); }\r\n\r\n}\r\nseq_LLCheck.SetMax(seq_LLCheck.GetTotal());\r\n}\r\n// }} \"\"\r\n// {{{ 199 1 0 \"1ffcb9fb_babf_484e_a7f5794b40d60197\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Liquid Level Measured per Reservoir\"), o_arr_VolumesMeasured);\r\n// }} \"\"\r\n// {{ 200 1 0 \"582df751_25f9_4468_a8d007c2efd50436\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_FunctionSuccessful = 1;\r\n// }} \"\"\r\n// {{{ 201 1 0 \"6c6188bc_c735_48c4_b3a8773b837fa036\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_FunctionSuccessful);\r\n// }} \"\"\r\n// {{{ 5 \"MeasureLiquidLevel_Multi\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Get_CenterWell\" \"Begin\"\r\nprivate function _Get_CenterWell( device & ML_STAR, sequence i_seq_Reservoir, variable & o_str_WellID ) void {\r\n// }} \"\"\r\nprivate variable flt_Sum_X;\r\nprivate variable flt_Sum_Y;\r\nprivate variable NotUsed;\r\nprivate variable flt_YCoord;\r\nprivate variable flt_XCoord;\r\nprivate variable str_TempSortingFile;\r\nprivate variable str_Well;\r\nprivate variable str_LogFolderPath;\r\nprivate variable int_PositionCount;\r\nprivate variable str_SQL_Sort;\r\nprivate variable flt_AvgX;\r\nprivate variable flt_AvgY;\r\nprivate variable int_Index;\r\nprivate variable int_TotalPositions;\r\nprivate file SortFile;\r\nprivate variable str_LabID;\r\nprivate variable bool_FileExists;\r\n// {{ 5 \"_Get_CenterWell\" \"InitLocals\"\r\no_str_WellID = 0;\r\n// }} \"\"\r\n// {{ 368 1 0 \"86985e17_0dec_490c_95da1a7d98feb63e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_WellID = 0;\r\n// }} \"\"\r\n// {{{ 369 1 0 \"f94aa8f3_c244_4151_93945ac08fcdb832\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LogFolderPath = FilGetLogFilesPath();\r\n// }} \"\"\r\n// {{{ 370 1 0 \"81abacd7_ab8c_42b5_a16df8582e8fc3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TempSortingFile = StrConcat4(str_LogFolderPath, Translate(\"\\\\\"), Translate(\"TEMP_SORTING\"), Translate(\".xls\"));\r\n// }} \"\"\r\n// {{{ 371 1 0 \"3ff83d7c_39ea_4a80_b13470c0d5c32f33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFile);\r\n// }} \"\"\r\n// {{ 372 1 0 \"dfc71569_3e4f_4d9d_9cf0442b312538f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 373 1 0 \"e04cc4bd_0cf5_449b_b6d3e3bfa753da66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFile);\r\n// }} \"\"\r\n// {{ 374 1 0 \"dfc71569_3e4f_4d9d_9cf0442b312538f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 375 1 0 \"a7334e46_b12e_4b02_990b8c47a025d539\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\nSortFile.AddField(\"WELL\", str_Well, hslString, 255);\r\nSortFile.AddField(\"X\", flt_XCoord, hslFloat);\r\nSortFile.AddField(\"Y\", flt_YCoord, hslFloat);\r\nif( 0 == SortFile.Open(str_TempSortingFile + \" \" + \"SORT\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortingFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 376 1 0 \"208eb405_25c9_44dc_89830e2bdbe98942\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 377 1 0 \"7023128f_101f_473e_bb91b047cf6c48c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_Reservoir);\r\n// }} \"\"\r\n// {{ 378 1 0 \"ec63db7d_e193_48ee_b8f0524ba1f75bac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Sum_X = 0.0;\r\n// }} \"\"\r\n// {{ 379 1 0 \"5827d13f_b45f_4cd9_8124f9fa4f37a9e2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Sum_Y = 0.0;\r\n// }} \"\"\r\n// {{ 380 1 0 \"97dc397c_3b51_47ab_8fbdee340e19b6ef\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionCount = 0;\r\n// }} \"\"\r\n// {{ 381 1 0 \"41fadccf_bc17_471c_8319f6e42c346e39\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_TotalPositions;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 382 1 0 \"705be494_e1fc_4330_88c16efe8f490f5b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_Reservoir.SetCurrentPosition(int_Index);\r\n// }} \"\"\r\n// {{{ 383 1 0 \"3970550d_68fb_49aa_be97305a57f1369d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Reservoir);\r\n// }} \"\"\r\n// {{{ 384 1 0 \"395ffc04_b7f1_4a7d_bf9481aba53e3dac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Well = SeqGetPositionId(i_seq_Reservoir);\r\n// }} \"\"\r\n// {{{ 385 1 0 \"0364b824_9fa5_4d0b_9ea7c5f4fb32264e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_Well, flt_XCoord, flt_YCoord, NotUsed, NotUsed);\r\n// }} \"\"\r\n// {{ 386 1 0 \"1cbb36fc_07c5_4c4c_a63ebc32b3080339\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionCount = int_PositionCount + 1;\r\n// }} \"\"\r\n// {{ 387 1 0 \"389ac483_7409_421a_97328118b0213287\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Sum_X = flt_Sum_X + flt_XCoord;\r\n// }} \"\"\r\n// {{ 388 1 0 \"c0b6ba31_e2ad_40ba_b1d24bcad4f7e665\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Sum_Y = flt_Sum_Y + flt_YCoord;\r\n// }} \"\"\r\n// {{ 389 1 0 \"848054a0_25f2_4056_92e1264f68c409d4\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 390 1 0 \"41fadccf_bc17_471c_8319f6e42c346e39\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 391 1 0 \"a7a8df5b_57da_45ff_ae5e509c0ce41998\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 392 1 0 \"c30eb598_33c1_4156_a89e8c9898532824\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AvgX = flt_Sum_X / (int_PositionCount * 1.0);\r\n// }} \"\"\r\n// {{ 393 1 0 \"64744148_d0b9_4b18_8b884a17ae705203\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AvgY = flt_Sum_Y / (int_PositionCount * 1.0);\r\n// }} \"\"\r\n// {{{ 394 1 0 \"12a52f83_da61_4f43_bad8d7c36b72cb03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_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(\"\"));\r\n// }} \"\"\r\n// {{ 395 1 0 \"ca25db2c_d78f_48d2_9d6342ce0f45ee1a\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\nSortFile.AddField(\"WELL\", str_Well, hslString, 255);\r\nSortFile.AddField(\"X\", flt_XCoord, hslFloat);\r\nSortFile.AddField(\"Y\", flt_YCoord, hslFloat);\r\nif( 0 == SortFile.Open(str_TempSortingFile + \" \" + \"SORT\", hslRead, str_SQL_Sort) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortingFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 396 1 0 \"228114da_8cd5_4fdf_baf3b5d8476c5ede\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 397 1 0 \"6b4d5476_104f_4119_b1366266d64080db\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 398 1 0 \"1f45bbf3_320e_4387_b747ec1fc41c926d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_WellID = str_Well;\r\n// }} \"\"\r\n// {{{ 399 1 0 \"de917bc9_11c8_4c76_bbdc50b170bf19b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFile);\r\n// }} \"\"\r\n// {{{ 5 \"_Get_CenterWell\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"FindLiquidHeight\" \"Begin\"\r\nfunction FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void {\r\n// }} \"\"\r\nprivate variable flt_LiquidLevelDeck;\r\nprivate variable flt_ZBottom;\r\nprivate variable NotUsed;\r\nprivate variable str_LabID;\r\nprivate variable bool_Simulation;\r\n// {{ 5 \"FindLiquidHeight\" \"InitLocals\"\r\no_flt_LiquidHeight = 0;\r\n// }} \"\"\r\n// {{{ 1 1 0 \"bc77b9e7_438f_4bb5_b880e2d97eeaf08d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_Simulation = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"a0884662_2ca3_423d_9c5610edba00109e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Labware);\r\n// }} \"\"\r\n// {{{ 3 1 0 \"7d388b8a_baad_4f8f_a6286dc99437360b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_LiquidLevelDeck = StepReturn::GetLastLiquidLevel(i_int_Channel, i_str_LiquidLevelReturn);\r\n// }} \"\"\r\n// {{{ 4 1 0 \"c2a2b828_e796_4692_80f764d97fde8c92\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, str_LabID, NotUsed, NotUsed, flt_ZBottom, NotUsed);\r\n// }} \"\"\r\n// {{ 5 1 0 \"6bab14f1_c892_493b_9cbc3fe85bde529b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_Simulation == 1)\r\n{\r\n// }} \"\"\r\n// {{ 6 1 0 \"62f925db_67f6_4087_94a47d33c50c6c1f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 7 1 0 \"11227dc6_caf9_4699_98225d5f6673ff5f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidLevelDeck = flt_ZBottom + 5.0;\r\n// }} \"\"\r\n// {{ 8 1 0 \"6bab14f1_c892_493b_9cbc3fe85bde529b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 9 1 0 \"8d65de38_d3d0_40c1_b9853775ce9fa2f3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LiquidHeight = flt_LiquidLevelDeck - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 10 1 0 \"7501c0ac_82ed_412d_a7b0816bf4eaf769\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_flt_LiquidHeight < 0)\r\n{\r\n// }} \"\"\r\n// {{ 11 1 0 \"87991044_405f_42e0_aac0874028fbd952\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LiquidHeight = 0;\r\n// }} \"\"\r\n// {{ 12 1 0 \"7501c0ac_82ed_412d_a7b0816bf4eaf769\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"******** Liquid Level Height for \",str_LabID,\" is \",o_flt_LiquidHeight);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"FindLiquidHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2019-09-23 10:46$$checksum=17badcf7$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Plate Stack Verify.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 12/17/2020 3:41:53 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace PLATE_STACK_VERIFY {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction Get_Arr_StackSequences( device & ML_STAR, sequence i_seq_AllStacks, sequence & o_arr_StackSequences[] ) void { }\r\nfunction Plate_Stack_Verfy_V2( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void { }\r\nfunction Plate_Stack_Verify( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void { }\r\nfunction _ConvertChannelToAlpha( variable & i_int_ChanNum, variable & o_str_ChanNum ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Windows10$$valid=0$$time=2020-12-17 15:41$$checksum=9020ed07$$length=086$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Plate Stack Verify.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLFilLib.hsl\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSLLabwrAccess\\\\HSLLabwrAccess.hsl\"\r\n#include \"HSLExtensions\\\\Array.hsl\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\FW_HelperLibrary.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\STAR Channel Movement Tools.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\VANTAGE Channel Movement Tools.hs_\"\r\n#include \"HSL_MethodHelper.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace PLATE_STACK_VERIFY {\r\n// }} \"\"\r\nvariable str_SortFile;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction Get_Arr_StackSequences( device & ML_STAR, sequence i_seq_AllStacks, sequence & o_arr_StackSequences[] ) void ;\r\nfunction Plate_Stack_Verfy_V2( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void ;\r\nfunction Plate_Stack_Verify( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void ;\r\nfunction _ConvertChannelToAlpha( variable & i_int_ChanNum, variable & o_str_ChanNum ) void ;\r\nprivate function _Find_Stack_Heights( device & ML_STAR, variable & i_arr_StackLabIDs[] ) void ;\r\nprivate 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 ;\r\nprivate function _RemoveSpots( device & ML_STAR, variable & i_arr_LabwareIDs[] ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nHELPERLIBRARY::_InitLibrary();\r\nFW_HELPERLIBRARY::_InitLibrary();\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::_InitLibrary();\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nHELPERLIBRARY::_ExitLibrary();\r\nFW_HELPERLIBRARY::_ExitLibrary();\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary();\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Plate_Stack_Verify\" \"Begin\"\r\nfunction Plate_Stack_Verify( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void {\r\n// }} \"\"\r\nprivate variable int_TotalStackNumber;\r\nprivate variable int_NumChannels;\r\nprivate variable str_LogFolderPath;\r\nprivate variable int_PlateCount;\r\nprivate variable flt_ZMin;\r\nprivate variable flt_ZMax;\r\nprivate variable int_MaxStack;\r\nprivate variable flt_XCenter;\r\nprivate variable str_Status;\r\nprivate variable flt_YCenter;\r\nprivate variable flt_ZStepSize;\r\nprivate variable int_Order;\r\nprivate variable str_PlateLabTop;\r\nprivate file file1;\r\nprivate variable NotUsed;\r\nprivate variable str_PlateLabBottom;\r\nprivate sequence seq_CurrentPlateStack;\r\nprivate variable arr_LabIDs[];\r\nprivate variable flt_ZDifference;\r\nprivate variable flt_ChanRaster;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable str_CenterSpot;\r\nprivate variable str_LabID;\r\nprivate variable str_CenterSpotName;\r\nprivate variable int_NumNotDone;\r\nprivate variable flt_CurrentX;\r\nprivate variable str_SQL_Count;\r\nprivate variable int_ChannelCount;\r\nprivate variable int_ChannelStart;\r\nprivate file FileQuery;\r\nprivate variable flt_YMin;\r\nprivate variable flt_YMax;\r\nprivate variable int_ChannelYGood;\r\nprivate variable bol_ChannelYMinGood;\r\nprivate variable bol_ChannelYMaxGood;\r\nprivate variable arr_ChannelsUsed[];\r\nprivate variable int_ChIndex;\r\nprivate variable arr_ChannelY[];\r\nprivate variable int_ChanIndex;\r\nprivate variable int_ChannelsUsed;\r\nprivate variable flt_PreviousY;\r\nprivate variable int_ChannelsSet;\r\nprivate variable flt_ChannelY;\r\nprivate variable bol_ChannelStatus;\r\nprivate sequence seq_PositionChannels;\r\nprivate variable str_SQL_Filter;\r\nprivate variable arr_CenterSpots[];\r\nprivate variable arr_StackLabIDs[];\r\nprivate variable int_XCount;\r\nprivate dialog dialogHandle1;\r\nprivate variable int_InBetweenPlates;\r\nprivate variable bool_FileExists;\r\nprivate variable flt_ZBottom;\r\n// {{ 5 \"Plate_Stack_Verify\" \"InitLocals\"\r\no_arr_PlateCounts.SetSize( 0);\r\n// }} \"\"\r\n// {{ 183 1 0 \"8ff6ec29_e680_4497_987307f4998cee03\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_PlateCounts.SetSize(0);\r\n// }} \"\"\r\n// {{ 184 1 0 \"63a911cb_3a41_4f8d_95c1fa8fd5b76b3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CenterSpotName = Translate(\"CS_\");\r\n// }} \"\"\r\n// {{ 185 1 0 \"7350b4b9_7a7a_4886_936a636cf6a3de87\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalStackNumber=i_arr_seq_PlateStacks.GetSize();\r\n// }} \"\"\r\n// {{{ 186 1 0 \"cc5161ef_1628_4042_b1988ff193013a9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 187 1 0 \"a447e168_7cca_4f2f_a7a1e73a31008ccf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_NumChannels = HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_ChanRaster);\r\n// }} \"\"\r\n// {{ 188 1 0 \"4202290a_1c52_42b5_a5fc940fa72656f8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelStart = 1;\r\n// }} \"\"\r\n// {{ 189 1 0 \"deab1659_c839_454f_8fe4ace95f722f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 190 1 0 \"6aad09a5_0aed_492b_b7aae0affdaaa3f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetCenterSpotLabware(str_CenterSpot);\r\n// }} \"\"\r\n// {{ 191 1 0 \"deab1659_c839_454f_8fe4ace95f722f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 192 1 0 \"141cca64_bd75_4923_a1195e92e7c3bed5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 193 1 0 \"95da6301_ffda_470e_a805eea13599581d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LogFolderPath = FilGetLogFilesPath();\r\n// }} \"\"\r\n// {{{ 194 1 0 \"a19e4a90_6f0f_4daf_b8d3ceb326cbfce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SortFile = StrConcat4(str_LogFolderPath, Translate(\"\\\\\"), Translate(\"Plate_Stack_Verify_Sort\"), Translate(\".xls\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 195 1 0 \"5a402d07_086f_45b5_8826f8d90e1651a6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_SortFile);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"5a510cd1_c005_4208_a2300890796d7ed9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_SortFile);\r\n// }} \"\"\r\n// {{ 197 1 0 \"49f21997_2732_4087_9a0b43fd8e5035e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 198 1 0 \"cb50ecbe_10d2_4074_a117ca4f12e06345\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_SortFile);\r\n// }} \"\"\r\n// {{ 199 1 0 \"49f21997_2732_4087_9a0b43fd8e5035e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 200 1 0 \"141cca64_bd75_4923_a1195e92e7c3bed5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 201 1 0 \"d388232e_e41e_423d_a24d27b105a8a8fc\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(\"ORDER\", int_Order, hslInteger);\r\nfile1.AddField(\"PLATE_LAB_TOP\", str_PlateLabTop, hslString, 255);\r\nfile1.AddField(\"PLATE_LAB_BOTTOM\", str_PlateLabBottom, hslString, 255);\r\nfile1.AddField(\"MAX_STACK\", int_MaxStack, hslInteger);\r\nfile1.AddField(\"Z_MIN\", flt_ZMin, hslFloat);\r\nfile1.AddField(\"Z_MAX\", flt_ZMax, hslFloat);\r\nfile1.AddField(\"Z_BOTTOM\", flt_ZBottom, hslFloat);\r\nfile1.AddField(\"Z_STEP_SIZE\", flt_ZStepSize, hslFloat);\r\nfile1.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nfile1.AddField(\"Y_CENTER\", flt_YCenter, hslFloat);\r\nfile1.AddField(\"PLATE_COUNT\", int_PlateCount, hslInteger);\r\nfile1.AddField(\"STATUS\", str_Status, hslString, 255);\r\nif( 0 == file1.Open(str_SortFile + \" \" + \"Stack_Info\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 202 1 0 \"757ed680_8eb5_4cac_855873bb2758c886\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Status = Translate(\"NOT_DONE\");\r\n// }} \"\"\r\n// {{ 203 1 0 \"8d0caeb2_1223_43c2_a6f3ec0fd99e1615\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PlateCount = 0;\r\n// }} \"\"\r\n// {{ 204 1 0 \"91e00967_9cdc_405d_987aa0c3591d583d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Order = 0; int_Order < int_TotalStackNumber;)\r\n{\r\nint_Order = int_Order + 1;\r\n// }} \"\"\r\n// {{ 205 1 0 \"498c6e35_34d8_48a5_9ed2ff4151eea194\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nseq_CurrentPlateStack=i_arr_seq_PlateStacks.GetAt(int_Order-1);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"0cb87551_7a3e_493c_a142182c8fdcb0cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(seq_CurrentPlateStack, arr_LabIDs);\r\n// }} \"\"\r\n// {{ 207 1 0 \"f49b776c_52b3_4d44_bed35ee2c73f96ac\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_MaxStack=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 208 1 0 \"5510acbc_1c31_41b6_8fc01a358f10953d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_PlateLabBottom=arr_LabIDs.GetAt(int_MaxStack-1);\r\n// }} \"\"\r\n// {{ 209 1 0 \"b19e8800_16cd_438e_a3236c699466b3c7\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_PlateLabTop=arr_LabIDs.GetAt(1-1);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"c457f5f9_4fd3_473e_a4f996a389e9dfe8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabBottom, flt_ZMin, NotUsed);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"b070c23f_d94f_4faf_93fe84e5e7378e50\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabTop, flt_ZMax, NotUsed);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 212 1 0 \"04512283_e34d_4c7c_949d4826bf7cf73a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, str_PlateLabBottom, NotUsed, NotUsed, flt_ZMin, NotUsed);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0e00b59b_d018_4bcf_9a78c3a0343746b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, str_PlateLabTop, NotUsed, NotUsed, flt_ZMax, NotUsed);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 214 1 0 \"e5e58d42_3edc_45af_b61062dd08fc4aac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_ZMin > flt_ZMax)\r\n{\r\n// }} \"\"\r\n// {{ 215 1 0 \"8f2e94a0_66d3_41ce_8f0134a8100eb360\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 216 1 0 \"f0f3e2ab_b084_470f_b616806cfe377443\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_PlateLabBottom=arr_LabIDs.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 217 1 0 \"ea880097_9043_47ee_8b3432d0e33411e6\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_PlateLabTop=arr_LabIDs.GetAt(int_MaxStack-1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 218 1 0 \"cd12348e_7d74_42ad_9f58107d6180dc1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, str_PlateLabBottom, NotUsed, NotUsed, flt_ZMin, NotUsed);\r\n// }} \"\"\r\n// {{{ 219 1 0 \"d79d1ffc_ab14_4c2c_bbdd0870df394281\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, str_PlateLabTop, NotUsed, NotUsed, flt_ZMax, NotUsed);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 220 1 0 \"7f2b1bfe_bbfa_4863_ae179617abbbbb9e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabBottom, flt_ZMin, NotUsed);\r\n// }} \"\"\r\n// {{{ 221 1 0 \"ba7aacfe_1d49_4800_b4931c8888bf9c15\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabTop, flt_ZMax, NotUsed);\r\n// }} \"\"\r\n// {{ 222 1 0 \"e5e58d42_3edc_45af_b61062dd08fc4aac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 223 1 0 \"fc3b4652_4906_4a6b_9dbfca53d3951747\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZDifference = flt_ZMax - flt_ZMin;\r\n// }} \"\"\r\n// {{ 224 1 0 \"cdf57ac9_6fbc_4547_926bf9ece59b0ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_ZDifference < 0)\r\n{\r\n// }} \"\"\r\n// {{ 225 1 0 \"eef444c5_182b_4a08_958bfb243facc605\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZDifference = flt_ZDifference * -1;\r\n// }} \"\"\r\n// {{ 226 1 0 \"cdf57ac9_6fbc_4547_926bf9ece59b0ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 227 1 0 \"3cfaaf94_55f0_4617_a5245ad1859305ab\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_InBetweenPlates = int_MaxStack - 1;\r\n// }} \"\"\r\n// {{ 228 1 0 \"a34ce995_7191_423c_998f624521af9309\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_InBetweenPlates == 0)\r\n{\r\n// }} \"\"\r\n// {{ 229 1 0 \"73829885_84ed_4dd5_877a8d767cbc2c1e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 230 1 0 \"9a3f56b8_471a_4806_bb85930f8d7c07e1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_InBetweenPlates = 1;\r\n// }} \"\"\r\n// {{ 231 1 0 \"a34ce995_7191_423c_998f624521af9309\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 232 1 0 \"1bf0e690_1662_4ba2_935c1328fa046c25\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZStepSize = flt_ZDifference / (int_InBetweenPlates * 1.0);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"b20a1112_9add_4f28_8a2a0419537dacb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareCenter2(ML_STAR, str_PlateLabTop, flt_XCenter, flt_YCenter);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"3fc05c8c_91d2_44ea_8a0822640554ddbd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_PlateLabBottom, NotUsed, NotUsed, flt_ZBottom);\r\n// }} \"\"\r\n// {{ 235 1 0 \"13d3da00_eb4f_4f22_a2c80d5efc5003eb\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 236 1 0 \"91e00967_9cdc_405d_987aa0c3591d583d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 237 1 0 \"4cae418b_590f_4635_a9b35fee956a063e\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\n// {{ 238 1 0 \"0a227021_8bf7_48ef_badbb329e9585806\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"57f165f0_2872_40d6_89379d2eca6c1c17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Count = StrConcat2(Translate(\"SELECT COUNT(*) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 240 1 0 \"85f11dfd_69db_49db_ae3558170e5dbdb4\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nFileQuery.AddField(\"N\", int_NumNotDone, hslInteger);\r\nif( 0 == FileQuery.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Count) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 241 1 0 \"0b95d492_3a11_4612_82953580cba10f4e\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == FileQuery.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 242 1 0 \"caf79d22_dc0b_46c9_b0a02f65ccbfc635\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != FileQuery.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nFileQuery.RemoveFields();\r\n// }} \"\"\r\n// {{ 243 1 0 \"9dfe6975_54c7_4584_85d6d33c3bcbc1a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumNotDone == 0)\r\n{\r\n// }} \"\"\r\n// {{ 244 1 0 \"62b0c43c_2875_40a5_aee9e484b0f32507\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 245 1 0 \"9dfe6975_54c7_4584_85d6d33c3bcbc1a6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 246 1 0 \"04f5dc0b_9510_497c_beaef240d79da802\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 247 1 0 \"00300080_141e_40ab_953c812db5e336ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_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\"));\r\n// }} \"\"\r\n// {{ 248 1 0 \"29a5ea11_d338_4250_bc63bbb3b4a44db7\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nFileQuery.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nFileQuery.AddField(\"N\", int_XCount, hslInteger);\r\nif( 0 == FileQuery.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Count) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 249 1 0 \"a1fe3687_a393_4b97_8a9f3e9fde469c5b\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == FileQuery.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 250 1 0 \"ed7c5624_126a_4ab5_b335cb6a72b3859f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != FileQuery.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nFileQuery.RemoveFields();\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"   X Value:  \", flt_XCenter,\"  Count:  \",int_XCount);\r\n// {{{ 252 1 0 \"295d78eb_6677_4c5c_bb4a9697cd5ac3ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Filter = StrConcat2(Translate(\"SELECT * FROM Stack_Info WHERE STATUS = 'NOT_DONE'\"), Translate(\" ORDER BY X_CENTER ASC, Y_CENTER DESC\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 253 1 0 \"93938fa0_2e4a_4755_ad2e3b70bdc92899\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Filter = StrConcat4(Translate(\"SELECT * FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' AND X_CENTER = \"), flt_XCenter, Translate(\" ORDER BY Y_CENTER DESC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 254 1 0 \"986d06d1_512c_4560_a4549c864b1c4ab3\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nFileQuery.AddField(\"ORDER\", int_Order, hslInteger);\r\nFileQuery.AddField(\"PLATE_LAB_TOP\", str_PlateLabTop, hslString, 255);\r\nFileQuery.AddField(\"PLATE_LAB_BOTTOM\", str_PlateLabBottom, hslString, 255);\r\nFileQuery.AddField(\"MAX_STACK\", int_MaxStack, hslInteger);\r\nFileQuery.AddField(\"Z_MIN\", flt_ZMin, hslFloat);\r\nFileQuery.AddField(\"Z_MAX\", flt_ZMax, hslFloat);\r\nFileQuery.AddField(\"Z_BOTTOM\", flt_ZBottom, hslFloat);\r\nFileQuery.AddField(\"Z_STEP_SIZE\", flt_ZStepSize, hslFloat);\r\nFileQuery.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nFileQuery.AddField(\"Y_CENTER\", flt_YCenter, hslFloat);\r\nFileQuery.AddField(\"PLATE_COUNT\", int_PlateCount, hslInteger);\r\nFileQuery.AddField(\"STATUS\", str_Status, hslString, 255);\r\nif( 0 == FileQuery.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Filter) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 255 1 0 \"909da5fa_b961_4270_858d36dc9543a104\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 256 1 0 \"34c1c0b8_c461_42e6_9602d0731ba18be1\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelsUsed.SetSize(int_NumChannels);\r\n// }} \"\"\r\n// {{ 257 1 0 \"6ed42822_858e_4ed3_a58ad45dcab8e419\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelY.SetSize(int_NumChannels);\r\n// }} \"\"\r\n// {{ 258 1 0 \"b40c3d06_8f36_48c8_bc7205d7e83add6f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_StackLabIDs.SetSize(int_NumChannels);\r\n// }} \"\"\r\n// {{ 259 1 0 \"05209953_93c3_4237_83c170cc0590a879\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_NumChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 260 1 0 \"59c2db91_2c11_489b_ad09733be935e1e6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelsUsed.SetAt(int_ChIndex-1, 0);\r\n// }} \"\"\r\n// {{ 261 1 0 \"b8980c99_97c2_4cab_a3a215416852fec3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelY.SetAt(int_ChIndex-1, 0.0);\r\n// }} \"\"\r\n// {{ 262 1 0 \"92b94b92_1ade_4e43_a813d844ddacf2c7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_StackLabIDs.SetAt(int_ChIndex-1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 263 1 0 \"05209953_93c3_4237_83c170cc0590a879\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 264 1 0 \"d54c863f_5dd2_431b_b9f27d6988daca9e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelCount = int_NumChannels - int_XCount;\r\n// }} \"\"\r\n// {{ 265 1 0 \"6a1abb09_8551_4c47_9dac3a9540281739\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_XCount > int_NumChannels)\r\n{\r\n// }} \"\"\r\n// {{ 266 1 0 \"47061e7b_f745_4d48_9cbd1d21016087da\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelCount = 0;\r\n// }} \"\"\r\n// {{ 267 1 0 \"6a1abb09_8551_4c47_9dac3a9540281739\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 268 1 0 \"892b1315_edf5_47ef_8779f65c99def11f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = 0.0;\r\n// }} \"\"\r\n// {{ 269 1 0 \"afa0b5fa_d6ef_4ed8_b1ff3318f7e3db12\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsUsed = 0;\r\n// }} \"\"\r\n// {{ 270 1 0 \"ca55bfc8_4f76_4875_9d632671a068c4b6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (FileQuery.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 271 1 0 \"76897ba2_fc60_4496_a82de874f516fe01\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == FileQuery.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"  Plate Lab ID:  \",str_PlateLabTop);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 273 1 0 \"1bb72d5f_f2f8_4de6_a66776c79533f561\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentX == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 274 1 0 \"89c7a39e_4a27_45e8_bdf5d1b1ea877660\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = flt_XCenter;\r\n// }} \"\"\r\n// {{ 275 1 0 \"1bb72d5f_f2f8_4de6_a66776c79533f561\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 276 1 0 \"6a23a21e_bad7_4581_be0ba2c0e40a71f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_XCenter != flt_CurrentX)\r\n{\r\n// }} \"\"\r\n// {{ 277 1 0 \"55ab7813_c0bb_49d3_9be4b370bbd0daac\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 278 1 0 \"6a23a21e_bad7_4581_be0ba2c0e40a71f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 279 1 0 \"5d08957f_78ad_4f97_8f6cd35e6771ed23\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 280 1 0 \"78ada13d_f46e_4105_92ab9e9df2f282c4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 281 1 0 \"7197a749_4c91_42cc_b17631d0799d3119\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelCount = int_ChannelCount + 1;\r\n// }} \"\"\r\n// {{ 282 1 0 \"cc8b1e32_4be1_481b_9c20e75cbf1e1779\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelCount > int_NumChannels)\r\n{\r\n// }} \"\"\r\n// {{ 283 1 0 \"1f3ed85b_9054_48a5_b6b0e8d5dba4f4fc\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 284 1 0 \"cc8b1e32_4be1_481b_9c20e75cbf1e1779\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 285 1 0 \"3c86b06d_8563_4db2_a4c4cb143cab1c60\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMax=arr_YMax.GetAt(int_ChannelCount-1);\r\n// }} \"\"\r\n// {{ 286 1 0 \"bb2dcc0c_231a_47dc_97b2ea54a35e0a39\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMin=arr_YMin.GetAt(int_ChannelCount-1);\r\n// }} \"\"\r\n// {{ 287 1 0 \"66e44a70_f6ad_44a9_9135943ee810cb52\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_ChannelYMaxGood = 0;\r\n// }} \"\"\r\n// {{ 288 1 0 \"d8ef35f2_231f_4c7b_8a2de6924d4bb62e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_ChannelYMinGood = 0;\r\n// }} \"\"\r\n// {{ 289 1 0 \"8d19c561_5b26_49c8_8cfde3a737dfc917\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCenter <= flt_YMax)\r\n{\r\n// }} \"\"\r\n// {{ 290 1 0 \"eabbbbe7_109f_4cbc_936c7d7c5cb4f0e9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_ChannelYMaxGood = 1;\r\n// }} \"\"\r\n// {{ 291 1 0 \"8d19c561_5b26_49c8_8cfde3a737dfc917\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 292 1 0 \"4674ec3b_3cd1_4c94_b264fa8f8368afa7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCenter >= flt_YMin)\r\n{\r\n// }} \"\"\r\n// {{ 293 1 0 \"c19fb244_e638_4ea0_8b89bc61dbf05422\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_ChannelYMinGood = 1;\r\n// }} \"\"\r\n// {{ 294 1 0 \"4674ec3b_3cd1_4c94_b264fa8f8368afa7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"08d34485_7a9d_4044_a5df43f31e0ed0ef\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelYGood = bol_ChannelYMaxGood + bol_ChannelYMinGood;\r\n// }} \"\"\r\n// {{ 296 1 0 \"c1ca7615_2e1c_4510_89fdc85202dd1001\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelYGood == 2)\r\n{\r\n// }} \"\"\r\n// {{ 297 1 0 \"f130658c_18a5_49f2_9d0e30752b826a97\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_StackLabIDs.SetAt(int_ChannelCount-1, str_PlateLabTop);\r\n// }} \"\"\r\n// {{ 298 1 0 \"fda78fc7_7684_4657_9172910bda611491\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelY.SetAt(int_ChannelCount-1, flt_YCenter);\r\n// }} \"\"\r\n// {{ 299 1 0 \"66ccde20_b10f_43c2_97c89f570941ba3e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelsUsed.SetAt(int_ChannelCount-1, 1);\r\n// }} \"\"\r\n// {{ 300 1 0 \"cf168010_c287_4743_900cddc2bcb14b03\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsUsed = int_ChannelsUsed + 1;\r\n// }} \"\"\r\n// {{ 301 1 0 \"1edadea7_4e15_47e2_8b472f7eb9ac5c76\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 302 1 0 \"c1ca7615_2e1c_4510_89fdc85202dd1001\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 303 1 0 \"78ada13d_f46e_4105_92ab9e9df2f282c4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 304 1 0 \"5b6e446d_5e19_4fd5_b4c2f12ee8456a7b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelCount > int_NumChannels)\r\n{\r\n// }} \"\"\r\n// {{ 305 1 0 \"9546a41c_1caa_4cd3_87bfea291b31420a\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 306 1 0 \"5b6e446d_5e19_4fd5_b4c2f12ee8456a7b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 307 1 0 \"ca55bfc8_4f76_4875_9d632671a068c4b6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 308 1 0 \"2623705d_50d7_4600_8f4ba9368da8636c\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != FileQuery.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nFileQuery.RemoveFields();\r\n// }} \"\"\r\n// {{{ 309 1 0 \"6de64791_0195_451c_96ee87e621d4af89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_PositionChannels);\r\n// }} \"\"\r\n// {{ 310 1 0 \"77732126_6f6e_4997_881b2b765c813ab1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsSet = 0;\r\n// }} \"\"\r\n// {{ 311 1 0 \"15a95721_6c13_49f8_a9a1f73a6db16239\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = 999999.9;\r\n// }} \"\"\r\n// {{ 312 1 0 \"b5c12cff_39e3_41ae_b03912685f176ef6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 313 1 0 \"b007fd2a_2d20_4407_a6fd69c0bdf5b2ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Channel Use               Channel Y\"), arr_ChannelsUsed, arr_ChannelY);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 314 1 0 \"a949b61d_eb55_4eed_875e8e82b08ce98a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_CenterSpots.SetSize(0);\r\n// }} \"\"\r\n// {{ 315 1 0 \"afb19545_bb4d_41b1_a38d4555ffe502dc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChanIndex = 0; int_ChanIndex < int_NumChannels;)\r\n{\r\nint_ChanIndex = int_ChanIndex + 1;\r\n// }} \"\"\r\n// {{ 316 1 0 \"ab717401_a0d9_46ea_92a0f96a2a973ed8\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nbol_ChannelStatus=arr_ChannelsUsed.GetAt(int_ChanIndex-1);\r\n// }} \"\"\r\n// {{ 317 1 0 \"b84ef76a_482f_45a7_af858d78e474d4a7\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelY=arr_ChannelY.GetAt(int_ChanIndex-1);\r\n// }} \"\"\r\n// {{ 318 1 0 \"0839d713_7ac5_447b_9dd9de8b5c2c8491\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ChannelStatus == 0)\r\n{\r\n// }} \"\"\r\n// {{ 319 1 0 \"19dc8501_58a1_4c1c_bf4f605b74e9cb0d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 320 1 0 \"ac9ec7c4_36dc_4790_816e38166b153478\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelY=arr_YMax.GetAt(int_ChanIndex-1);\r\n// }} \"\"\r\n// {{ 321 1 0 \"19dc8501_58a1_4c1c_bf4f605b74e9cb0d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"99e7a062_6f5a_4120_bcb775b1cc53e6d7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelsSet == int_ChannelsUsed)\r\n{\r\n// }} \"\"\r\n// {{ 323 1 0 \"7f170733_3f01_4b69_b47e74e02a186697\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelY=arr_YMin.GetAt(int_ChanIndex-1);\r\n// }} \"\"\r\n// {{ 324 1 0 \"99e7a062_6f5a_4120_bcb775b1cc53e6d7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 325 1 0 \"0839d713_7ac5_447b_9dd9de8b5c2c8491\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 326 1 0 \"8ba5fc4d_154c_4df7_bff9f6240b35f611\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsSet = int_ChannelsSet + 1;\r\n// }} \"\"\r\n// {{ 327 1 0 \"0839d713_7ac5_447b_9dd9de8b5c2c8491\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 328 1 0 \"221c0b72_20f6_434b_9aba5009f723c7af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = StrConcat2(str_CenterSpotName, int_ChanIndex);\r\n// }} \"\"\r\n// {{{ 329 1 0 \"b85e27bb_046d_4fe9_b252b94942125af1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddLabware(ML_STAR, str_LabID, str_CenterSpot, flt_CurrentX, flt_ChannelY, 300.0, 0.0);\r\n// }} \"\"\r\n// {{{ 330 1 0 \"71d17c5f_15a0_4b16_b81691424b9f07ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_PositionChannels, str_LabID, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 331 1 0 \"664e7633_d6d8_4998_864a3d55f565f6b7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_CenterSpots.AddAsLast(str_LabID);\r\n// }} \"\"\r\n// {{ 332 1 0 \"afb19545_bb4d_41b1_a38d4555ffe502dc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 333 1 0 \"417125a8_5bec_47ba_9a29fd56e9ecdbe9\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_PositionChannels.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 334 1 0 \"be2b8669_54e4_42d5_909e5abe8376f37d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 335 1 0 \"e582746b_0588_435d_8fb4772a8383661f\" \"ML_STAR:{81DA4252-3BA9-11d4-AE21-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._81DA4252_3BA9_11d4_AE21_0004ACB1DCB2(\"e582746b_0588_435d_8fb4772a8383661f\"); // MoveToPosition\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 336 1 0 \"f8207eb0_5173_4dff_ab0c281643ed632b\" \"{21E07B31-8D2E-11d4-A3B8-002035848439}\"\r\ndialogHandle1.SetOutput(Translate(\"\"));\r\ndialogHandle1.ShowOutput(\"\", hslOKOnly | hslInformation | hslDefButton1, hslInfinite);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 337 1 0 \"f5350b51_a820_41ee_afd0b2fe7521f552\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 338 1 0 \"522e080e_8bc3_4d5f_a23be5abfd72f2db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveSpots(ML_STAR, arr_CenterSpots);\r\n// }} \"\"\r\n// {{ 339 1 0 \"2f4722e1_55f5_4586_8d6ec5281975052c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 340 1 0 \"4d5c8588_628f_43f6_a919092861dce74f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Stack LabIDs\"), arr_StackLabIDs);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 341 1 0 \"9a7c5598_f863_4769_bffd2945a42d6d54\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_Find_Stack_Heights(ML_STAR, arr_StackLabIDs);\r\n// }} \"\"\r\n// {{ 342 1 0 \"0a227021_8bf7_48ef_badbb329e9585806\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 343 1 0 \"1ae9d73f_4125_40be_b3d21d12bc91607a\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(\"ORDER\", int_Order, hslInteger);\r\nfile1.AddField(\"PLATE_LAB_TOP\", str_PlateLabTop, hslString, 255);\r\nfile1.AddField(\"PLATE_LAB_BOTTOM\", str_PlateLabBottom, hslString, 255);\r\nfile1.AddField(\"MAX_STACK\", int_MaxStack, hslInteger);\r\nfile1.AddField(\"Z_MIN\", flt_ZMin, hslFloat);\r\nfile1.AddField(\"Z_MAX\", flt_ZMax, hslFloat);\r\nfile1.AddField(\"Z_BOTTOM\", flt_ZBottom, hslFloat);\r\nfile1.AddField(\"Z_STEP_SIZE\", flt_ZStepSize, hslFloat);\r\nfile1.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nfile1.AddField(\"Y_CENTER\", flt_YCenter, hslFloat);\r\nfile1.AddField(\"PLATE_COUNT\", int_PlateCount, hslInteger);\r\nfile1.AddField(\"STATUS\", str_Status, hslString, 255);\r\nif( 0 == file1.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 344 1 0 \"d0793516_bcda_42e0_82a0c50d25eb5d54\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (file1.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 345 1 0 \"756cc8be_d6a0_4eeb_8d4807cc5e057112\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 346 1 0 \"ccbfa5e5_a031_4233_b3628c7021359df6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_PlateCounts.AddAsLast(int_PlateCount);\r\n// }} \"\"\r\n// {{ 347 1 0 \"d0793516_bcda_42e0_82a0c50d25eb5d54\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 348 1 0 \"e7807da7_5f3f_408c_b7e2f34c7bf1558c\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 349 1 0 \"fc03a88c_fc83_4b8c_9d65a13845f3e081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_SortFile);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"Plate_Stack_Verify\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveSpots\" \"Begin\"\r\nprivate function _RemoveSpots( device & ML_STAR, variable & i_arr_LabwareIDs[] ) void {\r\n// }} \"\"\r\nprivate variable str_LabID;\r\nprivate variable int_NumLabware;\r\nprivate variable int_Index;\r\n// {{ 5 \"_RemoveSpots\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 551 1 0 \"ca1cefa8_2d3b_434e_a991d8fc8de96ffd\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_NumLabware=i_arr_LabwareIDs.GetSize();\r\n// }} \"\"\r\n// {{ 552 1 0 \"04cd6343_ef7c_4447_90f6d0022bbff483\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_NumLabware;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 553 1 0 \"308b5b85_be19_4bd8_9b816a3f458f5e85\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=i_arr_LabwareIDs.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{{ 554 1 0 \"ea657e00_a8bf_4d48_be9a33465481f252\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevRemoveLabware(ML_STAR, str_LabID);\r\n// }} \"\"\r\n// {{ 555 1 0 \"04cd6343_ef7c_4447_90f6d0022bbff483\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 556 1 0 \"fec0391e_495b_4ba7_b1750ef538f22990\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\ni_arr_LabwareIDs.SetSize(0);\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveSpots\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Find_Stack_Heights\" \"Begin\"\r\nprivate function _Find_Stack_Heights( device & ML_STAR, variable & i_arr_StackLabIDs[] ) void {\r\n// }} \"\"\r\nprivate variable intResolution;\r\nprivate variable int_NumChannels;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable strStackHeight;\r\nprivate variable intStackHeight;\r\nprivate variable int_ChIndex;\r\nprivate variable str_CurrentLabID;\r\nprivate variable int_PlateCount;\r\nprivate variable flt_ZMin;\r\nprivate variable flt_ZMax;\r\nprivate variable int_MaxStack;\r\nprivate variable flt_XCenter;\r\nprivate variable str_SQL_Filter;\r\nprivate variable str_Status;\r\nprivate variable flt_YCenter;\r\nprivate variable flt_ZStepSize;\r\nprivate variable int_Order;\r\nprivate variable str_PlateLabTop;\r\nprivate file file1;\r\nprivate variable bol_SimulationMode;\r\nprivate variable str_SQL_Update;\r\nprivate file UpdateFile;\r\nprivate variable int_LoopCounter;\r\nprivate variable int_SeekHeight;\r\nprivate variable flt_SeekHeight;\r\nprivate variable str_FirmwareParam;\r\nprivate variable int_ChannelNum;\r\nprivate variable str_ChIndex;\r\nprivate variable flt_Z_Bottom;\r\nprivate variable str_PlateLabBottom;\r\nprivate variable int_PlateIndex;\r\nprivate variable flt_CurrentPlateHeight;\r\nprivate variable flt_NoPlateFoundRange;\r\nprivate variable flt_HalfStepHeight;\r\n// {{ 5 \"_Find_Stack_Heights\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 383 1 0 \"3b0c340a_18bf_49c8_b4b663afff757e06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbol_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 384 1 0 \"99aa4ed2_3624_469f_b6a4b90f06e656ba\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 385 1 0 \"27dd6427_06a2_4548_a9fd5193fbd5cf47\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nintResolution = 0.01072765;\r\n// }} \"\"\r\n// {{ 386 1 0 \"3367461b_4365_40e4_997c1e8728546915\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 387 1 0 \"0973d509_3920_405b_b295a3ff5f45e9b6\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_NumChannels=i_arr_StackLabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 388 1 0 \"018cdaa1_0eca_484f_bbe2c7608463e7be\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_NumChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 389 1 0 \"5416a313_4fc9_4325_95c1312a080cb852\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentLabID=i_arr_StackLabIDs.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 390 1 0 \"d5658013_1758_4898_b5495e4d68426f5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_CurrentLabID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 391 1 0 \"66466a0f_f553_41b2_8f6325fb454b3acb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 392 1 0 \"e9bf3cb7_7b2b_4ea8_8f4a5f1912eec419\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Filter = StrConcat4(Translate(\"SELECT * FROM [Stack_Info$] WHERE PLATE_LAB_TOP = '\"), str_CurrentLabID, Translate(\"'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 393 1 0 \"c1d15405_2506_4311_8f305516b8106e95\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(\"ORDER\", int_Order, hslInteger);\r\nfile1.AddField(\"PLATE_LAB_TOP\", str_PlateLabTop, hslString, 255);\r\nfile1.AddField(\"PLATE_LAB_BOTTOM\", str_PlateLabBottom, hslString, 255);\r\nfile1.AddField(\"MAX_STACK\", int_MaxStack, hslInteger);\r\nfile1.AddField(\"Z_MIN\", flt_ZMin, hslFloat);\r\nfile1.AddField(\"Z_MAX\", flt_ZMax, hslFloat);\r\nfile1.AddField(\"Z_BOTTOM\", flt_Z_Bottom, hslFloat);\r\nfile1.AddField(\"Z_STEP_SIZE\", flt_ZStepSize, hslFloat);\r\nfile1.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nfile1.AddField(\"Y_CENTER\", flt_YCenter, hslFloat);\r\nfile1.AddField(\"PLATE_COUNT\", int_PlateCount, hslInteger);\r\nfile1.AddField(\"STATUS\", str_Status, hslString, 255);\r\nif( 0 == file1.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Filter) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 394 1 0 \"39503fc1_142f_4b36_835a9e9784aa0a0a\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"e07b6641_56de_4a31_8f7c5b409107728f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\nTrace(\"Z Min:  \",flt_ZMin);\r\n// {{ 397 1 0 \"d46b8f9f_7546_4083_a117416e619159d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"437b99e4_d331_4352_9e82d3eb3724a128\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 399 1 0 \"a64fba7d_c7a7_420f_ade03a74270a5d9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelNum = int_ChIndex;\r\n// }} \"\"\r\n// {{{ 400 1 0 \"d35dc7b2_aa73_467f_af5960eb550f75ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertChannelToAlpha(int_ChIndex, str_ChIndex);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"18ff78de_f624_4153_b6ec86b6b5cc3cda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), str_ChIndex, Translate(\"ZG\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 402 1 0 \"c21e8716_8486_410e_8eda947b937b5336\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_SimulationMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 403 1 0 \"9c311818_c6a0_41f0_a9989c3940ab29a8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SeekHeight = flt_Z_Bottom - 0.0;\r\n// }} \"\"\r\n// {{ 404 1 0 \"c21e8716_8486_410e_8eda947b937b5336\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 405 1 0 \"789c27af_5fa0_41b8_8b3341a3a50bc3cd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SeekHeight = flt_ZMax - 0.0;\r\n// }} \"\"\r\n// {{ 406 1 0 \"c21e8716_8486_410e_8eda947b937b5336\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 407 1 0 \"8c091d29_ad28_4ec8_a7e0af6d783f9c9a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SeekHeight = flt_SeekHeight / (intResolution * 1.0);\r\n// }} \"\"\r\n// {{{ 408 1 0 \"f9cc74d5_d600_4b27_829dad873a13dd22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SeekHeight = MthCeiling(flt_SeekHeight);\r\n// }} \"\"\r\n// {{ 409 1 0 \"575427f8_e5f4_4342_a8d68230262e6d30\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SeekHeight < 12584)\r\n{\r\n// }} \"\"\r\n// {{ 410 1 0 \"511a0a85_31b9_4f05_8e7b2d8e9c63daec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SeekHeight = 12584;\r\n// }} \"\"\r\n// {{ 411 1 0 \"575427f8_e5f4_4342_a8d68230262e6d30\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 412 1 0 \"29b0174b_c94e_4163_a145b95084364d77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat4(Translate(\"za\"), int_SeekHeight, Translate(\"zr010\"), Translate(\"zw1\"));\r\n// }} \"\"\r\n// {{{ 413 1 0 \"53403b01_75f8_4960_82bb4ba421f0e0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat2(str_FirmwareParam, Translate(\"zv04500\"));\r\n// }} \"\"\r\n// {{ 414 1 0 \"9d655ce6_83fb_4c96_841c4522c8ecb5ef\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"9d655ce6_83fb_4c96_841c4522c8ecb5ef\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{{ 415 1 0 \"b026c62e_a19f_47d2_b1c0ee4376394525\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), str_ChIndex, Translate(\"RZ\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 416 1 0 \"e948cca2_fba1_4a06_ab3df9c6e40669ac\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e948cca2_fba1_4a06_ab3df9c6e40669ac\"); // FirmwareCommand\r\n\tstrStackHeight = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 417 1 0 \"ffb9fd26_9f40_48ab_9ef0d3159fd2eff8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 418 1 0 \"5b815655_8135_4f3d_ae29020dcb28023a\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"5b815655_8135_4f3d_ae29020dcb28023a\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{ 419 1 0 \"e7c6f128_b162_4c20_886fe6075dc94277\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 420 1 0 \"2a30e115_8926_4b25_93a0158f7b1a544a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), str_ChIndex, Translate(\"ZD\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 421 1 0 \"c57d68ef_8fa4_476c_b001ff74e6e5e1e3\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c57d68ef_8fa4_476c_b001ff74e6e5e1e3\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{ 422 1 0 \"d46b8f9f_7546_4083_a117416e619159d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 423 1 0 \"d22d2374_77f6_4f2d_b213a1bc571eb584\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_SimulationMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 424 1 0 \"7aa6930c_b54a_454a_b1097aab372cfe10\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 425 1 0 \"2e37ae95_fb27_410d_b0e2d72685c1c11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrStackHeight = StrMid(strStackHeight, 3, 5);\r\n// }} \"\"\r\n// {{ 426 1 0 \"95ba7a36_52ec_4bf5_bf487844e3521d4c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 427 1 0 \"2ba5f3cc_5fe0_47a5_bee95f061b423b2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintStackHeight = StrIVal(strStackHeight);\r\n// }} \"\"\r\n// {{ 428 1 0 \"05c9ba38_d2c5_4444_823b9144da31576b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 429 1 0 \"ac5bac29_2742_4f99_91ff90e14625b123\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nintStackHeight = intStackHeight * intResolution;\r\n// }} \"\"\r\n// {{ 430 1 0 \"d22d2374_77f6_4f2d_b213a1bc571eb584\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 431 1 0 \"bcbd8b7d_f75f_427e_ac60611ed2aa3b7b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nintStackHeight = flt_ZMax;\r\n// }} \"\"\r\n// {{ 432 1 0 \"d22d2374_77f6_4f2d_b213a1bc571eb584\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Stack Height Found:  \",intStackHeight);\r\n// {{ 434 1 0 \"f10e4a63_53d7_480a_957fa9caafad1030\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PlateCount = 0;\r\n// }} \"\"\r\n// {{ 435 1 0 \"22534d26_99b9_46d9_9a23eaee8bc1c7bb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LoopCounter = 0; int_LoopCounter < 1;)\r\n{\r\nint_LoopCounter = int_LoopCounter + 1;\r\n// }} \"\"\r\n// {{ 436 1 0 \"81f6ca6c_562e_4329_86d96abdebe44dfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight < 135.0)\r\n{\r\n// }} \"\"\r\n// {{ 437 1 0 \"b3546d5a_e94d_46dc_a83b0e361a50467d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 438 1 0 \"710937f0_66dc_44b2_9f3e4c78739bf193\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 439 1 0 \"81f6ca6c_562e_4329_86d96abdebe44dfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 440 1 0 \"d90dd117_6d36_4765_85a4690007650729\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfStepHeight = flt_ZStepSize / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 441 1 0 \"ffebe998_f8b0_493e_998a2f95f0fcda12\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NoPlateFoundRange = flt_Z_Bottom + flt_HalfStepHeight;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 442 1 0 \"996cde49_92d4_41f2_956e57a6d0a33f6e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight == flt_Z_Bottom)\r\n{\r\n// }} \"\"\r\n// {{ 443 1 0 \"33304f56_133a_4fd0_8e63daa6bc5844f5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 444 1 0 \"55c2fbbf_ebfa_477d_acade600ebdc66ed\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 445 1 0 \"996cde49_92d4_41f2_956e57a6d0a33f6e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 446 1 0 \"2e67a213_e17a_43a2_88c4b53e23ef5d1b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight <= flt_NoPlateFoundRange)\r\n{\r\n// }} \"\"\r\n// {{ 447 1 0 \"a6cfbeea_4762_46a0_a3b2c056e8ca24d3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 448 1 0 \"09de39bf_736e_40c6_a9245e614c771b76\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 449 1 0 \"2e67a213_e17a_43a2_88c4b53e23ef5d1b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 450 1 0 \"73e89ad8_970c_4a77_9ba62968b784e6c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentPlateHeight = flt_Z_Bottom;\r\n// }} \"\"\r\n// {{ 451 1 0 \"2970b246_4367_4d04_a43659b5258f2285\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight > flt_CurrentPlateHeight)\r\n{\r\n// }} \"\"\r\n// {{ 452 1 0 \"fdb5d186_ea4c_4658_9d83aad600b25398\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PlateCount = int_PlateCount + 1;\r\n// }} \"\"\r\n// {{ 453 1 0 \"2970b246_4367_4d04_a43659b5258f2285\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 454 1 0 \"92d519c1_2a25_4d05_9811a1a41d4c4076\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentPlateHeight = flt_ZMin;\r\n// }} \"\"\r\n// {{ 455 1 0 \"5ce474ae_dceb_41b8_8aa26e39f6d6d218\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_PlateIndex = 0; int_PlateIndex < int_MaxStack;)\r\n{\r\nint_PlateIndex = int_PlateIndex + 1;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Stack Height:  \",intStackHeight,\"  Current Plate Height:  \",flt_CurrentPlateHeight);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 457 1 0 \"6bb74a56_98f7_4f12_860956db48ae1350\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight > flt_CurrentPlateHeight)\r\n{\r\n// }} \"\"\r\n// {{ 458 1 0 \"d0cdc288_d81c_4bd2_99a9287229922874\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentPlateHeight = flt_CurrentPlateHeight + flt_ZStepSize;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Step Size:  \",flt_ZStepSize);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 460 1 0 \"1b3fd0a7_0859_4a70_822493e1ca932c2d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PlateCount = int_PlateCount + 1;\r\n// }} \"\"\r\n// {{ 461 1 0 \"6bb74a56_98f7_4f12_860956db48ae1350\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 462 1 0 \"cac4d264_d1eb_4345_a4e02bea27edc001\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 463 1 0 \"6bb74a56_98f7_4f12_860956db48ae1350\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 464 1 0 \"5ce474ae_dceb_41b8_8aa26e39f6d6d218\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 465 1 0 \"22534d26_99b9_46d9_9a23eaee8bc1c7bb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 466 1 0 \"aa6fa9d8_e9a2_4acf_bf47a1a8f9ac7862\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 467 1 0 \"ee1d5ac8_a900_43f6_833e46617f24c79a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_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(\"\"));\r\n// }} \"\"\r\n// {{ 468 1 0 \"eeaac2db_c8ff_4a5f_a51b25ea8ad73485\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == UpdateFile.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Update) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 469 1 0 \"0f530e5a_35ea_480d_979abec4ba7dea58\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != UpdateFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nUpdateFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 470 1 0 \"d5658013_1758_4898_b5495e4d68426f5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 471 1 0 \"018cdaa1_0eca_484f_bbe2c7608463e7be\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Find_Stack_Heights\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Arr_StackSequences\" \"Begin\"\r\nfunction Get_Arr_StackSequences( device & ML_STAR, sequence i_seq_AllStacks, sequence & o_arr_StackSequences[] ) void {\r\n// }} \"\"\r\nprivate variable arr_TemplateSites[];\r\nprivate variable arr_LabIDs[];\r\nprivate variable str_LabID;\r\nprivate variable int_NumLabIDs;\r\nprivate variable int_Index;\r\nprivate variable str_TemplateSite;\r\nprivate variable str_Template;\r\nprivate variable str_Location;\r\nprivate variable str_TempLab;\r\nprivate variable str_TempPos;\r\nprivate variable int_arrPosition;\r\nprivate sequence seq_Transport;\r\nprivate sequence seq_CurrentPosition;\r\nprivate variable arr_Index[];\r\nprivate variable int_LocationFound;\r\n// {{ 5 \"Get_Arr_StackSequences\" \"InitLocals\"\r\no_arr_StackSequences.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 1 1 0 \"4e4ab40a_887e_4a4b_aa0bd4825b869d1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(i_seq_AllStacks, arr_LabIDs);\r\n// }} \"\"\r\n// {{ 2 1 0 \"193424d7_5216_44f0_be551bb5147e4299\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_StackSequences.SetSize(0);\r\n// }} \"\"\r\n// {{ 3 1 0 \"7dca3fe6_704a_4b46_b3384649901a43d5\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TemplateSites.SetSize(0);\r\n// }} \"\"\r\n// {{ 4 1 0 \"3a8703dd_fd41_461d_ad1e3630e445bb57\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_NumLabIDs=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 5 1 0 \"8f217f5b_3578_4bc2_854c86dd2dfd0cc2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_NumLabIDs;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 6 1 0 \"151da251_a509_41ef_87f11294291a75b1\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=arr_LabIDs.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{{ 7 1 0 \"bc39c3c0_400c_4432_b91a4e46f5c63fbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetCarrierAndSiteID(ML_STAR, str_LabID, str_Template, str_TemplateSite);\r\n// }} \"\"\r\n// {{{ 8 1 0 \"4f8eee61_09c8_4ca0_9cd75ff51d8707d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Location = StrConcat2(str_Template, str_TemplateSite);\r\n// }} \"\"\r\n// {{{ 9 1 0 \"9f7d89fb_3c52_408c_80d4dfde379fadd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narr_Index = HSLExtensions::Array::FindValue(arr_TemplateSites, str_Location);\r\n// }} \"\"\r\n// {{ 10 1 0 \"a4222aa9_41c1_4883_9f06bfb4229a8f17\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_LocationFound=arr_Index.GetSize();\r\n// }} \"\"\r\n// {{ 11 1 0 \"ffdc108b_d600_416b_80735939424484f9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_arrPosition = 0;\r\n// }} \"\"\r\n// {{ 12 1 0 \"71893a7d_e86f_46f9_b6914cabf588a8aa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LocationFound > 0)\r\n{\r\n// }} \"\"\r\n// {{ 13 1 0 \"7d542317_8bd1_42cb_93340e3730db93fa\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_arrPosition=arr_Index.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 14 1 0 \"71893a7d_e86f_46f9_b6914cabf588a8aa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 15 1 0 \"743c14ab_4431_48ee_b9caac35274e5bd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLLabwrAccess::GetTransportSequenceForLabwareID(ML_STAR, str_LabID, seq_Transport);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 16 1 0 \"41d7ced5_4c07_43ba_9ad34da91a9fce3e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTransportSequence(ML_STAR, str_LabID, seq_Transport);\r\n// }} \"\"\r\n// {{ 17 1 0 \"59d1e09d_a66c_46df_ad8b3ae1648f4c6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_arrPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 18 1 0 \"652e9f95_ba52_43af_aaef3c3e04749f10\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_StackSequences.AddAsLast(seq_Transport);\r\n// }} \"\"\r\n// {{ 19 1 0 \"5a0637f3_943c_43b4_b4abd3a539a3e7d8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TemplateSites.AddAsLast(str_Location);\r\n// }} \"\"\r\n// {{ 20 1 0 \"59d1e09d_a66c_46df_ad8b3ae1648f4c6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 21 1 0 \"c8677999_84d1_4767_945522a1645518b5\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nseq_CurrentPosition=o_arr_StackSequences.GetAt(int_arrPosition-1);\r\n// }} \"\"\r\n// {{{ 22 1 0 \"c11106ff_fd10_4973_8037d8c58b678e07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TempLab = SeqGetLabwareId(seq_Transport);\r\n// }} \"\"\r\n// {{{ 23 1 0 \"a7a0e893_2049_44d0_b77c5c84d158696c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TempPos = SeqGetPositionId(seq_Transport);\r\n// }} \"\"\r\n// {{{ 24 1 0 \"151452df_d24e_4372_96a9777ece96c6dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_CurrentPosition, str_TempLab, str_TempPos);\r\n// }} \"\"\r\n// {{ 25 1 0 \"f3ae0d20_1ded_4050_831951598c1c113f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_CurrentPosition.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 26 1 0 \"4569c55e_643c_4106_878bfbc0afa68edd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_StackSequences.SetAt(int_arrPosition-1, seq_CurrentPosition);\r\n// }} \"\"\r\n// {{ 27 1 0 \"59d1e09d_a66c_46df_ad8b3ae1648f4c6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 28 1 0 \"8f217f5b_3578_4bc2_854c86dd2dfd0cc2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Arr_StackSequences\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertChannelToAlpha\" \"Begin\"\r\nfunction _ConvertChannelToAlpha( variable & i_int_ChanNum, variable & o_str_ChanNum ) void {\r\n// }} \"\"\r\n// {{ 5 \"_ConvertChannelToAlpha\" \"InitLocals\"\r\no_str_ChanNum = 0;\r\n// }} \"\"\r\n// {{ 351 1 0 \"fd3a5c9e_1635_4188_b4c8c5df66718867\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChanNum <= 9)\r\n{\r\n// }} \"\"\r\n// {{{ 352 1 0 \"c8f7eea5_2f1f_415a_9bc71d0a1e45568c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChanNum = StrConcat2(i_int_ChanNum, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 353 1 0 \"fd3a5c9e_1635_4188_b4c8c5df66718867\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 354 1 0 \"c61225ce_a905_429e_8a58dc31f2f61363\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChanNum == 10)\r\n{\r\n// }} \"\"\r\n// {{ 355 1 0 \"8b0e3500_4d07_43e4_a3019409e439e720\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChanNum = Translate(\"A\");\r\n// }} \"\"\r\n// {{ 356 1 0 \"c61225ce_a905_429e_8a58dc31f2f61363\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 357 1 0 \"7379539c_e114_4cda_8fb64024a28e8e1e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChanNum == 11)\r\n{\r\n// }} \"\"\r\n// {{ 358 1 0 \"e69b8219_4b0e_4100_ae1378c82d998222\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChanNum = \"B\";\r\n// }} \"\"\r\n// {{ 359 1 0 \"7379539c_e114_4cda_8fb64024a28e8e1e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 360 1 0 \"538ef7f3_3003_4225_9fcf2fe8c3c7fe1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChanNum == 12)\r\n{\r\n// }} \"\"\r\n// {{ 361 1 0 \"f5ab2219_8a54_41f9_9f6d86a2073307c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChanNum = Translate(\"C\");\r\n// }} \"\"\r\n// {{ 362 1 0 \"538ef7f3_3003_4225_9fcf2fe8c3c7fe1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 363 1 0 \"33c6c7eb_1ac5_432f_9a7e1af5bfb0fc87\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChanNum == 13)\r\n{\r\n// }} \"\"\r\n// {{ 364 1 0 \"2ba6e355_b87a_4200_a317290696b102e7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChanNum = Translate(\"D\");\r\n// }} \"\"\r\n// {{ 365 1 0 \"33c6c7eb_1ac5_432f_9a7e1af5bfb0fc87\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 366 1 0 \"3988f7b2_df6e_4197_bbdf9919062a3b51\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChanNum == 14)\r\n{\r\n// }} \"\"\r\n// {{ 367 1 0 \"038f780d_096c_456b_9433b6dd6e52327a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChanNum = Translate(\"E\");\r\n// }} \"\"\r\n// {{ 368 1 0 \"3988f7b2_df6e_4197_bbdf9919062a3b51\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 369 1 0 \"a0b1a748_2369_4903_b5b6b2318e85dd73\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChanNum == 15)\r\n{\r\n// }} \"\"\r\n// {{ 370 1 0 \"cf7a70fd_9043_4c11_86763481409b2d49\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChanNum = Translate(\"F\");\r\n// }} \"\"\r\n// {{ 371 1 0 \"a0b1a748_2369_4903_b5b6b2318e85dd73\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 372 1 0 \"87304e80_8011_4a9c_9f29d32281599200\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChanNum == 16)\r\n{\r\n// }} \"\"\r\n// {{ 373 1 0 \"9f4fa6f9_ed87_48c4_929db5647383167a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChanNum = Translate(\"G\");\r\n// }} \"\"\r\n// {{ 374 1 0 \"87304e80_8011_4a9c_9f29d32281599200\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 375 1 0 \"a0b1a748_2369_4903_b5b6b2318e85dd73\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 376 1 0 \"3988f7b2_df6e_4197_bbdf9919062a3b51\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 377 1 0 \"33c6c7eb_1ac5_432f_9a7e1af5bfb0fc87\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 378 1 0 \"538ef7f3_3003_4225_9fcf2fe8c3c7fe1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 379 1 0 \"7379539c_e114_4cda_8fb64024a28e8e1e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 380 1 0 \"c61225ce_a905_429e_8a58dc31f2f61363\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 381 1 0 \"fd3a5c9e_1635_4188_b4c8c5df66718867\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertChannelToAlpha\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Plate_Stack_Verfy_V2\" \"Begin\"\r\nfunction Plate_Stack_Verfy_V2( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void {\r\n// }} \"\"\r\nprivate variable int_NumChannels;\r\nprivate variable flt_ChanRaster;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ZMin;\r\nprivate variable int_PlateCount;\r\nprivate variable flt_ZMax;\r\nprivate variable int_MaxStack;\r\nprivate variable str_Carrier;\r\nprivate variable int_TotalStackNumber;\r\nprivate variable bool_FileExists;\r\nprivate variable str_CarrierSite;\r\nprivate variable flt_XCenter;\r\nprivate variable str_Status;\r\nprivate variable flt_YCenter;\r\nprivate variable flt_ZStepSize;\r\nprivate variable int_Order;\r\nprivate variable int_ChannelStart;\r\nprivate variable str_PlateLabBottom;\r\nprivate variable str_PlateLabTop;\r\nprivate file file1;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable int_NumNotDone;\r\nprivate variable int_InBetweenPlates;\r\nprivate variable flt_ZDifference;\r\nprivate variable NotUsed;\r\nprivate variable int_XCount;\r\nprivate variable str_SQL_Count;\r\nprivate variable flt_CarrierAngle;\r\nprivate variable flt_CarrierX;\r\nprivate variable flt_CarrierY;\r\nprivate variable flt_CarrierZ;\r\nprivate sequence seq_CurrentPlateStack;\r\nprivate file FileQuery;\r\nprivate variable arr_LabIDs[];\r\nprivate variable str_SQL_Avg;\r\nprivate variable flt_CurrentX;\r\nprivate variable flt_YMin;\r\nprivate variable int_ChanIndex;\r\nprivate variable flt_YMax;\r\nprivate variable int_ChannelsUsed;\r\nprivate variable int_ChannelCount;\r\nprivate variable str_SQL_Filter;\r\nprivate variable flt_ChannelY;\r\nprivate variable bol_ChannelStatus;\r\nprivate variable bol_ChannelYMinGood;\r\nprivate variable int_ChannelYGood;\r\nprivate variable str_ChPattern;\r\nprivate variable bol_ChannelYMaxGood;\r\nprivate variable int_ChIndex;\r\nprivate variable arr_ChannelsUsed[];\r\nprivate variable arr_StackLabIDs[];\r\nprivate variable arr_fltXCoords[];\r\nprivate variable arr_fltYCoords[];\r\nprivate variable arr_fltZCoords[];\r\nprivate variable arr_ChannelY[];\r\nprivate variable flt_CurrentZ;\r\n// {{ 5 \"Plate_Stack_Verfy_V2\" \"InitLocals\"\r\no_arr_PlateCounts.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 30 1 0 \"dfd16f13_063e_43e1_a9a86bf64120974c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 31 1 0 \"235528e7_05ae_489d_88bc814ef284c3f8\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_PlateCounts.SetSize(0);\r\n// }} \"\"\r\n// {{ 32 1 0 \"4a2769b9_32e9_46d8_94685974309723c6\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalStackNumber=i_arr_seq_PlateStacks.GetSize();\r\n// }} \"\"\r\n// {{{ 33 1 0 \"bdbf977d_ee0d_47e2_a53d93564dec62d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 34 1 0 \"4277e9e7_0eae_4f9c_a161675f596c7b96\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_NumChannels = HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_ChanRaster);\r\n// }} \"\"\r\n// {{ 35 1 0 \"5826764b_17a8_4bba_b37b8b003720c7b3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelStart = 1;\r\n// }} \"\"\r\n// {{ 36 1 0 \"f45f0335_1129_4cb7_88b0292dd862e5e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 37 1 0 \"25c168ad_d4de_4347_a3fef5e6c204a75a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_SortFile);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"81626cf8_5afa_4570_be6bdc68926fd5aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_SortFile);\r\n// }} \"\"\r\n// {{ 39 1 0 \"39be70be_be6c_4695_8d8a166991d04586\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"d1b58076_1d2b_4915_a102faca7b4c44fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_SortFile);\r\n// }} \"\"\r\n// {{ 41 1 0 \"39be70be_be6c_4695_8d8a166991d04586\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 42 1 0 \"f45f0335_1129_4cb7_88b0292dd862e5e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 43 1 0 \"fc9df987_e226_4433_91bf9547d94bd5a6\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(\"ORDER\", int_Order, hslInteger);\r\nfile1.AddField(\"PLATE_LAB_TOP\", str_PlateLabTop, hslString, 255);\r\nfile1.AddField(\"PLATE_LAB_BOTTOM\", str_PlateLabBottom, hslString, 255);\r\nfile1.AddField(\"MAX_STACK\", int_MaxStack, hslInteger);\r\nfile1.AddField(\"Z_MIN\", flt_ZMin, hslFloat);\r\nfile1.AddField(\"Z_MAX\", flt_ZMax, hslFloat);\r\nfile1.AddField(\"Z_BOTTOM\", flt_ZBottom, hslFloat);\r\nfile1.AddField(\"Z_STEP_SIZE\", flt_ZStepSize, hslFloat);\r\nfile1.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nfile1.AddField(\"Y_CENTER\", flt_YCenter, hslFloat);\r\nfile1.AddField(\"CARRIER\", str_Carrier, hslString, 255);\r\nfile1.AddField(\"CARRIER_SITE\", str_CarrierSite, hslString, 255);\r\nfile1.AddField(\"CARRIER_X\", flt_CarrierX, hslFloat);\r\nfile1.AddField(\"PLATE_COUNT\", int_PlateCount, hslInteger);\r\nfile1.AddField(\"STATUS\", str_Status, hslString, 255);\r\nif( 0 == file1.Open(str_SortFile + \" \" + \"Stack_Info\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 44 1 0 \"c020ce90_f367_4f4b_93e70e1e924a0cc0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Status = Translate(\"NOT_DONE\");\r\n// }} \"\"\r\n// {{ 45 1 0 \"db23dbe8_ae29_42e9_b781541da5f891ad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PlateCount = 0;\r\n// }} \"\"\r\n// {{ 46 1 0 \"de26df41_1eec_4518_9b4103e3250b5381\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Order = 0; int_Order < int_TotalStackNumber;)\r\n{\r\nint_Order = int_Order + 1;\r\n// }} \"\"\r\n// {{ 47 1 0 \"f25696f9_9ddf_4e86_8e58cd27eba08c46\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nseq_CurrentPlateStack=i_arr_seq_PlateStacks.GetAt(int_Order-1);\r\n// }} \"\"\r\n// {{{ 48 1 0 \"f397528f_bc27_4424_bcc0be5c7b1bb991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(seq_CurrentPlateStack, arr_LabIDs);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 49 1 0 \"99dfdf98_1e61_49b3_b6d3df845a730861\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Lab IDs\"), arr_LabIDs);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 50 1 0 \"45ea3628_c769_4d0e_be082a701a4e1a6f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_MaxStack=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 51 1 0 \"a791360a_4d66_4187_b36abae3c9c4e92f\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_PlateLabBottom=arr_LabIDs.GetAt(int_MaxStack-1);\r\n// }} \"\"\r\n// {{ 52 1 0 \"57ffd2fa_eb9c_4d4d_ba26b07f42af7ac7\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_PlateLabTop=arr_LabIDs.GetAt(1-1);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"7076cc13_a62b_4164_95abd3d6daafcddf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabBottom, flt_ZMin, NotUsed);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"b2fb2bf5_6d39_415b_807641ec81f53b27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabTop, flt_ZMax, NotUsed);\r\n// }} \"\"\r\n// {{ 55 1 0 \"fa69e5d1_94e8_4f51_b80ebec54d47d9da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_ZMin > flt_ZMax)\r\n{\r\n// }} \"\"\r\n// {{ 56 1 0 \"320e42ab_f7ff_4605_b08949e0c7ae9caf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 57 1 0 \"725edddb_8b89_45ca_92f96d6e9af9b9e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_PlateLabBottom=arr_LabIDs.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 58 1 0 \"983cf5df_c8b4_4b19_b4c2f87e817a021b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_PlateLabTop=arr_LabIDs.GetAt(int_MaxStack-1);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9b0d3e24_591d_49dc_87fd319ccc9beec5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabBottom, flt_ZMin, NotUsed);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"cbdfe7f6_47fa_4070_88d918f9fbbb9bb0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabTop, flt_ZMax, NotUsed);\r\n// }} \"\"\r\n// {{ 61 1 0 \"fa69e5d1_94e8_4f51_b80ebec54d47d9da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 62 1 0 \"62de3b5f_e595_4fc9_84af07bbcb237158\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareCenter2(ML_STAR, str_PlateLabTop, flt_XCenter, flt_YCenter);\r\n// }} \"\"\r\n// {{{ 63 1 0 \"e02a6b1c_6435_4aa2_9cdcde87129a5d27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_PlateLabBottom, NotUsed, NotUsed, flt_ZBottom);\r\n// }} \"\"\r\n// {{{ 64 1 0 \"bd65adfa_65e6_4f9d_927e238f6994b25a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetCarrierAndSiteID(ML_STAR, str_PlateLabBottom, str_Carrier, str_CarrierSite);\r\n// }} \"\"\r\n// {{{ 65 1 0 \"076b0c62_0ca4_435c_a99fd4dc53727951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), str_Carrier, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 66 1 0 \"125c852f_12ef_4aea_be8bb600523223f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Carrier != \"default\")\r\n{\r\n// }} \"\"\r\n// {{{ 67 1 0 \"9a30116a_41cc_482c_8b3690833ce15cde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, str_Carrier, flt_CarrierX, flt_CarrierY, flt_CarrierZ, flt_CarrierAngle);\r\n// }} \"\"\r\n// {{ 68 1 0 \"125c852f_12ef_4aea_be8bb600523223f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 69 1 0 \"ce35d36b_0f65_42f4_a767f3fd40e4a92b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, str_PlateLabBottom, flt_CarrierX, flt_CarrierY, flt_CarrierZ, flt_CarrierAngle);\r\n// }} \"\"\r\n// {{ 70 1 0 \"125c852f_12ef_4aea_be8bb600523223f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 71 1 0 \"3e8a7099_5720_47bd_98b03c2d2f741ae8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZDifference = flt_ZMax - flt_ZMin;\r\n// }} \"\"\r\n// {{ 72 1 0 \"6ea39d55_3955_4781_9ff20d5929328d27\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_ZDifference < 0)\r\n{\r\n// }} \"\"\r\n// {{ 73 1 0 \"36d7e92c_1c50_4261_b477a42e3e47d7f9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZDifference = flt_ZDifference * -1;\r\n// }} \"\"\r\n// {{ 74 1 0 \"6ea39d55_3955_4781_9ff20d5929328d27\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 75 1 0 \"46e88dcc_9940_41c1_bec0716b27ce5cc8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_InBetweenPlates = int_MaxStack - 1;\r\n// }} \"\"\r\n// {{ 76 1 0 \"73b00eb5_5130_4f76_adc0bc60a8ea7616\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_InBetweenPlates == 0)\r\n{\r\n// }} \"\"\r\n// {{ 77 1 0 \"dbdc0f0c_9b11_4bbb_b4d7de827c0fc18c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 78 1 0 \"1332afd2_667a_45ca_a8a53c5a9ed45467\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_InBetweenPlates = 1;\r\n// }} \"\"\r\n// {{ 79 1 0 \"7aa2b0ea_19c8_4dfd_9b22cea38dd48fe8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZDifference = flt_ZMax - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 80 1 0 \"73b00eb5_5130_4f76_adc0bc60a8ea7616\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 81 1 0 \"1dfb3c92_7db4_49c9_a112d9be441ab724\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZStepSize = flt_ZDifference / (int_InBetweenPlates * 1.0);\r\n// }} \"\"\r\n// {{ 82 1 0 \"a1bbc78b_19a2_409d_88d98609c4855147\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 83 1 0 \"de26df41_1eec_4518_9b4103e3250b5381\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 84 1 0 \"1c0d2d88_04ad_44f9_b252a8c42bfb7f6f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\n// {{ 85 1 0 \"0a038169_90e6_4d3f_bac0674d8c506cf1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 86 1 0 \"f22876a3_f8fe_4d6d_b4fb9257125bc6db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Count = StrConcat2(Translate(\"SELECT COUNT(*) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 87 1 0 \"57d5d140_6f0f_419f_979f96865ca4cb82\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nFileQuery.AddField(\"N\", int_NumNotDone, hslInteger);\r\nif( 0 == FileQuery.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Count) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 88 1 0 \"eeecf038_4a3c_4128_a53e25d24967377a\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == FileQuery.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 89 1 0 \"e1d453cf_5424_495a_9daf613a69e66e5a\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != FileQuery.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nFileQuery.RemoveFields();\r\n// }} \"\"\r\n// {{ 90 1 0 \"dc472985_4c4c_4a9b_b32c9d42969fd9d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumNotDone == 0)\r\n{\r\n// }} \"\"\r\n// {{ 91 1 0 \"f59103fd_49f9_4dfe_99ee5fc05b2440ef\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 92 1 0 \"dc472985_4c4c_4a9b_b32c9d42969fd9d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 93 1 0 \"9b72b34d_aa0a_4851_acf0b79c21e0a2cc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 94 1 0 \"b605f3d1_86ca_467d_baa201acc2aeeb6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_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\"));\r\n// }} \"\"\r\n// {{ 95 1 0 \"6944a106_5241_4954_97efdac8db14d2fe\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nFileQuery.AddField(\"CARRIER_X\", flt_CarrierX, hslFloat);\r\nFileQuery.AddField(\"N\", int_XCount, hslInteger);\r\nif( 0 == FileQuery.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Count) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"5dea2eb2_ca02_4940_b91f91b1161ab4b9\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == FileQuery.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"57656023_6195_4cb6_8fa892e2fec34616\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != FileQuery.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nFileQuery.RemoveFields();\r\n// }} \"\"\r\n// {{ 98 1 0 \"ffb7ac34_80b9_4fda_a92cbf4c25f688fe\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 99 1 0 \"b10e3ad1_a42f_467a_9add5f14a93ea5f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_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(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 100 1 0 \"90924a92_52a0_4869_a4020013644c5e94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Avg = StrConcat4(Translate(\"SELECT AVG(X_CENTER) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' AND CARRIER_X = \"), flt_CarrierX, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 101 1 0 \"59d2caf6_b812_4c27_a139ec6691d72822\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nFileQuery.AddField(\"N\", flt_XCenter, hslInteger);\r\nif( 0 == FileQuery.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Avg) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 102 1 0 \"ed4b0f3c_e80a_47d7_8d55628caaeb3abb\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == FileQuery.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 103 1 0 \"72a647f6_2ad8_44c6_a6c3e2c4c9972ee7\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != FileQuery.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nFileQuery.RemoveFields();\r\n// }} \"\"\r\n// {{{ 104 1 0 \"778e0b92_bd20_4557_b540cc9a9f6da082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Filter = StrConcat4(Translate(\"SELECT * FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' AND CARRIER_X = \"), flt_CarrierX, Translate(\" ORDER BY Y_CENTER DESC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 105 1 0 \"6d871395_2588_4d01_98570ec6f39fb7b5\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nFileQuery.AddField(\"ORDER\", int_Order, hslInteger);\r\nFileQuery.AddField(\"PLATE_LAB_TOP\", str_PlateLabTop, hslString, 255);\r\nFileQuery.AddField(\"PLATE_LAB_BOTTOM\", str_PlateLabBottom, hslString, 255);\r\nFileQuery.AddField(\"MAX_STACK\", int_MaxStack, hslInteger);\r\nFileQuery.AddField(\"Z_MIN\", flt_ZMin, hslFloat);\r\nFileQuery.AddField(\"Z_MAX\", flt_ZMax, hslFloat);\r\nFileQuery.AddField(\"Z_BOTTOM\", flt_ZBottom, hslFloat);\r\nFileQuery.AddField(\"Z_STEP_SIZE\", flt_ZStepSize, hslFloat);\r\nFileQuery.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nFileQuery.AddField(\"Y_CENTER\", flt_YCenter, hslFloat);\r\nFileQuery.AddField(\"CARRIER\", str_Carrier, hslString, 255);\r\nFileQuery.AddField(\"CARRIER_SITE\", str_CarrierSite, hslString, 255);\r\nFileQuery.AddField(\"CARRIER_X\", flt_CarrierX, hslFloat);\r\nFileQuery.AddField(\"PLATE_COUNT\", int_PlateCount, hslInteger);\r\nFileQuery.AddField(\"STATUS\", str_Status, hslString, 255);\r\nif( 0 == FileQuery.Open(str_SortFile + \" \" + \"Stack_Info\", hslRead, str_SQL_Filter) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 106 1 0 \"5d90fe49_e814_466d_bc88595a0258a94d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 107 1 0 \"3c8d006d_aca8_41ac_89ba2df0f2c1dfd1\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelsUsed.SetSize(int_NumChannels);\r\n// }} \"\"\r\n// {{ 108 1 0 \"d8fc7656_b9d2_44fa_97c31fccb2ac0404\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelY.SetSize(int_NumChannels);\r\n// }} \"\"\r\n// {{ 109 1 0 \"22baed3d_e319_401c_bbfc60f929eb2011\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_StackLabIDs.SetSize(int_NumChannels);\r\n// }} \"\"\r\n// {{ 110 1 0 \"41037c9a_4aaf_42e2_90db93b4255117af\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_NumChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 111 1 0 \"f8ca623c_9a37_4adf_b6925a49407cf0e8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelsUsed.SetAt(int_ChIndex-1, 0);\r\n// }} \"\"\r\n// {{ 112 1 0 \"1f205849_2089_4da5_96f87f445e77b8a0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelY.SetAt(int_ChIndex-1, 0.0);\r\n// }} \"\"\r\n// {{ 113 1 0 \"a4d1241f_5065_4c05_bb9e474a7b5dced7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_StackLabIDs.SetAt(int_ChIndex-1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 114 1 0 \"41037c9a_4aaf_42e2_90db93b4255117af\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 115 1 0 \"0f7717de_3bde_4c2b_adb4efb001b19c3e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelCount = int_NumChannels - int_XCount;\r\n// }} \"\"\r\n// {{ 116 1 0 \"66a3b2a3_0656_4240_b1d5b67c42d949fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_XCount > int_NumChannels)\r\n{\r\n// }} \"\"\r\n// {{ 117 1 0 \"327d57d1_e850_4205_96501159583311dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelCount = 0;\r\n// }} \"\"\r\n// {{ 118 1 0 \"66a3b2a3_0656_4240_b1d5b67c42d949fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 119 1 0 \"669d98e4_3c84_42a5_a0449fc50ebdf425\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = 0.0;\r\n// }} \"\"\r\n// {{ 120 1 0 \"6f42ab55_f411_46d6_abfc2ebfda9b1822\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsUsed = 0;\r\n// }} \"\"\r\n// {{ 121 1 0 \"2baa5696_1f70_4a89_b1a8ecd4d057f734\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (FileQuery.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 122 1 0 \"0520f933_7954_4899_aa6f973caceb0ede\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == FileQuery.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 123 1 0 \"4872fae0_9ee4_4f6f_9e193f137e43053e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentX == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 124 1 0 \"a3017758_0bb5_49c6_93d5644ba0f08758\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = flt_CarrierX;\r\n// }} \"\"\r\n// {{ 125 1 0 \"4872fae0_9ee4_4f6f_9e193f137e43053e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 126 1 0 \"6cc66fce_9f11_4af7_952df0d671d86177\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CarrierX != flt_CurrentX)\r\n{\r\n// }} \"\"\r\n// {{ 127 1 0 \"48b6270f_777b_47f1_8e0944129648854b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 128 1 0 \"6cc66fce_9f11_4af7_952df0d671d86177\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 129 1 0 \"271d7de5_19f7_4471_be3b9725c3eb2cd0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 130 1 0 \"6e17b3d4_9ece_40a5_8493e5ee56a3af1a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 131 1 0 \"8b445f05_567d_4f8d_ba4c45f7cd28fa43\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelCount = int_ChannelCount + 1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"04356914_c96a_49b3_bec82d163319fea6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelCount > int_NumChannels)\r\n{\r\n// }} \"\"\r\n// {{ 133 1 0 \"58786351_3726_41eb_a9d8a7b8fd4d2c79\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 134 1 0 \"04356914_c96a_49b3_bec82d163319fea6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 135 1 0 \"88c7ec6e_e345_42a2_9a4b16358083e6d7\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMax=arr_YMax.GetAt(int_ChannelCount-1);\r\n// }} \"\"\r\n// {{ 136 1 0 \"9b30ecea_9fc3_456b_9c5d043cf40b1040\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMin=arr_YMin.GetAt(int_ChannelCount-1);\r\n// }} \"\"\r\n// {{ 137 1 0 \"bc0064ac_81ad_417d_86cc83508911fef2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_ChannelYMaxGood = 0;\r\n// }} \"\"\r\n// {{ 138 1 0 \"e7fd56d2_1f4b_4ec3_bc564241c2dd352c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_ChannelYMinGood = 0;\r\n// }} \"\"\r\n// {{ 139 1 0 \"1df36c2c_dd9c_4f3d_b56f0eb3839bbe77\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCenter <= flt_YMax)\r\n{\r\n// }} \"\"\r\n// {{ 140 1 0 \"22aa5666_4f74_44ba_bd8262665c26043f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_ChannelYMaxGood = 1;\r\n// }} \"\"\r\n// {{ 141 1 0 \"1df36c2c_dd9c_4f3d_b56f0eb3839bbe77\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"1a7c194b_1213_460d_b9a2d0c3a7d1d098\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCenter >= flt_YMin)\r\n{\r\n// }} \"\"\r\n// {{ 143 1 0 \"b814d970_b760_4b4f_9402edd217552f1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_ChannelYMinGood = 1;\r\n// }} \"\"\r\n// {{ 144 1 0 \"1a7c194b_1213_460d_b9a2d0c3a7d1d098\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 145 1 0 \"ce8d372d_31ad_4553_83541de5a7b5dce8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelYGood = bol_ChannelYMaxGood + bol_ChannelYMinGood;\r\n// }} \"\"\r\n// {{ 146 1 0 \"502031f6_0e5b_4ead_ae83b946b3b79a05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelYGood == 2)\r\n{\r\n// }} \"\"\r\n// {{ 147 1 0 \"97013550_0af7_4fdf_ac537269a06a03ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_StackLabIDs.SetAt(int_ChannelCount-1, str_PlateLabTop);\r\n// }} \"\"\r\n// {{ 148 1 0 \"0f44c116_d1fd_4529_953d8a59fe9c2ba7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelY.SetAt(int_ChannelCount-1, flt_YCenter);\r\n// }} \"\"\r\n// {{ 149 1 0 \"8f2d25b1_3a36_4313_97bf886be5f75652\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelsUsed.SetAt(int_ChannelCount-1, 1);\r\n// }} \"\"\r\n// {{ 150 1 0 \"b676b212_51f7_4d4f_8feb1f7df3871957\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsUsed = int_ChannelsUsed + 1;\r\n// }} \"\"\r\n// {{ 151 1 0 \"0d6fd4c6_7009_4246_9dfe1cf6ff012cdd\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 152 1 0 \"502031f6_0e5b_4ead_ae83b946b3b79a05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 153 1 0 \"6e17b3d4_9ece_40a5_8493e5ee56a3af1a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 154 1 0 \"52ebb5c5_90de_4bc3_b6aed9161b71a637\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelCount > int_NumChannels)\r\n{\r\n// }} \"\"\r\n// {{ 155 1 0 \"d0709f42_8e3a_469b_8453671167b51b31\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 156 1 0 \"52ebb5c5_90de_4bc3_b6aed9161b71a637\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"2baa5696_1f70_4a89_b1a8ecd4d057f734\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"2c1d7e7d_108a_41bb_a6bb6f44fe23b133\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != FileQuery.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nFileQuery.RemoveFields();\r\n// }} \"\"\r\n// {{ 159 1 0 \"ac20ff21_2edd_4baf_aa0113a47474e680\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 160 1 0 \"1c9db89e_abc4_40e4_9e55544b8db5f220\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_fltXCoords.SetSize(0);\r\n// }} \"\"\r\n// {{ 161 1 0 \"2b2ae402_e032_4104_937d402d53ed7e2d\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_fltYCoords.SetSize(0);\r\n// }} \"\"\r\n// {{ 162 1 0 \"c925ac98_9a7a_42eb_99baa7e97cba48c8\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_fltZCoords.SetSize(0);\r\n// }} \"\"\r\n// {{ 163 1 0 \"ea7069d5_19cd_4119_bdf7d63f112008d4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChanIndex = 0; int_ChanIndex < int_NumChannels;)\r\n{\r\nint_ChanIndex = int_ChanIndex + 1;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 164 1 0 \"80c0c7f9_3b14_494a_af31f3ccb75e9b2b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentZ = 334.7;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 165 1 0 \"32d7d0cb_1a89_4ed2_bca8a0e32b51c067\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentZ = 245.0;\r\n// }} \"\"\r\n// {{ 166 1 0 \"9ddcbbde_c3ba_448f_a1ccb19503461390\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nbol_ChannelStatus=arr_ChannelsUsed.GetAt(int_ChanIndex-1);\r\n// }} \"\"\r\n// {{ 167 1 0 \"36056dd5_a4b2_4f9a_b50e002cb94ec37c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelY=arr_ChannelY.GetAt(int_ChanIndex-1);\r\n// }} \"\"\r\n// {{{ 168 1 0 \"08a12421_5343_4141_849f4fd2bbc36984\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, bol_ChannelStatus);\r\n// }} \"\"\r\n// {{ 169 1 0 \"31cf8388_8b8c_457f_86fd45198a112ae2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_fltXCoords.AddAsLast(flt_XCenter);\r\n// }} \"\"\r\n// {{ 170 1 0 \"cde4bfae_a6b2_4d58_91dcd0bc550a11e5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_fltYCoords.AddAsLast(flt_ChannelY);\r\n// }} \"\"\r\n// {{ 171 1 0 \"4790d281_ce2b_4f63_8ba6b12a431be544\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_fltZCoords.AddAsLast(flt_CurrentZ);\r\n// }} \"\"\r\n// {{ 172 1 0 \"ea7069d5_19cd_4119_bdf7d63f112008d4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 173 1 0 \"297b7321_5e3d_4df3_81e7f6106072900a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_fltXCoords, arr_fltYCoords, arr_fltZCoords);\r\n// }} \"\"\r\n// {{{ 174 1 0 \"33b73570_e7a1_4db8_850a698386bbcf9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_Find_Stack_Heights_V2(ML_STAR, arr_StackLabIDs, str_ChPattern, arr_fltXCoords, arr_fltYCoords, arr_fltZCoords);\r\n// }} \"\"\r\n// {{ 175 1 0 \"0a038169_90e6_4d3f_bac0674d8c506cf1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 176 1 0 \"bdcab28e_4ad9_4d1c_9e9837744bdefd7e\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(\"ORDER\", int_Order, hslInteger);\r\nfile1.AddField(\"PLATE_LAB_TOP\", str_PlateLabTop, hslString, 255);\r\nfile1.AddField(\"PLATE_LAB_BOTTOM\", str_PlateLabBottom, hslString, 255);\r\nfile1.AddField(\"MAX_STACK\", int_MaxStack, hslInteger);\r\nfile1.AddField(\"Z_MIN\", flt_ZMin, hslFloat);\r\nfile1.AddField(\"Z_MAX\", flt_ZMax, hslFloat);\r\nfile1.AddField(\"Z_BOTTOM\", flt_ZBottom, hslFloat);\r\nfile1.AddField(\"Z_STEP_SIZE\", flt_ZStepSize, hslFloat);\r\nfile1.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nfile1.AddField(\"Y_CENTER\", flt_YCenter, hslFloat);\r\nfile1.AddField(\"CARRIER\", str_Carrier, hslString, 255);\r\nfile1.AddField(\"CARRIER_SITE\", str_CarrierSite, hslString, 255);\r\nfile1.AddField(\"CARRIER_X\", flt_CarrierX, hslFloat);\r\nfile1.AddField(\"PLATE_COUNT\", int_PlateCount, hslInteger);\r\nfile1.AddField(\"STATUS\", str_Status, hslString, 255);\r\nif( 0 == file1.Open(str_SortFile + \" \" + \"Stack_Info\", hslRead) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 177 1 0 \"6e9db376_c75b_45f9_9adf7e60df77a160\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (file1.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 178 1 0 \"5bf814d7_ac68_4d43_b949f7852a5d7769\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 179 1 0 \"d5652418_543b_42c3_95d319726a81109d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_PlateCounts.AddAsLast(int_PlateCount);\r\n// }} \"\"\r\n// {{ 180 1 0 \"6e9db376_c75b_45f9_9adf7e60df77a160\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 181 1 0 \"36db0fb7_5db2_4076_87e041bb860ce000\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\n// {{{ 5 \"Plate_Stack_Verfy_V2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Find_Stack_Heights_V2\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable int_NumChannels;\r\nprivate variable int_PlateCount;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ZMin;\r\nprivate variable flt_ZMax;\r\nprivate variable int_MaxStack;\r\nprivate variable str_Carrier;\r\nprivate variable str_CarrierSite;\r\nprivate variable flt_CarrierX;\r\nprivate variable flt_XCenter;\r\nprivate variable str_SQL_Filter;\r\nprivate variable str_Status;\r\nprivate variable flt_YCenter;\r\nprivate variable flt_ZStepSize;\r\nprivate variable int_Order;\r\nprivate variable str_PlateLabBottom;\r\nprivate variable str_PlateLabTop;\r\nprivate variable str_CurrentLabID;\r\nprivate variable int_ChIndex;\r\nprivate file file1;\r\nprivate variable flt_Z_Bottom;\r\nprivate variable flt_SeekHeight;\r\nprivate variable int_ChannelNum;\r\nprivate variable int_PlateIndex;\r\nprivate variable flt_NoPlateFoundRange;\r\nprivate variable flt_HalfStepHeight;\r\nprivate variable intStackHeight;\r\nprivate variable str_SQL_Update;\r\nprivate variable flt_CurrentPlateHeight;\r\nprivate variable int_LoopCounter;\r\nprivate file UpdateFile;\r\nprivate variable flt_CurrentPlusHalf;\r\nprivate variable bln_PlateFound;\r\nprivate variable flt_TipLength;\r\n// {{ 5 \"_Find_Stack_Heights_V2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 473 1 0 \"327e2216_4ee3_4c59_bf03834fdd5d17d6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"1b47c7d4_b390_46ad_bccbffc9edffa20e\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_NumChannels=i_arr_StackLabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 475 1 0 \"cd134388_3957_4902_be68ba6eacf4e62a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_NumChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 476 1 0 \"b333b36c_c23e_4760_a5f5fdfef85bafd6\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentLabID=i_arr_StackLabIDs.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 477 1 0 \"72c1e454_d219_418d_83538e055dc2c004\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_CurrentLabID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 478 1 0 \"f0c29edf_ddf7_4250_a0d2048b7e302e6d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 479 1 0 \"98a3e0ca_5033_4d46_8a3f4a93f2afc4a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Filter = StrConcat4(Translate(\"SELECT * FROM [Stack_Info$] WHERE PLATE_LAB_TOP = '\"), str_CurrentLabID, Translate(\"'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 480 1 0 \"fbd7b511_729a_4221_af3d5ffd20940ba9\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nfile1.AddField(\"ORDER\", int_Order, hslInteger);\r\nfile1.AddField(\"PLATE_LAB_TOP\", str_PlateLabTop, hslString, 255);\r\nfile1.AddField(\"PLATE_LAB_BOTTOM\", str_PlateLabBottom, hslString, 255);\r\nfile1.AddField(\"MAX_STACK\", int_MaxStack, hslInteger);\r\nfile1.AddField(\"Z_MIN\", flt_ZMin, hslFloat);\r\nfile1.AddField(\"Z_MAX\", flt_ZMax, hslFloat);\r\nfile1.AddField(\"Z_BOTTOM\", flt_ZBottom, hslFloat);\r\nfile1.AddField(\"Z_STEP_SIZE\", flt_ZStepSize, hslFloat);\r\nfile1.AddField(\"X_CENTER\", flt_XCenter, hslFloat);\r\nfile1.AddField(\"Y_CENTER\", flt_YCenter, hslFloat);\r\nfile1.AddField(\"CARRIER\", str_Carrier, hslString, 255);\r\nfile1.AddField(\"CARRIER_SITE\", str_CarrierSite, hslString, 255);\r\nfile1.AddField(\"CARRIER_X\", flt_CarrierX, hslFloat);\r\nfile1.AddField(\"PLATE_COUNT\", int_PlateCount, hslInteger);\r\nfile1.AddField(\"STATUS\", str_Status, hslString, 255);\r\nif( 0 == file1.Open(str_SortFile + \" \" + \"Stack_Info\", hslRead, str_SQL_Filter) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 481 1 0 \"d84ac293_8a49_493e_968bc43c436a7779\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == file1.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"0056f0cd_053b_48cf_8c11570d8604a65c\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != file1.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nfile1.RemoveFields();\r\n// }} \"\"\r\nTrace(\"Z Min:  \",flt_ZMin);\r\n// {{ 484 1 0 \"7f94d5fe_33fc_46d2_b26b8350d537f6ce\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 485 1 0 \"16a3870c_8a00_4989_96007042a44d7c85\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelNum = int_ChIndex;\r\n// }} \"\"\r\n// {{ 486 1 0 \"0459fea9_1cce_4c67_86926e64295841ad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 487 1 0 \"d2961f14_e69c_4433_b8be2ffef2eccdc5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SeekHeight = flt_Z_Bottom - 0.0;\r\n// }} \"\"\r\n// {{ 488 1 0 \"0459fea9_1cce_4c67_86926e64295841ad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 489 1 0 \"cc21db16_076b_4e9a_b32cab9c4aeff029\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SeekHeight = flt_ZMax - 0.0;\r\n// }} \"\"\r\n// {{ 490 1 0 \"0459fea9_1cce_4c67_86926e64295841ad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 491 1 0 \"f60645c7_9dd1_45d8_a446d00206d39140\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_SeekHeight < 135.0)\r\n{\r\n// }} \"\"\r\n// {{ 492 1 0 \"289f421f_b4db_4520_af4c5ebbe31f29ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SeekHeight = 135.0;\r\n// }} \"\"\r\n// {{ 493 1 0 \"f60645c7_9dd1_45d8_a446d00206d39140\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Z Seek Height:  \",flt_SeekHeight);\r\n// {{ 495 1 0 \"55d183ad_11aa_4258_a88098376cb83d6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 496 1 0 \"5b2f87d2_128d_4e01_9025c7f4e4be91aa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::QueryTipLength(ML_STAR, int_ChannelNum, flt_TipLength);\r\n// }} \"\"\r\n// {{{ 497 1 0 \"b4f1ef9b_14fc_477a_adc222531e79bbb8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_PlateFound = STAR_CHANNEL_MOVEMENT_TOOLS::Search_Z(ML_STAR, int_ChannelNum, flt_SeekHeight, flt_TipLength, 1, intStackHeight);\r\n// }} \"\"\r\n// {{ 498 1 0 \"55d183ad_11aa_4258_a88098376cb83d6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 499 1 0 \"050159d9_79ae_457e_a4d71e1db6f00987\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::QueryTipLength(ML_STAR, int_ChannelNum, flt_TipLength);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"a8f8719b_db28_4ba3_bcaee4abebf00d14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_PlateFound = VANTAGE_CHANNEL_MOVEMENT_TOOLS::Search_Z(ML_STAR, int_ChannelNum, flt_SeekHeight, flt_TipLength, 1, intStackHeight);\r\n// }} \"\"\r\n// {{ 501 1 0 \"55d183ad_11aa_4258_a88098376cb83d6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 502 1 0 \"26afd6b4_e168_4090_b4e9ee4bf8dc3b42\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 503 1 0 \"51173418_e7b2_4de4_b46e9177c07f98c0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nintStackHeight = flt_ZMax;\r\n// }} \"\"\r\n// {{ 504 1 0 \"26afd6b4_e168_4090_b4e9ee4bf8dc3b42\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Stack Height Found:  \",intStackHeight);\r\n// {{ 506 1 0 \"76bbf53d_200d_47e8_bb2053c0e9c8eddf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PlateCount = 0;\r\n// }} \"\"\r\n// {{ 507 1 0 \"f7090c07_3db7_43a6_a6f6f1f240ef5dd3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LoopCounter = 0; int_LoopCounter < 1;)\r\n{\r\nint_LoopCounter = int_LoopCounter + 1;\r\n// }} \"\"\r\n// {{ 508 1 0 \"081b4d93_8e82_4a23_9502d733d9bcdf3a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight < 135.0)\r\n{\r\n// }} \"\"\r\n// {{ 509 1 0 \"664f305d_9dd1_4ece_85fbecba577ed4c3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Channel Limit\"));\r\n// }} \"\"\r\n// {{ 510 1 0 \"81932928_82d7_42fb_b880d9b09fdb1945\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 511 1 0 \"081b4d93_8e82_4a23_9502d733d9bcdf3a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 512 1 0 \"a0ef3eb7_8599_412f_a17f74e8115d008b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_PlateFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 513 1 0 \"076ea05f_4cbd_4bdf_be5bda73d8fe0bce\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 514 1 0 \"a0ef3eb7_8599_412f_a17f74e8115d008b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 515 1 0 \"bfbc9b15_a7c3_498f_8ad5f90b8dbff322\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfStepHeight = flt_ZStepSize / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 516 1 0 \"22077134_f221_4342_9b3e6d9c00758f80\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NoPlateFoundRange = flt_ZBottom + flt_HalfStepHeight;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 517 1 0 \"c5624447_a4bb_4c89_854851cc1f50d0e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Plate Stack Height:  \"), intStackHeight, Translate(\"     No Plate Found Range:  \"), flt_NoPlateFoundRange);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 518 1 0 \"4aca2fde_265d_41b7_ac3dcdfca53b570e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight <= flt_NoPlateFoundRange)\r\n{\r\n// }} \"\"\r\n// {{ 519 1 0 \"27f87a89_a604_4605_ac97f1000f995b1a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"No plate found\"));\r\n// }} \"\"\r\n// {{ 520 1 0 \"12e35982_9d20_4f12_9c8ade226604b498\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 521 1 0 \"4aca2fde_265d_41b7_ac3dcdfca53b570e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 522 1 0 \"d10157e1_6054_4e81_870f05f2e229c065\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentPlateHeight = flt_ZBottom;\r\n// }} \"\"\r\n// {{ 523 1 0 \"755ff7da_69a7_4c9f_8d05c70e91465ed1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight > flt_CurrentPlateHeight)\r\n{\r\n// }} \"\"\r\n// {{ 524 1 0 \"ec6cc928_d62d_471f_9b246851e2adf27c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PlateCount = int_PlateCount + 1;\r\n// }} \"\"\r\n// {{ 525 1 0 \"755ff7da_69a7_4c9f_8d05c70e91465ed1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 526 1 0 \"03fe3ff3_e687_43c3_b20018e9097bebdd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentPlateHeight = flt_ZMin;\r\n// }} \"\"\r\n// {{ 527 1 0 \"33d0e9d2_8c2a_4403_a922eac4adeb4c69\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_PlateIndex = 0; int_PlateIndex < int_MaxStack;)\r\n{\r\nint_PlateIndex = int_PlateIndex + 1;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Stack Height:  \",intStackHeight,\"  Current Plate Height:  \",flt_CurrentPlateHeight);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 529 1 0 \"2ea49e8a_4f9b_42b1_8de2bc585a389faf\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentPlusHalf = flt_CurrentPlateHeight + flt_HalfStepHeight;\r\n// }} \"\"\r\n// {{ 530 1 0 \"57f76f58_e93a_4cd2_bab2bd3c5ce038d8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intStackHeight > flt_CurrentPlusHalf)\r\n{\r\n// }} \"\"\r\n// {{ 531 1 0 \"628110fb_1a6f_4b44_a7c848fc86ed41f4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentPlateHeight = flt_CurrentPlateHeight + flt_ZStepSize;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Step Size:  \",flt_ZStepSize);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 533 1 0 \"9cf272d8_a084_42bb_958fbd83df520105\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PlateCount = int_PlateCount + 1;\r\n// }} \"\"\r\n// {{ 534 1 0 \"57f76f58_e93a_4cd2_bab2bd3c5ce038d8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 535 1 0 \"7f584264_865e_45b4_b0fd95c41575638d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 536 1 0 \"57f76f58_e93a_4cd2_bab2bd3c5ce038d8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 537 1 0 \"33d0e9d2_8c2a_4403_a922eac4adeb4c69\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"f7090c07_3db7_43a6_a6f6f1f240ef5dd3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 539 1 0 \"ec16d9e5_0cf5_445f_a5530423cb399af0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 540 1 0 \"cf360d11_2f6d_4d5a_aebddb44396fc713\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_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(\"\"));\r\n// }} \"\"\r\n// {{ 541 1 0 \"593f00d2_b8cd_4808_9c83d0ec5ad21f72\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == UpdateFile.Open(str_SortFile + \" \" + \"Stack_Info$\", hslRead, str_SQL_Update) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 542 1 0 \"c2aededd_d161_42d0_a04098189d4b7a15\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != UpdateFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nUpdateFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 543 1 0 \"72c1e454_d219_418d_83538e055dc2c004\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 544 1 0 \"cd134388_3957_4902_be68ba6eacf4e62a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 545 1 0 \"b040a0be_0f90_4b74_9621eac94d3d16c6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 546 1 0 \"39449030_3a14_4384_a746962d4aa2625f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Reset_Search_Z(ML_STAR);\r\n// }} \"\"\r\n// {{ 547 1 0 \"b040a0be_0f90_4b74_9621eac94d3d16c6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 548 1 0 \"89880218_c8f0_4893_94a1c053dba649d3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Reset_Search_Z(ML_STAR);\r\n// }} \"\"\r\n// {{ 549 1 0 \"b040a0be_0f90_4b74_9621eac94d3d16c6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Find_Stack_Heights_V2\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Windows10$$valid=0$$time=2020-12-17 15:41$$checksum=182d9498$$length=088$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/STAR Channel Movement Tools.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 10/6/2021 2:58:30 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_CHANNEL_MOVEMENT_TOOLS {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction 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); }\r\nfunction GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void { }\r\nfunction Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { }\r\nfunction Get_Channel_Position_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { }\r\nfunction Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { }\r\nfunction Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { }\r\nfunction Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { }\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { }\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { }\r\nfunction InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void { }\r\nfunction InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void { }\r\nfunction ResetChannelFW( device & ML_STAR ) void { }\r\nfunction Reset_Search_Z( device & ML_STAR ) void { }\r\nfunction 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); }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Hamilton$$valid=0$$time=2021-10-06 14:58$$checksum=50ced559$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/STAR Channel Movement Tools.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\FW_HelperLibrary.hs_\"\r\n#include \"HSLDevLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_CHANNEL_MOVEMENT_TOOLS {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction 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 ;\r\nfunction GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void ;\r\nfunction Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ;\r\nfunction Get_Channel_Position_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ;\r\nfunction Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ;\r\nfunction Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void ;\r\nfunction Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void ;\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ;\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ;\r\nfunction InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void ;\r\nfunction InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void ;\r\nfunction ResetChannelFW( device & ML_STAR ) void ;\r\nfunction Reset_Search_Z( device & ML_STAR ) void ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nFW_HELPERLIBRARY::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nFW_HELPERLIBRARY::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"CheckPlateWithTwoChannels\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_ZY;\r\nprivate variable str_te;\r\nprivate variable bool_ParamFound;\r\nprivate variable int_yg;\r\nprivate variable str_YJ;\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable flt_ZY;\r\nprivate variable flt_yg;\r\nprivate variable int_Length;\r\nprivate variable int_ZJ;\r\nprivate variable flt_ZJ;\r\nprivate variable int_YJ;\r\nprivate variable i;\r\nprivate variable int_te;\r\nprivate variable str_th;\r\nprivate variable strFunctionName;\r\nprivate variable flt_YJ;\r\nprivate variable flt_te;\r\nprivate variable str_yo;\r\nprivate variable str_FWCommand;\r\nprivate variable int_th;\r\nprivate variable int_TotalParameters;\r\nprivate variable flt_th;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_yo;\r\nprivate variable str_FWCommandSet;\r\nprivate variable flt_yo;\r\nprivate variable str_XS;\r\nprivate variable str_Parameters;\r\nprivate variable flt_OpenWidth;\r\nprivate variable int_ErrorCode;\r\nprivate variable str_BackChannel;\r\nprivate variable str_XD;\r\nprivate variable str_YV;\r\nprivate variable str_YW;\r\nprivate variable int_XS;\r\nprivate variable int_Count;\r\nprivate variable flt_XS;\r\nprivate variable str_ZY;\r\nprivate variable str_yg;\r\nprivate variable ret_WallFound;\r\nprivate variable str_ParameterSet;\r\nprivate variable str_FrontChannel;\r\nprivate variable str_ZJ;\r\nprivate variable arr_ParameterList[];\r\n// {{ 5 \"CheckPlateWithTwoChannels\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1 1 0 \"95bcb95c_1733_4a3d_ab45d93276ef6d40\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2 1 0 \"2388f1dd_9fa7_468b_8c7b6b112e9e9602\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 4 1 0 \"52ddd19e_50e8_41fa_80cf85a60abb3a8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 5 1 0 \"368f7f3d_907d_4854_93c81733416e4db3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 6 1 0 \"80a00942_f671_47bb_9cc09dbf913782c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 7 1 0 \"ff01c3a3_c20e_466b_b020a2520c34d607\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 8 1 0 \"2e4cf1bf_ecac_40f7_89090b1f82842918\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 9 1 0 \"67a0c963_25c4_47a1_93d67d928ac1a5ba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 10 1 0 \"95bcb95c_1733_4a3d_ab45d93276ef6d40\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 11 1 0 \"1b4941d8_8720_459c_8863f3e9cf6fbebf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_WallFound = 0;\r\n// }} \"\"\r\n// {{ 12 1 0 \"d69a572d_5e22_4fff_96a63f9a6388d64c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0ZP\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"f1586d04_732d_4bfa_b11e07dcdfaaba95\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Parameters = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"3e9e306f_634a_4ebf_9dfdb2b98a8b19d3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ParameterList.SetSize(0);\r\n// }} \"\"\r\n// {{ 15 1 0 \"cd43f0f7_780b_42cf_92ce04ea1739a975\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 16 1 0 \"e7aa73c0_b4f5_4f4f_83f98bf344b16af0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XS = i_flt_XCenter * 10;\r\n// }} \"\"\r\n// {{{ 17 1 0 \"80e6817f_f2af_4d74_93f1081cf0da0ffa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_XS = MthCeiling(flt_XS);\r\n// }} \"\"\r\n// {{{ 18 1 0 \"c071715e_4109_41b5_863b407fccf767a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XS = StrConcat2(int_XS, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 19 1 0 \"ae540665_15f7_434c_a42c1e79bcea22f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XS = StrFillLeft(str_XS, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"fb8faf19_bb0a_4cc9_ac245c520670ebe2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XS = StrConcat2(Translate(\"xs\"), str_XS);\r\n// }} \"\"\r\n// {{ 21 1 0 \"90e8ecfe_4b99_4122_bc1c345c655a7146\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_XS);\r\n// }} \"\"\r\n// {{ 22 1 0 \"cd43f0f7_780b_42cf_92ce04ea1739a975\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"a9e176f5_b89a_4d22_a1091f37c9dd0540\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"8222ab79_c132_4c2d_a48f870cddc3a230\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_XCenter > 0)\r\n{\r\n// }} \"\"\r\n// {{ 25 1 0 \"f69a94af_47a3_4aad_96353bae0317dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XD = Translate(\"xd0\");\r\n// }} \"\"\r\n// {{ 26 1 0 \"8222ab79_c132_4c2d_a48f870cddc3a230\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 27 1 0 \"9bbffb4d_0bec_42da_b61c59047b1e5112\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XD = Translate(\"xd1\");\r\n// }} \"\"\r\n// {{ 28 1 0 \"8222ab79_c132_4c2d_a48f870cddc3a230\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 29 1 0 \"af680953_4b17_4cba_82e067a9ea0e6efa\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_XD);\r\n// }} \"\"\r\n// {{ 30 1 0 \"a9e176f5_b89a_4d22_a1091f37c9dd0540\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"32888b92_6bdc_4fea_84ddfeb0255984dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"bdc4b0e6_86c4_41e4_9a103dd77a7803cf\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YJ = i_flt_YCenter * 10;\r\n// }} \"\"\r\n// {{{ 33 1 0 \"27e1f4e5_3d21_4722_addadc4f3ed1033e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_YJ = MthCeiling(flt_YJ);\r\n// }} \"\"\r\n// {{{ 34 1 0 \"404dcbba_56c1_4ce8_b8e7a13a4a04e56d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YJ = StrConcat2(int_YJ, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 35 1 0 \"2564a187_6767_482d_b9bf6e78d05fc414\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YJ = StrFillLeft(str_YJ, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"226f9208_eb96_49e6_a17cdf7d0f7d3ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YJ = StrConcat2(Translate(\"yj\"), str_YJ);\r\n// }} \"\"\r\n// {{ 37 1 0 \"a35345e9_675f_44f3_ae0fee74db39b5b3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_YJ);\r\n// }} \"\"\r\n// {{ 38 1 0 \"32888b92_6bdc_4fea_84ddfeb0255984dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 39 1 0 \"ad5bb06f_b1ca_44f6_8020171a9f4942fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 40 1 0 \"d0277e76_66d0_4892_b0a234bbfb7fda1d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YV = Translate(\"yv2778\");\r\n// }} \"\"\r\n// {{ 41 1 0 \"c3661003_9e00_4e1c_842a3bd96c33d58b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_YV);\r\n// }} \"\"\r\n// {{ 42 1 0 \"ad5bb06f_b1ca_44f6_8020171a9f4942fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 43 1 0 \"16f97765_7e95_4c96_a954ec5ad587bd92\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 44 1 0 \"0b972594_d87f_42c0_9e1d0fa18d2fc5a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZJ = i_flt_ZMinimumSearchHeight * 10;\r\n// }} \"\"\r\n// {{{ 45 1 0 \"e98526fa_ee6d_47b6_a58faea05351677a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ZJ = MthCeiling(flt_ZJ);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"2211aad3_2110_4710_9d96e5ab70ed20ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZJ = StrConcat2(int_ZJ, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 47 1 0 \"11a7278b_a44f_472f_99e79dd1b093eb50\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZJ = StrFillLeft(str_ZJ, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 48 1 0 \"462d39f8_74f4_4235_be096f01010f4f2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZJ = StrConcat2(Translate(\"zj\"), str_ZJ);\r\n// }} \"\"\r\n// {{ 49 1 0 \"f431ac96_64ee_4de2_b92bb6b1c09f2a52\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_ZJ);\r\n// }} \"\"\r\n// {{ 50 1 0 \"16f97765_7e95_4c96_a954ec5ad587bd92\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 51 1 0 \"6ea7c026_0fda_4563_ab95088bd37c6149\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 52 1 0 \"60048411_1793_4204_af03e26c803d3566\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZY = i_flt_ZSpeed * 10;\r\n// }} \"\"\r\n// {{{ 53 1 0 \"bfc3419d_cac2_4c1d_be524580db72d147\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ZY = MthCeiling(flt_ZY);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"b32464d9_8d4e_41db_86cb5528cc37b330\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZY = StrConcat2(int_ZY, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 55 1 0 \"c36b8915_a9bc_4a79_a4b1a6d4abcdc431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZY = StrFillLeft(str_ZY, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"522e9e7a_8758_4421_a66f99a0f1c725d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZY = StrConcat2(Translate(\"zy\"), str_ZY);\r\n// }} \"\"\r\n// {{ 57 1 0 \"8ef08fad_1ffa_47c4_b8befca7d91e24f4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_ZY);\r\n// }} \"\"\r\n// {{ 58 1 0 \"6ea7c026_0fda_4563_ab95088bd37c6149\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 59 1 0 \"cc3ccedb_17ee_4356_97ff613e1f791266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 60 1 0 \"064ce836_976a_4108_83e027aa495e276f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_yo = i_flt_SearchWidth * 10;\r\n// }} \"\"\r\n// {{{ 61 1 0 \"1086aa9a_f6b6_41fd_b505d753962fe355\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_yo = MthCeiling(flt_yo);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"48e14431_23a7_455e_bcec63f1f78c40f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_yo = StrConcat2(int_yo, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 63 1 0 \"dd9bf8ed_e3dd_4d83_933c7d7600d7be52\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_yo = StrFillLeft(str_yo, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 64 1 0 \"923ee095_4061_4c43_ae5c08ae9afe90cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_yo = StrConcat2(Translate(\"yo\"), str_yo);\r\n// }} \"\"\r\n// {{ 65 1 0 \"0f896c87_2e11_4c46_8df580c1526bc292\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_yo);\r\n// }} \"\"\r\n// {{ 66 1 0 \"cc3ccedb_17ee_4356_97ff613e1f791266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 67 1 0 \"ebfecdaa_5526_4de3_84001ef8cd7982e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 68 1 0 \"ac8dd882_2eab_4e76_a362ee6aec174003\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_OpenWidth = i_flt_SearchWidth + 1.0;\r\n// }} \"\"\r\n// {{ 69 1 0 \"ec8c86cf_562a_4d92_ba81f8902f309c1a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_yg = flt_OpenWidth * 10;\r\n// }} \"\"\r\n// {{{ 70 1 0 \"cf756142_b653_4781_a113f5c6c775fedf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_yg = MthCeiling(flt_yg);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"c221f570_3235_4a20_aa68f0bddf7e9742\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_yg = StrConcat2(int_yg, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 72 1 0 \"997328ce_500a_421d_956765a10b10e4e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_yg = StrFillLeft(str_yg, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"a57b0a44_86ab_481b_b7912233ed83aa2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_yg = StrConcat2(Translate(\"yg\"), str_yg);\r\n// }} \"\"\r\n// {{ 74 1 0 \"96e29d3c_751d_4870_a44f23b6f51a6370\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_yg);\r\n// }} \"\"\r\n// {{ 75 1 0 \"ebfecdaa_5526_4de3_84001ef8cd7982e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"f12b983f_97b7_4089_be27d9d29f3ddd42\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"f267c6c5_b9c3_4e99_b2ccfe06e36f672a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YW = Translate(\"yw20\");\r\n// }} \"\"\r\n// {{ 78 1 0 \"ce5ec637_d995_410d_82642d4a5553af46\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_YW);\r\n// }} \"\"\r\n// {{ 79 1 0 \"f12b983f_97b7_4089_be27d9d29f3ddd42\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 80 1 0 \"b640eb16_359d_4638_a2f01c53dcba944e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 81 1 0 \"ebef869b_b461_4bfc_be3387a57bfda429\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_th = i_flt_MinimumTraverseHeightBegining * 10;\r\n// }} \"\"\r\n// {{{ 82 1 0 \"ed56541b_5d75_41c0_afc1694bff0bb497\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_th = MthCeiling(flt_th);\r\n// }} \"\"\r\n// {{{ 83 1 0 \"533e3a20_217e_4546_88fc5a7130ac1582\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_th = StrConcat2(int_th, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 84 1 0 \"ca26f3be_7040_46c9_b23c33bb70f4c210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_th = StrFillLeft(str_th, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"6d994c03_933d_410f_86540957494c5685\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_th = StrConcat2(Translate(\"th\"), str_th);\r\n// }} \"\"\r\n// {{ 86 1 0 \"e5ec71ef_d8a9_4df0_b1589cab56d5a71b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_th);\r\n// }} \"\"\r\n// {{ 87 1 0 \"b640eb16_359d_4638_a2f01c53dcba944e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 88 1 0 \"d82fc42d_4ea2_413e_8a28a8a66e37d6d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 89 1 0 \"1986dc11_ecac_4c7c_b314a7f46e2310b6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_te = i_flt_MinimumTraverseHeightEnding * 10;\r\n// }} \"\"\r\n// {{{ 90 1 0 \"58f5bf63_0ffc_4cf0_943a8a4f1803753f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_te = MthCeiling(flt_te);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"2f4d15e0_5a1f_4e64_900de2711cc4c45d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_te = StrConcat2(int_te, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0cc62d70_f974_4638_a6a5cab8a681c7fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_te = StrFillLeft(str_te, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"1eb26446_b7e9_4228_8b12dc132a0d8ead\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_te = StrConcat2(Translate(\"te\"), str_te);\r\n// }} \"\"\r\n// {{ 94 1 0 \"d554acce_589f_4c2f_8d93a15d5d184958\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ParameterList.AddAsLast(str_te);\r\n// }} \"\"\r\n// {{ 95 1 0 \"d82fc42d_4ea2_413e_8a28a8a66e37d6d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 96 1 0 \"1587876f_e9a7_4f7b_93a184d06423f2e8\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_ParameterList.GetSize();\r\n// }} \"\"\r\n// {{{ 97 1 0 \"3a1b2b10_bba0_4f6e_aa96ea19229c44d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_BackChannel = StrConcat2(i_int_BackChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 98 1 0 \"0d4d09cd_c89b_4e8a_9cdef98fa54f9ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_BackChannel = StrFillLeft(str_BackChannel, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"e409179e_8726_48eb_b9d88eb78a13fbf0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FrontChannel = StrConcat2(i_int_FrontChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 100 1 0 \"36dc59e4_65eb_4173_a02fede0ccfcf4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FrontChannel = StrFillLeft(str_FrontChannel, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{ 101 1 0 \"1c515df3_2d2f_4c63_a66b004aded6e331\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 102 1 0 \"188edcfe_6a7f_4cf2_b9aa02a8de51f4b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameters = StrConcat2(str_Parameters, arr_ParameterList.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 103 1 0 \"1c515df3_2d2f_4c63_a66b004aded6e331\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 104 1 0 \"bb7e37e4_c6d8_4037_9ed702604e600111\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameters = StrConcat8(str_Parameters, Translate(\"pa\"), str_BackChannel, Translate(\"pb\"), str_FrontChannel, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 105 1 0 \"867fa8c8_c19b_4cf0_b3558ac66b02e95f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommandSet = Translate(\"C0ZO\");\r\n// }} \"\"\r\n// {{{ 106 1 0 \"e81f6087_8c6c_4f4c_ac0900a27b57bd12\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ParameterSet = StrConcat8(Translate(\"pa\"), str_BackChannel, Translate(\"pb\"), str_FrontChannel, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\nTrace(\"FW Command Set Channels:  \",str_FWCommandSet,\" : \",str_ParameterSet);\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_Parameters);\r\n// {{ 108 1 0 \"72b1ed70_9637_49b1_8cbd153426a15791\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"72b1ed70_9637_49b1_8cbd153426a15791\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 109 1 0 \"719e868f_8893_43ae_966b7e0caa72150a\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"719e868f_8893_43ae_966b7e0caa72150a\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 110 1 0 \"447731e0_5956_4067_a02ead95a97d69e4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"er\"), 1, 2, bool_ParamFound, int_ErrorCode);\r\n// }} \"\"\r\n// {{ 111 1 0 \"e68d88c2_7e3c_42f5_8b57eae002e89e34\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ErrorCode != 0)\r\n{\r\n// }} \"\"\r\n// {{ 112 1 0 \"463043a6_76ff_450a_80557f2dbf503962\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_WallFound = 1;\r\n// }} \"\"\r\n// {{ 113 1 0 \"e68d88c2_7e3c_42f5_8b57eae002e89e34\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 114 1 0 \"d7db596f_280f_48df_851e053494008225\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ebb6eed6_9c4a_43f1_b9de4a669b496261\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_WallFound);\r\n// }} \"\"\r\n// {{{ 5 \"CheckPlateWithTwoChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetStopDiskZCoord\" \"Begin\"\r\nfunction GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void {\r\n// }} \"\"\r\nprivate variable str_FW_ReturnPosition;\r\nprivate variable str_ReturnValue;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable int_FW_Position;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable flt_ReturnValue;\r\n// {{ 5 \"GetStopDiskZCoord\" \"InitLocals\"\r\no_flt_ZCoord = 0;\r\n// }} \"\"\r\n// {{ 117 1 0 \"fa9c9a26_1337_4d88_8b04a0f8e3bd15fc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 118 1 0 \"8316c436_8beb_4fa4_95ea71e28496433c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.01072765;\r\n// }} \"\"\r\n// {{{ 119 1 0 \"0fb9cd76_185d_48df_9b002122cc5ed5c7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelNumber(i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"879f0ca7_8ff7_4460_a60acbef7a59e637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), i_int_CurrentChannel, Translate(\"RZ\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 121 1 0 \"33ad331d_aff2_4776_b251af9edcd5c576\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"33ad331d_aff2_4776_b251af9edcd5c576\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 122 1 0 \"900adb35_4356_4df7_85106114edc4345f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rz+\"), flt_Resolution_Z, 5, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 123 1 0 \"78edb55a_f49b_454a_887267280d50dd2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FW_ReturnPosition = StrRight(str_ReturnValue, 5);\r\n// }} \"\"\r\n// {{{ 124 1 0 \"b11f60c4_594d_493c_a1073c0e7885b84e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_FW_Position = StrIVal(str_FW_ReturnPosition);\r\n// }} \"\"\r\n// {{ 125 1 0 \"a771a34a_fec7_42fa_8d0d72e554781ae4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ReturnValue = int_FW_Position * flt_Resolution_Z;\r\n// }} \"\"\r\n// {{{ 126 1 0 \"f86a3e75_3e04_4bba_8d2980981cd5adec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_ReturnValue = MthRound(flt_ReturnValue, 1);\r\n// }} \"\"\r\nTrace(\"Stop disk Z coord:  \",flt_ReturnValue);\r\n// {{{ 128 1 0 \"391e9fb3_9cfe_4485_8cf6375be5f846c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 129 1 0 \"96d5feeb_c718_4ef6_9a7bd52b9ba40f9b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZCoord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{{ 5 \"GetStopDiskZCoord\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Channel_Position\" \"Begin\"\r\nfunction Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable str_FirmwarePARAM;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable bol_SimulationMode;\r\nprivate variable flt_Resolution_X;\r\nprivate variable flt_Resolution_Y;\r\nprivate variable int_Count;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable str_CurrentChannel;\r\nprivate variable flt_ReturnValue;\r\n// {{ 5 \"Get_Channel_Position\" \"InitLocals\"\r\no_X_Coord = 0;\r\no_Y_Coord = 0;\r\no_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 131 1 0 \"c80d77c1_8ede_4c1e_a0f59a4168eae7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 132 1 0 \"97bfc336_a51c_48b2_8a6215593ad6283d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 134 1 0 \"52c37af2_8db3_454d_abdfb9ae34b21212\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 135 1 0 \"ba9ac87f_4a78_44ee_ab6de77690e0a965\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 136 1 0 \"58e58fa9_6bad_4b72_a133356922019479\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 137 1 0 \"59f299c6_bf47_4b9b_b6712dbc1314040f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 138 1 0 \"e05259ad_eaa6_4b6c_ad61d38d5fb86360\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 139 1 0 \"02e2bec1_a275_49e9_9df888d1f9b9da57\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 140 1 0 \"c80d77c1_8ede_4c1e_a0f59a4168eae7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 141 1 0 \"238456d4_02e7_46ed_b33dc9689b71350c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbol_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 142 1 0 \"7449cfa6_6eb4_44de_a8995bb6d4f4ad4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelNumber(i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 143 1 0 \"e734f863_36d6_44b4_b169b677ca217989\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"060d34b6_87da_4d7d_86a666eff11336d7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.1;\r\n// }} \"\"\r\n// {{ 145 1 0 \"d3760c4a_2933_4123_b5b2cbdb44687a90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Y = 0.1;\r\n// }} \"\"\r\n// {{ 146 1 0 \"a576e51b_502d_4d53_b6a66c639e344e0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_X = 0.1;\r\n// }} \"\"\r\n// {{ 147 1 0 \"5dc70757_0fff_47a7_aac3d3c5ba1af04b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 148 1 0 \"fb25a54b_2ec3_4874_bb3259a576c71965\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RD\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 149 1 0 \"f684c094_cdac_438e_a6c615917e79fc1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 150 1 0 \"b53ca538_9201_4921_a4d5544b3ccd0921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 151 1 0 \"d1d7455d_4c4c_4b3c_bc63f95983ec5f16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pn\"), str_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 152 1 0 \"75fc82c4_334b_4bec_a09223c8586d589c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pn\"), i_int_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 153 1 0 \"e2bc182c_9cc6_42bf_8b69e0aa35cfe3cc\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e2bc182c_9cc6_42bf_8b69e0aa35cfe3cc\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 154 1 0 \"38586d71_fd6c_4737_a937cfa49951c5ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 155 1 0 \"7d0b1fb0_21a1_483e_8d6cd662960cc1c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rd\"), flt_Resolution_Z, 4, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 156 1 0 \"f569c101_b414_4ef8_8ba3ead0576b691c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 157 1 0 \"bd8b44bb_79da_4930_afb3d05a382f65cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Z_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 158 1 0 \"f569c101_b414_4ef8_8ba3ead0576b691c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 159 1 0 \"38586d71_fd6c_4737_a937cfa49951c5ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 160 1 0 \"a11312ff_b635_4c30_b80ebedabbd5a5a6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 161 1 0 \"4f041c3f_b2d3_41fe_94bef9c2a3410e52\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 162 1 0 \"dc84f16a_fa19_494b_bdb43bb139e8064e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RB\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 163 1 0 \"2da8882d_6e9c_4ae8_be9ea39303a7fe26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pn\"), i_int_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 164 1 0 \"679236e6_e7ae_4e18_bb7b3934d007e11c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 165 1 0 \"c74c93ac_71f5_4a91_88da50d51d9cf32c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 166 1 0 \"559913db_852b_474a_9f3314b75177c82b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pn\"), str_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 167 1 0 \"e3fbef76_0407_4584_a87d0fccb2234d1f\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e3fbef76_0407_4584_a87d0fccb2234d1f\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 168 1 0 \"42b7a7f8_51b4_44d8_bfb9b10e94be36f9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 169 1 0 \"527444ae_af67_4efb_a52bdb45108e6824\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rb\"), flt_Resolution_Y, 4, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 170 1 0 \"e349a453_9e90_4660_a0bc578036c12682\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 171 1 0 \"afe9454d_bb49_4071_8d5c67bb5c28f558\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Y_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 172 1 0 \"e349a453_9e90_4660_a0bc578036c12682\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 173 1 0 \"42b7a7f8_51b4_44d8_bfb9b10e94be36f9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 174 1 0 \"0ec63267_92f0_4353_bd128f6bd39a183d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 175 1 0 \"35b24da2_43b0_422b_bee3cd8bd5caca9c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 176 1 0 \"9248e99a_e549_4ccd_ac8b6ad815f05708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0\"), Translate(\"\"), Translate(\"RX\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 177 1 0 \"bd5c8ec3_fe2f_4bae_a51fd19c5c579d35\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"bd5c8ec3_fe2f_4bae_a51fd19c5c579d35\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 178 1 0 \"031f85b3_f1bd_4cf9_84bc9836cce4fcf1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 179 1 0 \"6a07e93f_295e_4079_a40d55a67bb83a9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rx\"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 180 1 0 \"3e53220a_2983_4e59_abf8a535ca1d0f15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 181 1 0 \"082b40c9_ec11_4b0a_8b4d459cb6219fef\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_X_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 182 1 0 \"3e53220a_2983_4e59_abf8a535ca1d0f15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"031f85b3_f1bd_4cf9_84bc9836cce4fcf1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 184 1 0 \"45a497c0_6c82_4388_ada588076c0d2320\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\nTrace(\"   Current X Position:  \",o_X_Coord);\r\nTrace(\"   Current Y Position:  \",o_Y_Coord);\r\nTrace(\"   Current Z Position:  \",o_Z_Coord);\r\n// {{{ 5 \"Get_Channel_Position\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable i_int_X_Position;\r\nprivate variable int_SafeTravelHeight;\r\nprivate variable str_ReturnValue;\r\nprivate variable flt_SafeTravelHeight;\r\nprivate variable int_CutNum;\r\nprivate variable str_Y_Position;\r\nprivate variable str_FWParameter;\r\nprivate variable int_Length;\r\nprivate variable int_Y_Position;\r\nprivate variable str_TH;\r\nprivate variable i;\r\nprivate variable strFunctionName;\r\nprivate variable str_ZP;\r\nprivate variable str_FWCommand;\r\nprivate variable int_TotalParameters;\r\nprivate variable flt_Y_Position;\r\nprivate variable str_YP;\r\nprivate variable str_Z_Position;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_XP;\r\nprivate variable int_Z_Position;\r\nprivate variable str_TM;\r\nprivate variable flt_Z_Position;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_Count;\r\nprivate variable int_TotalYValues;\r\nprivate variable str_ChValue;\r\nprivate variable int_TotalZValues;\r\nprivate variable i_str_X_Position;\r\nprivate variable int_ChValue;\r\nprivate variable int_ChPatternLength;\r\nprivate variable str_SafeTravelHeight;\r\nprivate variable int_ChIndex;\r\nprivate variable arr_Parameters[];\r\nprivate variable arr_ChPattern[];\r\n// {{ 5 \"Move_Channels_To_Absolute_Position\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 453 1 0 \"0c5309c7_89c9_4b5e_aba84e881040bc71\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 454 1 0 \"35123262_d17f_446b_aa9dd903b3ccffd3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 455 1 0 \"6b00e2a7_3cb6_4c01_bcf043080c84c0d4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 457 1 0 \"7ee99627_6b9a_48ba_96914bad749897e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 458 1 0 \"1c83844a_4367_4654_b4070a28a308e2dd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 459 1 0 \"cafc65db_ea3e_4527_9f736fe71a03f718\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 460 1 0 \"9b934e84_2a08_4294_8c2fd6bf737c1d41\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 461 1 0 \"5aff3373_e806_4df6_9c4d059d96a43555\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 462 1 0 \"d585fb0b_169c_408c_be60d64232eb536b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 463 1 0 \"35123262_d17f_446b_aa9dd903b3ccffd3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 464 1 0 \"290ad16f_a913_4d29_97d232269583372a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 465 1 0 \"c64fe919_c548_4f96_b28c7ea68c304d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 466 1 0 \"1deeb182_d73a_473e_87abb5ea2def1f42\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 467 1 0 \"5b828746_74fe_4655_ad50d5439e268301\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChPatternLength = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 468 1 0 \"f2166a99_4b36_4ae6_870e240690910fe4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChPatternLength < int_TotalChannels)\r\n{\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",i_str_ChannelPattern);\r\n// {{{ 470 1 0 \"9a5ab7e2_ab05_4a52_9c231eaef85f213b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Channel pattern is less than the total number of channels on the system!\"));\r\n// }} \"\"\r\n// {{ 471 1 0 \"f2166a99_4b36_4ae6_870e240690910fe4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 472 1 0 \"2a51791b_6465_498a_9c9a4730f19b3814\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalYValues=i_arr_Y_Position.GetSize();\r\n// }} \"\"\r\n// {{ 473 1 0 \"cbbfc14e_9b00_4876_9f1ad1f69b9196d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalYValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 474 1 0 \"6c7eb953_7a55_432d_b7f2f1c4b9ece3c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Y Values\"), i_arr_Y_Position);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"345c8d70_4691_497d_93a0d766ccd1b603\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Y Positions\"));\r\n// }} \"\"\r\n// {{ 476 1 0 \"cbbfc14e_9b00_4876_9f1ad1f69b9196d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 477 1 0 \"0d87e761_d85b_4d3b_83bfc61de7647c78\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalZValues=i_arr_Z_Position.GetSize();\r\n// }} \"\"\r\n// {{ 478 1 0 \"c5fd6230_898f_44c3_9fe3ec6819e8b0e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalZValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 479 1 0 \"9da0eddc_c4c5_4ba8_968aee35954dfa03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Z Values\"), i_arr_Z_Position);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"2bf050cb_1bb4_425e_b79309ab8e84b129\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Z Positions\"));\r\n// }} \"\"\r\n// {{ 481 1 0 \"c5fd6230_898f_44c3_9fe3ec6819e8b0e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"290ad16f_a913_4d29_97d232269583372a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"77c19676_e57d_4d7c_bbf5090c5b256574\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining;\r\n// }} \"\"\r\n// {{ 484 1 0 \"e2de2bfb_ff4d_498d_846005884056673a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 485 1 0 \"a8fafdb7_125f_4eae_9fc500af7b77ac16\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0JM\");\r\n// }} \"\"\r\n// {{ 486 1 0 \"b7081531_c7d2_4080_9818dc11c934600c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 487 1 0 \"96d6f622_48cb_4d8c_9607830b6a6cf3d4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 488 1 0 \"b28fb61d_3da0_4944_ac8dd7ab729a1006\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 489 1 0 \"6ab3142f_9764_452f_abff00202fe0b1af\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 490 1 0 \"14c62e1e_a131_44b7_84eb7104155713f0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 491 1 0 \"b11c8f7e_dc05_47f5_bf4c02a25edfbd03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 492 1 0 \"c9b66123_932c_4144_9e4de3137c1bc1c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 493 1 0 \"3634f3dc_bb66_4e2d_b69bed1f88fff1f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 494 1 0 \"5a9560a2_22e2_4ac1_b60a15fc0977ae9e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 495 1 0 \"14c62e1e_a131_44b7_84eb7104155713f0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 496 1 0 \"70877773_65ed_4307_bc63934b5859ed1a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 497 1 0 \"3ba2d5d2_7748_4ba3_b1787918dcd54203\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 498 1 0 \"104cf3ca_1001_40e5_ae2601cda6fc6b44\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 499 1 0 \"e96bc810_88ec_460d_97570cd95648fb97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 500 1 0 \"104cf3ca_1001_40e5_ae2601cda6fc6b44\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 501 1 0 \"98fb9d6e_de46_4d5e_b33a3af320fe7f23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 502 1 0 \"3ba2d5d2_7748_4ba3_b1787918dcd54203\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 503 1 0 \"50e44c31_e8e0_42f8_9f08421adfbe9b01\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 504 1 0 \"b28fb61d_3da0_4944_ac8dd7ab729a1006\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"cfaa6d94_f0ed_4087_a1e19360aad912b0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 506 1 0 \"64c84607_dce9_4d76_a2f4428862f46c84\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xp\");\r\n// }} \"\"\r\n// {{ 507 1 0 \"26a1d28c_8229_47d6_bdd055118865a8c5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_flt_X_Position = i_flt_X_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 508 1 0 \"e18f3498_ccf4_4b63_984293153aad6612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_int_X_Position = MthCeiling(i_flt_X_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 509 1 0 \"fcbe611e_0976_48e6_8eea8fd782f96e53\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_int_X_Position = MthFloor(i_flt_X_Position);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"e18e5de2_8f96_4832_92f45131ce01043b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrConcat2(i_int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 511 1 0 \"6172e874_1a4a_4d3f_a701072a20a62046\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrFillLeft(i_str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 512 1 0 \"af281060_8558_4a5e_8826b199d903b9ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, i_str_X_Position, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 513 1 0 \"7398c745_0539_4eef_94eac9aa701fa21f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 514 1 0 \"cfaa6d94_f0ed_4087_a1e19360aad912b0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"8e234886_c9b5_4d40_81c00643f6d6f73f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"46cfd617_ba54_4125_abbe41d153b1d317\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 517 1 0 \"8a1b3a94_3ba5_491a_8ae86096a642d67f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalYValues;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 518 1 0 \"fd7f1ce1_4abd_4856_a734b68fcbb2ee1d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 519 1 0 \"992086ec_38ad_4c29_a0651da3807b7814\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 520 1 0 \"fd7f1ce1_4abd_4856_a734b68fcbb2ee1d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 521 1 0 \"8e173cdc_8870_4817_b4364aafccfcc590\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 522 1 0 \"a8a3c07d_b7d1_4ca3_8a4ad23e2120ce3f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 523 1 0 \"f16f5fee_1ed2_4c36_8098ff4c32c11669\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 524 1 0 \"be37f038_f60e_447a_8f5129b85354c822\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthFloor(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 525 1 0 \"6cdb8bfd_e73e_4c99_a3c473c695774819\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 526 1 0 \"ffbbf990_0c5f_4f2f_93a6d917c3ccaa8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 527 1 0 \"68f2a142_cc4a_478a_8d97b10711659bc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 528 1 0 \"8a1b3a94_3ba5_491a_8ae86096a642d67f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 529 1 0 \"de94c9aa_cc2a_412b_a51138be8e5ad6af\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 530 1 0 \"8e234886_c9b5_4d40_81c00643f6d6f73f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 531 1 0 \"603d2655_93b2_4877_86cf841821b0099d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 532 1 0 \"145e585e_67f3_43f7_855dc7a0f7733691\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 533 1 0 \"cd68e15d_5a8f_4c87_b72610c8319ff27e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 534 1 0 \"d796ce1f_7103_4016_985aed15a984e000\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 535 1 0 \"232a1151_7a41_439d_aef9fe193522f537\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 536 1 0 \"62e6baaa_ad18_417d_a732b2cb3b1fd4af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 537 1 0 \"2707e7d3_efaa_4ce1_902c6af2560840c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 538 1 0 \"e845b6e4_1e8d_42dd_83be97d01270af21\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 539 1 0 \"603d2655_93b2_4877_86cf841821b0099d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"8bb1b1e8_7156_4893_8a9418764a0bbf62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 541 1 0 \"a87b2b4b_9c7c_4241_88366afa1bcb9034\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"zp\");\r\n// }} \"\"\r\n// {{ 542 1 0 \"b46377bf_edaf_485b_b82aaf941cf951c0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalZValues;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 543 1 0 \"3745f2b3_f43f_4ca9_a7eb7d64286b5269\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 544 1 0 \"ee48df7d_34d2_4506_a268d609cffeb9b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 545 1 0 \"3745f2b3_f43f_4ca9_a7eb7d64286b5269\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 546 1 0 \"5277a6ef_1590_423d_80a8ce7eaebdb36f\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 547 1 0 \"9983d518_816d_4be1_97386822b0776c47\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 548 1 0 \"e0b00c4f_3f3e_4f01_8d41c4962227e643\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 549 1 0 \"e3374866_c1d1_4a0b_806436267b5fa6c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 550 1 0 \"a8773445_fbf3_4427_86d14bced6ed6e3e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 551 1 0 \"41a85799_8196_4542_b0d364df2ba53bc5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 552 1 0 \"b46377bf_edaf_485b_b82aaf941cf951c0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 553 1 0 \"fd334142_46a3_4f73_8926644e02b8222b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 554 1 0 \"8bb1b1e8_7156_4893_8a9418764a0bbf62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 555 1 0 \"b099615f_9367_4c90_98de7894412a461c\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 556 1 0 \"5eefc37e_2f99_4a82_8cd628cda201f709\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 557 1 0 \"8556399e_dcbc_47b7_9868c616128a316c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 558 1 0 \"5eefc37e_2f99_4a82_8cd628cda201f709\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 560 1 0 \"91307dc9_649a_484b_b9b3285692706c50\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"91307dc9_649a_484b_b9b3285692706c50\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 561 1 0 \"ab892d7e_0d06_4a1a_b8d85e2357499ac1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Reset_Search_Z\" \"Begin\"\r\nfunction Reset_Search_Z( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"Reset_Search_Z\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 844 1 0 \"54a33f46_23ad_4d27_acb96466a0a34434\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 845 1 0 \"ab3356de_8f6d_45a0_ac6ae775fac39a0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 846 1 0 \"8a3387c2_d39c_4b16_bf35617f1257785b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 848 1 0 \"d29bdaab_d3b2_47f3_8c129b8ce60ce409\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 849 1 0 \"4a30dd18_dfe8_4c44_876d23c8f577ad65\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 850 1 0 \"e65c3f36_7950_491e_b03348072e1110d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 851 1 0 \"c53346d4_b278_412f_bca2fafea9f206f4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 852 1 0 \"07008eae_857c_4405_8631c6afbd5f889a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 853 1 0 \"d48e36eb_5d76_4f07_b51dfca8b1ce6e69\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 854 1 0 \"ab3356de_8f6d_45a0_ac6ae775fac39a0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 855 1 0 \"b45db223_ddc7_45c3_8cd4471483138db0\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b45db223_ddc7_45c3_8cd4471483138db0\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 856 1 0 \"782c5d3c_b400_44da_a8a374830875db14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 5 \"Reset_Search_Z\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Search_Z\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bool_ParamFound;\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable int_SeekHeight;\r\nprivate variable strFunctionName;\r\nprivate variable int_Channel;\r\nprivate variable flt_SeekHeight;\r\nprivate variable str_FirmwareParam;\r\nprivate variable flt_Z_MinPlusTip;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable int_ErrorCode;\r\nprivate variable int_Count;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable ret_WallFound;\r\n// {{ 5 \"Search_Z\" \"InitLocals\"\r\no_flt_Z_Found = 0;\r\n// }} \"\"\r\n// {{ 858 1 0 \"98570bc4_19fe_4872_bbecd2382ede813d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 859 1 0 \"25b40f2c_6976_4558_8811e52cf870c5dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 861 1 0 \"643ab493_1872_477e_b19db08fd37555ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 862 1 0 \"53e88b28_044e_4d16_9db4eb5dc35507e4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 863 1 0 \"a1dfd38a_0e97_4181_a7467eafa5fd287d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 864 1 0 \"d2e92f58_bd8a_4420_92de107a14297986\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 865 1 0 \"a854fb45_4ac9_4c0d_bf0a59b91f8be495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 866 1 0 \"1123ee7d_e001_40f0_a1afed83e5270ccd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 867 1 0 \"98570bc4_19fe_4872_bbecd2382ede813d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 868 1 0 \"ac6e6bce_f19a_4b99_a9ebdf1107a3eae4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Channel = i_int_CurrentChannel;\r\n// }} \"\"\r\n// {{{ 869 1 0 \"179cacbb_7479_4160_8050f77aaa1cb030\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelNumber(int_Channel);\r\n// }} \"\"\r\n// {{ 870 1 0 \"a894e107_ad37_4329_927441e0cc2300e2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 871 1 0 \"7ce49fc6_bc04_4f5f_abbda643a8421fc9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.01072765;\r\n// }} \"\"\r\n// {{ 872 1 0 \"004b8ab0_0f70_482e_98c6fc2610a821ef\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 873 1 0 \"2fbb7377_2c1d_440f_9d3c06623f465603\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_WallFound = 0;\r\n// }} \"\"\r\n// {{ 874 1 0 \"a39603ab_cab0_489d_a06066e10f34c3d9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_MinPlusTip = i_flt_Z_Min + i_flt_TipLength;\r\n// }} \"\"\r\n// {{ 875 1 0 \"d9bc1b2b_a6b6_4b56_9ef0bb1f009db9d9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SeekHeight = flt_Z_MinPlusTip / (flt_Resolution_Z * 1.0);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"7fbba71d_9dbf_4dd3_a17ca7735773e53c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SeekHeight = MthCeiling(flt_SeekHeight);\r\n// }} \"\"\r\n// {{ 877 1 0 \"41a9f4dd_dd57_4fab_a5961040e0cc341a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SeekHeight < 12584)\r\n{\r\n// }} \"\"\r\n// {{ 878 1 0 \"200d487c_701b_45da_90a29e49384b1465\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SeekHeight = 12584;\r\n// }} \"\"\r\n// {{ 879 1 0 \"41a9f4dd_dd57_4fab_a5961040e0cc341a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 880 1 0 \"835d8015_a96e_438e_9167b81985226772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), int_Channel, Translate(\"ZG\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 881 1 0 \"bf9ac522_1ef9_471a_a72e3b4c7854d343\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"bf9ac522_1ef9_471a_a72e3b4c7854d343\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 882 1 0 \"d0c99af4_44d7_4cb7_bb15364062250df2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"edc28cb1_9aea_44c6_846d988586190c5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), int_Channel, Translate(\"ZG\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 884 1 0 \"de08c0ca_be6f_4fd9_a8d0d93ccccb8fb9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 885 1 0 \"8334d914_2eb6_461b_bac6a6004852ea77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat4(Translate(\"za\"), int_SeekHeight, Translate(\"zv01500zr005zw\"), i_int_Sensitivity);\r\n// }} \"\"\r\n// {{ 886 1 0 \"19a78278_fb8c_430a_a23cae80e09bae69\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 887 1 0 \"fa1f2e7f_d618_4f97_a31d580fbb260be0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat4(Translate(\"za\"), int_SeekHeight, Translate(\"zv03000zr005zw\"), i_int_Sensitivity);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 888 1 0 \"cc170063_83cf_4ac4_a3c0c0a8ee72142b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 889 1 0 \"810ffbfc_c972_44ef_ab7485912aa14622\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat4(Translate(\"za\"), int_SeekHeight, Translate(\"zv04500zr005zw\"), i_int_Sensitivity);\r\n// }} \"\"\r\n// {{ 890 1 0 \"4db35b5b_f6ac_4650_bdd1217a963f7b17\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"4db35b5b_f6ac_4650_bdd1217a963f7b17\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 891 1 0 \"3bcd04f0_14c1_48da_ae1e8a47e13767b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"er\"), 1, 2, bool_ParamFound, int_ErrorCode);\r\n// }} \"\"\r\n// {{ 892 1 0 \"db2bd7d5_b353_444f_9bf12303e2b8bead\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ErrorCode != 0)\r\n{\r\n// }} \"\"\r\n// {{ 893 1 0 \"77cc0fb9_4d69_47b9_ab302e1669eed3d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_WallFound = 1;\r\n// }} \"\"\r\n// {{ 894 1 0 \"db2bd7d5_b353_444f_9bf12303e2b8bead\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 895 1 0 \"f515ca26_5124_4f2a_8131f4511e5de27b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"6eca3477_2809_4f3e_b7f7a30f53332e03\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetStopDiskZCoord(ML_STAR, i_int_CurrentChannel, o_flt_Z_Found);\r\n// }} \"\"\r\n// {{ 897 1 0 \"d039b95e_1789_42dd_892c08b0962970e4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Found = o_flt_Z_Found - i_flt_TipLength;\r\n// }} \"\"\r\n// {{ 898 1 0 \"e7743dab_8883_42d4_9d40930d810beee0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 899 1 0 \"1d1eed8a_eb15_41a5_b808246d5b511513\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), Translate(\"X\"), Translate(\"AA\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 900 1 0 \"bdd3f735_0972_4a1b_b569006b1ec8ec03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat8(Translate(\"zv12000\"), Translate(\"zr075\"), Translate(\"zw3\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 901 1 0 \"3bb69fc3_70d2_44dd_8c78ccc6e045d1ba\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"3bb69fc3_70d2_44dd_8c78ccc6e045d1ba\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 902 1 0 \"911825bd_393d_44c2_85a3c6a51e897ce7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"b30a91d1_26cc_4860_8731a8968739d89b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), int_Channel, Translate(\"ZG\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 904 1 0 \"33d8226a_b527_46d6_8999a8809f9d23f5\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"33d8226a_b527_46d6_8999a8809f9d23f5\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 905 1 0 \"b90bab36_b64f_4f21_92e185f2850c3570\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b90bab36_b64f_4f21_92e185f2850c3570\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 906 1 0 \"6194f508_a7ff_4402_b39e72e3b191fd02\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"a722d244_9fcd_4da9_bcb884eb02d549c5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_WallFound);\r\n// }} \"\"\r\n// {{{ 5 \"Search_Z\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Channel_Position_1mL\" \"Begin\"\r\nfunction Get_Channel_Position_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable str_FirmwarePARAM;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable flt_Resolution_X;\r\nprivate variable flt_Resolution_Y;\r\nprivate variable int_Count;\r\nprivate variable str_CurrentChannel;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable flt_ReturnValue;\r\n// {{ 5 \"Get_Channel_Position_1mL\" \"InitLocals\"\r\no_X_Coord = 0;\r\no_Y_Coord = 0;\r\no_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 187 1 0 \"daa75f5c_9522_4b58_930a0a6d7fd4330c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 188 1 0 \"1f1f5a51_6e72_4996_b49e812baf95bfa7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 190 1 0 \"1b1a8005_b7fc_4302_93815666d9761561\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 191 1 0 \"bd196b88_17ff_4a10_be204dac789544d3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 192 1 0 \"6aa28391_671f_4b2d_b2cf6d30705a8412\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 193 1 0 \"f0604e8a_5587_4148_b072b906c6d58353\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 194 1 0 \"64505a23_a4e2_4587_90c93e97f04184d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 195 1 0 \"943b5bb5_d694_4a5d_92793ef52e8a3828\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 196 1 0 \"daa75f5c_9522_4b58_930a0a6d7fd4330c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 197 1 0 \"7986593d_8c10_4598_94d5c114e7cbfa0c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 198 1 0 \"80be88c8_b009_4ab0_b8be224537cc129f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.1;\r\n// }} \"\"\r\n// {{ 199 1 0 \"2c84cb3a_eeba_4863_8bae0af7e43920a5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Y = 0.1;\r\n// }} \"\"\r\n// {{ 200 1 0 \"0f3e4416_ac52_4b0a_a83e871aca329ffc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_X = 0.1;\r\n// }} \"\"\r\n// {{ 201 1 0 \"fa513b6f_2fd3_4dbb_8dd8cdbf84864a10\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 202 1 0 \"6bfa998d_9699_4055_89918ebb03504881\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RD\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 203 1 0 \"430c7169_326c_41ce_8ce8d9370abd5aaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 204 1 0 \"bc9ff2b9_6ec5_4215_a0737c0805f0875d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"00477595_2572_4743_a3bfeec47a670409\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pn\"), str_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 206 1 0 \"b66cdf9d_e7da_4827_bd535b7bea166094\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b66cdf9d_e7da_4827_bd535b7bea166094\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 207 1 0 \"5ac49141_caf2_4dcc_8c00a3c256d847da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 208 1 0 \"255026d9_bc35_48ba_9a9007226576d73d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 209 1 0 \"5cad8926_4cea_4feb_982114d117482469\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rd\"), flt_Resolution_Z, 4, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 210 1 0 \"3c308526_fbf7_4dda_8b7e249eccdd235b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 211 1 0 \"16a1b580_0b19_4229_8ae6d5e99af4e221\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Z_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 212 1 0 \"3c308526_fbf7_4dda_8b7e249eccdd235b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 213 1 0 \"255026d9_bc35_48ba_9a9007226576d73d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 214 1 0 \"e37b6eec_2cb5_486f_82c2da7d47fcb4b3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 215 1 0 \"a16f1ecc_38e4_445e_8d30e7767fd9f562\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RB\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 216 1 0 \"31b8e798_0b53_453b_af6176308f0411c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 217 1 0 \"59c52dd5_3801_40b0_92ded84ea67e6efa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"e12c4b17_ee98_4620_80784a9628ee23d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pn\"), str_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 219 1 0 \"51995bb9_c25e_4038_84921c864de88fbf\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"51995bb9_c25e_4038_84921c864de88fbf\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 220 1 0 \"d0e94fcb_6606_404c_8f4ccc5343cf19a0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 221 1 0 \"6812add1_b699_4e17_a30d67dfaae9f9cd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 222 1 0 \"3612ee22_3d6f_4a6e_b7396a1c43f6f8d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rb\"), flt_Resolution_Y, 4, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 223 1 0 \"a2614c52_9fb1_44ec_99c23be303d7de58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 224 1 0 \"4d4c7a68_c4ad_4409_a48520e8de4dc04e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Y_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 225 1 0 \"a2614c52_9fb1_44ec_99c23be303d7de58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 226 1 0 \"6812add1_b699_4e17_a30d67dfaae9f9cd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 227 1 0 \"29cdfbfc_ed4e_4596_b75b57f63d0804d7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 228 1 0 \"c6832dc4_fd74_4a76_bcd6fe4814ca7ed3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0\"), Translate(\"\"), Translate(\"RX\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 229 1 0 \"e45ea220_05ec_44b3_a283e250b13df33c\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e45ea220_05ec_44b3_a283e250b13df33c\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 230 1 0 \"95e011c4_54e8_4aa4_819a60c9330e9760\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 231 1 0 \"c60d11e9_509c_4e70_8b5afbb0baae33fa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 232 1 0 \"dfdecb5e_fd3a_4173_85e83c8d542a7a28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rx\"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 233 1 0 \"236f0001_670f_4bd7_b8e98fac1d5b36be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 234 1 0 \"d1e68a46_7321_4433_8bbc8d2ae6e23caa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_X_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 235 1 0 \"236f0001_670f_4bd7_b8e98fac1d5b36be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 236 1 0 \"c60d11e9_509c_4e70_8b5afbb0baae33fa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"   Current X Position:  \",o_X_Coord);\r\nTrace(\"   Current Y Position:  \",o_Y_Coord);\r\nTrace(\"   Current Z Position:  \",o_Z_Coord);\r\n// {{{ 5 \"Get_Channel_Position_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Channel_Position_5mL\" \"Begin\"\r\nfunction Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable str_FirmwarePARAM;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable flt_Resolution_X;\r\nprivate variable int_Count;\r\nprivate variable flt_Resolution_Y;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable str_CurrentChannel;\r\nprivate variable flt_ReturnValue;\r\n// {{ 5 \"Get_Channel_Position_5mL\" \"InitLocals\"\r\no_X_Coord = 0;\r\no_Y_Coord = 0;\r\no_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 239 1 0 \"5f702af8_de5a_46c8_b56a71ff1e1538a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 240 1 0 \"a9840c82_4dbd_4971_ae1a8f747fdf84b0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 242 1 0 \"75836450_ce3f_40c4_845f53bddae7b7cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 243 1 0 \"93e04be1_2ea7_4389_b237f7c448905de6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 244 1 0 \"d88187f2_7afc_4e6b_957f957154a61af1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 245 1 0 \"8027255c_4bf3_473f_b952cf8b4fdea78a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 246 1 0 \"d2bd9f1e_e9ee_4df6_b676bd65c39d3656\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 247 1 0 \"3fa2940b_2016_49bb_a3efa4a30979bf5e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 248 1 0 \"5f702af8_de5a_46c8_b56a71ff1e1538a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 249 1 0 \"2efcf20f_0e15_4f76_b61cd2b9bafa827f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 250 1 0 \"3878e6f2_1245_4d6d_b18f193c8088ffa9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.1;\r\n// }} \"\"\r\n// {{ 251 1 0 \"33da65c4_b2d5_4045_9a72fe32a22036c5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Y = 0.1;\r\n// }} \"\"\r\n// {{ 252 1 0 \"cb97552f_ca9c_432d_b1d5c43018c9d9b7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_X = 0.1;\r\n// }} \"\"\r\n// {{ 253 1 0 \"0f4c161b_38b3_460c_a6c84aab799721f7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 254 1 0 \"a1eb43cf_b422_4faf_95d185c2b1bca3d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0UD\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 255 1 0 \"6a1c22cc_d741_4b44_ac8e16d1b2bb0be1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 256 1 0 \"fba842c6_f0a4_43e7_be2e55a49448ed83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate(\"0\"), 1);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"63eddbf1_6dfd_4e74_b17af494e59c0997\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pm\"), str_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 258 1 0 \"e6fc3adb_5ee1_45d9_8a56c166eb692cd6\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e6fc3adb_5ee1_45d9_8a56c166eb692cd6\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 259 1 0 \"a2dcac72_a2a5_46cd_847ce579c2d22d9e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 260 1 0 \"7152cd4a_412c_43c9_ad54224b0767e25c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 261 1 0 \"af2f20a6_641b_40f3_8cf8c7d63bb82e20\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rd\"), flt_Resolution_Z, 4, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 262 1 0 \"6e0970ef_5139_4e05_94c30e233f4f485b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 263 1 0 \"c51c4013_5cc9_4244_a20680b99450396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Z_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 264 1 0 \"6e0970ef_5139_4e05_94c30e233f4f485b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 265 1 0 \"7152cd4a_412c_43c9_ad54224b0767e25c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 266 1 0 \"ad5140c3_d9a3_47c8_aa0d77b453b71849\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 267 1 0 \"f70e37ca_ecf6_4770_82af98ff70443dc5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0UB\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 268 1 0 \"b3928049_ffed_4373_8850c44de7f50364\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 269 1 0 \"335644f3_0fbf_4aeb_991ce4da5dc3ff8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate(\"0\"), 1);\r\n// }} \"\"\r\n// {{{ 270 1 0 \"e6cae7e7_726e_44ce_9921110433e5c174\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pm\"), str_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 271 1 0 \"c74ad185_a96e_465c_a5f54ad103fae927\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c74ad185_a96e_465c_a5f54ad103fae927\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 272 1 0 \"74700d80_7d41_4665_83d9af5b6e267117\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 273 1 0 \"a338d474_fb6a_48ff_b9670eb0dc8f1cdf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 274 1 0 \"08ec6b1b_d615_4681_b2f56b240aedd22b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rb\"), flt_Resolution_Y, 4, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 275 1 0 \"caf1ca45_fef6_461e_ab4bb0e6711a1acd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 276 1 0 \"3ece95ab_c2e1_4c53_89e295e80ee2ddd9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Y_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 277 1 0 \"caf1ca45_fef6_461e_ab4bb0e6711a1acd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 278 1 0 \"a338d474_fb6a_48ff_b9670eb0dc8f1cdf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 279 1 0 \"73fbdc9f_33f5_45e0_b3f3d8c07beb631b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 280 1 0 \"20c1d87a_5907_4b17_81b59161d32bf35e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0\"), Translate(\"\"), Translate(\"RX\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 281 1 0 \"11669a50_5998_440b_bdc30077b35bf562\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"11669a50_5998_440b_bdc30077b35bf562\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 282 1 0 \"c4134e17_ca3a_4fc7_842f3abd0525855b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 283 1 0 \"0a20e396_8ed1_41f5_a4d18cf9c114bfb9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 284 1 0 \"9ca06edf_85b2_44a2_a5ff283f5af4098b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rx\"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 285 1 0 \"7b72af82_19e2_4d06_8f9555b3a641cbc9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 286 1 0 \"2bb11dec_0c25_44a2_9e8fdf62d8b4c46e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_X_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 287 1 0 \"7b72af82_19e2_4d06_8f9555b3a641cbc9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 288 1 0 \"0a20e396_8ed1_41f5_a4d18cf9c114bfb9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"   Current X Position:  \",o_X_Coord);\r\nTrace(\"   Current Y Position:  \",o_Y_Coord);\r\nTrace(\"   Current Z Position:  \",o_Z_Coord);\r\n// {{{ 5 \"Get_Channel_Position_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Present_1mL\" \"Begin\"\r\nfunction Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable flt_Value;\r\nprivate variable str_Firmware;\r\n// {{ 5 \"Get_Tip_Present_1mL\" \"InitLocals\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 291 1 0 \"6e4d9a46_bed8_4afd_a7b8d2f2655e3db0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 292 1 0 \"e34494e3_e19e_4564_a3b7614ec9d7bec6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 294 1 0 \"244866f1_ff0d_4c4b_82e6a7556d3f9e1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 295 1 0 \"e4914968_189e_4065_9f75978d6c7cb5c8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 296 1 0 \"b6171ec9_ce8c_4223_87febd5d124c866b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 297 1 0 \"dd9e2f8d_1c98_478d_91aa3c75402a4044\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 298 1 0 \"324b01c0_0cc2_42f7_87b61be55fd26015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 299 1 0 \"6a08e286_9cb6_4340_9e352201ea96797b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 300 1 0 \"6e4d9a46_bed8_4afd_a7b8d2f2655e3db0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 301 1 0 \"6411dfac_3226_481b_af1e16eb3a6225d3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 302 1 0 \"5d7415ff_debe_426d_a33ac6fb29bcc413\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 303 1 0 \"d0ab2e2b_843c_40aa_ace6bec7de391fea\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 304 1 0 \"6e89a23b_3ad5_4e5d_9a9fbe27cbea74f7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 1;\r\n// }} \"\"\r\n// {{ 305 1 0 \"75465e9b_aa5f_4a12_ab4f69b99fa1db84\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 306 1 0 \"9cc547c6_66db_48fd_87e9c31816aed3c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"P\"), i_int_CurrentChannel, Translate(\"RT\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 307 1 0 \"d531ac8a_5146_4e9d_a9203a97c4cbfea9\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"d531ac8a_5146_4e9d_a9203a97c4cbfea9\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 308 1 0 \"c09a97f0_6c3d_450d_ae8b1525d7c6c876\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 309 1 0 \"6e1782d7_c0aa_458a_9e1fc670fe6ed78d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 310 1 0 \"c1f72452_45c3_467d_8f753dcbca994a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rt\"), flt_Resolution, 1, bol_ParameterFound, flt_Value);\r\n// }} \"\"\r\n// {{ 311 1 0 \"58dc44c9_c583_4442_b7d5b2209c639b9b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 312 1 0 \"48eae4b0_5d4a_4321_91ebc95a39e7ac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Value == 1.0)\r\n{\r\n// }} \"\"\r\n// {{ 313 1 0 \"5f87e80b_6233_48a7_8fdb37dac977449a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 1;\r\n// }} \"\"\r\n// {{ 314 1 0 \"48eae4b0_5d4a_4321_91ebc95a39e7ac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 315 1 0 \"44b50d29_a94a_4fa6_a54caa6cc1625bc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 316 1 0 \"48eae4b0_5d4a_4321_91ebc95a39e7ac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 317 1 0 \"58dc44c9_c583_4442_b7d5b2209c639b9b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Tip Present:  \",o_bool_TipPresent);\r\n// {{{ 5 \"Get_Tip_Present_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Present_5mL\" \"Begin\"\r\nfunction Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable flt_Value;\r\nprivate variable str_Firmware;\r\n// {{ 5 \"Get_Tip_Present_5mL\" \"InitLocals\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 320 1 0 \"ebe08941_0805_40f8_9c24e5928accf34a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 321 1 0 \"b458c7ac_0f64_44ba_b1639ab6495ce0b5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 323 1 0 \"73478616_3f06_4f11_91a70e7c516dc71d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 324 1 0 \"30ad3fbe_3621_4c00_ad6d4c9351892b26\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 325 1 0 \"78d67337_bfb8_4656_92285af3baff60d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 326 1 0 \"7a7649ff_b226_44d9_9563b1651633848b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 327 1 0 \"9634b4c9_7f17_4ede_b2eb5ce08f7e9243\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 328 1 0 \"f5214744_4bdc_4584_aec184124f73de45\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 329 1 0 \"ebe08941_0805_40f8_9c24e5928accf34a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 330 1 0 \"a4d43413_970b_4e7c_a6531e50ff9494b8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 331 1 0 \"4187790a_e82d_4bde_800d999e0ef8361f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 332 1 0 \"6f3d64de_1c1c_4f90_8971c874d5ea21dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 1;\r\n// }} \"\"\r\n// {{ 333 1 0 \"34ada387_8ec8_4e3f_bc3fe1e3364b57ec\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 334 1 0 \"9deaad02_16b3_4a0e_96f778d217ec90ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"L\"), i_int_CurrentChannel, Translate(\"RT\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 335 1 0 \"ca9a728d_4b3a_4cef_82cbab575444f50d\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"ca9a728d_4b3a_4cef_82cbab575444f50d\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 336 1 0 \"e3114933_9345_4459_8903cc91211f7916\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 337 1 0 \"7b9206ad_5c49_4055_b6612756249d0963\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 338 1 0 \"11e362b1_875b_4490_ba0d41b1f51b8077\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rt\"), flt_Resolution, 1, bol_ParameterFound, flt_Value);\r\n// }} \"\"\r\n// {{ 339 1 0 \"5b8834ba_2ea8_41a4_a132d97c5452e56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 340 1 0 \"a3549dad_86fb_43f6_85d6aeb0bf9a966e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Value == 1.0)\r\n{\r\n// }} \"\"\r\n// {{ 341 1 0 \"2d4acdf4_ab3d_4384_9c7743375fd3a607\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 1;\r\n// }} \"\"\r\n// {{ 342 1 0 \"a3549dad_86fb_43f6_85d6aeb0bf9a966e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 343 1 0 \"5e51d091_f831_44be_b97f9f92676c19e9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 344 1 0 \"a3549dad_86fb_43f6_85d6aeb0bf9a966e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 345 1 0 \"5b8834ba_2ea8_41a4_a132d97c5452e56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Tip Present:  \",o_bool_TipPresent);\r\n// {{{ 5 \"Get_Tip_Present_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Volume_1mL\" \"Begin\"\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalFound;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_Tip_Volume_1mL\" \"InitLocals\"\r\no_flt_MaxTipVolume = 0;\r\no_flt_CurrentVolumeInTip = 0;\r\n// }} \"\"\r\n// {{ 348 1 0 \"3ee0c97a_da9a_43fd_ae1f5b4082ee17ea\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 349 1 0 \"d631ef7a_41fa_48b7_ae5c75aa56f1068c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 351 1 0 \"6e417cde_5e19_4520_81339654991b1a0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 352 1 0 \"959db750_25c8_4c48_a6d5b9356c72811e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 353 1 0 \"3c7eac3b_3de2_4fd9_99af5a3e5270fb28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 354 1 0 \"f05cfd79_d9a1_4f40_bf1bf1733fef292b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 355 1 0 \"2f8a567f_e0e9_40ba_a436c4582d5e4fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 356 1 0 \"e49d9f93_7e8a_43bd_b91082037efb041c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 357 1 0 \"3ee0c97a_da9a_43fd_ae1f5b4082ee17ea\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 358 1 0 \"12978e38_eaaa_48c5_b848e7dfedf2c430\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 359 1 0 \"0f9bc4ef_90b7_471d_a02454c108fb6b28\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = 0.0;\r\n// }} \"\"\r\n// {{ 360 1 0 \"633bea17_8e27_4f7e_a79481ac158d9bba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = 0.0;\r\n// }} \"\"\r\n// {{ 361 1 0 \"064bb57b_8c44_4f20_bffdff8481c3c835\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 362 1 0 \"baff7fe7_d23e_4347_a04253806b5248b6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 0.046876;\r\n// }} \"\"\r\n// {{ 363 1 0 \"7071fdcd_1a09_45fb_b33b912a9aeed47b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 364 1 0 \"4f1f6946_17b6_49b2_b7de0e9f0b735f1e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"P\"), i_int_CurrentChannel, Translate(\"QC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 365 1 0 \"1919c242_4efe_4170_8249723caa047241\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"1919c242_4efe_4170_8249723caa047241\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 366 1 0 \"0b8a1a77_709c_4973_9001dc87f0b712ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 367 1 0 \"843fc8cf_084a_4950_bd30db10a9444197\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 368 1 0 \"26deb7aa_90da_4b90_85aecfbb8931b1a6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"qc\"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 369 1 0 \"d361375d_4d7a_4d0f_9e15322abb27f774\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalFound=arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 370 1 0 \"602cc5d9_8f80_4754_ae5d75957c735c6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 1)\r\n{\r\n// }} \"\"\r\n// {{ 371 1 0 \"02bfd6c7_97e5_43c8_a5200df05d8d2c2d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 372 1 0 \"40417a38_2fb7_4a9d_8cc0b8f5bdcb8f7b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"e0e6f9c8_e39c_4edd_b3c6815d9c545257\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 374 1 0 \"02bfd6c7_97e5_43c8_a5200df05d8d2c2d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 375 1 0 \"602cc5d9_8f80_4754_ae5d75957c735c6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 376 1 0 \"0305cb6b_2e64_46d9_b0f0ce445113d931\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 377 1 0 \"c49ee5b7_e2af_4ec4_99622f2231581167\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 2)\r\n{\r\n// }} \"\"\r\n// {{ 378 1 0 \"6c6a3bb1_4ed1_45b4_b6506ec4df33dcc7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 379 1 0 \"45f80962_620f_4fcc_994ddc00606316e3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"ce6efb3b_bebf_4204_8c54682a1c04a672\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip);\r\n// }} \"\"\r\n// {{ 381 1 0 \"6c6a3bb1_4ed1_45b4_b6506ec4df33dcc7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 382 1 0 \"c49ee5b7_e2af_4ec4_99622f2231581167\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Max tip volume:  \",o_flt_MaxTipVolume,\" uL\");\r\nTrace(\"     \",\"Current tip volume:  \",o_flt_CurrentVolumeInTip,\" uL\");\r\n// {{{ 5 \"Get_Tip_Volume_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Volume_5mL\" \"Begin\"\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalFound;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_Tip_Volume_5mL\" \"InitLocals\"\r\no_flt_MaxTipVolume = 0;\r\no_flt_CurrentVolumeInTip = 0;\r\n// }} \"\"\r\n// {{ 385 1 0 \"a7408c9a_3441_44d0_a43f37d2d56d713a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 386 1 0 \"d87b5b19_87fd_4f06_a396c845190a6c0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 388 1 0 \"8798de9e_e91b_450e_ab5cf9bc6f286ef2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 389 1 0 \"6b5d2070_8319_46c3_ba3584aa342f97dc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 390 1 0 \"25e109e8_def8_4d7a_92f5d3713bf081d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 391 1 0 \"963fc8c4_6061_48fe_a0dd6e835a720893\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 392 1 0 \"639fba65_d1cd_469e_bc39964eee587218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 393 1 0 \"92916e58_8506_45be_b74844d6cdc22a43\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 394 1 0 \"a7408c9a_3441_44d0_a43f37d2d56d713a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 395 1 0 \"3c5ebd5f_6009_4f46_8d3a6875c9197be1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = 0.0;\r\n// }} \"\"\r\n// {{ 396 1 0 \"f41b6630_688a_4021_b1a06ecaff60cefa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = 0.0;\r\n// }} \"\"\r\n// {{ 397 1 0 \"859de34c_cf82_4b5a_a1d1347747fa6f87\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"7bfe46e8_4305_4057_a38755c54c5b1c82\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 0.044711063;\r\n// }} \"\"\r\n// {{ 399 1 0 \"0255bcf1_2d40_4b94_89e7eb7064e5640e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 400 1 0 \"8908e946_a9fe_49ad_88e0c02b6e8b01a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"L\"), i_int_CurrentChannel, Translate(\"QC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 401 1 0 \"c1fe4891_7471_43f8_92fa2d6eb7cd599f\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c1fe4891_7471_43f8_92fa2d6eb7cd599f\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 402 1 0 \"102a30e6_22c3_433b_924d604694656507\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 403 1 0 \"3c121a11_7a02_4344_95cb25ef0af781c2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 404 1 0 \"d40c82e2_aa4b_40eb_bd46fcff24581553\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"qc\"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 405 1 0 \"f8157c5c_b590_465e_93c9b70a7e41e1c8\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalFound=arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 406 1 0 \"a5166e52_64b5_4d8b_94cb7765e6495e21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 1)\r\n{\r\n// }} \"\"\r\n// {{ 407 1 0 \"e1ac2ae5_42d7_4b4f_a30d7f700250392d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 408 1 0 \"913f884c_f890_4431_985528e38d39b827\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{{ 409 1 0 \"0e1d81de_9cfd_4673_99d210a20780994f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 410 1 0 \"e1ac2ae5_42d7_4b4f_a30d7f700250392d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 411 1 0 \"a5166e52_64b5_4d8b_94cb7765e6495e21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 412 1 0 \"5b887ece_26b3_4ce0_b8046c4b9aa46278\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 413 1 0 \"6eb3f6af_090f_4915_862d4aefaabb599c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 2)\r\n{\r\n// }} \"\"\r\n// {{ 414 1 0 \"11573ead_57b7_4d4e_b8fe424521cffe9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 415 1 0 \"044a6b2e_cfac_48a8_8553812629e0ee62\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"58947471_303d_4618_8cc053d85d75f172\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip);\r\n// }} \"\"\r\n// {{ 417 1 0 \"11573ead_57b7_4d4e_b8fe424521cffe9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 418 1 0 \"6eb3f6af_090f_4915_862d4aefaabb599c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Max tip volume:  \",o_flt_MaxTipVolume,\" uL\");\r\nTrace(\"     \",\"Current tip volume:  \",o_flt_CurrentVolumeInTip,\" uL\");\r\n// {{{ 5 \"Get_Tip_Volume_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"InitializeDispenseDrive_1mL\" \"Begin\"\r\nfunction InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\n// {{ 5 \"InitializeDispenseDrive_1mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 421 1 0 \"e1a78fba_4e50_4d2e_8c50548a4ba72148\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 422 1 0 \"6b2614be_eac0_4f77_9d1432b01988222d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 424 1 0 \"4ca8c88a_49c4_4733_ae1bce07ca08423d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 425 1 0 \"c7db43c2_2471_42ac_a859a6d243c51214\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 426 1 0 \"163d6f07_b2b4_418d_9903e62bd90f08d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 427 1 0 \"f7a28463_dcc7_42ac_a761bd73c044359b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 428 1 0 \"165447ba_3f1a_43f3_a5e5768437321e48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 429 1 0 \"7c2da12e_6502_408a_bfb5655bf25b0ddd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 430 1 0 \"e1a78fba_4e50_4d2e_8c50548a4ba72148\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 431 1 0 \"acd73585_541e_4048_9d2faa84bd282531\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 432 1 0 \"b35066dd_7526_4143_b6db2ee25c4b7542\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 433 1 0 \"3131dbab_c783_4fae_9d1ffadcc2db1661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"P\"), i_int_CurrentChannel, Translate(\"DI\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 434 1 0 \"5bbb7af7_740b_449d_acadf2a93dc0aa82\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"5bbb7af7_740b_449d_acadf2a93dc0aa82\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 435 1 0 \"bf03f0fd_c3c0_4f61_83c676fdeee1101a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"InitializeDispenseDrive_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"InitializeDispenseDrive_5mL\" \"Begin\"\r\nfunction InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\n// {{ 5 \"InitializeDispenseDrive_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 437 1 0 \"c548bcf3_5793_4a03_95f36c4ffee319d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 438 1 0 \"fe74a87f_df0a_476f_85100051db5258a9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 440 1 0 \"9edbd6c5_83bf_4dc9_8dcdb1a9bfb8422d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 441 1 0 \"d84a96db_0373_4559_a0c794e941e9d880\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 442 1 0 \"b2f6f79a_f998_48b6_82d458e86045a46e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 443 1 0 \"c27ccd9a_8172_41fe_b7b7cf5160111269\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 444 1 0 \"74550b5f_29bb_460f_a376b8f7c38b9e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 445 1 0 \"e0b5ad5b_0d9e_4ce1_9c64b8c3929dbb80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 446 1 0 \"c548bcf3_5793_4a03_95f36c4ffee319d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 447 1 0 \"892cc97b_6e5d_4024_8c5946d7f29d0abc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 448 1 0 \"d9b4e7e1_e501_487f_9dbc855000bc14fb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 449 1 0 \"277814e2_3409_405d_a588ac8e30b1489c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"L\"), i_int_CurrentChannel, Translate(\"DI\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 450 1 0 \"5e0efe0e_f7ec_432a_8daf9a6b4c119545\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"5e0efe0e_f7ec_432a_8daf9a6b4c119545\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 451 1 0 \"2e2400a1_85bb_4361_9dd7f747506f1547\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"InitializeDispenseDrive_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position_1mL\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_SafeTravelHeight;\r\nprivate variable str_ReturnValue;\r\nprivate variable flt_X_Position;\r\nprivate variable str_Y_Position;\r\nprivate variable flt_SafeTravelHeight;\r\nprivate variable int_CutNum;\r\nprivate variable str_FWParameter;\r\nprivate variable int_Length;\r\nprivate variable int_Y_Position;\r\nprivate variable str_TH;\r\nprivate variable i;\r\nprivate variable strFunctionName;\r\nprivate variable str_ZP;\r\nprivate variable str_FWCommand;\r\nprivate variable str_Z_Position;\r\nprivate variable flt_Y_Position;\r\nprivate variable str_YP;\r\nprivate variable int_TotalParameters;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_XP;\r\nprivate variable int_Z_Position;\r\nprivate variable str_TM;\r\nprivate variable flt_Z_Position;\r\nprivate variable int_TotalChannels;\r\nprivate variable str_X_Position;\r\nprivate variable int_TotalXValues;\r\nprivate variable int_Count;\r\nprivate variable int_TotalYValues;\r\nprivate variable str_ChValue;\r\nprivate variable int_X_Position;\r\nprivate variable int_ChValue;\r\nprivate variable int_TotalZValues;\r\nprivate variable int_ChPatternLength;\r\nprivate variable str_SafeTravelHeight;\r\nprivate variable int_ChIndex;\r\nprivate variable arr_Parameters[];\r\nprivate variable arr_ChPattern[];\r\n// {{ 5 \"Move_Channels_To_Absolute_Position_1mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 563 1 0 \"a588c555_b86b_4e0d_bb2ffa1304a6e693\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 564 1 0 \"bf019c1e_29a3_469b_bc58f920a3a59f78\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 565 1 0 \"e70f918b_2e66_4981_85ab2310f121dba5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 567 1 0 \"40ccd8a8_89b7_4464_85f78c712bfde13d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 568 1 0 \"877a2cf7_34b8_4f1b_8f0baa63d0f14c41\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 569 1 0 \"b35908d6_8db9_4552_98a63885a3845b6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 570 1 0 \"d41e26f7_7ea5_431e_bd334559915dd464\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 571 1 0 \"aba92164_eb84_4269_bfd13f18227d67fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 572 1 0 \"afd3695e_3d30_4ab8_ac6a070a19faccd8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 573 1 0 \"bf019c1e_29a3_469b_bc58f920a3a59f78\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 574 1 0 \"a2c65ac4_f3f8_4b61_94b90d13dbc09b9c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 575 1 0 \"7f778ec6_17d7_486c_a6db37aead78f894\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 576 1 0 \"78611882_2d73_4216_a128807729d6a534\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"0f4bd06c_62bb_4dcf_b915bd1bc9973a98\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChPatternLength = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 578 1 0 \"7320b0d6_40cc_48e3_926c6e132eb14384\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChPatternLength < int_TotalChannels)\r\n{\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",i_str_ChannelPattern);\r\n// {{{ 580 1 0 \"3469dff0_c6ad_4d39_bde15c017fcf2144\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Channel pattern is less than the total number of channels on the system!\"));\r\n// }} \"\"\r\n// {{ 581 1 0 \"7320b0d6_40cc_48e3_926c6e132eb14384\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 582 1 0 \"a837be14_7a69_4f75_82baf48adae698bf\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalXValues=i_arr_X_Position.GetSize();\r\n// }} \"\"\r\n// {{ 583 1 0 \"efc2d000_dd54_49f2_b6bec8d58cc5b326\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalXValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 584 1 0 \"f1147cde_5241_470f_96ce1f367db8a008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"X Values\"), i_arr_X_Position);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"e2c6f617_5af1_41be_88491d47ecb7bd20\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the X Positions\"));\r\n// }} \"\"\r\n// {{ 586 1 0 \"efc2d000_dd54_49f2_b6bec8d58cc5b326\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 587 1 0 \"38657fc1_c650_4f29_98471c2852a810bb\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalYValues=i_arr_Y_Position.GetSize();\r\n// }} \"\"\r\n// {{ 588 1 0 \"aee8d8ea_032c_4de7_9cd574d8704c12c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalYValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 589 1 0 \"53119b24_febf_4c8d_aa8c53c7f0348ff1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Y Values\"), i_arr_Y_Position);\r\n// }} \"\"\r\n// {{{ 590 1 0 \"b9048a90_d65c_4870_8ae0c34a196cfc6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Y Positions\"));\r\n// }} \"\"\r\n// {{ 591 1 0 \"aee8d8ea_032c_4de7_9cd574d8704c12c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"64793eb5_8aaa_4977_b015824bc68ad165\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalZValues=i_arr_Z_Position.GetSize();\r\n// }} \"\"\r\n// {{ 593 1 0 \"74237475_7a00_4c65_af2609d24885300d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalZValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 594 1 0 \"53ebf0fe_0a50_45ed_8712ce0183de3fca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Z Values\"), i_arr_Z_Position);\r\n// }} \"\"\r\n// {{{ 595 1 0 \"46ae07a6_9917_4e78_bb7f1d19c51133bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Z Positions\"));\r\n// }} \"\"\r\n// {{ 596 1 0 \"74237475_7a00_4c65_af2609d24885300d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 597 1 0 \"a2c65ac4_f3f8_4b61_94b90d13dbc09b9c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 598 1 0 \"8a8faa46_af5b_46bd_9f8d25050015e1f8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining;\r\n// }} \"\"\r\n// {{ 599 1 0 \"6e9be8aa_4225_4393_a3bac9e56be8b88c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 600 1 0 \"b61e43e5_a983_493e_b15c8c1fcb51cd7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0JM\");\r\n// }} \"\"\r\n// {{ 601 1 0 \"6b1b9a53_215e_44bf_ac808ec3f7021e35\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 602 1 0 \"bdfa93bc_4882_474b_ab8f42cd4b1b435c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 603 1 0 \"f22e05c9_9c83_48cd_99a0c729a7f780ee\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 604 1 0 \"6f3d28ac_212c_4209_b2e1762e55782e44\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 605 1 0 \"cb7e3195_f3f7_4989_b1d9d0dee11e3f38\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 606 1 0 \"4a95f35e_9f1a_425f_91ed02dfce5b2201\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"e93cc5ff_9352_4790_8c79345f82b832a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"daac779b_0dfb_40a3_99b4609d87bf5923\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 609 1 0 \"04805c4b_d800_452d_81facc0b4ac200d5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 610 1 0 \"cb7e3195_f3f7_4989_b1d9d0dee11e3f38\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 611 1 0 \"20dc4913_ead5_4842_b948c7dc2f4d72bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 612 1 0 \"f35cadf4_bb3b_4861_aff0acee4e704693\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 613 1 0 \"9879cbc5_1c69_4cb9_b4df36ea0ffeab10\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 614 1 0 \"48ad7ff3_39ba_484d_8ec22416c6153b31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 615 1 0 \"9879cbc5_1c69_4cb9_b4df36ea0ffeab10\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 616 1 0 \"d79a1e7f_c00d_47f3_a4c37621203329c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 617 1 0 \"f35cadf4_bb3b_4861_aff0acee4e704693\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 618 1 0 \"8c53c3ab_c519_4b97_8506c46234e8ae4e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 619 1 0 \"f22e05c9_9c83_48cd_99a0c729a7f780ee\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 620 1 0 \"25a512d9_c30b_487f_b83c5093c0fe6c1e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 621 1 0 \"6e82c7e9_0972_4a07_8f97beb8744dca5c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xp\");\r\n// }} \"\"\r\n// {{ 622 1 0 \"0713c8bd_5231_45ec_8be2db64168b424a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 623 1 0 \"3ed8373e_c1fa_41b9_bb4c68dd0f47c232\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 624 1 0 \"571914d2_65e5_4e4a_b67c7d6b59a284b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat2(str_XP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 625 1 0 \"3ed8373e_c1fa_41b9_bb4c68dd0f47c232\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 626 1 0 \"815e6666_d1c7_42d9_95a5624ce6d4a3be\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_X_Position=i_arr_X_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 627 1 0 \"2c2730bd_1710_44fe_92559cb477c7509c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Position = flt_X_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 628 1 0 \"afa3b9f5_460e_4f61_bed4a0f707030310\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_X_Position = MthCeiling(flt_X_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 629 1 0 \"0f0c97ac_ac7f_4d46_bc090e99c56c9ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_X_Position = MthFloor(flt_X_Position);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"56928e2f_b1ee_45bb_878c3cedc8433e25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_X_Position = StrConcat2(int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 631 1 0 \"ec84d574_6168_495e_983fa3a4602de06a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_X_Position = StrFillLeft(str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"a577540f_2708_4063_90089b0ad0f0944e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, str_X_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 633 1 0 \"0713c8bd_5231_45ec_8be2db64168b424a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 634 1 0 \"b8c07111_1e45_4dc1_9bd72936d23fdf36\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 635 1 0 \"25a512d9_c30b_487f_b83c5093c0fe6c1e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"85e489e7_e062_4745_b05b04dc7b76407a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 637 1 0 \"8386c4a9_625a_4c8f_82857e99b534fcb7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 638 1 0 \"e1864b69_0432_49a3_aff161426f0529c9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 639 1 0 \"6a427fe7_b184_4e81_835d3c57fa70031f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 640 1 0 \"08473a86_3b35_4776_b67c981b4720bfb9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 641 1 0 \"6a427fe7_b184_4e81_835d3c57fa70031f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 642 1 0 \"7c4ddfd2_4c1a_4a9d_9cf3a9a98e961296\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 643 1 0 \"4132cb13_cff3_4dde_84ff9586dea42e40\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 644 1 0 \"c6b026b6_b9ca_481c_aceb46b59682b740\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 645 1 0 \"e5048167_0cb7_4364_91cc420f16a410bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthFloor(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"2fccfc44_5ddb_465b_a60d5bfb91a21c89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 647 1 0 \"52bcdce5_08ad_4f72_9287278b84ef6714\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"c0018559_e2bf_44a2_b62de99292bd88b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 649 1 0 \"e1864b69_0432_49a3_aff161426f0529c9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 650 1 0 \"62b5276c_36cd_4487_91e242b7313337ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 651 1 0 \"85e489e7_e062_4745_b05b04dc7b76407a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 652 1 0 \"1d8d8d67_c48d_401b_ae5e4f0871e7e510\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 653 1 0 \"9df0230e_162a_4995_824ce770fee0b6bd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 654 1 0 \"ae142342_e1b3_4823_91da69f3e15cbd51\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 655 1 0 \"ca9198ca_1446_4a8d_85ab1fc0ab96a271\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"56f5126c_753e_4856_b263a81e5c906bcf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 657 1 0 \"fc7dc944_e667_4e9c_bc9530c5be4a7df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"03139909_b1f1_40fc_86e71504d79ef25b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 659 1 0 \"bd448ab1_7fd1_4acc_b3ccea41218287b1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 660 1 0 \"1d8d8d67_c48d_401b_ae5e4f0871e7e510\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 661 1 0 \"9331f652_d951_4f90_86105d1f446e3485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 662 1 0 \"54eb5cfa_bc53_4436_a7a01d516bd2a0ae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"zp\");\r\n// }} \"\"\r\n// {{ 663 1 0 \"47e01f6c_3784_4061_986f9f3b901bc5e1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 664 1 0 \"692d6818_7e17_408b_8f53b4cb45ef6dae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 665 1 0 \"4c66e457_8543_423d_a7780ef77e8a17de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 666 1 0 \"692d6818_7e17_408b_8f53b4cb45ef6dae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 667 1 0 \"ecb4151c_0f4a_432f_8d699069b6d1658a\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 668 1 0 \"cc1a861d_b9ee_449d_afecd25571f15bd1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 669 1 0 \"c356e5e8_d769_4f2f_91862745b283c3a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 670 1 0 \"a9b1e4db_5f9c_498f_8f19e2d5eff41820\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 671 1 0 \"dfe90122_1d98_4dcd_93fc34fbfe0a21d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 672 1 0 \"e0ddd0f2_1147_4420_9dbfc9ba83acaf81\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 673 1 0 \"47e01f6c_3784_4061_986f9f3b901bc5e1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 674 1 0 \"3eed8bcb_cfd8_434a_ba668db633244df9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 675 1 0 \"9331f652_d951_4f90_86105d1f446e3485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 676 1 0 \"fdbd614e_eb12_4600_98179e849efa1eae\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 677 1 0 \"4aaa1abb_6c3f_48c7_96a1a14444e8a461\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 678 1 0 \"9835d001_53ed_48cd_b6ad7e3767b6e1a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 679 1 0 \"4aaa1abb_6c3f_48c7_96a1a14444e8a461\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 681 1 0 \"62fd1ff7_d330_4d83_bd4b3c747509ae4d\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"62fd1ff7_d330_4d83_bd4b3c747509ae4d\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 682 1 0 \"f899a4e4_bd9d_42a7_83b7e6608deb4a5c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position_5mL\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_SafeTravelHeight;\r\nprivate variable str_ReturnValue;\r\nprivate variable str_Y_Position;\r\nprivate variable flt_SafeTravelHeight;\r\nprivate variable int_CutNum;\r\nprivate variable flt_X_Position;\r\nprivate variable str_FWParameter;\r\nprivate variable int_Length;\r\nprivate variable int_Y_Position;\r\nprivate variable i;\r\nprivate variable str_TH;\r\nprivate variable strFunctionName;\r\nprivate variable str_ZP;\r\nprivate variable str_FWCommand;\r\nprivate variable flt_Y_Position;\r\nprivate variable str_Z_Position;\r\nprivate variable int_TotalParameters;\r\nprivate variable str_YP;\r\nprivate variable int_Z_Position;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_XP;\r\nprivate variable str_TM;\r\nprivate variable flt_Z_Position;\r\nprivate variable int_TotalChannels;\r\nprivate variable str_X_Position;\r\nprivate variable int_TotalXValues;\r\nprivate variable int_Count;\r\nprivate variable str_ChValue;\r\nprivate variable int_TotalYValues;\r\nprivate variable int_X_Position;\r\nprivate variable int_TotalZValues;\r\nprivate variable int_ChValue;\r\nprivate variable str_SafeTravelHeight;\r\nprivate variable int_ChPatternLength;\r\nprivate variable int_ChIndex;\r\nprivate variable arr_Parameters[];\r\nprivate variable arr_ChPattern[];\r\n// {{ 5 \"Move_Channels_To_Absolute_Position_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 684 1 0 \"adaf70d3_c242_4a89_aded65812fbcf673\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 685 1 0 \"54ee01d0_8c55_4657_ba147def5a6ca087\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 686 1 0 \"9bb601db_79dd_4a4d_9d779ee4f7b0c52e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 688 1 0 \"d99ac1d2_7728_4a1d_96342d66525858ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 689 1 0 \"58e25a7d_5c6e_46b4_8aacccf9dafee503\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 690 1 0 \"662b2620_a0b8_423b_82c7d6c1078eda62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 691 1 0 \"fa3af063_6c7e_4287_a554f4ca5f1d0255\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 692 1 0 \"391fa014_7661_4870_87d207972b37f073\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 693 1 0 \"cc96983c_2a17_4e26_b6040bb0aa207bf1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 694 1 0 \"54ee01d0_8c55_4657_ba147def5a6ca087\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 695 1 0 \"5339ac64_88ef_4ca4_a7fb145b1d00104f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 696 1 0 \"3313d004_c9d5_484c_b0112255b51e82dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 697 1 0 \"3b822477_2bbb_4260_9bb937cefd4545c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"eef659b3_a28d_4348_97fec868104cf2be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChPatternLength = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 699 1 0 \"0ec66070_1e49_4be9_869a590e68bd878e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChPatternLength < int_TotalChannels)\r\n{\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",i_str_ChannelPattern);\r\n// {{{ 701 1 0 \"c8d823f4_5bff_4ffb_a7eecdd760132a88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Channel pattern is less than the total number of channels on the system!\"));\r\n// }} \"\"\r\n// {{ 702 1 0 \"0ec66070_1e49_4be9_869a590e68bd878e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 703 1 0 \"8ed4055c_3b14_41ce_af25b80aa4f734e2\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalXValues=i_arr_X_Position.GetSize();\r\n// }} \"\"\r\n// {{ 704 1 0 \"e3e4d654_15fb_4cab_83d8e5515d06ebf4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalXValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"23ace3d8_e862_4ed6_91447bcdaefbae8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"X Values\"), i_arr_X_Position);\r\n// }} \"\"\r\n// {{{ 706 1 0 \"8bb9e015_de56_490c_8cdeadbc891552fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the X Positions\"));\r\n// }} \"\"\r\n// {{ 707 1 0 \"e3e4d654_15fb_4cab_83d8e5515d06ebf4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 708 1 0 \"0ae3561e_ebef_4804_880905b9ed1b3c2c\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalYValues=i_arr_Y_Position.GetSize();\r\n// }} \"\"\r\n// {{ 709 1 0 \"a7b0ef4d_b57a_48f4_a6a78bae23595272\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalYValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 710 1 0 \"2de1db07_3d00_4903_838b8440294e34a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Y Values\"), i_arr_Y_Position);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"6ed39e17_92e7_402c_8c3e739680648f24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Y Positions\"));\r\n// }} \"\"\r\n// {{ 712 1 0 \"a7b0ef4d_b57a_48f4_a6a78bae23595272\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 713 1 0 \"524424bb_8c03_4fe0_908ab5658a976cfb\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalZValues=i_arr_Z_Position.GetSize();\r\n// }} \"\"\r\n// {{ 714 1 0 \"c871c7c7_eb54_4d3a_a78459bc7b24241f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalZValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 715 1 0 \"6df2e0a6_693c_457e_ad83c6a52e0a543f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Z Values\"), i_arr_Z_Position);\r\n// }} \"\"\r\n// {{{ 716 1 0 \"d0061191_8df3_4bbe_a3ae0ec5ff1ca05a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Z Positions\"));\r\n// }} \"\"\r\n// {{ 717 1 0 \"c871c7c7_eb54_4d3a_a78459bc7b24241f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 718 1 0 \"5339ac64_88ef_4ca4_a7fb145b1d00104f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 719 1 0 \"63b6d4ef_a3ec_4ecf_b029aecf05a2f121\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining;\r\n// }} \"\"\r\n// {{ 720 1 0 \"d6b3cc8d_3f60_4e1a_89d4e466799baf98\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 721 1 0 \"a4e4c5e9_d3af_4608_b78b1d20528c6d6c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0LL\");\r\n// }} \"\"\r\n// {{ 722 1 0 \"c9fe3e56_23b4_478b_ae35ab79bd28daa9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 723 1 0 \"b449dd6f_f4cf_4fc6_84fd36d83a277042\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 724 1 0 \"d1c4d000_0af0_4cc1_8f19f2148dbef7d8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 725 1 0 \"02595de2_48b0_4acf_b50bea5462f9ae9f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 726 1 0 \"39096895_cd1e_4e29_b094522342dfc3bc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 727 1 0 \"860860b0_4784_4ad9_9aba8905144003df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"ad88bea3_1473_4656_b0b94802324e5514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"aa1440c2_1b41_4891_91dbdc1c3947bd3b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 730 1 0 \"484a4d8b_b0e0_45ab_9ab6db78d2e391a0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 731 1 0 \"39096895_cd1e_4e29_b094522342dfc3bc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 732 1 0 \"9d5daabf_885b_479c_804d318b0812c722\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tr\");\r\n// }} \"\"\r\n// {{ 733 1 0 \"3cb0e08d_68c1_4905_a73585ffabf0850f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 734 1 0 \"e29ef9d6_5426_4b9e_a63dd072dc183e24\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 735 1 0 \"d0c5a04e_1759_40bd_97bf299b0afb5589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 736 1 0 \"e29ef9d6_5426_4b9e_a63dd072dc183e24\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 737 1 0 \"65a54f61_e324_4de6_b37b140ea23f3e85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 738 1 0 \"3cb0e08d_68c1_4905_a73585ffabf0850f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 739 1 0 \"a59dfc54_4f3e_4293_a60ca284870d444e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 740 1 0 \"d1c4d000_0af0_4cc1_8f19f2148dbef7d8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 741 1 0 \"b712e602_58c6_4e7f_86d3bb11dbbb7912\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 742 1 0 \"e7814e8f_c773_4bb0_8e85ab0b85dcf0d5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xb\");\r\n// }} \"\"\r\n// {{ 743 1 0 \"17bb68f5_9a9c_4405_9bd475a5f9ee6928\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 744 1 0 \"7a277e76_001c_4287_8a953903cfe77720\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 745 1 0 \"bab41946_642a_453d_b0fd8e97a6bb75d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat2(str_XP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 746 1 0 \"7a277e76_001c_4287_8a953903cfe77720\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 747 1 0 \"38ef88df_1f53_4b18_b874edb7a8f2822d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_X_Position=i_arr_X_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 748 1 0 \"ad613af1_fe17_42f0_adc187012eb6888b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Position = flt_X_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 749 1 0 \"376b9453_07bc_4d25_9928235e13807b2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_X_Position = MthCeiling(flt_X_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 750 1 0 \"ad570025_4021_45b3_b2a0ab8840b9a98e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_X_Position = MthFloor(flt_X_Position);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"28fe2bc9_1694_4352_8083774f3ae2d8b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_X_Position = StrConcat2(int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 752 1 0 \"4401608f_8440_4024_9e482edd2e0948a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_X_Position = StrFillLeft(str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"15b8bb8d_74c4_4e66_bbc7cae8912a8400\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, str_X_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 754 1 0 \"17bb68f5_9a9c_4405_9bd475a5f9ee6928\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 755 1 0 \"ad89c2c3_a3e0_4f02_9b1719f8339e2d72\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 756 1 0 \"b712e602_58c6_4e7f_86d3bb11dbbb7912\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 757 1 0 \"3ec7a635_2b4e_46f2_be7c8af8f87e6318\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 758 1 0 \"335f51d7_07b8_4aca_9103cc44c75b7515\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yf\");\r\n// }} \"\"\r\n// {{ 759 1 0 \"c5abe5ee_5eb5_46fb_81e27486fd854236\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 760 1 0 \"bb910d54_42b0_4a42_afb1266e769f361f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 761 1 0 \"2eb20e86_07ba_48b7_8683fdbc003de7cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 762 1 0 \"bb910d54_42b0_4a42_afb1266e769f361f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 763 1 0 \"138050ff_918f_4211_bbe82ffd584807dd\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 764 1 0 \"e35e70da_e3c7_4a01_aced0d098a77dc9e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 765 1 0 \"11c0f7ca_c136_490d_b03a2c5afb010069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 766 1 0 \"90df89c2_5150_453a_93a4066ed4f850f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthFloor(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"34b84401_9f2c_4fc3_ae5e9677f7c2fc01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 768 1 0 \"a7abbbb3_7a6b_45bd_90905e90eabed3e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"792266c1_d3a9_42a9_85301f3b43ecde46\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 770 1 0 \"c5abe5ee_5eb5_46fb_81e27486fd854236\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 771 1 0 \"140e1882_f995_4142_b6d3d8579718420e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 772 1 0 \"3ec7a635_2b4e_46f2_be7c8af8f87e6318\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 773 1 0 \"7bd0ade9_26dc_4404_b64afef6e25d9bcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 774 1 0 \"e8d3cb5a_7024_4180_a03d355e378854d1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 775 1 0 \"b986fef6_e195_4d14_a0908ebe7199796a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 776 1 0 \"272d453f_fbf2_4016_ba7f275d4aca3f20\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"27a6cf62_1311_4450_a5fc811f0cc70a8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 778 1 0 \"6e76390b_664d_42a1_a259f11ff684c713\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 779 1 0 \"5bb8bd45_53aa_4ba6_8c5efed5cd9c4c7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 780 1 0 \"28007a71_1a46_4e7f_baae4e100d5b6df6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 781 1 0 \"7bd0ade9_26dc_4404_b64afef6e25d9bcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 782 1 0 \"f377d740_5e78_4c7d_955dabed701d3fa0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 783 1 0 \"9ffa7e7b_11ba_4bc9_bbc972b8ab2074f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"pz\");\r\n// }} \"\"\r\n// {{ 784 1 0 \"27681f36_e360_47ff_93889966ff138691\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 785 1 0 \"c181dac8_f08f_4373_9d02653caa62bb47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 786 1 0 \"579fa67b_00a6_4118_8b758e4ab1259a64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 787 1 0 \"c181dac8_f08f_4373_9d02653caa62bb47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 788 1 0 \"a2da36c9_ae63_411b_add6b3643c5265dd\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 789 1 0 \"7be6408d_3e14_464e_a538e4b6d144426a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 790 1 0 \"536cfd34_6c9e_4740_a26bf07d2e71df6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 791 1 0 \"20d30078_fadc_4d49_9f9c462cd2a40c49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 792 1 0 \"efd55f1f_9475_4557_913550e04966f265\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"c06b7009_584e_4ad5_bf1fd20e61c15a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 794 1 0 \"27681f36_e360_47ff_93889966ff138691\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 795 1 0 \"2def1163_615f_4bd7_96f06a560884dcdb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 796 1 0 \"f377d740_5e78_4c7d_955dabed701d3fa0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 797 1 0 \"33cbd14b_3c92_476e_8a57b283a9ebc86b\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 798 1 0 \"4a5b6300_9b77_4878_baa2700156c75f5d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 799 1 0 \"07c978cb_2e92_497e_8fc58e2fdb60a96a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 800 1 0 \"4a5b6300_9b77_4878_baa2700156c75f5d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 802 1 0 \"b998ada0_0e6e_44e7_9c8a957edd40f4df\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b998ada0_0e6e_44e7_9c8a957edd40f4df\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 803 1 0 \"3287e674_7027_4e29_96862c7b4f2eb3b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ResetChannelFW\" \"Begin\"\r\nfunction ResetChannelFW( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable str_FirmwareParam;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable int_Count;\r\n// {{ 5 \"ResetChannelFW\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 829 1 0 \"798a7910_5bb3_4c5c_a2ca64e08cd1c9ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 830 1 0 \"9072e62d_1c35_4c06_83fbede1743cb53c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 832 1 0 \"6387ebae_98b9_4f99_86d3dcdd14fef5e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 833 1 0 \"60388ad7_6a79_4e43_bd84728ae484bc7e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 834 1 0 \"0a061ddf_8e16_42e3_828c60d30606ca2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 835 1 0 \"849a3f9c_7b54_48dd_a74d0c6be9f3f697\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 836 1 0 \"3ee8b7ae_2379_4275_a066502b57cfef69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 837 1 0 \"bac655bd_3426_4c14_b03e4783ac74cdb6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 838 1 0 \"798a7910_5bb3_4c5c_a2ca64e08cd1c9ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 839 1 0 \"d4338634_6b31_48c3_ab5277db9403ad41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"P\"), Translate(\"X\"), Translate(\"AA\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 840 1 0 \"a527614f_17bc_4b99_aab6eb2decd06649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat8(Translate(\"zv12000\"), Translate(\"zr075\"), Translate(\"zw3\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 841 1 0 \"5f171dc0_91a4_4d98_a5a93f2cd81e7ab4\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"5f171dc0_91a4_4d98_a5a93f2cd81e7ab4\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 842 1 0 \"43a667e1_0cee_4c5f_af37309603d9b230\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 5 \"ResetChannelFW\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"QueryTipLength\" \"Begin\"\r\nfunction QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable bol_ParameterFound;\r\nprivate variable bln_TipPresent;\r\nprivate variable strFunctionName;\r\nprivate variable str_FirmwarePARAM;\r\nprivate variable flt_ZTipCoord;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable flt_Resolution_X;\r\nprivate variable flt_Resolution_Y;\r\nprivate variable flt_ZStopDisk;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable str_CurrentChannel;\r\nprivate variable flt_ReturnValue;\r\n// {{ 5 \"QueryTipLength\" \"InitLocals\"\r\no_fltTipLength = 0;\r\n// }} \"\"\r\n// {{{ 805 1 0 \"e63f9d77_6cdf_4440_89d5d0c8d309444a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet_Tip_Present_1mL(ML_STAR, i_intChannelNumber, bln_TipPresent);\r\n// }} \"\"\r\n// {{ 806 1 0 \"f602d065_f2de_4b13_81cb210a029fafaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipPresent == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 807 1 0 \"063f09e1_483e_43e5_a990433926c21d07\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 808 1 0 \"f602d065_f2de_4b13_81cb210a029fafaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 809 1 0 \"2543d2e4_0fb6_4ac8_94a094294a020ff6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetStopDiskZCoord(ML_STAR, i_intChannelNumber, flt_ZStopDisk);\r\n// }} \"\"\r\n// {{ 810 1 0 \"e1cd1449_c2af_424f_b54279590c25da6a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 811 1 0 \"1eb7be7c_ab74_4c2e_89da43d172a96045\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.1;\r\n// }} \"\"\r\n// {{ 812 1 0 \"c626f2ab_68f7_403c_afd9e6562c017e75\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Y = 0.1;\r\n// }} \"\"\r\n// {{ 813 1 0 \"482a2d96_8399_4756_81fb7db9394dca7d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_X = 0.1;\r\n// }} \"\"\r\n// {{ 814 1 0 \"aff0fffc_92a5_4ff8_a17d19c77459b3ad\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 815 1 0 \"ff63ded5_0f59_4046_b23f1705a91e74ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"C0RD\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 816 1 0 \"2094a66e_2a9a_4bfe_81c58049f91c2617\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrConcat2(i_intChannelNumber, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 817 1 0 \"2d0b52c0_cc36_4cfb_bc9f93d089f7d615\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"d6ab60b0_efc4_48fa_b4a6aee67a1c07a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwarePARAM = StrConcat4(Translate(\"pn\"), str_CurrentChannel, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 819 1 0 \"056b4518_3bbe_4a83_822c6cb5e94ad848\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"056b4518_3bbe_4a83_822c6cb5e94ad848\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 820 1 0 \"13324c33_ce10_4363_9f063037436069df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 821 1 0 \"5e19fb2b_51a9_48af_994f7921dcd82206\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rd\"), flt_Resolution_Z, 4, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n// {{ 822 1 0 \"cacbcbf7_ed9d_425c_aa52d4f32078ef98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 823 1 0 \"0ba55aeb_d79a_4945_b129ca59b50de0de\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZTipCoord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{ 824 1 0 \"cacbcbf7_ed9d_425c_aa52d4f32078ef98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 825 1 0 \"6d2dbfee_32de_4ec0_a6556df8468ad9f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZTipCoord = flt_ZStopDisk;\r\n// }} \"\"\r\n// {{ 826 1 0 \"cacbcbf7_ed9d_425c_aa52d4f32078ef98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 827 1 0 \"fb6e2cb9_7942_4ee6_b5e9b0be36e731a5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_fltTipLength = flt_ZStopDisk - flt_ZTipCoord;\r\n// }} \"\"\r\n// {{{ 5 \"QueryTipLength\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2021-10-06 14:58$$checksum=a35fc73c$$length=087$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Split_Wells.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 9/26/2019 9:05:44 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace SPLIT_WELLS {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void { }\r\nfunction CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void { }\r\nfunction InitializeSplitWells(  ) void { }\r\nfunction RemoveContainers( device & ML_STAR, variable i_bool_ConsolidateVolumes ) void { }\r\nfunction SplitWellsFlatBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, sequence & io_seq_SpltSequence ) void { }\r\nfunction 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 { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2019-09-26 09:05$$checksum=d31d8911$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Split_Wells.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\CHANNEL_TOOLS_GLOBAL.hsl\"\r\n#include \"HSLLabwareStateLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"SMTs\\\\lookup.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n#include \"HSLVectorDbTracking.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace SPLIT_WELLS {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void ;\r\nfunction CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void ;\r\nfunction InitializeSplitWells(  ) void ;\r\nfunction RemoveContainers( device & ML_STAR, variable i_bool_ConsolidateVolumes ) void ;\r\nfunction SplitWellsFlatBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, sequence & io_seq_SpltSequence ) void ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nLOOKUP::_InitLibrary();\r\nHELPERLIBRARY::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nLOOKUP::_ExitLibrary();\r\nHELPERLIBRARY::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"InitializeSplitWells\" \"Begin\"\r\nfunction InitializeSplitWells(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"InitializeSplitWells\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 22 1 0 \"d4b6e79a_8ac5_4a82_a9f13ffefdcbf247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSPLIT_WELLS_GLOBAL::InitializeVariables();\r\n// }} \"\"\r\n// {{ 23 1 0 \"e5404d22_49c8_4b24_9769b7191218f527\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.SetSize(0);\r\n// }} \"\"\r\n// {{ 24 1 0 \"21538013_d11b_4b56_942be066c394df1e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.SetSize(0);\r\n// }} \"\"\r\n// {{ 25 1 0 \"a1f651fa_a158_47bf_bdbc4ddf4f457544\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_WIDTH.SetSize(0);\r\n// }} \"\"\r\n// {{ 26 1 0 \"c3cf1e18_c90c_4f7a_bb8ac001f9087a7e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nSPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE.SetSize(0);\r\n// }} \"\"\r\nSPLIT_WELLS_GLOBAL::BOOL_LIBRARY_INITIALIZED = hslTrue;\r\n// {{{ 5 \"InitializeSplitWells\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"RemoveContainers\" \"Begin\"\r\nfunction RemoveContainers( device & ML_STAR, variable i_bool_ConsolidateVolumes ) void {\r\n// }} \"\"\r\nprivate variable flt_CurrentVolume;\r\nprivate variable str_LabID_Final;\r\nprivate variable str_CurrentContainer;\r\nprivate variable int_TotalContainers;\r\nprivate variable str_LabID;\r\nprivate variable flt_NewVolume;\r\nprivate variable flt_LabwareVolume;\r\nprivate variable int_Cut2;\r\nprivate variable str_PosID;\r\nprivate variable int_ContainerIndex;\r\nprivate variable int_Cut3;\r\nprivate variable int_Cut;\r\nprivate sequence seq_GetVolume;\r\n// {{ 5 \"RemoveContainers\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 29 1 0 \"c662c304_c9f9_43a7_8e9abc836e776864\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalContainers=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.GetSize();\r\n// }} \"\"\r\n// {{ 30 1 0 \"fb318380_04d8_4e79_9e93650724cdf379\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ContainerIndex = 0; int_ContainerIndex < int_TotalContainers;)\r\n{\r\nint_ContainerIndex = int_ContainerIndex + 1;\r\n// }} \"\"\r\n// {{ 31 1 0 \"971cc042_0828_4f12_80c7b8715164b304\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentContainer=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.GetAt(int_ContainerIndex-1);\r\n// }} \"\"\r\n// {{ 32 1 0 \"9fa5cac6_7448_4075_9386cf927b345fb1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_ConsolidateVolumes == 1)\r\n{\r\n// }} \"\"\r\n// {{ 33 1 0 \"55444c33_117b_4e27_b1228be718a2ecae\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 34 1 0 \"b3f9118f_8018_474d_a79c6fed00f0101e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_GetVolume);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"b84e9dba_638f_4b3f_98f4b74f1a380474\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_GetVolume, str_CurrentContainer, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 36 1 0 \"77690743_0b22_43a7_819efed20a1d3bcd\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_GetVolume.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 37 1 0 \"7b8b4f94_9af5_400a_81baf43cf7bad07f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2955394691474b87A9B4B29F55DF457C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 38 1 0 \"f7427202_1b02_417e_831756ce226e1514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_CurrentVolume = HSLLabwState::GetLabwareVolume(ML_STAR, seq_GetVolume);\r\n// }} \"\"\r\n// {{ 39 1 0 \"7b8b4f94_9af5_400a_81baf43cf7bad07f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2955394691474b87A9B4B29F55DF457C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 40 1 0 \"7ca456dd_1a59_45af_8b6e3a76484e66e4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentVolume = 0.0;\r\n// }} \"\"\r\n// {{ 41 1 0 \"7b8b4f94_9af5_400a_81baf43cf7bad07f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 42 1 0 \"dd23b9d0_5c87_42d8_812cff794c7fc1ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Cut = StrReverseFind(str_CurrentContainer, Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 43 1 0 \"987c8dca_819c_48d4_9f1f6f82a6d12e7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = StrLeft(str_CurrentContainer, int_Cut);\r\n// }} \"\"\r\n// {{{ 44 1 0 \"ddb89659_80f5_435e_975b87687f6d24f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Cut2 = StrReverseFind(str_LabID, Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 45 1 0 \"b3d99b8a_99b4_4a06_813510e693e51faa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID_Final = StrLeft(str_LabID, int_Cut2);\r\n// }} \"\"\r\n// {{ 46 1 0 \"522de025_811e_4e13_9a2e9bf5adf993dc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Cut3 = int_Cut - int_Cut2;\r\n// }} \"\"\r\n// {{ 47 1 0 \"ea5acf0f_caee_4f18_974705f12b1d8aca\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Cut3 = int_Cut3 - 1;\r\n// }} \"\"\r\n// {{{ 48 1 0 \"1efeb97e_fba2_4e2e_9670c2f45f21c258\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = StrRight(str_LabID, int_Cut3);\r\n// }} \"\"\r\n// {{{ 49 1 0 \"981087ef_a655_4d69_bbc00af0d385f5e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_GetVolume);\r\n// }} \"\"\r\n// {{{ 50 1 0 \"c15401f7_7ad3_4c1d_a7a73595e774bdc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_GetVolume, str_LabID_Final, str_PosID);\r\n// }} \"\"\r\n// {{ 51 1 0 \"bf83ed4d_2ccb_4128_b3365e492edc1a87\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_GetVolume.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 52 1 0 \"67a7f97f_7103_49b8_8abd991b484625a4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0C904BC1A6FE4486B8C6C9CB5356B697 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 53 1 0 \"1382f2cb_2f03_40c1_8f6fbba9dc153100\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_LabwareVolume = HSLLabwState::GetLabwareVolume(ML_STAR, seq_GetVolume);\r\n// }} \"\"\r\n// {{ 54 1 0 \"67a7f97f_7103_49b8_8abd991b484625a4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0C904BC1A6FE4486B8C6C9CB5356B697 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 55 1 0 \"ad7b40ed_d050_44cf_a4993ff61702ad98\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LabwareVolume = 0.0;\r\n// }} \"\"\r\n// {{ 56 1 0 \"67a7f97f_7103_49b8_8abd991b484625a4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 57 1 0 \"76587fb8_cff2_40ac_818a78eab0b7bb56\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewVolume = flt_LabwareVolume + flt_CurrentVolume;\r\n// }} \"\"\r\nTrace(\"----\",\" New Volume for \",str_LabID_Final,\" \",str_PosID,\" = \",flt_NewVolume,\" uL\");\r\n// {{ 59 1 0 \"0747fcac_c8de_4f52_b2f481a13107250f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F7B028E651034cdfB8C2FE712DB8B0A9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 60 1 0 \"3ea15274_8130_4b98_93ad6be31f74f105\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLLabwState::SetLabwareVolume(ML_STAR, seq_GetVolume, flt_NewVolume);\r\n// }} \"\"\r\n// {{ 61 1 0 \"0747fcac_c8de_4f52_b2f481a13107250f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F7B028E651034cdfB8C2FE712DB8B0A9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 62 1 0 \"0747fcac_c8de_4f52_b2f481a13107250f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 63 1 0 \"9fa5cac6_7448_4075_9386cf927b345fb1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 64 1 0 \"69af829e_67c4_4008_9f1a9f31b91877f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevRemoveLabware(ML_STAR, str_CurrentContainer);\r\n// }} \"\"\r\n// {{ 65 1 0 \"fb318380_04d8_4e79_9e93650724cdf379\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 66 1 0 \"67b6d2b7_ac20_4992_90118a9f2d4a529c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.SetSize(0);\r\n// }} \"\"\r\n// {{{ 5 \"RemoveContainers\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CalcualteOffsetHeight\" \"Begin\"\r\nfunction CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void {\r\n// }} \"\"\r\nprivate variable flt_Calculation1;\r\nprivate variable flt_Calculation2;\r\nprivate variable flt_Radians;\r\nprivate variable flt_Pi;\r\n// {{ 5 \"CalcualteOffsetHeight\" \"InitLocals\"\r\no_flt_ZOffset = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"77450905_7c15_41f9_92b015c592cf7540\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Pi = 3.14159265359;\r\n// }} \"\"\r\n// {{ 2 1 0 \"37320f22_7290_49a2_aebf3810ef221b83\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Radians = 0.0;\r\n// }} \"\"\r\nflt_Radians = i_flt_WellAngle * (flt_Pi / 180);\r\n// {{{ 4 1 0 \"0fd4dba8_d617_4eb4_8c74e056550358c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Calculation1 = MthTan(flt_Radians);\r\n// }} \"\"\r\n// {{ 5 1 0 \"651b1739_9e47_43be_9f595ab1816f7862\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Calculation2 = flt_Calculation1 * i_flt_YOffset;\r\n// }} \"\"\r\n// {{{ 6 1 0 \"f4800a1f_9952_4731_965bde1bb2f745f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_ZOffset = MthRound(flt_Calculation2, 1);\r\n// }} \"\"\r\n// {{{ 5 \"CalcualteOffsetHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CalculateWellAngle\" \"Begin\"\r\nfunction CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void {\r\n// }} \"\"\r\nprivate variable flt_Angle;\r\nprivate variable flt_BottomRadius;\r\nprivate variable flt_Calculation;\r\nprivate variable flt_Pi;\r\nprivate variable flt_WellRadius;\r\n// {{ 5 \"CalculateWellAngle\" \"InitLocals\"\r\no_flt_BottomWellSegment_Angle = 0;\r\n// }} \"\"\r\n// {{ 8 1 0 \"2404d2d5_3cf0_47f5_88c6cbf74e25df06\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Pi = 3.14159265359;\r\n// }} \"\"\r\n// {{ 9 1 0 \"26ac396f_e4fa_4876_9af9a2bf09ccc991\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomRadius = 0.0;\r\n// }} \"\"\r\n// {{ 10 1 0 \"09ad0772_f2a6_4b4a_ae1ff72f2811da55\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_BottomWellSegment_BottomWidth > 0)\r\n{\r\n// }} \"\"\r\n// {{ 11 1 0 \"ca71d565_a87b_4da5_b08adf9c380e3815\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomRadius = i_flt_BottomWellSegment_BottomWidth / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 12 1 0 \"09ad0772_f2a6_4b4a_ae1ff72f2811da55\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 13 1 0 \"4c35e6d4_e8e5_4464_abbff4e97049ee97\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellRadius = i_flt_BottomWellSegment_TopWidth / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 14 1 0 \"0c564bb8_2dee_4aed_98e89d355500970a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_WellRadius > flt_BottomRadius)\r\n{\r\n// }} \"\"\r\n// {{ 15 1 0 \"0cd7f03d_1a81_47d8_843db6b704a3fae8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_WellRadius = flt_WellRadius - flt_BottomRadius;\r\n// }} \"\"\r\n// {{ 16 1 0 \"0c564bb8_2dee_4aed_98e89d355500970a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 17 1 0 \"c16cf0fa_d6a6_46b9_a241b3bc3d932f8e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Calculation = i_flt_BottomWellSegment_Height / (flt_WellRadius * 1.0);\r\n// }} \"\"\r\n// {{{ 18 1 0 \"14982e36_5dfb_498a_a2eec4f0d79adcad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Angle = MthATan(flt_Calculation);\r\n// }} \"\"\r\nflt_Angle = flt_Angle * (180.0 / flt_Pi);\r\n// {{{ 20 1 0 \"e4d1919b_5959_40b8_b3202a92b4a05eea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_BottomWellSegment_Angle = MthRound(flt_Angle, 1);\r\n// }} \"\"\r\n// {{{ 5 \"CalculateWellAngle\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SplitWellsVBottom\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable flt_Position_Z;\r\nprivate variable flt_X_Coord;\r\nprivate variable int_ConfigFileFound;\r\nprivate variable flt_A_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable flt_TotalTopHalf;\r\nprivate variable int_MaxPositions_Sequence;\r\nprivate variable flt_Y_Offset;\r\nprivate variable str_SequenceIndex;\r\nprivate variable flt_Y_Center;\r\nprivate variable str_CurrentPosID;\r\nprivate variable flt_FirstContainerLocation_Y;\r\nprivate variable str_ContainerName;\r\nprivate variable flt_Z_Offset;\r\nprivate variable bol_OddContainers;\r\nprivate variable str_ConfigFile;\r\nprivate variable flt_BottomSegment_Radius;\r\nprivate variable flt_Position_A;\r\nprivate variable flt_WellBottomAngle;\r\nprivate variable flt_ContainerHoleWidth;\r\nprivate variable int_MaximumContainers;\r\nprivate variable int_TotalTopHalf;\r\nprivate variable bol_LabwareExists;\r\nprivate variable str_ConfigFile_Container;\r\nprivate variable flt_Z_Start;\r\nprivate variable flt_PositiveOffset;\r\nprivate variable int_ContainerIndex;\r\nprivate variable str_TempContainerPath;\r\nprivate variable flt_Position_X;\r\nprivate variable str_CurrentLabID;\r\nprivate variable int_Index;\r\nprivate variable str_TempRackPath;\r\nprivate variable flt_PositiveOffset_mm;\r\nprivate variable flt_Position_Y;\r\nprivate variable int_Remainder;\r\nprivate variable flt_AngleEnd;\r\nprivate variable flt_AngleStart;\r\n// {{ 5 \"SplitWellsVBottom\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 160 1 0 \"5ffaee4a_4100_4da7_b041f4ce7b2c1bbc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetCenterSpotLabware(str_TempRackPath);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"1e471a53_4ae5_4cfe_a4946a4cc3e2c347\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetCenterSpotContainer(str_TempContainerPath);\r\n// }} \"\"\r\n// {{ 162 1 0 \"50ef3164_e9ea_4a50_9a92b9181965021e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 163 1 0 \"de33c4db_895b_4b64_bb2ae2213b135f9b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 164 1 0 \"4d648453_40e0_4b9a_95724606552bccb1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SequenceIndex = StrConcat2(i_int_SequenceIndex, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 165 1 0 \"e1b38b72_f019_476b_8de8c6f5717040a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Index = StrIVal(str_SequenceIndex);\r\n// }} \"\"\r\n// {{{ 166 1 0 \"0475e55e_e79a_4925_9284fde859e8ca74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_MaxPositions_Sequence = SeqGetTotal(i_seq_SequenceToSplitWells);\r\n// }} \"\"\r\n// {{ 167 1 0 \"37b5fe3d_d325_424b_a6afbf8cf9f4a896\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index < 1)\r\n{\r\n// }} \"\"\r\n// {{ 168 1 0 \"3b22979e_8fe3_4b30_acf3c56fdd2701d8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=================================\\nIndex is less than 1\\n=================================\"));\r\n// }} \"\"\r\n// {{{ 169 1 0 \"de494f74_6785_45a1_a703122721c92317\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Split_Wells - Sequence index is less than 1\"));\r\n// }} \"\"\r\n// {{ 170 1 0 \"37b5fe3d_d325_424b_a6afbf8cf9f4a896\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 171 1 0 \"beb1225c_c3db_4477_afb74ff7dd053938\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index > int_MaxPositions_Sequence)\r\n{\r\n// }} \"\"\r\n// {{ 172 1 0 \"2f2530ae_29f9_464a_908f62712529328c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=================================\\nIndex is greater than the number of sequence positions\\n=================================\"));\r\n// }} \"\"\r\n// {{{ 173 1 0 \"9869bbbc_f245_403c_ae06ae5d073a4e2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Split_Wells - Sequence index is greater than the positions in the sequence\"));\r\n// }} \"\"\r\n// {{ 174 1 0 \"beb1225c_c3db_4477_afb74ff7dd053938\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 175 1 0 \"50ef3164_e9ea_4a50_9a92b9181965021e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 176 1 0 \"ff6b408d_4c7c_4017_bba7647e9bdb8578\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 177 1 0 \"26120be1_d3a3_4a23_8007ba4e36853f67\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_SequenceToSplitWells.SetCurrentPosition(i_int_SequenceIndex);\r\n// }} \"\"\r\n// {{{ 178 1 0 \"66200452_0a0e_46f2_8742fac3598b719e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentLabID = SeqGetLabwareId(i_seq_SequenceToSplitWells);\r\n// }} \"\"\r\n// {{{ 179 1 0 \"84bf939b_3617_459c_9d3f7c8ec6e22065\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentPosID = SeqGetPositionId(i_seq_SequenceToSplitWells);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"519a7157_9385_4ad2_a6e5c33f0e281dc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVectorDb_Labware::LoadLabware(ML_STAR, str_CurrentLabID, str_CurrentPosID);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"679aa8bb_f772_4ee0_9b04e2027e6811b4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetConfigurationFile(ML_STAR, str_CurrentLabID, str_ConfigFile);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"f9787262_2b0d_4179_8be7fe07c68e8223\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerWidth(ML_STAR, str_CurrentLabID, flt_ContainerHoleWidth);\r\n// }} \"\"\r\n// {{{ 183 1 0 \"5711b38b_1791_483c_a0a1f2cb15186159\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_ConfigFileFound = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE, str_ConfigFile);\r\n// }} \"\"\r\n// {{ 184 1 0 \"74a58717_fb4d_4193_b875b4714ddffb79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ConfigFileFound == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 185 1 0 \"4b0c060c_8b7b_48d7_ad4e347c4e34d50f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_CurrentLabID, str_CurrentPosID, str_ConfigFile_Container);\r\n// }} \"\"\r\n// {{ 186 1 0 \"8ac09e28_7711_4299_8d3db0670dc952d5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE.AddAsLast(str_ConfigFile);\r\n// }} \"\"\r\n// {{ 187 1 0 \"edc90fea_c31b_4d0f_8b43615949c99dc5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ConfigFile_Container);\r\n// }} \"\"\r\n// {{ 188 1 0 \"74a58717_fb4d_4193_b875b4714ddffb79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 189 1 0 \"583cb593_ef62_42f4_8d98194e66329b9b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_ConfigFile_Container=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_ConfigFileFound-1);\r\n// }} \"\"\r\n// {{ 190 1 0 \"74a58717_fb4d_4193_b875b4714ddffb79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 191 1 0 \"496fa591_2f3a_4ac4_9c196bbe0725b144\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ConfigFile_Container == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 192 1 0 \"a9b3e159_c654_456d_b22308fa87a9ec8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ConfigFile_Container = str_TempContainerPath;\r\n// }} \"\"\r\n// {{ 193 1 0 \"496fa591_2f3a_4ac4_9c196bbe0725b144\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 194 1 0 \"1096c831_598f_434a_82112108c69661b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ContainerName = HSLExtensions::File::GetFileNameWithoutExtension(str_ConfigFile_Container);\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(\"Container File Name:  \",str_ContainerName);\r\nTrace(\"\");\r\n// {{{ 196 1 0 \"ad32c0a9_cc88_4fc1_be3b028e20416675\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_CurrentLabID, str_CurrentPosID, flt_Position_X, flt_Position_Y, flt_Position_Z, flt_Position_A);\r\n// }} \"\"\r\n// {{ 197 1 0 \"a0986fe6_5872_4ebf_bfce0866d2fde3f7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Center = flt_Position_Y;\r\n// }} \"\"\r\n// {{ 198 1 0 \"bc6c3bc6_48d4_41b0_bf18885c799a5abb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Start = flt_Position_Z;\r\n// }} \"\"\r\n// {{{ 199 1 0 \"edadbda1_37b1_4963_bc62504f01fabbbb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCalculateWellAngle(i_flt_ContainerBottomSegment_Height, i_flt_ContainerBottomSegment_TopDiameter, i_flt_ContainerBottomSegment_BottomDiameter, flt_WellBottomAngle);\r\n// }} \"\"\r\n// {{ 200 1 0 \"7f3fac2b_0f9b_4bf2_96d35044cb701865\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 201 1 0 \"c9b90537_7d69_4099_8665926444a199c6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_MaximumContainers = flt_ContainerHoleWidth / (9 * 1.0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 202 1 0 \"d7c699d9_96ea_4155_93e2778bbce7f023\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_MaximumContainers = flt_ContainerHoleWidth / 9;\r\n// }} \"\"\r\n// {{ 203 1 0 \"09c3f4a1_1391_40d1_b8dbde22fe71760d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remainder = flt_ContainerHoleWidth % 9;\r\n// }} \"\"\r\n// {{ 204 1 0 \"a497b5a2_1fc4_4517_afe17a81d05a976d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Remainder > 0)\r\n{\r\n// }} \"\"\r\n// {{ 205 1 0 \"7595644f_f531_4af0_ad80224ad3fef267\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_MaximumContainers = int_MaximumContainers + 1;\r\n// }} \"\"\r\n// {{ 206 1 0 \"a497b5a2_1fc4_4517_afe17a81d05a976d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 207 1 0 \"596bbab9_84be_432d_be6ac93bf312b532\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_MaximumContainers = MthFloor(int_MaximumContainers);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 208 1 0 \"1ee39408_0b37_4a40_9657e3ed73046167\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::ConvertToInteger(int_MaximumContainers, int_MaximumContainers);\r\n// }} \"\"\r\n// {{ 209 1 0 \"233183ca_3e84_4b81_944bf6cff57304f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_MaximumContainers > i_int_MaxWellSplit)\r\n{\r\n// }} \"\"\r\n// {{ 210 1 0 \"28353763_ea7f_4cbf_a61e8cf0067ac094\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_MaximumContainers = i_int_MaxWellSplit;\r\n// }} \"\"\r\n// {{ 211 1 0 \"233183ca_3e84_4b81_944bf6cff57304f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 212 1 0 \"3b57bea9_fabf_4040_a5a267b7d691a151\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_MaximumContainers == 1)\r\n{\r\n// }} \"\"\r\n// {{ 213 1 0 \"24256c93_ab50_47a0_9fbd88b9903917cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PositiveOffset = 0.0;\r\n// }} \"\"\r\n// {{ 214 1 0 \"3b57bea9_fabf_4040_a5a267b7d691a151\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 215 1 0 \"fe7751a1_f457_4583_9de41a8b81b20a20\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_OddContainers = int_MaximumContainers % 2;\r\n// }} \"\"\r\n// {{ 216 1 0 \"0315108e_c760_47c9_8d8c30d8c0c7fa8b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_OddContainers == 1)\r\n{\r\n// }} \"\"\r\n// {{ 217 1 0 \"92a8a630_c072_42e5_96ece18301535878\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalTopHalf = int_MaximumContainers - 1;\r\n// }} \"\"\r\n// {{ 218 1 0 \"fd36622c_cb38_4029_a838a32264a89ba9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalTopHalf = int_TotalTopHalf / 2;\r\n// }} \"\"\r\n// {{ 219 1 0 \"f5a5f324_e1c9_4c8a_95f92f99b2890613\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PositiveOffset_mm = int_TotalTopHalf * 9.0;\r\n// }} \"\"\r\n// {{ 220 1 0 \"0315108e_c760_47c9_8d8c30d8c0c7fa8b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 221 1 0 \"77a97295_5d88_4130_bddecae17e3f100a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalTopHalf = int_MaximumContainers / 2;\r\n// }} \"\"\r\n// {{ 222 1 0 \"91f8791b_88e4_49ec_b74e6ea9b1cb805f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TotalTopHalf = int_TotalTopHalf - 0.5;\r\n// }} \"\"\r\n// {{ 223 1 0 \"1b99fb0d_d7ab_4393_81111eb2f71f190b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PositiveOffset_mm = flt_TotalTopHalf * 9.0;\r\n// }} \"\"\r\n// {{ 224 1 0 \"0315108e_c760_47c9_8d8c30d8c0c7fa8b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 225 1 0 \"497da821_2546_4366_bfc7dd6c0f3f65b3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_FirstContainerLocation_Y = flt_Position_Y + flt_PositiveOffset_mm;\r\n// }} \"\"\r\nTrace(\"    \",\"Maximum Containers:  \",int_MaximumContainers);\r\nTrace(\"    \",\"Positive Offset:  \",flt_PositiveOffset_mm);\r\nTrace(\"    \",\"Well Center:  \",flt_Position_Y);\r\nTrace(\"    \",\"First Location:  \",flt_FirstContainerLocation_Y);\r\nTrace(\"    \",\"Container Hole Width:  \",flt_ContainerHoleWidth);\r\nTrace(\"    \",\"Well Angle:  \",flt_WellBottomAngle,\" degrees\");\r\n// {{ 227 1 0 \"3a1f99a3_7e72_43e6_9e387faf4a7789a1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Position_Y = flt_FirstContainerLocation_Y;\r\n// }} \"\"\r\n// {{ 228 1 0 \"7f3fac2b_0f9b_4bf2_96d35044cb701865\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 229 1 0 \"d2165b57_65a9_49af_8f9578e80bc6dc77\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomSegment_Radius = 0.0;\r\n// }} \"\"\r\n// {{ 230 1 0 \"d2ae9be7_657b_4714_96fdb35c2b52c302\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_ContainerBottomSegment_BottomDiameter > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 231 1 0 \"09f6df77_4a7a_464d_aab026e030753030\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomSegment_Radius = i_flt_ContainerBottomSegment_BottomDiameter / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 232 1 0 \"d2ae9be7_657b_4714_96fdb35c2b52c302\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Bottom Segment Radius:  \",flt_BottomSegment_Radius);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 234 1 0 \"3e87e00e_48cb_40de_abdbdfbbd4dc7093\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AngleStart = flt_Y_Center + flt_BottomSegment_Radius;\r\n// }} \"\"\r\n// {{ 235 1 0 \"1093b413_a42b_426d_86a5362ab34678cd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AngleEnd = flt_Y_Center - flt_BottomSegment_Radius;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Angle Start Position:  \",flt_AngleStart,\"  Angle End Position:  \",flt_AngleEnd);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 237 1 0 \"9e65fd07_da39_4b8e_9f4d2d7cddf4e128\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ContainerIndex = 0; int_ContainerIndex < int_MaximumContainers;)\r\n{\r\nint_ContainerIndex = int_ContainerIndex + 1;\r\n// }} \"\"\r\n// {{ 238 1 0 \"9e9126c5_62fe_4ad6_9baaa1e4d0bb6026\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = 0.0;\r\n// }} \"\"\r\n// {{ 239 1 0 \"ee6c4bc6_c5c3_4006_a4d98679396e1002\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = 0.0;\r\n// }} \"\"\r\n// {{{ 240 1 0 \"08f2c2e2_79aa_48e6_9b6dae27f23ece26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ContainerName = StrConcat8(str_CurrentLabID, Translate(\"_\"), str_CurrentPosID, Translate(\"_\"), int_ContainerIndex, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 241 1 0 \"1d9a9fb6_11bc_4ea9_a7524754080ec67a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbol_LabwareExists = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_ContainerName);\r\n// }} \"\"\r\n// {{ 242 1 0 \"80f5c8e1_cacb_457b_8f75796ee0f23f6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_LabwareExists == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 243 1 0 \"f98f9fad_2b80_44a7_a6bc9758a33bdc2a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddLabware(ML_STAR, str_ContainerName, str_TempRackPath, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_A_Coord);\r\n// }} \"\"\r\n// {{ 244 1 0 \"80f5c8e1_cacb_457b_8f75796ee0f23f6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 245 1 0 \"fd1e555c_0267_48dd_a940b2791e45df94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Position_Y > flt_AngleStart)\r\n{\r\n// }} \"\"\r\n// {{ 246 1 0 \"791acec7_d062_4690_87854ffe442be4b7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Position_Y - flt_AngleStart;\r\n// }} \"\"\r\n// {{{ 247 1 0 \"d8a883e9_c6e2_49fa_b820538aeab76394\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCalcualteOffsetHeight(flt_WellBottomAngle, flt_Y_Offset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{ 248 1 0 \"fd1e555c_0267_48dd_a940b2791e45df94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 249 1 0 \"4a3d19b5_5e38_4ef3_97d9cfe4447f1cea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Position_Y < flt_AngleEnd)\r\n{\r\n// }} \"\"\r\n// {{ 250 1 0 \"2e951cd4_6a59_4016_af0d89a200875bef\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Position_Y - flt_AngleStart;\r\n// }} \"\"\r\n// {{ 251 1 0 \"adf402ec_46cb_4816_b9e7bad08019270c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Y_Offset * -1;\r\n// }} \"\"\r\n// {{{ 252 1 0 \"072ab947_92f6_498d_adbe278eb958774b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCalcualteOffsetHeight(flt_WellBottomAngle, flt_Y_Offset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{ 253 1 0 \"4a3d19b5_5e38_4ef3_97d9cfe4447f1cea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 254 1 0 \"dedb4c73_5410_41fb_babdf3626126c66a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"3c0227e6_49cd_4a2a_9cd5b8a136079731\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Position_Y - flt_Y_Center;\r\n// }} \"\"\r\n// {{ 256 1 0 \"331e8f11_bfb5_474f_886c6c9ea685e218\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Y_Offset < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 257 1 0 \"9b6007d4_8262_4fc9_b3c7b0aaace540cc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Y_Offset * -1;\r\n// }} \"\"\r\n// {{ 258 1 0 \"331e8f11_bfb5_474f_886c6c9ea685e218\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 259 1 0 \"eeda18c3_ee24_4b8d_a90b50ac3c93d5a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Y_Offset > flt_BottomSegment_Radius)\r\n{\r\n// }} \"\"\r\n// {{ 260 1 0 \"2cfadc2a_4c04_4ee3_8dce21f15131da77\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Y_Offset - flt_BottomSegment_Radius;\r\n// }} \"\"\r\n// {{ 261 1 0 \"eeda18c3_ee24_4b8d_a90b50ac3c93d5a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 262 1 0 \"54cc239b_a691_4d5a_b625b9e3f1843fcc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Y_Offset <= 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 263 1 0 \"ffabded2_dcd0_4231_aaf60f067a889f56\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = 0;\r\n// }} \"\"\r\n// {{ 264 1 0 \"54cc239b_a691_4d5a_b625b9e3f1843fcc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"ee948fea_2c85_4de5_bbdc72580b9b275d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCalcualteOffsetHeight(flt_WellBottomAngle, flt_Y_Offset, flt_Z_Offset);\r\n// }} \"\"\r\n// {{ 266 1 0 \"54cc239b_a691_4d5a_b625b9e3f1843fcc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"64522989_5d12_4579_8b5ccc9ee8f5e3f5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Position_Z = flt_Z_Start + flt_Z_Offset;\r\n// }} \"\"\r\nTrace(\"New Z Bottom:  \",flt_Position_Z);\r\n// {{ 269 1 0 \"dedb4c73_5410_41fb_babdf3626126c66a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"Z Offset:  \",flt_Z_Offset);\r\nTrace(\"Y Offset:  \",flt_Y_Offset);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 271 1 0 \"782c9f1d_6293_41ef_a6d8e804715f7945\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = flt_Z_Offset * -1;\r\n// }} \"\"\r\n// {{{ 272 1 0 \"c7c7ebc3_c114_4ce4_842faea1f0c27672\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(ML_STAR, str_ContainerName, Translate(\"1\"), str_ConfigFile_Container, 0.0, 0.0, flt_Z_Offset);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"83521094_cb77_475d_96fbe2cf857c15d7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SetAbsolutePositionForLabwareID(ML_STAR, str_ContainerName, flt_Position_X, flt_Position_Y, flt_Position_Z, flt_Position_A);\r\n// }} \"\"\r\n// {{ 274 1 0 \"b7e338f4_1894_4b19_b7529f19a8d42dd3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Position_Y = flt_Position_Y - 9.0;\r\n// }} \"\"\r\n// {{{ 275 1 0 \"89814e79_5f37_472a_96e963a896ca0c49\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_Index = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS, str_ContainerName);\r\n// }} \"\"\r\n// {{ 276 1 0 \"e50297b8_1f0f_46b4_b314bd33da3c48bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 0)\r\n{\r\n// }} \"\"\r\n// {{ 277 1 0 \"a8f73c2d_d648_4a3c_9ec4534e07517a19\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.AddAsLast(str_ContainerName);\r\n// }} \"\"\r\n// {{ 278 1 0 \"e50297b8_1f0f_46b4_b314bd33da3c48bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 279 1 0 \"6e6c1e70_ff8a_42f8_b311e38c1b03f5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_SpltSequence, str_ContainerName, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 280 1 0 \"9e65fd07_da39_4b8e_9f4d2d7cddf4e128\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 281 1 0 \"05a94d28_0a61_48c5_8c76dea1fd1eff03\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_SpltSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"SplitWellsVBottom\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SplitWellsFlatBottom\" \"Begin\"\r\nfunction SplitWellsFlatBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, sequence & io_seq_SpltSequence ) void {\r\n// }} \"\"\r\nprivate variable flt_Position_Z;\r\nprivate variable flt_X_Coord;\r\nprivate variable int_ConfigFileFound;\r\nprivate variable flt_A_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable flt_TotalTopHalf;\r\nprivate variable flt_Y_Offset;\r\nprivate variable int_MaxPositions_Sequence;\r\nprivate variable flt_Y_Center;\r\nprivate variable str_SequenceIndex;\r\nprivate variable str_CurrentPosID;\r\nprivate variable flt_FirstContainerLocation_Y;\r\nprivate variable str_ContainerName;\r\nprivate variable flt_Z_Offset;\r\nprivate variable str_ConfigFile;\r\nprivate variable flt_Position_A;\r\nprivate variable bol_OddContainers;\r\nprivate variable flt_ContainerHoleWidth;\r\nprivate variable int_MaximumContainers;\r\nprivate variable bol_LabwareExists;\r\nprivate variable str_ConfigFile_Container;\r\nprivate variable int_TotalTopHalf;\r\nprivate variable flt_Z_Start;\r\nprivate variable int_ContainerIndex;\r\nprivate variable flt_PositiveOffset;\r\nprivate variable str_TempContainerPath;\r\nprivate variable flt_Position_X;\r\nprivate variable str_TempRackPath;\r\nprivate variable str_CurrentLabID;\r\nprivate variable flt_Position_Y;\r\nprivate variable flt_PositiveOffset_mm;\r\nprivate variable int_Index;\r\nprivate variable int_Remainder;\r\n// {{ 5 \"SplitWellsFlatBottom\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 68 1 0 \"9ab6c557_a70c_46e6_8307bd1114b6a610\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetCenterSpotLabware(str_TempRackPath);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"5cf8154b_bc7b_430a_b7033f85768ff884\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetCenterSpotContainer(str_TempContainerPath);\r\n// }} \"\"\r\n// {{ 70 1 0 \"e778a95c_de95_4645_ae5ec9c3acfbd906\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 71 1 0 \"e033e9c7_1784_4d9b_84755722d39f68c3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 72 1 0 \"89854b70_d489_427b_b4edfb069b52bd16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SequenceIndex = StrConcat2(i_int_SequenceIndex, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 73 1 0 \"000928df_6f4c_453a_b33930fca8e75d5a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Index = StrIVal(str_SequenceIndex);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"a8a17c8a_94c3_4ab8_8d2a29b6d0f499ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_MaxPositions_Sequence = SeqGetTotal(i_seq_SequenceToSplitWells);\r\n// }} \"\"\r\n// {{ 75 1 0 \"a356952e_1059_42ec_8943a319e00adf3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index < 1)\r\n{\r\n// }} \"\"\r\n// {{ 76 1 0 \"743f66fb_6bfd_471f_aaf006bf9600f301\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=================================\\nIndex is less than 1\\n=================================\"));\r\n// }} \"\"\r\n// {{{ 77 1 0 \"7e1f8648_af1f_4bbe_b8d1e60a10ac56dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Split_Wells - Sequence index is less than 1\"));\r\n// }} \"\"\r\n// {{ 78 1 0 \"a356952e_1059_42ec_8943a319e00adf3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 79 1 0 \"f7987fdb_1fd0_4750_89078d742da07afc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index > int_MaxPositions_Sequence)\r\n{\r\n// }} \"\"\r\n// {{ 80 1 0 \"a450e0dd_169b_4580_bb3579978b0f14e6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=================================\\nIndex is greater than the number of sequence positions\\n=================================\"));\r\n// }} \"\"\r\n// {{{ 81 1 0 \"1032a113_5e21_4410_9424b2a09274159e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Split_Wells - Sequence index is greater than the positions in the sequence\"));\r\n// }} \"\"\r\n// {{ 82 1 0 \"f7987fdb_1fd0_4750_89078d742da07afc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 83 1 0 \"e778a95c_de95_4645_ae5ec9c3acfbd906\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 84 1 0 \"354bf6e6_51fb_48c3_be01d381dffda6f7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 85 1 0 \"8a6ab5af_1a25_4b18_bc6aeb001408d30b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_SequenceToSplitWells.SetCurrentPosition(i_int_SequenceIndex);\r\n// }} \"\"\r\n// {{{ 86 1 0 \"e69f5f98_eb87_44c2_9c1270f71d194e2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentLabID = SeqGetLabwareId(i_seq_SequenceToSplitWells);\r\n// }} \"\"\r\n// {{{ 87 1 0 \"12dab32e_b281_4d0f_b75644ee01499326\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentPosID = SeqGetPositionId(i_seq_SequenceToSplitWells);\r\n// }} \"\"\r\n// {{{ 88 1 0 \"ea25b265_6c49_416a_a3c044d6bc873d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVectorDb_Labware::LoadLabware(ML_STAR, str_CurrentLabID, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 89 1 0 \"bff14137_03a5_4647_a3e4073cba8a9e90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetConfigurationFile(ML_STAR, str_CurrentLabID, str_ConfigFile);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"a6dbc477_47c5_4b90_b0c31af44c56be59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_ConfigFileFound = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE, str_ConfigFile);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"24c6c3f1_aedf_498a_8f85fdd0fd258777\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerWidth(ML_STAR, str_CurrentLabID, flt_ContainerHoleWidth);\r\n// }} \"\"\r\n// {{ 92 1 0 \"f0f2992b_fc62_47a9_a9641825c7e889be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ConfigFileFound == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 93 1 0 \"e6f93e1f_822f_40a3_ad5030eb4c758ee2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_CurrentLabID, str_CurrentPosID, str_ConfigFile_Container);\r\n// }} \"\"\r\n// {{ 94 1 0 \"9ef77fd7_5b69_4e98_95b099345cdd542d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE.AddAsLast(str_ConfigFile);\r\n// }} \"\"\r\n// {{ 95 1 0 \"f6ec34d9_d2b2_4c32_ae226d06640aca8d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ConfigFile_Container);\r\n// }} \"\"\r\n// {{ 96 1 0 \"f0f2992b_fc62_47a9_a9641825c7e889be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 97 1 0 \"bf64eb1d_a227_4288_967586fd66fa04e0\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_ConfigFile_Container=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_ConfigFileFound-1);\r\n// }} \"\"\r\n// {{ 98 1 0 \"f0f2992b_fc62_47a9_a9641825c7e889be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 99 1 0 \"a720093b_17c4_4a5e_9d8b33bd62b39881\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ConfigFile_Container == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 100 1 0 \"2263b60d_eba6_4071_843e98684df0ac71\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ConfigFile_Container = str_TempContainerPath;\r\n// }} \"\"\r\n// {{ 101 1 0 \"a720093b_17c4_4a5e_9d8b33bd62b39881\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 102 1 0 \"b528e20c_6172_495a_948d18893d2ea555\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ContainerName = HSLExtensions::File::GetFileNameWithoutExtension(str_ConfigFile_Container);\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(\"Container File Name:  \",str_ContainerName);\r\nTrace(\"\");\r\n// {{{ 104 1 0 \"df117b26_ee36_4795_9a8eb7140d70b4b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_CurrentLabID, str_CurrentPosID, flt_Position_X, flt_Position_Y, flt_Position_Z, flt_Position_A);\r\n// }} \"\"\r\n// {{ 105 1 0 \"b8b086cd_9942_43d7_9d76655d723c930a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Center = flt_Position_Y;\r\n// }} \"\"\r\n// {{ 106 1 0 \"a9045ea2_41e5_4e14_9a7b928e97ca7a6b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Start = flt_Position_Z;\r\n// }} \"\"\r\n// {{ 107 1 0 \"e1ee35a7_0614_41d9_b026888cd13d3713\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 108 1 0 \"6150b463_58a1_4d0d_ade51ba2c00bd158\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_MaximumContainers = flt_ContainerHoleWidth / 9;\r\n// }} \"\"\r\n// {{ 109 1 0 \"10297dc5_6864_44be_b6caa7daa33e601c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remainder = flt_ContainerHoleWidth % 9;\r\n// }} \"\"\r\n// {{ 110 1 0 \"db213f6e_587e_4825_8e41f0d579f0bd83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Remainder > 0)\r\n{\r\n// }} \"\"\r\n// {{ 111 1 0 \"5c383d28_a878_4093_b7010ba58a5f7f67\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_MaximumContainers = int_MaximumContainers + 1;\r\n// }} \"\"\r\n// {{ 112 1 0 \"db213f6e_587e_4825_8e41f0d579f0bd83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 113 1 0 \"b71be591_d6bc_4076_8b6016d9c4b3e58e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_MaximumContainers > i_int_MaxWellSplit)\r\n{\r\n// }} \"\"\r\n// {{ 114 1 0 \"9358d150_0c69_45c0_8efab6d1a3cc114e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_MaximumContainers = i_int_MaxWellSplit;\r\n// }} \"\"\r\n// {{ 115 1 0 \"b71be591_d6bc_4076_8b6016d9c4b3e58e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 116 1 0 \"c468a3ce_6756_455c_8f33b1a15c6e9c00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::ConvertToInteger(int_MaximumContainers, int_MaximumContainers);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 117 1 0 \"f3fa14b0_4417_4c79_b85ab2d4e8d5377e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_MaximumContainers = MthFloor(int_MaximumContainers);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 118 1 0 \"343ba83b_e9c1_457a_9d28c2d8d011461d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_MaximumContainers == 1)\r\n{\r\n// }} \"\"\r\n// {{ 119 1 0 \"8e804731_99ae_4311_8763f64418134a93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PositiveOffset = 0.0;\r\n// }} \"\"\r\n// {{ 120 1 0 \"343ba83b_e9c1_457a_9d28c2d8d011461d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 121 1 0 \"1d6b5595_a255_4cea_a6bbfd5763c1a828\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nbol_OddContainers = int_MaximumContainers % 2;\r\n// }} \"\"\r\n// {{ 122 1 0 \"ac24b7b2_bc6a_4b38_9f684cea95d5bdeb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_OddContainers == 1)\r\n{\r\n// }} \"\"\r\n// {{ 123 1 0 \"307e259f_32b7_426c_bcb92a9c2dffdc6f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalTopHalf = int_MaximumContainers - 1;\r\n// }} \"\"\r\n// {{ 124 1 0 \"815d6778_4730_455e_ad218de6ccf9e0d4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalTopHalf = int_TotalTopHalf / 2;\r\n// }} \"\"\r\n// {{ 125 1 0 \"57c8a966_b6ee_496b_b25f9d0a42910131\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PositiveOffset_mm = int_TotalTopHalf * 9.0;\r\n// }} \"\"\r\n// {{ 126 1 0 \"ac24b7b2_bc6a_4b38_9f684cea95d5bdeb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 127 1 0 \"2145c230_d6fb_473a_aac494b635876325\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalTopHalf = int_MaximumContainers / 2;\r\n// }} \"\"\r\n// {{ 128 1 0 \"a0744c6e_33bd_4418_877e88144de6d1c1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TotalTopHalf = int_TotalTopHalf - 0.5;\r\n// }} \"\"\r\n// {{ 129 1 0 \"88bf3ba8_374b_4f3c_9a42a5194caeb3f8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PositiveOffset_mm = flt_TotalTopHalf * 9.0;\r\n// }} \"\"\r\n// {{ 130 1 0 \"ac24b7b2_bc6a_4b38_9f684cea95d5bdeb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 131 1 0 \"90eba7f3_50ad_417b_8f10c24a2233953e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_FirstContainerLocation_Y = flt_Position_Y + flt_PositiveOffset_mm;\r\n// }} \"\"\r\nTrace(\"    \",\"Maximum Containers:  \",int_MaximumContainers);\r\nTrace(\"    \",\"Positive Offset:  \",flt_PositiveOffset_mm);\r\nTrace(\"    \",\"Well Center:  \",flt_Position_Y);\r\nTrace(\"    \",\"First Location:  \",flt_FirstContainerLocation_Y);\r\nTrace(\"    \",\"Container Hole Width:  \",flt_ContainerHoleWidth);\r\n// {{ 133 1 0 \"0da188cb_3f87_476e_8e625e5f0029f736\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Position_Y = flt_FirstContainerLocation_Y;\r\n// }} \"\"\r\n// {{ 134 1 0 \"e1ee35a7_0614_41d9_b026888cd13d3713\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 135 1 0 \"44c946fc_f348_46cd_96b4b0089db0c983\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ContainerIndex = 0; int_ContainerIndex < int_MaximumContainers;)\r\n{\r\nint_ContainerIndex = int_ContainerIndex + 1;\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1a45e979_5d67_47a9_87067a1d66f6bcee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ContainerName = StrConcat8(str_CurrentLabID, Translate(\"_\"), str_CurrentPosID, Translate(\"_\"), int_ContainerIndex, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 137 1 0 \"146756b2_3ed4_422d_8c80ba4474c178b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbol_LabwareExists = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_ContainerName);\r\n// }} \"\"\r\n// {{ 138 1 0 \"923207cf_c348_4fd4_ad1e659c83658c70\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_LabwareExists == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 139 1 0 \"5c4e5423_4b07_4b17_9130c537675f6733\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddLabware(ML_STAR, str_ContainerName, str_TempRackPath, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_A_Coord);\r\n// }} \"\"\r\n// {{ 140 1 0 \"923207cf_c348_4fd4_ad1e659c83658c70\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 141 1 0 \"7962d11e_6826_40b8_98f5e791532af8ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(ML_STAR, str_ContainerName, Translate(\"1\"), str_ConfigFile_Container, 0.0, 0.0, 0.0);\r\n// }} \"\"\r\n// {{ 142 1 0 \"110670dd_b769_42ba_95d2d411c38190c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"79542fce_0148_4457_b31501452aae0269\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Position_Y - flt_Y_Center;\r\n// }} \"\"\r\n// {{ 144 1 0 \"052438a1_2f6c_48e7_bbb0c71f99514ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Y_Offset < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 145 1 0 \"8b0f27b3_db06_4d49_beee60e1724a53a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Offset = flt_Y_Offset * -1;\r\n// }} \"\"\r\n// {{ 146 1 0 \"052438a1_2f6c_48e7_bbb0c71f99514ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 147 1 0 \"06aaccec_d2eb_431f_a4058f0a9dfe648e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Offset = 0;\r\n// }} \"\"\r\n// {{ 148 1 0 \"a2a5e5c4_4255_4025_b467c4285defb8eb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Position_Z = flt_Z_Start + flt_Z_Offset;\r\n// }} \"\"\r\n// {{ 149 1 0 \"110670dd_b769_42ba_95d2d411c38190c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 150 1 0 \"4ed18878_5c43_4ca4_b67bc9015b3389e4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SetAbsolutePositionForLabwareID(ML_STAR, str_ContainerName, flt_Position_X, flt_Position_Y, flt_Position_Z, flt_Position_A);\r\n// }} \"\"\r\n// {{ 151 1 0 \"d64d2e51_d9df_44ff_b78ba8d4d886f7d7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Position_Y = flt_Position_Y - 9.0;\r\n// }} \"\"\r\n// {{{ 152 1 0 \"e76cc8b1_16b5_44de_b1402ff3e19ee22e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_Index = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS, str_ContainerName);\r\n// }} \"\"\r\n// {{ 153 1 0 \"286eb7a7_c1a0_4fa1_a50c9187ec72f10f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 0)\r\n{\r\n// }} \"\"\r\n// {{ 154 1 0 \"69e095e2_fb4d_432b_9cfa625b41d9ccf8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.AddAsLast(str_ContainerName);\r\n// }} \"\"\r\n// {{ 155 1 0 \"286eb7a7_c1a0_4fa1_a50c9187ec72f10f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 156 1 0 \"ddc256ad_6c88_4266_8920015b2aabd383\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_SpltSequence, str_ContainerName, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 157 1 0 \"44c946fc_f348_46cd_96b4b0089db0c983\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"bcd8014b_47bd_40a0_bf74bb3eb5d68996\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_SpltSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"SplitWellsFlatBottom\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2019-09-26 09:05$$checksum=a93a4899$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/TIP_OFFSET_GLOBAL.hsl",
    "content": "#pragma global\r\n\r\n#ifndef __TIP_OFFSET_GLOBAL_hsl__\r\n#define __TIP_OFFSET_GLOBAL_hsl__ 1\r\n\r\nnamespace TIP_OFFSET_GLOBAL\r\n{\r\n   namespace INIT\r\n   {\r\n      function InitializeVariables();\r\n\r\n      function InitializeVariables()\r\n      {}\r\n   }\r\n\r\n   namespace BOOL\r\n   {\r\n      variable LIBRARY_INITIALIZED(hslFalse);\r\n   }\r\n\r\n   namespace SEQ\r\n   {\r\n      sequence TIP_REFRESH;\r\n      sequence SOURCE_TIP_REFRESH;\r\n      sequence TIP_PICK_UP;\r\n      sequence TIP_OFFSET_CURRENT;\r\n      sequence RETURN_TO_PICKUP;\r\n      sequence EMPTY_POSITIONS;\r\n   }\r\n\r\n   namespace FLT\r\n   {\r\n      const variable CONTAINER_OFFSET(12.5);\r\n   }\r\n\r\n   namespace INT\r\n   {\r\n      variable TIPS_LOADED(0);\r\n      variable OFFSET_INDEX(0);\r\n   }\r\n\r\n   namespace ARR\r\n   {\r\n      variable TIP_OFFSET_LAB_ID[];\r\n      variable TIPS_LOADED[];\r\n      sequence TIPS_RETURN_POSITION[];\r\n      sequence TIPS_OFFSET_CURRENT[];\r\n   }\r\n}\r\n\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2019-09-17 13:04$$checksum=21467b7b$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Tip Tool Global Variables.hsl",
    "content": "#pragma global\r\n\r\n#ifndef __Tip_Tool_Global_Variables_hsl__\r\n#define __Tip_Tool_Global_Variables_hsl__ 1\r\n\r\nnamespace TT_GLOBAL_VARIABLES\r\n{\r\n   namespace TIP_COUNT\r\n   {\r\n\r\n      function InitializeVariables();\r\n\r\n      function InitializeVariables()\r\n      {}\r\n\r\n      variable TIP_COUNTER[];\r\n      variable TIP_COUNT_NEEDED[];\r\n      variable LIBRARY_INITIALIZED(hslFalse);\r\n   }\r\n}\r\n\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2019-06-17 17:13$$checksum=5085208f$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/TipCounterGlobal.hsl",
    "content": "#pragma global\r\n\r\n#ifndef __TipCounterGlobal_hsl__\r\n#define __TipCounterGlobal_hsl__ 1\r\n\r\nstatic variable initializedLib(hslFalse);\r\nstatic object m_elementCounterObject;\r\nstatic variable systemSimulationOn(hslFalse);\r\n\r\nnamespace TIP_COUNTER\r\n{\r\n   function InitTipCountingLibrary();\r\n   function CheckTipCounterName(variable& tipCounter);\r\n   function ReadFromHxElementCounter(device& deviceContext, sequence& sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass); \r\n   function CreateNewHxElementCounter(sequence& sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass);\r\n   function EditSequence(device& deviceContext, sequence& sequenceObj, variable blnEditable, variable intTimeOut);\r\n   function EditSequence2(device& deviceContext, sequence& sequenceObj, variable blnEditable, variable firstPosition, variable lastPosition, variable intTimeOut);\r\n   function WriteHxElementCounter(sequence sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass);\r\n   function RemoveUsedPositions(device& deviceContext, sequence& sequenceObj);\r\n   function GetListOfElementCounterNames(variable InstrumentClass, variable labwareType, variable& listOfTipCounters[]);\r\n\r\n   function InitTipCountingLibrary()\r\n   {\r\n      if(!initializedLib)\r\n      {\r\n         object vectorDbTracker;\r\n\t\t   object elementCounter;\r\n\t\t   object services;\r\n\t\t   object generalSettings;\r\n         \r\n         vectorDbTracker = GetVectorDbTrackerObject();\r\n         elementCounter = vectorDbTracker.GetElementCounter();\r\n         elementCounter.GetObject2(\"{4BD6717B-EF66-42ff-9EF8-166099E46E2B}\", m_elementCounterObject);\r\n         services.CreateObject( \"Hamilton.HxServicesGeneralSettings\" );\r\n         services.GetObject( \"IHxServicesGeneralSettings2\", generalSettings );\r\n         systemSimulationOn = ( generalSettings.SimulationOn != 0 );\r\n\r\n         vectorDbTracker.ReleaseObject();\r\n\t\t\telementCounter.ReleaseObject();\r\n\t\t\tservices.ReleaseObject();\r\n\t\t\tgeneralSettings.ReleaseObject();\r\n\r\n\t\t\tinitializedLib = hslTrue;\r\n         //Trace(\"Initialized\");\r\n      }\r\n   }\r\n\r\n   function CheckTipCounterName(variable& tipCounter)\r\n   {\r\n      if(!m_elementCounterObject.ElementCounterNameIsValid(tipCounter))\r\n      {\r\n         variable invalidName(tipCounter);\r\n         tipCounter = m_elementCounterObject.GetValidElementCounterName(invalidName);\r\n         //Trace(tipCounter);\r\n      }\r\n   }\r\n\r\n   function ReadFromHxElementCounter(device& deviceContext, sequence& sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass)\r\n   {\r\n      deviceContext.CopyResetSequence(sequenceObj.GetName(), sequenceObj);\r\n      if(!m_elementCounterObject.ElementCounterExists(tipCounter, InstrumentClass)) return;\r\n      m_elementCounterObject.ReadElementCounterIntoSequence(tipCounter, InstrumentClass, labwareType, GetSimulationMode(), sequenceObj.GetSequenceObject());\r\n      if(sequenceObj.GetCount() == 0)\r\n      {\r\n         deviceContext.CopyResetSequence(sequenceObj.GetName(), sequenceObj);\r\n      }\r\n   }\r\n\r\n   function CreateNewHxElementCounter(sequence sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass)\r\n   {\r\n      if(!m_elementCounterObject.ElementCounterExists(tipCounter, InstrumentClass))\r\n      {\r\n         m_elementCounterObject.CreateElementCounter(tipCounter, InstrumentClass, GetSimulationMode());\r\n         m_elementCounterObject.ResetElementCounter(tipCounter, InstrumentClass, labwareType, GetSimulationMode(), sequenceObj.GetSequenceObject(), 1);\r\n      }\r\n   }\r\n\r\n   function EditSequence(device& deviceContext, sequence& sequenceObj, variable blnEditable, variable intTimeOut)\r\n   {  \r\n      sequence reloadSequence;\r\n\r\n      deviceContext.CopyResetSequence(sequenceObj.GetName(), reloadSequence);\r\n      deviceContext.RemoveSequences();\r\n      deviceContext.AddSequence2(sequenceObj, reloadSequence, blnEditable);\r\n      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,\"\");\r\n      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,\"\");\r\n      deviceContext.RemoveSequences();\r\n   }\r\n\r\n   function EditSequence2(device& deviceContext, sequence& sequenceObj, variable blnEditable, variable firstPosition, variable lastPosition, variable intTimeOut)\r\n   {  \r\n      sequence reloadSequence;\r\n\r\n      deviceContext.CopyResetSequence(sequenceObj.GetName(), sequenceObj);\r\n      deviceContext.RemoveSequences();\r\n      deviceContext.AddSequence(sequenceObj, 0, firstPosition, lastPosition, blnEditable, \"\");\r\n      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,\"\");\r\n      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,\"\");\r\n      deviceContext.RemoveSequences();\r\n   }\r\n\r\n   function WriteHxElementCounter(sequence sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass)\r\n   {\r\n      m_elementCounterObject.WriteSequenceIntoElementCounter(tipCounter, InstrumentClass,labwareType, GetSimulationMode(), sequenceObj.GetSequenceObject());\r\n   }\r\n\r\n   function RemoveUsedPositions(device& deviceContext, sequence& sequenceObj)\r\n   {\r\n      if(sequenceObj.GetCurrentPosition() != 1)\r\n      {\r\n         \tvariable position;\r\n\t         variable total;\r\n            variable emptySequence(hslFalse);\r\n\r\n\t         if(sequenceObj.GetCurrentPosition() == 0)\r\n            {\r\n            total = sequenceObj.GetTotal();\r\n            emptySequence = hslTrue;\r\n            }\r\n            else\r\n            {\r\n               total = sequenceObj.GetCurrentPosition() - 1;\r\n               //emptySequence = hslTrue;\r\n            }\r\n\t         //sequenceObj.SetCount(total);\r\n\t         sequenceObj.SetCurrentPosition(1);\r\n\t         for (position = 1; position <= total; position++)\r\n\t\t         sequenceObj.RemoveAt(1);\r\n      \r\n            //sequenceObj.SetMax(sequenceObj.GetCount());\r\n            \r\n            if(emptySequence)\r\n            { \r\n\t            sequenceObj.SetCount(0);\r\n\t            sequenceObj.SetCurrentPosition(0);\r\n\t            sequenceObj.SetMax(0);\r\n            }\r\n      }     \r\n   }\r\n\r\n   function GetListOfElementCounterNames(variable InstrumentClass, variable labwareType, variable& listOfTipCounters[])\r\n   {\r\n      variable NumberOfCounters(0);\r\n      object listOfCounters;\r\n      object pars;\r\n\r\n      NumberOfCounters = m_elementCounterObject.GetListOfElementCounterNames(InstrumentClass, labwareType, listOfCounters);\r\n      pars.CreateObject(\"HXPARAMSLib.HxPars\");\r\n      //Trace(\"     \",\"Total number of counters:  \",NumberOfCounters);\r\n\r\n      listOfTipCounters = listOfCounters.GetKeys();\r\n      \r\n      listOfCounters.ReleaseObject();\r\n      pars.ReleaseObject();\r\n   }\r\n}\r\n\r\n#endif\r\n// $$author=Hamilton$$valid=0$$time=2021-10-06 18:21$$checksum=236d30cb$$length=087$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Travel Lanes.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 3/26/2020 2:50:35 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace TRAVEL_LANES {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction MoveChannelsToSequencePosition( device & ML_STAR, sequence i_seq_PositionsToMove ) void { }\r\nfunction MoveChannelsToSequencePosition_5mL( device & ML_STAR, sequence i_seq_PositionsToMove ) void { }\r\nfunction MoveChannelsToTravelLanes( device & ML_STAR ) void { }\r\nfunction MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void { }\r\nfunction MoveSingleChannel( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void { }\r\nfunction MoveSingleChannel_5mL( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void { }\r\nfunction MoveUsedChannel( device & ML_STAR, variable i_str_PipetteReturn ) void { }\r\nfunction MoveUsedChannel_5mL( device & ML_STAR, variable i_str_PipetteReturn ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2020-03-26 14:50$$checksum=0a6679c2$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/Travel Lanes.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLExtensions\\\\String.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace TRAVEL_LANES {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction MoveChannelsToSequencePosition( device & ML_STAR, sequence i_seq_PositionsToMove ) void ;\r\nfunction MoveChannelsToSequencePosition_5mL( device & ML_STAR, sequence i_seq_PositionsToMove ) void ;\r\nfunction MoveChannelsToTravelLanes( device & ML_STAR ) void ;\r\nfunction MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void ;\r\nfunction MoveSingleChannel( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void ;\r\nfunction MoveSingleChannel_5mL( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void ;\r\nfunction MoveUsedChannel( device & ML_STAR, variable i_str_PipetteReturn ) void ;\r\nfunction MoveUsedChannel_5mL( device & ML_STAR, variable i_str_PipetteReturn ) void ;\r\nprivate function _ConvertToInteger( variable & io_Value ) void ;\r\nprivate function _RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nHELPERLIBRARY::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nHELPERLIBRARY::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"MoveChannelsToTravelLanes\" \"Begin\"\r\nfunction MoveChannelsToTravelLanes( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable intNumberOfChannels;\r\nprivate variable flt_YRaster;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable int_YRaster;\r\nprivate variable int_ChannelIndex;\r\nprivate variable int_SplitChannel;\r\nprivate variable flt_ChannelPosition;\r\nprivate variable str_ChannelPosition;\r\nprivate variable str_Parameter;\r\nprivate variable int_ChannelPosition;\r\n// {{ 5 \"MoveChannelsToTravelLanes\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 85 1 0 \"88d697ae_555c_4cd1_9d5d0acdca0efc0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 86 1 0 \"3e979005_19c7_4be1_a0c52a1826545807\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{ 87 1 0 \"084b03e6_ddce_41a0_91f533b5c1c9baf1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_YRaster = flt_YRaster * 10;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"c1913313_3555_4511_85701ed631adbfa0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_YRaster);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 89 1 0 \"89def391_fde9_470d_880e65495cdbff27\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Y Max and Y Min\"), arr_YMax, arr_YMin);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 90 1 0 \"b82a3cea_f710_48ef_ad71fbb23c63eaf4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 91 1 0 \"a33480ae_f61f_407e_81e9674bf6ec6a8e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intNumberOfChannels < 8)\r\n{\r\n// }} \"\"\r\n// {{ 92 1 0 \"6d3ee10f_28ca_4179_a1daf748d47b2811\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SplitChannel = intNumberOfChannels;\r\n// }} \"\"\r\n// {{ 93 1 0 \"a33480ae_f61f_407e_81e9674bf6ec6a8e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 94 1 0 \"71a3b55c_1044_4cc4_8904dcd1417ced90\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SplitChannel = intNumberOfChannels / 2;\r\n// }} \"\"\r\n// {{ 95 1 0 \"a33480ae_f61f_407e_81e9674bf6ec6a8e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"37a43f97_cb32_4fc1_b8f2f60dd526c3cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Parameter = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 97 1 0 \"2500f91f_99af_48db_86b21c39f13616ad\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < intNumberOfChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 98 1 0 \"2213a93a_96fb_43dc_a122ab80d6e1dd53\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelIndex <= int_SplitChannel)\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"c67847e7_df4f_4631_af85fc48b376a59c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelPosition=arr_YMax.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 100 1 0 \"13680f7f_d1ab_468d_9d5356befa9f8b36\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ChannelPosition = flt_ChannelPosition - 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 101 1 0 \"2213a93a_96fb_43dc_a122ab80d6e1dd53\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 102 1 0 \"ecf4ff4f_93be_4c64_b12041a747b6e85d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelPosition=arr_YMin.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 103 1 0 \"e2a8e95b_232f_4400_91c79fa0270cf5b5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ChannelPosition = flt_ChannelPosition + 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 104 1 0 \"2213a93a_96fb_43dc_a122ab80d6e1dd53\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 105 1 0 \"09d91aef_a63c_4e17_afbc978d1493beca\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelPosition = flt_ChannelPosition * 10;\r\n// }} \"\"\r\n// {{{ 106 1 0 \"ccbd366f_106a_4567_aa11f2d2cb6d56de\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_ChannelPosition);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"89e95360_721f_4dc7_bf920df1f504998e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPosition = StrConcat2(int_ChannelPosition, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 108 1 0 \"1a660529_5d2d_4289_b30af9e578e44d60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPosition = StrFillLeft(str_ChannelPosition, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"6dceec55_b4aa_4460_b54923c49a65381a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameter = StrConcat8(str_Parameter, Translate(\"\"), str_ChannelPosition, Translate(\" \"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 110 1 0 \"2500f91f_99af_48db_86b21c39f13616ad\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c0d97569_eec7_421d_8511e7e8672b1387\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameter = StrTrimRight(str_Parameter, Translate(\" \"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Parameter:  \",str_Parameter);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 113 1 0 \"d6375e0f_8f2e_480d_ba35e0d8bdf74888\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"d6375e0f_8f2e_480d_ba35e0d8bdf74888\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveChannelsToTravelLanes\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInteger\" \"Begin\"\r\nprivate function _ConvertToInteger( variable & io_Value ) void {\r\n// }} \"\"\r\n// {{ 5 \"_ConvertToInteger\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 268 1 0 \"46d5b405_7240_4958_96280787aafc8e73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrConcat2(io_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 269 1 0 \"dc9f7fa5_abb1_48fd_b1699f8be8fdbd39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrIVal(io_Value);\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInteger\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveUsedChannel\" \"Begin\"\r\nfunction MoveUsedChannel( device & ML_STAR, variable i_str_PipetteReturn ) void {\r\n// }} \"\"\r\nprivate variable flt_YRaster;\r\nprivate variable intNumberOfChannels;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable str_LabwareID;\r\nprivate variable intNumberOfPositions;\r\nprivate variable loop_StepReturn;\r\nprivate variable str_Parameter;\r\nprivate variable int_YValue;\r\nprivate variable flt_YValue;\r\nprivate variable strChannelPositions;\r\nprivate variable arrChannelPositions[];\r\nprivate variable bool_MoveChannel;\r\nprivate variable bool_SimulationMode;\r\nprivate variable i;\r\nprivate variable flt_CurrentY;\r\n// {{ 5 \"MoveUsedChannel\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 203 1 0 \"809b0b0b_638f_4da5_912c465e1669d449\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 204 1 0 \"82da7adb_6da1_4f5c_b529bad03d26eeee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"0b3a2b2c_996a_47f0_85f1cb41e7093062\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"5d980187_6f45_48ef_b8a96e14435127fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfPositions = StepReturn::GetNumberOfPositions(i_str_PipetteReturn);\r\n// }} \"\"\r\n// {{ 207 1 0 \"76bb75d5_aed6_4347_a6e39c668ed6721d\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"76bb75d5_aed6_4347_a6e39c668ed6721d\"); // FirmwareCommand\r\n\tstrChannelPositions = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"bd85ff23_7eb7_4b1f_a22d877587775651\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrChannelPositions = HSLExtensions::String::Split(strChannelPositions, Translate(\"+\"), 1);\r\n// }} \"\"\r\n// {{ 209 1 0 \"7d445466_0ab5_446d_a82f7d5a162eb851\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loop_StepReturn = 0; loop_StepReturn < intNumberOfPositions;)\r\n{\r\nloop_StepReturn = loop_StepReturn + 1;\r\n// }} \"\"\r\n// {{ 210 1 0 \"7eae8b53_68ec_4187_8cabdc54b71eeef9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni = loop_StepReturn + 1;\r\n// }} \"\"\r\n// {{{ 211 1 0 \"d13e8f6a_dfe3_4585_998a4f0a2c5eb24e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabwareID = StepReturn::GetLabwareId(loop_StepReturn, i_str_PipetteReturn);\r\n// }} \"\"\r\n// {{ 212 1 0 \"eade2439_6bb7_4668_b474e8dd349b1762\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Parameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 213 1 0 \"3d10cc9f_5c91_4f2c_aa95ab4a5d5ddfed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabwareID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 214 1 0 \"74a6596b_6075_4ecb_a595187d0b05e8a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_MoveChannel = 0;\r\n// }} \"\"\r\n// {{ 215 1 0 \"37e97ec6_ecb6_47cc_b944015574a6c0b4\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YValue=arr_YMax.GetAt(loop_StepReturn-1);\r\n// }} \"\"\r\n// {{ 216 1 0 \"d9dd3ec7_d6f6_4e09_b511449c66b2cf4c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentY=arrChannelPositions.GetAt(i-1);\r\n// }} \"\"\r\n// {{{ 217 1 0 \"85c01e77_2199_4563_a81806a58ae4118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_CurrentY = StrFVal(flt_CurrentY);\r\n// }} \"\"\r\n// {{ 218 1 0 \"09106d1a_42d2_48a3_a60f998964cd709c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_CurrentY / (10 * 1.0);\r\n// }} \"\"\r\n// {{ 219 1 0 \"31fd0452_6e48_43e1_9d1664be43e54afc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YValue = flt_YValue - 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 220 1 0 \"190cfbcd_e1b1_49ca_927d57cf983cdf17\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 221 1 0 \"ba9672e0_138e_4993_87efc24b2afaa93a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SimulationMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 222 1 0 \"57f402b7_c6ef_4104_99bc344eaf60599e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY < int_YValue)\r\n{\r\n// }} \"\"\r\n// {{ 223 1 0 \"57f402b7_c6ef_4104_99bc344eaf60599e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 224 1 0 \"f3d6c714_9400_4a64_be14b9a1e40141aa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_MoveChannel = 1;\r\n// }} \"\"\r\n// {{ 225 1 0 \"ba9672e0_138e_4993_87efc24b2afaa93a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 226 1 0 \"ba9672e0_138e_4993_87efc24b2afaa93a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\nTrace(\"Y Max:  \",flt_YValue,\"  Current Y:  \",flt_CurrentY,\"  Move channel number:  \",loop_StepReturn);\r\n// {{ 228 1 0 \"1b34d4f0_e183_48c6_b889b496eb39cdba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_MoveChannel = 1;\r\n// }} \"\"\r\n// {{ 229 1 0 \"670dedec_6416_4d1b_9bee5d92f00999cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_MoveChannel == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 230 1 0 \"8394b06b_09d8_42b1_b149e5ded035e82c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMoveSingleChannel(ML_STAR, loop_StepReturn, flt_YValue);\r\n// }} \"\"\r\n// {{ 231 1 0 \"670dedec_6416_4d1b_9bee5d92f00999cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 232 1 0 \"3d10cc9f_5c91_4f2c_aa95ab4a5d5ddfed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 233 1 0 \"7d445466_0ab5_446d_a82f7d5a162eb851\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveUsedChannel\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveSingleChannel\" \"Begin\"\r\nfunction MoveSingleChannel( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void {\r\n// }} \"\"\r\nprivate variable flt_YRaster;\r\nprivate variable intNumberOfChannels;\r\nprivate variable bool_SimulationMode;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable int_YValue;\r\nprivate variable str_PN;\r\nprivate variable flt_YValue;\r\nprivate variable str_YValue;\r\nprivate variable str_Param;\r\nprivate variable str_YParam;\r\n// {{ 5 \"MoveSingleChannel\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 145 1 0 \"fc8ab023_b4b9_4040_aa0f2e958a32e8d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 146 1 0 \"4f39a0b8_3948_415d_ad23d9218739f28d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"8e01d290_ae3b_43ed_a50773004e3fe085\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{ 148 1 0 \"a9b0f511_c41c_43f0_83f6d2c352f59e32\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber > intNumberOfChannels)\r\n{\r\n// }} \"\"\r\nTrace(\"CHANNEL \",i_int_ChannelNumber,\" EXCEEDS NUMBER OF CHANNELS ON SYSTEM!\");\r\n// {{{ 150 1 0 \"03d7ab9a_32cc_4a72_9c332ede36abcb94\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 151 1 0 \"a9b0f511_c41c_43f0_83f6d2c352f59e32\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 152 1 0 \"e18cf183_a4a0_424a_bd1f62e4ed9ba81c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_YCoordinate > arr_YMax.ElementAt( i_int_ChannelNumber -1))\r\n{\r\n// }} \"\"\r\nTrace(\"Y COORDINATE \",i_flt_YCoordinate,\" IS GREATER THAN THE Y LIMIT FOR CHANNEL \",i_int_ChannelNumber,\"!\");\r\n// {{{ 154 1 0 \"23434c8a_ca56_49db_940a2eb1c3bae9df\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 155 1 0 \"e18cf183_a4a0_424a_bd1f62e4ed9ba81c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 156 1 0 \"01415988_ad76_434c_a33e9342bcc226e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_YCoordinate < arr_YMin.ElementAt( i_int_ChannelNumber -1))\r\n{\r\n// }} \"\"\r\nTrace(\"Y COORDINATE \",i_flt_YCoordinate,\" IS LESS THAN THE Y LIMIT FOR CHANNEL \",i_int_ChannelNumber,\"!\");\r\n// {{{ 158 1 0 \"9eb83969_2cb9_41ad_90807da369498057\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 159 1 0 \"01415988_ad76_434c_a33e9342bcc226e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"a8a3df6a_50b8_4f81_81057e6db0747f02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PN = StrConcat2(i_int_ChannelNumber, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 161 1 0 \"23d5dd1d_c88a_41ff_aee9cea641a5db17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PN = StrFillLeft(str_PN, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"2b996360_00c7_4971_96fd80a9885a1cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PN = StrConcat2(Translate(\"pn\"), str_PN);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 163 1 0 \"d576a623_5862_45de_822133de1fdfffc0\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YValue=arr_YMax.GetAt(i_int_ChannelNumber-1);\r\n// }} \"\"\r\n// {{ 164 1 0 \"5dae945f_042d_4c02_b862d6a94ba1963b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YValue = flt_YValue - 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 165 1 0 \"2b3b3969_25d4_433d_babc8c1927bea6c2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_YValue = i_flt_YCoordinate * 10;\r\n// }} \"\"\r\n// {{{ 166 1 0 \"0ad9be2d_2327_43e7_bf88b8a13ec85fbc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_YValue);\r\n// }} \"\"\r\n// {{{ 167 1 0 \"c6241081_3676_422d_84a83a6ac9ae4bbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YValue = StrConcat2(int_YValue, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 168 1 0 \"56088999_a7d6_4f89_8b7f9df5df875bee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YValue = StrFillLeft(str_YValue, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 169 1 0 \"5b60e463_e286_4192_b41fc27b18503508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YParam = StrConcat2(Translate(\"yj\"), str_YValue);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"33318657_c174_4813_880f171bba23ed2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Param = StrConcat2(str_PN, str_YParam);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Parameter:  \",str_Param);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 172 1 0 \"499e2f72_b21a_48a8_bc19ef4de3927fe1\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"499e2f72_b21a_48a8_bc19ef4de3927fe1\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveSingleChannel\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveChannelsToSequencePosition\" \"Begin\"\r\nfunction MoveChannelsToSequencePosition( device & ML_STAR, sequence i_seq_PositionsToMove ) void {\r\n// }} \"\"\r\nprivate variable intNumberOfChannels;\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_Y_Coord;\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable flt_ChannelRaster;\r\nprivate variable flt_PreviousY;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalPositions;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable arr_YMovement[];\r\nprivate variable int_RemainingChannels;\r\nprivate variable str_ChannelPosition;\r\nprivate variable flt_ChannelPosition;\r\nprivate variable str_Parameter;\r\nprivate variable int_ChannelPosition;\r\nprivate variable int_ChannelIndex;\r\n// {{ 5 \"MoveChannelsToSequencePosition\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1 1 0 \"bf20e4dd_51fb_4f42_aa2708183267beb1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 2 1 0 \"f9c3a074_82ee_46d9_a111802340566ffd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(ML_STAR, i_seq_PositionsToMove);\r\n// }} \"\"\r\n// {{{ 3 1 0 \"67001960_91b5_46b6_89cac51df39dc4a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_ChannelRaster);\r\n// }} \"\"\r\n// {{{ 4 1 0 \"7e891cc9_2eca_435e_aff63b293dccc790\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_PositionsToMove);\r\n// }} \"\"\r\n// {{ 5 1 0 \"4a2045fd_7331_477c_98d9d6d9d8c9c5ba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = arr_YMax.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{ 6 1 0 \"f913fc54_c303_46af_90478b07d5891440\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_YMovement.SetSize(0);\r\n// }} \"\"\r\n// {{ 7 1 0 \"0bc35d2e_35a0_4dab_935a09280a34c3a7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"71e37847_6fe5_462b_98150a7ae3630e89\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_PositionsToMove.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 9 1 0 \"08e9c8f6_a923_4b22_baeee025dde19438\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_PositionsToMove);\r\n// }} \"\"\r\n// {{{ 10 1 0 \"de9ecd30_0e9e_49ff_bb793c22a04365fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_PositionsToMove);\r\n// }} \"\"\r\n// {{{ 11 1 0 \"0d5b6523_9764_4041_8ffdbf1a3198e524\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 12 1 0 \"0ac7a6ce_f570_4f8e_b6fa39a1df4feaf1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Y_Coord < flt_PreviousY)\r\n{\r\n// }} \"\"\r\n// {{ 13 1 0 \"574538eb_3545_4790_abfe77ca225a6e1a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YMovement.AddAsLast(flt_Y_Coord);\r\n// }} \"\"\r\n// {{ 14 1 0 \"0ac7a6ce_f570_4f8e_b6fa39a1df4feaf1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 15 1 0 \"01bd689a_4dca_4cae_a53f6679dec340be\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Coord = flt_PreviousY - flt_ChannelRaster;\r\n// }} \"\"\r\n// {{ 16 1 0 \"f075df6a_3e96_4874_9eb78f49f7582bc0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YMovement.AddAsLast(flt_Y_Coord);\r\n// }} \"\"\r\n// {{ 17 1 0 \"0ac7a6ce_f570_4f8e_b6fa39a1df4feaf1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 18 1 0 \"f6d19b7c_bcde_45b1_96f342ddfdf35f25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_Y_Coord;\r\n// }} \"\"\r\n// {{ 19 1 0 \"27dcfa12_ea0d_49a0_aecaac6005d99da1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == intNumberOfChannels)\r\n{\r\n// }} \"\"\r\n// {{ 20 1 0 \"9776c9b5_6286_4f22_8c467644458b7d27\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 21 1 0 \"27dcfa12_ea0d_49a0_aecaac6005d99da1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 22 1 0 \"0bc35d2e_35a0_4dab_935a09280a34c3a7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 23 1 0 \"078cd4e2_9d6e_44e1_9c7d55dcc98bc816\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RemainingChannels = intNumberOfChannels - i;\r\n// }} \"\"\r\n// {{ 24 1 0 \"dfaa4b9f_6e0e_4f8f_b70ca42f384cd126\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RemainingChannels > 0)\r\n{\r\n// }} \"\"\r\n// {{ 25 1 0 \"40e02fa5_7c22_40f7_8cf9c8239f7aca18\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_RemainingChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 26 1 0 \"e09ee838_2f52_4117_994417cc75c3305f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Coord = flt_PreviousY - flt_ChannelRaster;\r\n// }} \"\"\r\n// {{ 27 1 0 \"7b9d9c0f_3c82_4f83_9b8d9db9b9508d93\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YMovement.AddAsLast(flt_Y_Coord);\r\n// }} \"\"\r\n// {{ 28 1 0 \"6a192cb5_e655_477c_999ffbe56b2064ec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_Y_Coord;\r\n// }} \"\"\r\n// {{ 29 1 0 \"40e02fa5_7c22_40f7_8cf9c8239f7aca18\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"dfaa4b9f_6e0e_4f8f_b70ca42f384cd126\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 31 1 0 \"c1a5fe7f_e917_46e7_8661420f022605c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Parameter = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 32 1 0 \"c9fb5f7c_f95f_4b63_9579ee4383aeca84\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < intNumberOfChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 33 1 0 \"2ab0ebf7_3d7b_4893_9a4598608de4833d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelPosition=arr_YMovement.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 34 1 0 \"c1d3c470_53a9_4147_aeab4306db570bba\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelPosition = flt_ChannelPosition * 10;\r\n// }} \"\"\r\n// {{{ 35 1 0 \"7f7ebc18_57ef_4539_83a6ed6dc173e36e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_ChannelPosition);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"92c57a53_afb9_4ec5_8eee59c79ad1e540\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPosition = StrConcat2(int_ChannelPosition, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 37 1 0 \"84e6f6aa_a0a4_4059_82fea0af25ff78f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPosition = StrFillLeft(str_ChannelPosition, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"ce675c7f_114a_4bc9_b76010b1a7f693cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameter = StrConcat8(str_Parameter, Translate(\"\"), str_ChannelPosition, Translate(\" \"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 39 1 0 \"c9fb5f7c_f95f_4b63_9579ee4383aeca84\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 40 1 0 \"4a9cffff_35e7_49df_bb32d01d8d35ae16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameter = StrTrimRight(str_Parameter, Translate(\" \"));\r\n// }} \"\"\r\nTrace(\"C0JY :: \",str_Parameter);\r\n// {{ 42 1 0 \"3dfc0357_6870_44cb_a036474bf98dd6ed\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"3dfc0357_6870_44cb_a036474bf98dd6ed\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveChannelsToSequencePosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveTruncatedSequencePositions\" \"Begin\"\r\nprivate function _RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable int_TotalSequencePositions;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate sequence seq_AdjustedSequence;\r\n// {{ 5 \"_RemoveTruncatedSequencePositions\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 271 1 0 \"45aca038_7f2a_4395_bbaa76931d5875f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalSequencePositions = SeqGetTotal(io_Sequence);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"fe3181d8_73d0_4a61_9c3f289430cbb660\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{ 273 1 0 \"85df0678_be03_4e60_be93e8cd6139a311\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalSequencePositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 274 1 0 \"17c7f58a_7cd3_400d_81e5bb8f8e68be4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(io_Sequence);\r\n// }} \"\"\r\n// {{{ 275 1 0 \"991d3b6e_a50f_446f_9060ae36cef63f73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(io_Sequence);\r\n// }} \"\"\r\n// {{{ 276 1 0 \"83a85e48_ac4c_4a05_9534d3c5b336665b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(io_Sequence, 1);\r\n// }} \"\"\r\n// {{ 277 1 0 \"c8cedc88_cb8d_40c8_9220d117d992bd0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 278 1 0 \"bc19d1c1_1ef5_446a_bc014a5e600d3e11\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_PosID != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"9d4505f6_4943_4bc0_862afa9ed10d5780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_AdjustedSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 280 1 0 \"bc19d1c1_1ef5_446a_bc014a5e600d3e11\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 281 1 0 \"c8cedc88_cb8d_40c8_9220d117d992bd0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 282 1 0 \"85df0678_be03_4e60_be93e8cd6139a311\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 283 1 0 \"fd1bddb8_6e6f_4046_81cecfca81ab0d2f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_AdjustedSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"4869f4c1_903c_492e_98c55d4ba44781b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence, seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveTruncatedSequencePositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveChannelsToSequencePosition_5mL\" \"Begin\"\r\nfunction MoveChannelsToSequencePosition_5mL( device & ML_STAR, sequence i_seq_PositionsToMove ) void {\r\n// }} \"\"\r\nprivate variable str_ChannelPosition;\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_Y_Coord;\r\nprivate variable int_RemainingChannels;\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable flt_ChannelPosition;\r\nprivate variable flt_ChannelRaster;\r\nprivate variable flt_PreviousY;\r\nprivate variable str_Parameter;\r\nprivate variable int_ChannelPosition;\r\nprivate variable int_ChannelIndex;\r\nprivate variable intNumberOfChannels;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalPositions;\r\nprivate variable arr_YMovement[];\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\n// {{ 5 \"MoveChannelsToSequencePosition_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 44 1 0 \"36f17567_2d05_4a3d_ae06afc757b1f40f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"37ffe800_1a7f_421f_8b9b0202665422ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(ML_STAR, i_seq_PositionsToMove);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"0ff7abd7_e2bd_4aaa_abbb460b5a161434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_ChannelRaster);\r\n// }} \"\"\r\n// {{{ 47 1 0 \"037022d2_b81b_41ae_b1488a273641f35e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_PositionsToMove);\r\n// }} \"\"\r\n// {{ 48 1 0 \"e6ae2e74_e275_4205_b118272b20578d1a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = arr_YMax.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{ 49 1 0 \"16680a17_fc78_48f2_acc8052f32a22728\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_YMovement.SetSize(0);\r\n// }} \"\"\r\n// {{ 50 1 0 \"dc18d27b_02a8_4ce4_9e5f0e1345c5ff64\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 51 1 0 \"af85afa8_27f8_4aad_862e8c0a9e44d3bc\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_PositionsToMove.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 52 1 0 \"18a62eb9_a72b_491f_87b623caab0d5154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_PositionsToMove);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"0514a72a_1df6_44b1_8b40e258b25634f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_PositionsToMove);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"095238b4_4647_4027_a2d0bda1208447d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 55 1 0 \"77e43295_075d_48fb_b6cf2e442d0a130e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Y_Coord < flt_PreviousY)\r\n{\r\n// }} \"\"\r\n// {{ 56 1 0 \"e541c0cd_290d_4f80_82030beb98f507ad\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YMovement.AddAsLast(flt_Y_Coord);\r\n// }} \"\"\r\n// {{ 57 1 0 \"77e43295_075d_48fb_b6cf2e442d0a130e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 58 1 0 \"60cfb36f_e712_4a45_be5251e0a85abd73\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Coord = flt_PreviousY - flt_ChannelRaster;\r\n// }} \"\"\r\n// {{ 59 1 0 \"3ee718b2_4991_4c23_95d8e2eba5b8bf17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YMovement.AddAsLast(flt_Y_Coord);\r\n// }} \"\"\r\n// {{ 60 1 0 \"77e43295_075d_48fb_b6cf2e442d0a130e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 61 1 0 \"4b673e0d_f833_44e4_a3af03ca54167438\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_Y_Coord;\r\n// }} \"\"\r\n// {{ 62 1 0 \"5ad6e4b7_adcd_4c57_af72361d76269143\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == intNumberOfChannels)\r\n{\r\n// }} \"\"\r\n// {{ 63 1 0 \"5dfb3fb3_0218_4066_826521c6aff10abc\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 64 1 0 \"5ad6e4b7_adcd_4c57_af72361d76269143\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 65 1 0 \"dc18d27b_02a8_4ce4_9e5f0e1345c5ff64\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 66 1 0 \"036c6010_a35c_4cb6_a90de60c51a9f92c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RemainingChannels = intNumberOfChannels - i;\r\n// }} \"\"\r\n// {{ 67 1 0 \"c9652e3a_adde_4364_a6d6a70ead9c5ee7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RemainingChannels > 0)\r\n{\r\n// }} \"\"\r\n// {{ 68 1 0 \"c29a7474_e2fb_428b_80255eb70d501e9e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_RemainingChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 69 1 0 \"0e04cf4a_d329_4435_91478601f5179314\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Coord = flt_PreviousY - flt_ChannelRaster;\r\n// }} \"\"\r\n// {{ 70 1 0 \"ead3cee8_a6cd_4af9_860841243aaec2c6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YMovement.AddAsLast(flt_Y_Coord);\r\n// }} \"\"\r\n// {{ 71 1 0 \"c29a7474_e2fb_428b_80255eb70d501e9e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 72 1 0 \"c9652e3a_adde_4364_a6d6a70ead9c5ee7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 73 1 0 \"9dd57cb7_306f_48ae_a12c7598a7864413\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Parameter = Translate(\"yf\");\r\n// }} \"\"\r\n// {{ 74 1 0 \"0538bc00_bb94_488f_81a1745866d71e54\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < intNumberOfChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 75 1 0 \"b1efdc2c_6004_4746_a09c316d11e199ea\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelPosition=arr_YMovement.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 76 1 0 \"c36983c8_872a_4203_a6d98c819a1dd3de\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelPosition = flt_ChannelPosition * 10;\r\n// }} \"\"\r\n// {{{ 77 1 0 \"2e0b1bce_4284_42ec_9dbd6716572937ca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_ChannelPosition);\r\n// }} \"\"\r\n// {{{ 78 1 0 \"fa95c057_57aa_4123_8bbe8d1dc4e91eef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPosition = StrConcat2(int_ChannelPosition, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 79 1 0 \"6f7b4cfd_5f43_4f68_8cf36c21dde87d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPosition = StrFillLeft(str_ChannelPosition, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"35613d80_46ff_47b7_ad93ee8fe085fb7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameter = StrConcat8(str_Parameter, Translate(\"\"), str_ChannelPosition, Translate(\" \"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 81 1 0 \"0538bc00_bb94_488f_81a1745866d71e54\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 82 1 0 \"72172be5_264a_4416_8c72198993943294\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameter = StrTrimRight(str_Parameter, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 83 1 0 \"7ccf82e9_1db4_4918_932f436d2dacef5b\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"7ccf82e9_1db4_4918_932f436d2dacef5b\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveChannelsToSequencePosition_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveChannelsToTravelLanes_5mL\" \"Begin\"\r\nfunction MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable str_ChannelPosition;\r\nprivate variable int_SplitChannel;\r\nprivate variable flt_YRaster;\r\nprivate variable flt_ChannelPosition;\r\nprivate variable str_Parameter;\r\nprivate variable int_ChannelPosition;\r\nprivate variable int_ChannelIndex;\r\nprivate variable intNumberOfChannels;\r\nprivate variable int_YRaster;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\n// {{ 5 \"MoveChannelsToTravelLanes_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 115 1 0 \"f82933ef_29ef_4dbc_84199cff86cc28fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"cf9aa0b6_99ef_4814_b0d12791bc426137\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{ 117 1 0 \"9a1b3fcb_f75f_488c_8ed5af251f534449\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_YRaster = flt_YRaster * 10;\r\n// }} \"\"\r\n// {{{ 118 1 0 \"dce36dea_df6d_4df1_91a37324ff09eac5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_YRaster);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 119 1 0 \"12638869_0862_41a1_9841ac30941c0167\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Y Max and Y Min\"), arr_YMax, arr_YMin);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 120 1 0 \"8d678499_8146_4923_880271c43eba4f4b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"8dcfdc02_772c_42d9_878c7313deda9f4d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intNumberOfChannels < 4)\r\n{\r\n// }} \"\"\r\n// {{ 122 1 0 \"4685e6cd_71e9_4c6a_81ac795783b0a857\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SplitChannel = intNumberOfChannels;\r\n// }} \"\"\r\n// {{ 123 1 0 \"8dcfdc02_772c_42d9_878c7313deda9f4d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 124 1 0 \"e50071b1_d025_4bbc_996d5e0933ccc18f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SplitChannel = intNumberOfChannels / 2;\r\n// }} \"\"\r\n// {{ 125 1 0 \"8dcfdc02_772c_42d9_878c7313deda9f4d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 126 1 0 \"33b11cdb_e498_495a_990d119b56d21a01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Parameter = Translate(\"yf\");\r\n// }} \"\"\r\n// {{ 127 1 0 \"446cbbf8_e9fc_4cb9_900466c8d814259b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < intNumberOfChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 128 1 0 \"9f39b710_808c_49a5_b5438d2927b4da5e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelIndex <= int_SplitChannel)\r\n{\r\n// }} \"\"\r\n// {{ 129 1 0 \"a3e7de1f_9a54_44ed_8299e7d11cef6019\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelPosition=arr_YMax.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 130 1 0 \"e55fab79_e490_4e99_b5b839c375880d99\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ChannelPosition = flt_ChannelPosition - 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 131 1 0 \"9f39b710_808c_49a5_b5438d2927b4da5e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 132 1 0 \"fe17d218_2360_4faf_ba55502e12f65460\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ChannelPosition=arr_YMin.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 133 1 0 \"8c2235da_cef3_4bfc_81a9283b19804fca\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ChannelPosition = flt_ChannelPosition + 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 134 1 0 \"9f39b710_808c_49a5_b5438d2927b4da5e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 135 1 0 \"f778b01a_8df5_47b5_bdff1b4dd8a3d09b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelPosition = flt_ChannelPosition * 10;\r\n// }} \"\"\r\n// {{{ 136 1 0 \"355e1cdc_5563_4860_826a51335b17ede5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_ChannelPosition);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"03b75d38_2101_4bfe_ae9cb21063670e9a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPosition = StrConcat2(int_ChannelPosition, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 138 1 0 \"7a407768_9bd0_49d7_a73c88174fd139a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPosition = StrFillLeft(str_ChannelPosition, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"2f5d65ee_9021_4f39_83a620f8237ba036\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameter = StrConcat8(str_Parameter, Translate(\"\"), str_ChannelPosition, Translate(\" \"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 140 1 0 \"446cbbf8_e9fc_4cb9_900466c8d814259b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 141 1 0 \"5861b509_c3c1_4147_af0b2e900e184c6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Parameter = StrTrimRight(str_Parameter, Translate(\" \"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Parameter:  \",str_Parameter);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 143 1 0 \"f8170055_2cfb_4fc4_a5382d4bfbabd712\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"f8170055_2cfb_4fc4_a5382d4bfbabd712\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveChannelsToTravelLanes_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveSingleChannel_5mL\" \"Begin\"\r\nfunction MoveSingleChannel_5mL( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void {\r\n// }} \"\"\r\nprivate variable flt_YRaster;\r\nprivate variable str_YValue;\r\nprivate variable int_YValue;\r\nprivate variable str_Param;\r\nprivate variable str_PN;\r\nprivate variable flt_YValue;\r\nprivate variable intNumberOfChannels;\r\nprivate variable str_YParam;\r\nprivate variable bool_SimulationMode;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\n// {{ 5 \"MoveSingleChannel_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 174 1 0 \"d4716ddc_4f40_4ca1_943d53f710994b28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 175 1 0 \"4d36ab42_1377_4d52_946f7bfcb035611f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"2b385b19_0128_4cba_9df8b746130dcb3b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{ 177 1 0 \"94dc005a_8dbf_4f7c_bbfacda6ffd06736\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ChannelNumber > intNumberOfChannels)\r\n{\r\n// }} \"\"\r\nTrace(\"CHANNEL \",i_int_ChannelNumber,\" EXCEEDS NUMBER OF CHANNELS ON SYSTEM!\");\r\n// {{{ 179 1 0 \"fcbe3f54_f18d_4f7e_9cb463871daff384\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 180 1 0 \"94dc005a_8dbf_4f7c_bbfacda6ffd06736\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 181 1 0 \"6bed1644_76c8_4a1f_a7841c3bed50ef57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_YCoordinate > arr_YMax.ElementAt( i_int_ChannelNumber -1))\r\n{\r\n// }} \"\"\r\nTrace(\"Y COORDINATE \",i_flt_YCoordinate,\" IS GREATER THAN THE Y LIMIT FOR CHANNEL \",i_int_ChannelNumber,\"!\");\r\n// {{{ 183 1 0 \"a4d58e8d_44d4_43c9_b6da066a0d58e294\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 184 1 0 \"6bed1644_76c8_4a1f_a7841c3bed50ef57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 185 1 0 \"3e2ea714_295c_470c_a5ef46ee02a16558\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_YCoordinate < arr_YMin.ElementAt( i_int_ChannelNumber -1))\r\n{\r\n// }} \"\"\r\nTrace(\"Y COORDINATE \",i_flt_YCoordinate,\" IS LESS THAN THE Y LIMIT FOR CHANNEL \",i_int_ChannelNumber,\"!\");\r\n// {{{ 187 1 0 \"5210d82d_62ee_4dcc_a58d6159f51a8c70\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 188 1 0 \"3e2ea714_295c_470c_a5ef46ee02a16558\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 189 1 0 \"2149d892_5afc_4d28_9cf4a8f5e5067722\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PN = StrConcat2(i_int_ChannelNumber, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 190 1 0 \"41bd419e_b171_420d_809f211917137ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PN = StrFillLeft(str_PN, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"0ced7226_45dd_49c6_a4e977a428908d29\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PN = StrConcat2(Translate(\"pn\"), str_PN);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 192 1 0 \"cafa179a_fe58_4d5a_86e31f6da6c18a6b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YValue=arr_YMax.GetAt(i_int_ChannelNumber-1);\r\n// }} \"\"\r\n// {{ 193 1 0 \"295d6e72_c92b_4444_88d401c0cd4a0909\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YValue = flt_YValue - 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 194 1 0 \"4c37356a_a057_4c8f_b3b6170eb1dd9f30\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_YValue = i_flt_YCoordinate * 10;\r\n// }} \"\"\r\n// {{{ 195 1 0 \"fdf8d283_b6fd_4c0d_8e759dab00d56d09\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(int_YValue);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"0569da26_847c_4bed_974d1ac4b25d9e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YValue = StrConcat2(int_YValue, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 197 1 0 \"6ab5d99b_f153_463b_a5a5bbd7a17d5b6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YValue = StrFillLeft(str_YValue, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ed169683_1838_422f_9d0289b4fcfbeb9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YParam = StrConcat2(Translate(\"yj\"), str_YValue);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"d8fc5d1f_d36d_4ff8_bd342a06ac170324\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Param = StrConcat2(str_PN, str_YParam);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Parameter:  \",str_Param);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 201 1 0 \"d48fa358_29fd_497a_8445a4b9657d9a73\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"d48fa358_29fd_497a_8445a4b9657d9a73\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveSingleChannel_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveUsedChannel_5mL\" \"Begin\"\r\nfunction MoveUsedChannel_5mL( device & ML_STAR, variable i_str_PipetteReturn ) void {\r\n// }} \"\"\r\nprivate variable str_LabwareID;\r\nprivate variable intNumberOfPositions;\r\nprivate variable strChannelPositions;\r\nprivate variable int_YValue;\r\nprivate variable flt_YRaster;\r\nprivate variable loop_StepReturn;\r\nprivate variable str_Parameter;\r\nprivate variable flt_YValue;\r\nprivate variable intNumberOfChannels;\r\nprivate variable bool_MoveChannel;\r\nprivate variable bool_SimulationMode;\r\nprivate variable arrChannelPositions[];\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable i;\r\nprivate variable flt_CurrentY;\r\n// {{ 5 \"MoveUsedChannel_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 235 1 0 \"07d322c6_e3ed_4189_9bca4272a3df07ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 236 1 0 \"bb7b2f6d_7307_40a4_aac2ec088511b4b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"4fce9d3d_9c2e_4adf_9118d7ecc28a8728\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{{ 238 1 0 \"84dd10a9_eec6_4b54_b8c382fa200237f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintNumberOfPositions = StepReturn::GetNumberOfPositions(i_str_PipetteReturn);\r\n// }} \"\"\r\n// {{ 239 1 0 \"60c6c941_6631_412b_97d02a71e980c205\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"60c6c941_6631_412b_97d02a71e980c205\"); // FirmwareCommand\r\n\tstrChannelPositions = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 240 1 0 \"a5b1e32e_1b00_4c38_838fdd045245f437\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrChannelPositions = HSLExtensions::String::Split(strChannelPositions, Translate(\"+\"), 1);\r\n// }} \"\"\r\n// {{ 241 1 0 \"bf1a7931_ddf3_481e_a121d956124a76e4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loop_StepReturn = 0; loop_StepReturn < intNumberOfPositions;)\r\n{\r\nloop_StepReturn = loop_StepReturn + 1;\r\n// }} \"\"\r\n// {{ 242 1 0 \"687699a2_fdcb_4519_a61580192b9e6f15\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni = loop_StepReturn + 1;\r\n// }} \"\"\r\n// {{{ 243 1 0 \"ed884165_eb10_472a_a38e0a83b71dfce7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabwareID = StepReturn::GetLabwareId(loop_StepReturn, i_str_PipetteReturn);\r\n// }} \"\"\r\n// {{ 244 1 0 \"cf5e6df5_ab84_4e89_9e32d96a56add5fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Parameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 245 1 0 \"c119798f_9a3b_4220_af24e9419b5eb5a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabwareID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 246 1 0 \"785d809b_5132_4396_be468047cdcfed2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_MoveChannel = 0;\r\n// }} \"\"\r\n// {{ 247 1 0 \"c460b000_87e0_40ab_9fd36ddcac0ab6fa\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YValue=arr_YMax.GetAt(loop_StepReturn-1);\r\n// }} \"\"\r\n// {{ 248 1 0 \"c3daa079_1919_4934_94349fd7a915aa76\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentY=arrChannelPositions.GetAt(i-1);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"6729a215_c40e_4c6a_a326487c511d3e29\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_CurrentY = StrFVal(flt_CurrentY);\r\n// }} \"\"\r\n// {{ 250 1 0 \"62f1d9ed_c441_4616_aab6cf6d8c488d43\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_CurrentY / (10 * 1.0);\r\n// }} \"\"\r\n// {{ 251 1 0 \"1e6bf4a0_e93d_4af1_9fbb0d1bc178948f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YValue = flt_YValue - 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 252 1 0 \"10b23a75_5c9c_4668_b5460a7962e43c72\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 253 1 0 \"7d386231_9850_4da7_a46536c1890c5185\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SimulationMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 254 1 0 \"f2969793_51df_47d1_996fbfd3b7b0a471\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrChannelPositions.ElementAt( loop_StepReturn -1) < int_YValue)\r\n{\r\n// }} \"\"\r\n// {{ 255 1 0 \"65590267_7a0d_44b1_99df8ca9880a34ab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_MoveChannel = 1;\r\n// }} \"\"\r\n// {{ 256 1 0 \"f2969793_51df_47d1_996fbfd3b7b0a471\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 257 1 0 \"7d386231_9850_4da7_a46536c1890c5185\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 258 1 0 \"82d74ffc_b217_4c9a_a42e63667e5c5729\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_MoveChannel = 1;\r\n// }} \"\"\r\n// {{ 259 1 0 \"7d386231_9850_4da7_a46536c1890c5185\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\nTrace(\"Y Max:  \",flt_YValue,\"  Current Y:  \",flt_CurrentY,\"  Move channel number:  \",loop_StepReturn);\r\n// {{ 261 1 0 \"b68b2b6f_4e2a_4d4f_a554f6ccbd9374ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_MoveChannel = 1;\r\n// }} \"\"\r\n// {{ 262 1 0 \"8a25d03e_094f_498b_a014d059852377a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_MoveChannel == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"c4b061a9_c1a8_4b6c_a5e7d214741b62d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMoveSingleChannel_5mL(ML_STAR, loop_StepReturn, flt_YValue);\r\n// }} \"\"\r\n// {{ 264 1 0 \"8a25d03e_094f_498b_a014d059852377a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 265 1 0 \"c119798f_9a3b_4220_af24e9419b5eb5a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 266 1 0 \"bf1a7931_ddf3_481e_a121d956124a76e4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MoveUsedChannel_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2020-03-26 14:50$$checksum=8ee8441d$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/VANTAGE Channel Movement Tools.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 10/6/2021 3:00:03 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace VANTAGE_CHANNEL_MOVEMENT_TOOLS {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction 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); }\r\nfunction GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void { }\r\nfunction Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { }\r\nfunction Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { }\r\nfunction Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { }\r\nfunction Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { }\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { }\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { }\r\nfunction InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void { }\r\nfunction InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void { }\r\nfunction Reset_Search_Z( device & ML_STAR ) void { }\r\nfunction 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); }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Hamilton$$valid=0$$time=2021-10-06 15:00$$checksum=6f78774d$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/Resources/SubMethods/VANTAGE Channel Movement Tools.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSLExtensions\\\\String.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\FW_HelperLibrary.hs_\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace VANTAGE_CHANNEL_MOVEMENT_TOOLS {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction 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 ;\r\nfunction GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void ;\r\nfunction Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ;\r\nfunction Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ;\r\nfunction Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void ;\r\nfunction Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void ;\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ;\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ;\r\nfunction InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void ;\r\nfunction InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void ;\r\nfunction Reset_Search_Z( device & ML_STAR ) void ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nFW_HELPERLIBRARY::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nFW_HELPERLIBRARY::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"CheckPlateWithTwoChannels\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable i_int_X_Position;\r\nprivate variable bool_ParamFound;\r\nprivate variable int_SafeTravelHeight;\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable str_Y_Position;\r\nprivate variable flt_SafeTravelHeight;\r\nprivate variable str_FWParameter;\r\nprivate variable int_Length;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZCoordBack;\r\nprivate variable flt_ZSpeed;\r\nprivate variable int_Y_Position;\r\nprivate variable i;\r\nprivate variable str_TH;\r\nprivate variable strFunctionName;\r\nprivate variable str_ZP;\r\nprivate variable str_FWCommand;\r\nprivate variable flt_HalfDistanceY;\r\nprivate variable str_YP;\r\nprivate variable flt_ZCoordFront;\r\nprivate variable flt_Y_Position;\r\nprivate variable int_TotalParameters;\r\nprivate variable str_Z_Position;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_XP;\r\nprivate variable int_Z_Position;\r\nprivate variable i_str_ChannelPattern;\r\nprivate variable str_TM;\r\nprivate variable flt_FrontYLocation;\r\nprivate variable flt_BackYLocation;\r\nprivate variable flt_ZIncremenToMM;\r\nprivate variable str_ZV;\r\nprivate variable flt_XCenter;\r\nprivate variable int_ErrorCode;\r\nprivate variable str_ZSpeed;\r\nprivate variable int_ZSpeed;\r\nprivate variable flt_Z_Position;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_Count;\r\nprivate variable ret_WallFound;\r\nprivate variable str_ChValue;\r\nprivate variable i_str_X_Position;\r\nprivate variable int_ChValue;\r\nprivate variable str_SafeTravelHeight;\r\nprivate variable int_ChIndex;\r\nprivate variable arr_Parameters[];\r\nprivate variable arr_ChPattern[];\r\nprivate variable i_arr_Z_Position1[];\r\nprivate variable i_arr_Y_Position[];\r\nprivate variable i_arr_Z_Position2[];\r\nprivate variable i_arr_Z_Position3[];\r\n// {{ 5 \"CheckPlateWithTwoChannels\" \"InitLocals\"\r\no_flt_HeightFound = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"1e9c3630_89a5_49bb_8235e6218c5ea0a0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2 1 0 \"538679c0_cdd0_42f3_9369f47ad165d70d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZIncremenToMM = 0.009765625;\r\n// }} \"\"\r\n// {{ 3 1 0 \"491e4f53_cb0a_4903_9a06672d5911c1a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 4 1 0 \"2d1dbd80_f0ab_493a_bda3c2f79e15afb9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 6 1 0 \"a58d60d9_5f99_48fd_96c8056e0ad5ce24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"e8a8d1e4_67e5_4a6f_b7da8bfffcb2922d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 8 1 0 \"db8492e9_071e_4ce1_a0861520533206b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 9 1 0 \"9ac61ee0_1b80_44fd_95249e412e3f9c05\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 10 1 0 \"87ca3462_e149_48bf_aff46796d9d62bcb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 11 1 0 \"9476cc7e_5541_4dc3_b16fec195f5ffcc7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 12 1 0 \"491e4f53_cb0a_4903_9a06672d5911c1a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 13 1 0 \"300499ad_1087_4348_951a2b148d17e30d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_WallFound = 0;\r\n// }} \"\"\r\n// {{ 14 1 0 \"e326096c_9ca0_4557_b4bf53a556c58fb0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_HeightFound = 0.0;\r\n// }} \"\"\r\n// {{{ 15 1 0 \"1756cd09_54f6_4e3c_96c401273c440485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{ 16 1 0 \"bb46d230_453f_46ce_9a97d95a978c82b9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 17 1 0 \"82166d55_5579_4dae_82d2a653994bc5af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_str_ChannelPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 18 1 0 \"942da3cf_ec52_40f7_929bd9773cc80da7\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 19 1 0 \"96754f7b_997b_41e6_96533b32a40ad685\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 20 1 0 \"a5594dd4_a5bc_4da0_82f85d5e15b45ba0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 21 1 0 \"96754f7b_997b_41e6_96533b32a40ad685\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 22 1 0 \"58ac1a0b_f02c_4e99_9aae24416edcbbb8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.SetAt(i_int_BackChannel-1, 1);\r\n// }} \"\"\r\n// {{ 23 1 0 \"b6b1f31c_2a07_449b_b8f9c93fa2754a00\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.SetAt(i_int_FrontChannel-1, 1);\r\n// }} \"\"\r\n// {{ 24 1 0 \"05f2b90d_407e_48f2_ac6eb0fc78e72a0f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 25 1 0 \"1d276884_6001_4a75_aee0515601ab425a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 26 1 0 \"05f2b90d_407e_48f2_ac6eb0fc78e72a0f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 27 1 0 \"bb46d230_453f_46ce_9a97d95a978c82b9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 28 1 0 \"90add92a_6cca_4c05_b9534ef745e0776f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 29 1 0 \"c2b7b034_e2fb_46a7_ad1161814ad9755e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\ni_arr_Y_Position.SetSize(0);\r\n// }} \"\"\r\n// {{ 30 1 0 \"55cd1259_b508_4ddb_b384ac68319842e9\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\ni_arr_Z_Position1.SetSize(0);\r\n// }} \"\"\r\n// {{ 31 1 0 \"99c9ddce_2410_4967_bebbad90508a9f50\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\ni_arr_Z_Position2.SetSize(0);\r\n// }} \"\"\r\n// {{ 32 1 0 \"6776aa17_5dca_4aa8_a98fb38f49f91fff\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\ni_arr_Z_Position3.SetSize(0);\r\n// }} \"\"\r\n// {{ 33 1 0 \"b7baa091_28a3_4cb3_bd89b0d1e6fe2475\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_HalfDistanceY = i_flt_SearchWidth / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 34 1 0 \"e7bc8b09_a1fc_4d02_9b2ba680ad22e21e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BackYLocation = i_flt_YCenter + flt_HalfDistanceY;\r\n// }} \"\"\r\n// {{ 35 1 0 \"e989e420_4688_4fbb_900775fd5bcf85c3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_FrontYLocation = i_flt_YCenter - flt_HalfDistanceY;\r\n// }} \"\"\r\n// {{ 36 1 0 \"e2ddb0f6_3cc3_432e_8323e906bf280463\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 37 1 0 \"87d18488_1c49_4d9e_82890f4ac0b9137c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Y_Position.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 38 1 0 \"0bbd4798_8c50_4f66_85c185258b8d957e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position1.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 39 1 0 \"04d45935_b944_4a6a_bae93611bb4dd9ce\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position2.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 40 1 0 \"4fd5d0e9_9319_4c48_b654b099c823d529\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position3.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 41 1 0 \"e2ddb0f6_3cc3_432e_8323e906bf280463\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 42 1 0 \"b3ef0d13_39f3_4861_9d16300650ee1ef0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Y_Position.SetAt(i_int_BackChannel-1, flt_BackYLocation);\r\n// }} \"\"\r\n// {{ 43 1 0 \"5c0e4dfd_2efd_406e_89e8a5bee3424b04\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Y_Position.SetAt(i_int_FrontChannel-1, flt_FrontYLocation);\r\n// }} \"\"\r\n// {{ 44 1 0 \"77839380_20a4_4192_b9a6a38da749e600\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position1.SetAt(i_int_BackChannel-1, i_flt_MinimumTraverseHeightBegining);\r\n// }} \"\"\r\n// {{ 45 1 0 \"5c73d7a3_c94d_4564_8728b4140efe0fe0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position1.SetAt(i_int_FrontChannel-1, i_flt_MinimumTraverseHeightBegining);\r\n// }} \"\"\r\n// {{ 46 1 0 \"f73d7a08_9227_4084_b40fc55a52f37e6c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position2.SetAt(i_int_BackChannel-1, i_flt_ZMinimumSearchHeight);\r\n// }} \"\"\r\n// {{ 47 1 0 \"08578a22_8c02_4c77_b00d3d52e509092e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position2.SetAt(i_int_FrontChannel-1, i_flt_ZMinimumSearchHeight);\r\n// }} \"\"\r\n// {{ 48 1 0 \"6322e468_d18f_41de_8f420bf9d522e08a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position3.SetAt(i_int_BackChannel-1, i_flt_MinimumTraverseHeightEnding);\r\n// }} \"\"\r\n// {{ 49 1 0 \"a2728051_f010_4309_b2ab0c96599ba2d4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\ni_arr_Z_Position3.SetAt(i_int_FrontChannel-1, i_flt_MinimumTraverseHeightEnding);\r\n// }} \"\"\r\n// {{ 50 1 0 \"90add92a_6cca_4c05_b9534ef745e0776f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 51 1 0 \"4686cef3_0253_420e_92006badff7585ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 52 1 0 \"bb129d94_cdc5_4fbb_a79a56bac5aeecc4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Move to start position\"));\r\n// }} \"\"\r\n// {{ 53 1 0 \"771f9b36_d55c_4715_baf4042e9b49306e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumTraverseHeightBegining;\r\n// }} \"\"\r\n// {{ 54 1 0 \"858446c7_2dd9_403b_94852d8e706b41f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCenter = i_flt_XCenter;\r\n// }} \"\"\r\n// {{ 55 1 0 \"0f19e3cd_3f40_4f42_9ed008f5296bb199\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0JM\");\r\n// }} \"\"\r\n// {{ 56 1 0 \"d6c2a603_af1d_434c_93ca038d2a619e78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 57 1 0 \"89f6e4f2_cdc9_4482_ad8bc0f82f331c53\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 58 1 0 \"f36029a0_d693_43f5_8228458617976471\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 59 1 0 \"e1acfeb2_e25b_4ade_bbe333d078adaa3f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 60 1 0 \"1c934587_4dc3_48a8_b1b285863c07a6b6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 61 1 0 \"2d95ab85_effb_45da_a720cacaec8e46d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"65e47ecf_750e_4a93_8e509e59c2966497\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 63 1 0 \"3b6762c6_f466_4c46_9926b0c9055e26fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 64 1 0 \"c6e8fd0d_36c0_41ef_8f02caf7a9e63b77\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 65 1 0 \"1c934587_4dc3_48a8_b1b285863c07a6b6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 66 1 0 \"c3d4b989_6c3d_4f36_bf2a5357735d7a8b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 67 1 0 \"5835d8e1_1f9b_455a_a4d2b9ee08af62ba\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 68 1 0 \"b685d5cf_be57_4ba4_93be9915b3e6b4da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 69 1 0 \"af00ac49_cd06_457b_bc85d2bc00fb51e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 70 1 0 \"b685d5cf_be57_4ba4_93be9915b3e6b4da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 71 1 0 \"871904c2_8089_4ef6_aac91b0c7eaa62dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 72 1 0 \"5835d8e1_1f9b_455a_a4d2b9ee08af62ba\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 73 1 0 \"802dec5d_1dd6_4680_82c8b23d062fcfc8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 74 1 0 \"f36029a0_d693_43f5_8228458617976471\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 75 1 0 \"1e56a973_ad98_4d12_9614698d276973c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"5e2000f7_a7f1_4f9f_a071002dc8332b19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xp\");\r\n// }} \"\"\r\n// {{ 77 1 0 \"bbf4a8f8_39c5_47d7_a87bbcdf7b33bfe4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCenter = flt_XCenter * 10;\r\n// }} \"\"\r\n// {{{ 78 1 0 \"e368d7fd_2fed_49a1_8a224872ff0f4a37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_int_X_Position = MthCeiling(flt_XCenter);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"997a3600_86df_49b9_bfa0c1951222fbce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrConcat2(i_int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 80 1 0 \"9ce3fb40_985d_4744_a843cdc335e184c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrFillLeft(i_str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 81 1 0 \"b2123763_9046_4fe4_b895f9726843411b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, i_str_X_Position, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 82 1 0 \"2fb432cc_ae2c_4011_9ea5d1e189bb4ac5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 83 1 0 \"1e56a973_ad98_4d12_9614698d276973c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 84 1 0 \"5a6c23b0_b016_4a15_956b785bc25883fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 85 1 0 \"eaacc9c2_33e2_4d66_b0e55a909cf93e92\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 86 1 0 \"a7a0266d_97a3_4177_8657093d857d1137\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"28c48d23_7aa4_47da_9034c7765c1105c0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 88 1 0 \"97db8d61_9895_4cdb_be047bceba6ce3e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 89 1 0 \"28c48d23_7aa4_47da_9034c7765c1105c0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 90 1 0 \"fe33da64_5119_44eb_b53dbd470d28c5de\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 91 1 0 \"86bf4228_2a82_4b72_8238d953a831ea58\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n// {{{ 92 1 0 \"89c6a8fd_2bac_41b9_b87bc7c1d8596b98\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"955f32af_f088_4045_b13897d91308131a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 94 1 0 \"93aa7352_07a4_4371_b4932da428f31256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"13b744f6_6388_4778_9f7a4475c8438e81\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 96 1 0 \"a7a0266d_97a3_4177_8657093d857d1137\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"a014780f_ae63_41e6_9900d48e4370f42e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 98 1 0 \"5a6c23b0_b016_4a15_956b785bc25883fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 99 1 0 \"450d084a_9d92_4886_b7f1e116358b9903\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 100 1 0 \"151a5274_4881_433c_90d4f74dd2d8c4c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 101 1 0 \"c84d5ac4_f621_4d35_a2a53a703d34826b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 102 1 0 \"868a5801_11d6_4e86_87d4c26c269b0d57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"4354fc22_40a7_4ae8_860397937f9747b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 104 1 0 \"83f30991_f10a_4357_9403faeefd46b944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"b2e9759d_90a4_4763_be7c40d6e1849b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 106 1 0 \"eb943cbe_6fd5_4c97_bb8a62b9e8e41296\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 107 1 0 \"450d084a_9d92_4886_b7f1e116358b9903\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 108 1 0 \"3df1b819_909e_46d3_b34a1a4ad9bc613f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 109 1 0 \"ed5e253a_08cd_4d25_b7e2805e6ded3052\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"zp\");\r\n// }} \"\"\r\n// {{ 110 1 0 \"287055f2_927f_4f23_b7f089d41a5ff4d0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 111 1 0 \"37219d2a_ca31_4d69_b58f5a682bb952f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 112 1 0 \"32f52ce9_8ae9_4617_bf3603f90ec2c0bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 113 1 0 \"37219d2a_ca31_4d69_b58f5a682bb952f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 114 1 0 \"d0e19a92_4296_4193_bc6985b264fc3ea9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position1.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 115 1 0 \"95394750_d043_4e2c_8a3106dfe40f91b7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 116 1 0 \"e8704b32_6d7e_4e57_9cc4867669d6899d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"dc5ca7d8_5dbe_42cf_97551621ee72d5c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 118 1 0 \"0722891e_4b46_4f20_a45373c13019c5c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"30bac45b_e2cf_4de8_849aec50b423865d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 120 1 0 \"287055f2_927f_4f23_b7f089d41a5ff4d0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 121 1 0 \"cafb6b01_8c33_4e3d_897529ee445d7a1b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 122 1 0 \"3df1b819_909e_46d3_b34a1a4ad9bc613f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"674f9492_6f1d_442c_90ea5b9550284625\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 124 1 0 \"a010655e_437b_4b7a_9c1116b638b1fa8c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 125 1 0 \"d1a42572_fc42_400b_bfe2eee181f1f84e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 126 1 0 \"a010655e_437b_4b7a_9c1116b638b1fa8c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 128 1 0 \"3a4e0272_893f_4c22_9333ff27d40c3933\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"3a4e0272_893f_4c22_9333ff27d40c3933\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"91fb0d9b_56f7_4ebc_a4615c85de33f3bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 130 1 0 \"4686cef3_0253_420e_92006badff7585ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 131 1 0 \"c4a29586_d41c_4d91_b2f4af76960615e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 132 1 0 \"253eae5f_19f8_45ed_89f4a951a327f3cd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Change Z speed and sensitivity\"));\r\n// }} \"\"\r\n// {{ 133 1 0 \"e69d3ef1_3b37_4a88_8576a092961f0208\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZSpeed = i_flt_ZSpeed / (flt_ZIncremenToMM * 1.0);\r\n// }} \"\"\r\n// {{{ 134 1 0 \"2e6f0e5d_ead4_44a9_83faa8a0e1d26d70\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ZSpeed = MthCeiling(flt_ZSpeed);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"f46d9c11_a90e_41a6_b27fadb0d950345c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZSpeed = StrConcat2(int_ZSpeed, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 136 1 0 \"70c83cf0_9f7b_4101_a12c002a8b132584\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZSpeed = StrFillLeft(str_ZSpeed, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"82919a75_1305_4c90_bee80b38a77673d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZV = StrConcat4(Translate(\"zv\"), str_ZSpeed, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 138 1 0 \"445ff6bb_dac4_468c_a864886c7a11aba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWCommand = StrConcat8(Translate(\"A1PXZGzr150000zw0010za34600\"), str_ZV, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 139 1 0 \"91729b0b_485e_4d5c_a0830ef2d2a60e6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWCommand = StrConcat8(Translate(\"A1PXAAzr150000zw0100za34600\"), str_ZV, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand);\r\n// {{ 141 1 0 \"9681fe46_b76e_417a_9dc2c2a352c88e44\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"9681fe46_b76e_417a_9dc2c2a352c88e44\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"c4a29586_d41c_4d91_b2f4af76960615e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"dbc6215c_4576_4b70_8a3307a46e2bbece\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"c68f228a_72af_47e8_bc2969676f554a74\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Move to tap position\"));\r\n// }} \"\"\r\n// {{ 145 1 0 \"5498ab31_5bd7_4846_a61c036df88ba94b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumTraverseHeightBegining;\r\n// }} \"\"\r\n// {{ 146 1 0 \"6b7eb294_ae02_445f_8850f5701a665dce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCenter = i_flt_XCenter;\r\n// }} \"\"\r\n// {{ 147 1 0 \"7e223730_4836_449c_8fa1e4cd92adfe3c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0JM\");\r\n// }} \"\"\r\n// {{ 148 1 0 \"26e88a70_9c2d_4c27_b414ed0464c4d702\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 149 1 0 \"1c3c5614_a8c4_4ac7_8f9b8f7fadf54acd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 150 1 0 \"24c1ce34_6a85_4ba0_ad7678448cd58822\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 151 1 0 \"18e988b6_cd15_47bf_b304f4a3656b4aa5\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 152 1 0 \"15dd81d5_737c_43f4_a371f2ed1f740a13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 153 1 0 \"c81c6dd3_9e20_4563_a1b447de47056a93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"0e1e89e4_ae9d_4dee_8da2e2dcf0559da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 155 1 0 \"63b07615_931d_4111_b0fab3128fcd9a64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 156 1 0 \"2dd936ea_a40d_4b59_ba8695361f46bf3d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 157 1 0 \"15dd81d5_737c_43f4_a371f2ed1f740a13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"a4c22564_6f45_4bcd_820a00f3e5490d0f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 159 1 0 \"bfb91682_39c1_4fcf_ab9200918b90bd03\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 160 1 0 \"abc19f4d_e54b_4b76_a0afe301bdf0cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 161 1 0 \"e49d9603_6e57_4531_850099e4a669d0f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 162 1 0 \"abc19f4d_e54b_4b76_a0afe301bdf0cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 163 1 0 \"537c6145_66ac_4034_bd32aabbff2afdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 164 1 0 \"bfb91682_39c1_4fcf_ab9200918b90bd03\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 165 1 0 \"7a07ace6_a773_4ae7_8ef406cda3885f61\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 166 1 0 \"24c1ce34_6a85_4ba0_ad7678448cd58822\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c2906693_158c_47eb_a01439f875904438\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"937218a6_aad1_47e9_988bbad47ff6e631\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xp\");\r\n// }} \"\"\r\n// {{ 169 1 0 \"ccb7c0ce_ce73_4713_a5168993392fa37f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCenter = flt_XCenter * 10;\r\n// }} \"\"\r\n// {{{ 170 1 0 \"0093666f_228a_48e7_84418e3d4d0b8016\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_int_X_Position = MthCeiling(flt_XCenter);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"7a85d5b6_4694_495a_91e7337be3e9d73f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrConcat2(i_int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 172 1 0 \"da320f5d_a1df_491d_a7470db1b68526b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrFillLeft(i_str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"d329ee5d_e5c0_4d8f_8b0f91cf350ac15c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, i_str_X_Position, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 174 1 0 \"e41e1f3c_cad7_4b18_9b0e202de7e80431\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 175 1 0 \"c2906693_158c_47eb_a01439f875904438\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 176 1 0 \"cd82fa5d_b96d_40ed_b3497a44613b795e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 177 1 0 \"5fdbe974_5afd_45ef_99996ea3e16c1edb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 178 1 0 \"71d67240_e350_4343_83f6a6c734a3be27\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 179 1 0 \"069babe7_6600_4cbe_9e9496c84fffa8be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 180 1 0 \"36653d37_92f0_4d62_b0dce159737c3d78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 181 1 0 \"069babe7_6600_4cbe_9e9496c84fffa8be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 182 1 0 \"6297de84_0ed7_40b8_ac4bd0b9f2d2bfc7\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 183 1 0 \"50c3f20b_e0f4_4c39_b495d6c4e0b7f70e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n// {{{ 184 1 0 \"297d8095_543a_4acf_93f69de926edfe91\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 185 1 0 \"4aba1740_88d2_4a05_9b938b16dbe0e9bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 186 1 0 \"53b0c058_371b_4488_898fbf09d3d20307\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 187 1 0 \"752ae2a9_32b3_4773_86daaf929994f324\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 188 1 0 \"71d67240_e350_4343_83f6a6c734a3be27\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 189 1 0 \"4a8a3f7c_4871_4b59_88fad760fed2598c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 190 1 0 \"cd82fa5d_b96d_40ed_b3497a44613b795e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 191 1 0 \"5db8f146_287a_4239_8915567dcabc0e27\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 192 1 0 \"ca00a96a_7f65_4a7e_8eb406e3432c7092\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 193 1 0 \"84b07daf_6498_465c_b2ba6abd86876aad\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 194 1 0 \"41f098ff_ca76_4c39_9443757123aaa85b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"7c9eea09_4f96_4479_a879cd40805cc068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 196 1 0 \"947c8122_39c4_40b7_a95f3f48f4824e18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"b4a58d20_e603_40ab_9cb2371260199c0a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 198 1 0 \"fe16abfe_e42d_4d29_a65f16de752ee037\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 199 1 0 \"5db8f146_287a_4239_8915567dcabc0e27\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 200 1 0 \"a7507488_3068_4942_99877c745b15654a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 201 1 0 \"38cbde78_1da2_4f43_b929908e6e1c8297\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"zp\");\r\n// }} \"\"\r\n// {{ 202 1 0 \"cf92a4ee_7725_4531_94573eee043f6a04\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 203 1 0 \"36afeac7_ab08_4b20_bdfd7e51d3f68bde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 204 1 0 \"4bdee81e_6142_4c97_9268704a097e31f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 205 1 0 \"36afeac7_ab08_4b20_bdfd7e51d3f68bde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 206 1 0 \"1be65eed_dee8_47a2_97282088f1513ff0\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position2.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 207 1 0 \"2152baee_07e6_4022_b9ddc8e729653502\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 208 1 0 \"dc1083f5_775b_4c31_9ec07fbfd5ef9a5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f4fd9811_8bbe_4366_873bc8108377a61b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 210 1 0 \"09437c3b_5ac8_445c_86108506f4ce622d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"eac4d02e_208e_46a4_869174ed97450e7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 212 1 0 \"cf92a4ee_7725_4531_94573eee043f6a04\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 213 1 0 \"fc5f6120_3aa8_4df5_b123c05c77955f9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 214 1 0 \"a7507488_3068_4942_99877c745b15654a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 215 1 0 \"7f9c1fb8_3c28_4a3e_95255a02e3a3bfce\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 216 1 0 \"84ed218b_3b73_468e_a9e15d6d0b65906e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 217 1 0 \"37c5e7c9_5397_41ed_9e3d21a680cc9436\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 218 1 0 \"84ed218b_3b73_468e_a9e15d6d0b65906e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 220 1 0 \"4a07a3dc_4584_49fe_acf5a39938f624f0\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"4a07a3dc_4584_49fe_acf5a39938f624f0\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 221 1 0 \"588775db_81a5_4f60_8945be115e5a2ffa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"er\"), 1, 2, bool_ParamFound, int_ErrorCode);\r\n// }} \"\"\r\n// {{ 222 1 0 \"21a56c42_8cc4_4a69_92132700f307a3ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ErrorCode != 0)\r\n{\r\n// }} \"\"\r\n// {{ 223 1 0 \"726cb41f_cc7a_4f81_b8db1a55e5203ff5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_WallFound = 1;\r\n// }} \"\"\r\n// {{ 224 1 0 \"21a56c42_8cc4_4a69_92132700f307a3ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 225 1 0 \"a2adb8f1_1891_43f9_9e11157bc903f01d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 226 1 0 \"dbc6215c_4576_4b70_8a3307a46e2bbece\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 227 1 0 \"dbb7fa80_986a_4e99_8e50de666d7a1dd0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 228 1 0 \"1ebeae11_4411_414d_9d3c7c07ea399c46\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Reset the speed back to normal\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 229 1 0 \"31ad2883_3e00_406b_b0a2ed47b10fcd7b\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"31ad2883_3e00_406b_b0a2ed47b10fcd7b\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 230 1 0 \"cd7e400e_e15f_480a_b351a60c96b9795a\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"cd7e400e_e15f_480a_b351a60c96b9795a\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 231 1 0 \"dbb7fa80_986a_4e99_8e50de666d7a1dd0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 232 1 0 \"3a96b22f_cc5f_4886_8f2fa52bb18eedf7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet_Channel_Position(ML_STAR, i_int_BackChannel, flt_NotUsed, flt_NotUsed, flt_ZCoordBack);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"a653fff2_561d_4a88_b242648c85375428\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet_Channel_Position(ML_STAR, i_int_FrontChannel, flt_NotUsed, flt_NotUsed, flt_ZCoordFront);\r\n// }} \"\"\r\n// {{ 234 1 0 \"90321f38_787f_4e36_8d8cf76998ed4d04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_ZCoordBack > flt_ZCoordFront)\r\n{\r\n// }} \"\"\r\n// {{ 235 1 0 \"ca7c20ca_63fe_40a7_a9ae50b56c281c32\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_HeightFound = flt_ZCoordBack;\r\n// }} \"\"\r\n// {{ 236 1 0 \"90321f38_787f_4e36_8d8cf76998ed4d04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 237 1 0 \"c58b81da_6d99_4f2d_840a8d4fcd2cb3aa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_HeightFound = flt_ZCoordFront;\r\n// }} \"\"\r\n// {{ 238 1 0 \"90321f38_787f_4e36_8d8cf76998ed4d04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 239 1 0 \"9594b087_c559_400e_ad8356ec1b971b2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 240 1 0 \"aca8f30f_ac23_44a4_9e290fa88097561c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Move to final position\"));\r\n// }} \"\"\r\n// {{ 241 1 0 \"6458ca77_2291_44fc_b1d06a1a76985ad0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumTraverseHeightBegining;\r\n// }} \"\"\r\n// {{ 242 1 0 \"c196d206_1cc7_4aea_b0e4770b6cebc12c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCenter = i_flt_XCenter;\r\n// }} \"\"\r\n// {{ 243 1 0 \"3f6a0d43_9845_48a5_9b10522cf186f7f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0JM\");\r\n// }} \"\"\r\n// {{ 244 1 0 \"d23e6e6c_b82a_410f_8ccfcb3c769d8783\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 245 1 0 \"61504ca1_115d_4f4b_9411efb5109f3fdd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 246 1 0 \"6da373d0_8ab6_46f0_a442a6b06b84b06f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 247 1 0 \"b704ec00_73f6_45ed_ab78a9886bc3b402\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 248 1 0 \"472af723_9964_4fe2_b046ccc83b1704d6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 249 1 0 \"bd795c95_955e_4a95_8705d0867ef0102b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"6ae85cf1_5688_4347_a8da7dafeca0bf68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"28f53a14_8feb_42d7_b59e575767b01745\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 252 1 0 \"a6fd1ac1_76d5_45e4_94f91e764cdd95f3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 253 1 0 \"472af723_9964_4fe2_b046ccc83b1704d6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 254 1 0 \"97021693_3b6d_4c53_b7b432917dab704d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 255 1 0 \"9a5a6f9c_6948_4dc9_8b718c0b207fda88\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 256 1 0 \"70b77f34_8805_4ba2_bfde7f84003eb9df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 257 1 0 \"7ea06c03_52b0_47a3_af378cea227381a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 258 1 0 \"70b77f34_8805_4ba2_bfde7f84003eb9df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 259 1 0 \"21c0a467_f5c6_4ecf_9e8f66ea76a0eb54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 260 1 0 \"9a5a6f9c_6948_4dc9_8b718c0b207fda88\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 261 1 0 \"a2649ea5_5be4_41cd_afcfc58a5f382215\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 262 1 0 \"6da373d0_8ab6_46f0_a442a6b06b84b06f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 263 1 0 \"01a86660_f4f8_40ae_97ece16b98a36947\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 264 1 0 \"6309f4f4_18da_4524_aece0e96c4701990\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xp\");\r\n// }} \"\"\r\n// {{ 265 1 0 \"f3fc4c5e_3414_430e_ae0b79968f821184\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCenter = flt_XCenter * 10;\r\n// }} \"\"\r\n// {{{ 266 1 0 \"f13db7f5_2f37_471b_9a539f336bcad1e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_int_X_Position = MthCeiling(flt_XCenter);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"f8d55d0f_a15d_4ba7_bfa78bb8786d9df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrConcat2(i_int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 268 1 0 \"883db91b_7730_4654_8cec088b962ff126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrFillLeft(i_str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 269 1 0 \"f8b6ba01_4291_4add_bbb0b4f51ba80097\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, i_str_X_Position, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 270 1 0 \"1f449a65_0427_4535_a03fe74e5489c957\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 271 1 0 \"01a86660_f4f8_40ae_97ece16b98a36947\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 272 1 0 \"cabc3a67_d635_45e2_ba8fab405cd9b249\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 273 1 0 \"7e9de21b_b332_4f4c_89002968dbf6614f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 274 1 0 \"4942e801_e094_4243_9cbd2a520883cbbf\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 275 1 0 \"d30ee41c_40f3_491e_a93f4210b9bbf9f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 276 1 0 \"55dcd8b6_6b8e_43dc_9e4d1712ef161cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 277 1 0 \"d30ee41c_40f3_491e_a93f4210b9bbf9f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 278 1 0 \"606700e3_1b5b_4848_8e5480ec4653ab75\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 279 1 0 \"0b78654e_cf7c_4afc_a55e3647533feaef\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n// {{{ 280 1 0 \"40ba10c1_7ec9_49ef_828712838bc6c79a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"c5413206_f404_410e_b7ccc4ba32640748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 282 1 0 \"a9847340_1af4_4a69_bc0690203249c03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"e555d3e0_debd_4cf3_a26be1efbe79db24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 284 1 0 \"4942e801_e094_4243_9cbd2a520883cbbf\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 285 1 0 \"e48881e1_7188_4b02_b12b85d5dc69e31e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 286 1 0 \"cabc3a67_d635_45e2_ba8fab405cd9b249\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"49603afc_3a4d_441a_952ffe1a8704edf9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"79809aee_a863_44c8_a71f2aa8aaa2c0a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 289 1 0 \"0e70dfb9_273e_4b04_84220ee1cdd575d5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 290 1 0 \"4adee88f_4840_42e7_825f4d9c6586cac7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"d3d68cbd_08c9_4ae1_b6143666024ed8af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 292 1 0 \"1d0cd928_087a_4102_92b8e60c00ac0de2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"9020a5ac_b663_4b08_91d0e8bb7a99d56c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 294 1 0 \"126dbbcb_99ff_43ab_9c3208f26cb4fb95\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 295 1 0 \"49603afc_3a4d_441a_952ffe1a8704edf9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"8a8f0522_ab37_43af_bc21fe3d7754822c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"c16bbadd_8aef_4611_97d0cd897695ac79\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"zp\");\r\n// }} \"\"\r\n// {{ 298 1 0 \"ed8f363c_8f1c_4222_888b5cb6a3fddfde\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 299 1 0 \"a32617e2_bb32_464b_a1f4bd270f68e2df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"3510c348_62fc_433f_a3769e93dd5cc9e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 301 1 0 \"a32617e2_bb32_464b_a1f4bd270f68e2df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 302 1 0 \"50f3030a_0984_4c6f_8a1b1c252debcfea\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position3.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 303 1 0 \"2d37454a_7b78_4356_837bdd2f3ae5c680\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 304 1 0 \"99307bf0_ac25_44ce_a14d69a6550dcd60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"24740695_d13a_4ac3_8c7e674538cd4d34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 306 1 0 \"58a7dedf_35cb_4292_a7ee56ce26eab713\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"d4f46dc4_b277_4fe7_b329689485e3eb29\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 308 1 0 \"ed8f363c_8f1c_4222_888b5cb6a3fddfde\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 309 1 0 \"77a30e2e_52f8_4933_a9deb5d9e1dc6aea\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 310 1 0 \"8a8f0522_ab37_43af_bc21fe3d7754822c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 311 1 0 \"c92aa5a7_c3dc_4c4c_840a57d7537b6daf\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 312 1 0 \"ec946279_ab69_4b05_8c103a905e84eb15\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 313 1 0 \"e343bcc2_4b9e_4720_9f6d34a2b831ff2a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 314 1 0 \"ec946279_ab69_4b05_8c103a905e84eb15\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 316 1 0 \"8aa06f78_f0c0_47b5_8882611b914863f2\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"8aa06f78_f0c0_47b5_8882611b914863f2\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 317 1 0 \"02b86a8d_d194_41c8_a6ff984b00873573\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 318 1 0 \"9594b087_c559_400e_ad8356ec1b971b2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 319 1 0 \"d7a4ffeb_a45f_45af_a2b3d0c758facdf4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_WallFound);\r\n// }} \"\"\r\n// {{{ 5 \"CheckPlateWithTwoChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetStopDiskZCoord\" \"Begin\"\r\nfunction GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void {\r\n// }} \"\"\r\nprivate variable str_FW_ReturnPosition;\r\nprivate variable str_ReturnValue;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable int_FW_Position;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable flt_ReturnValue;\r\n// {{ 5 \"GetStopDiskZCoord\" \"InitLocals\"\r\no_flt_ZCoord = 0;\r\n// }} \"\"\r\n// {{ 321 1 0 \"808fedd2_4684_4a87_bfb7e21ebc2352e5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 322 1 0 \"3b3587b1_e24e_4200_82eb3e0d49751927\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.009765625;\r\n// }} \"\"\r\n// {{{ 323 1 0 \"a35bd492_f4ec_46e6_b5869ecbaebfb84a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelNumber(i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{{ 324 1 0 \"b2d9e4d5_efdd_4aed_96758e997ebdb268\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1P\"), i_int_CurrentChannel, Translate(\"RZ\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 325 1 0 \"f178d574_017c_4ebe_bc0e8005f30824f4\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"f178d574_017c_4ebe_bc0e8005f30824f4\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 326 1 0 \"afe394ca_8806_4bb6_9c7dc4092e1d7115\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rz+\"), flt_Resolution_Z, 5, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 327 1 0 \"587634b4_fda0_4527_9a96cd380baf3922\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FW_ReturnPosition = StrRight(str_ReturnValue, 5);\r\n// }} \"\"\r\n// {{{ 328 1 0 \"f15c0713_adfb_4290_a16c307b13961582\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_FW_Position = StrIVal(str_FW_ReturnPosition);\r\n// }} \"\"\r\n// {{ 329 1 0 \"ee0a8d2f_1b28_4449_ab0a4e73568ca32c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ReturnValue = int_FW_Position * flt_Resolution_Z;\r\n// }} \"\"\r\n// {{{ 330 1 0 \"203e136c_560d_430a_80f25b1664eb7e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_ReturnValue = MthRound(flt_ReturnValue, 1);\r\n// }} \"\"\r\nTrace(\"Stop disk Z coord:  \",flt_ReturnValue);\r\n// {{{ 332 1 0 \"5ad72775_5607_492d_94e6b8fa3b7d596e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 333 1 0 \"6f8a90fc_6346_4970_b988fe69cab6df3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZCoord = flt_ReturnValue;\r\n// }} \"\"\r\n// {{{ 5 \"GetStopDiskZCoord\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Search_Z\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bool_ParamFound;\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable int_SeekHeight;\r\nprivate variable strFunctionName;\r\nprivate variable int_Channel;\r\nprivate variable flt_SeekHeight;\r\nprivate variable str_FirmwareParam;\r\nprivate variable flt_Z_MinPlusTip;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable int_CLLD_Status;\r\nprivate variable flt_ResetPosition;\r\nprivate variable int_ErrorCode;\r\nprivate variable int_Count;\r\nprivate variable str_Position;\r\nprivate variable ret_WallFound;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable Not_Used;\r\nprivate variable int_Sensitivity;\r\nprivate variable str_FWParam;\r\n// {{ 5 \"Search_Z\" \"InitLocals\"\r\no_flt_Z_Found = 0;\r\n// }} \"\"\r\n// {{ 1001 1 0 \"14b638ee_302e_489f_9b3c4039d15e8be1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1002 1 0 \"bbabf009_b1fa_432e_935b268ac11eb40d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1004 1 0 \"a8c95f15_5838_4a96_a7672cee2003a32f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1005 1 0 \"dc295d77_82cb_4749_ab1e210d13405734\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"eb11a3d9_b2c1_442e_8febc24aaa3957ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1007 1 0 \"3f4767f2_aba0_4152_b7848d82bd7aa393\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"917899ce_7a9d_4f6f_b0661e3959c4e234\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 1009 1 0 \"1c06d663_e691_448f_b7dd3dcfe0cd335b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 1010 1 0 \"14b638ee_302e_489f_9b3c4039d15e8be1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1011 1 0 \"44efc75b_7b84_4c3e_a02dd91cc0581869\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Channel = i_int_CurrentChannel;\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"ec3b3913_251f_456c_a54407b7b3e2e00b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelNumber(int_Channel);\r\n// }} \"\"\r\n// {{ 1013 1 0 \"449c4ff1_f249_4c30_89bd583a48eb5bd9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_WallFound = 0;\r\n// }} \"\"\r\n// {{ 1014 1 0 \"aa098a93_636b_4ccd_b053d62739b57daf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 0;\r\n// }} \"\"\r\n// {{ 1015 1 0 \"54bbe6e3_b97e_4db4_978a2dc1c24f824d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_Sensitivity == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1016 1 0 \"426f50b5_1289_4055_ab45e4a3ad5a7845\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 50;\r\n// }} \"\"\r\n// {{ 1017 1 0 \"54bbe6e3_b97e_4db4_978a2dc1c24f824d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1018 1 0 \"b22a4b28_7977_4dde_8b8cda956ecc6916\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_Sensitivity == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1019 1 0 \"840bd3b3_fadd_41e4_bc3da17ac4adce77\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 100;\r\n// }} \"\"\r\n// {{ 1020 1 0 \"b22a4b28_7977_4dde_8b8cda956ecc6916\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1021 1 0 \"c13ed4fc_1bf6_4c34_97886b7e85008527\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_Sensitivity == 2)\r\n{\r\n// }} \"\"\r\n// {{ 1022 1 0 \"b0d32cfb_b2ec_4f32_aea4978414a3703a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 200;\r\n// }} \"\"\r\n// {{ 1023 1 0 \"c13ed4fc_1bf6_4c34_97886b7e85008527\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1024 1 0 \"ee1a5aa4_4e9e_47a3_a79aafd72d03b139\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_Sensitivity == 3)\r\n{\r\n// }} \"\"\r\n// {{ 1025 1 0 \"6ccc4896_d1b3_47f7_b548d15c82934de8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 400;\r\n// }} \"\"\r\n// {{ 1026 1 0 \"ee1a5aa4_4e9e_47a3_a79aafd72d03b139\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1027 1 0 \"2271c0d6_8ce1_42ec_a36a1d00719f6fc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_Sensitivity == 4)\r\n{\r\n// }} \"\"\r\n// {{ 1028 1 0 \"eaa84638_9da6_4596_9b68fa83d40b06c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 600;\r\n// }} \"\"\r\n// {{ 1029 1 0 \"2271c0d6_8ce1_42ec_a36a1d00719f6fc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1030 1 0 \"ca82c3aa_8686_443b_b90de0f9dd08a917\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_Sensitivity == 5)\r\n{\r\n// }} \"\"\r\n// {{ 1031 1 0 \"0a763115_26fd_4f6d_885d29dea5578d07\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 800;\r\n// }} \"\"\r\n// {{ 1032 1 0 \"ca82c3aa_8686_443b_b90de0f9dd08a917\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1033 1 0 \"589a1518_1e83_4cae_8501509c2ea72eea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_Sensitivity == 6)\r\n{\r\n// }} \"\"\r\n// {{ 1034 1 0 \"14603f44_bd67_470f_a7eb67e3274e1918\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 1000;\r\n// }} \"\"\r\n// {{ 1035 1 0 \"589a1518_1e83_4cae_8501509c2ea72eea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1036 1 0 \"2592da34_ed2d_4f5c_a8b828fd9d6f631c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_Sensitivity == 7)\r\n{\r\n// }} \"\"\r\n// {{ 1037 1 0 \"0cbaac9e_adf1_4a33_ba218071da549c3b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Sensitivity = 1200;\r\n// }} \"\"\r\n// {{ 1038 1 0 \"2592da34_ed2d_4f5c_a8b828fd9d6f631c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1039 1 0 \"b626db13_c769_4fab_8e4c6417f01ffc89\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1040 1 0 \"2b73aad0_9ffa_4a1e_aabb9f2161b034a9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.009765625;\r\n// }} \"\"\r\n// {{ 1041 1 0 \"7538f9ab_f59d_4cf3_895daf6ccde51324\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1042 1 0 \"da6e774e_44a4_40f7_ad87a22baa6f94e6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_MinPlusTip = i_flt_Z_Min + i_flt_TipLength;\r\n// }} \"\"\r\n// {{ 1043 1 0 \"e4943460_9345_4913_b3a92bfd4754d151\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SeekHeight = flt_Z_MinPlusTip / (flt_Resolution_Z * 1.0);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"10d63e69_c1d8_4d1d_9f17bd1f227cdf2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SeekHeight = MthCeiling(flt_SeekHeight);\r\n// }} \"\"\r\n// {{ 1045 1 0 \"ee5495cf_0171_42a0_b2591739b7ecada6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SeekHeight < 14541)\r\n{\r\n// }} \"\"\r\n// {{ 1046 1 0 \"1635adbd_6f35_41d3_ab2bf2a92c10852f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SeekHeight = 14541;\r\n// }} \"\"\r\n// {{ 1047 1 0 \"ee5495cf_0171_42a0_b2591739b7ecada6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1048 1 0 \"892bceec_2bc6_4228_bf56c50b7c079717\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"4423c8a3_80d7_454b_941c1b55f38207b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Sensitivity = StrConcat2(int_Sensitivity, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"aac564ab_9d2b_4823_b6458714e867170b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Sensitivity = StrFillLeft(int_Sensitivity, Translate(\"0\"), 4);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1051 1 0 \"88c91cc6_bb40_4539_90819877d45329a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat4(Translate(\"za\"), int_SeekHeight, Translate(\"zv01648zr005000zw\"), int_Sensitivity);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1052 1 0 \"127f0b42_cd48_4ff3_939a243a408bc424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat4(Translate(\"za\"), int_SeekHeight, Translate(\"zv02000zr150000zw\"), int_Sensitivity);\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"fcf22e1b_7b3e_40dd_b325682b29db875c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1P\"), int_Channel, Translate(\"ZG\"), str_FirmwareParam);\r\n// }} \"\"\r\nTrace(\"Search for Z:  \",str_FirmwareCMND);\r\n// {{ 1055 1 0 \"ef521993_60a0_4687_a9ef0dc3e7e526f7\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"ef521993_60a0_4687_a9ef0dc3e7e526f7\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"54a5c14b_9958_4374_96490d9b06223fb3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"8cdbdd20_f119_46e0_a950f7e664fdd6bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"er\"), 1, 2, bool_ParamFound, int_ErrorCode);\r\n// }} \"\"\r\n// {{ 1058 1 0 \"da6c2b76_2e70_4601_9f4794afe9d82b90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ErrorCode != 0)\r\n{\r\n// }} \"\"\r\n// {{ 1059 1 0 \"b20fb877_2356_4db7_b80ff894ccd7d40c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_WallFound = 1;\r\n// }} \"\"\r\n// {{ 1060 1 0 \"da6c2b76_2e70_4601_9f4794afe9d82b90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1061 1 0 \"665baf3a_e424_41e4_a827561675c23ee8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet_Channel_Position(ML_STAR, i_int_CurrentChannel, Not_Used, Not_Used, o_flt_Z_Found);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1062 1 0 \"4bff5607_c907_4a69_a69caf47a215de1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetStopDiskZCoord(ML_STAR, i_int_CurrentChannel, o_flt_Z_Found);\r\n// }} \"\"\r\n// {{ 1063 1 0 \"f56d8d13_5ca9_4ea7_8111c09a7a1100de\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Found = o_flt_Z_Found - i_flt_TipLength;\r\n// }} \"\"\r\nTrace(\"CLLD Status:  \",int_CLLD_Status);\r\nTrace(\"Z Position found:  \",o_flt_Z_Found);\r\n// {{ 1065 1 0 \"a00eee26_1adc_41fc_83b3e7ea4aa89b86\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1066 1 0 \"65e50cbe_2b4e_49a1_abbb89cb01c0a0d5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ResetPosition = o_flt_Z_Found + i_flt_TipLength;\r\n// }} \"\"\r\n// {{ 1067 1 0 \"8b2050a2_0a05_4a8a_81eb589ee07b7c2f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ResetPosition = flt_ResetPosition / (flt_Resolution_Z * 1.0);\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"cd7ba820_6ae0_4c15_a2a19e5d5cb6ac8f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_ResetPosition = MthRound(flt_ResetPosition, 0);\r\n// }} \"\"\r\n// {{{ 1069 1 0 \"9103be2f_dce1_4497_aab2aa57733d4223\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Position = StrConcat2(flt_ResetPosition, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1070 1 0 \"f0083d85_ef1b_448c_bba6e89c60ae36bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Position = StrFillLeft(str_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1071 1 0 \"7117b1a5_1e83_49db_a06bc85ec6ccbe2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareParam = StrConcat8(Translate(\"zv25000\"), Translate(\"zr150000\"), Translate(\"zw1000\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1072 1 0 \"6bab1cee_d6a9_428f_931d66c821eb8024\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1P\"), int_Channel, Translate(\"AA\"), str_FirmwareParam);\r\n// }} \"\"\r\n// {{ 1073 1 0 \"627af9c8_9264_4eca_950c0215209f5e3f\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"627af9c8_9264_4eca_950c0215209f5e3f\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"183a5954_b695_4c2f_aafebc623360be1a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"316f75e5_ef22_4e63_b28d79d19845b761\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParam = StrConcat4(Translate(\"A1P\"), int_Channel, Translate(\"ZGzv25000zr150000zw1000za34600\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1076 1 0 \"8de8eddd_ab89_4746_9089b2be918a45f8\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"8de8eddd_ab89_4746_9089b2be918a45f8\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"e9b8eeed_0287_40c8_b1d0d5673b891ed5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"3d230386_51ef_4d19_b8153565e617df13\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_WallFound);\r\n// }} \"\"\r\n// {{{ 5 \"Search_Z\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable i_int_X_Position;\r\nprivate variable int_SafeTravelHeight;\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable flt_SafeTravelHeight;\r\nprivate variable str_Y_Position;\r\nprivate variable str_FWParameter;\r\nprivate variable int_Length;\r\nprivate variable int_Y_Position;\r\nprivate variable i;\r\nprivate variable str_TH;\r\nprivate variable strFunctionName;\r\nprivate variable str_ZP;\r\nprivate variable str_FWCommand;\r\nprivate variable flt_Y_Position;\r\nprivate variable int_TotalParameters;\r\nprivate variable str_Z_Position;\r\nprivate variable str_YP;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_XP;\r\nprivate variable int_Z_Position;\r\nprivate variable str_TM;\r\nprivate variable flt_Z_Position;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_Count;\r\nprivate variable int_TotalYValues;\r\nprivate variable str_ChValue;\r\nprivate variable int_ChValue;\r\nprivate variable int_TotalZValues;\r\nprivate variable i_str_X_Position;\r\nprivate variable str_SafeTravelHeight;\r\nprivate variable int_ChIndex;\r\nprivate variable int_ChPatternLength;\r\nprivate variable arr_Parameters[];\r\nprivate variable arr_ChPattern[];\r\n// {{ 5 \"Move_Channels_To_Absolute_Position\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 616 1 0 \"ccd84b95_8562_41fb_b359144e6c83ff01\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 617 1 0 \"62b2e06f_44ea_4ea8_86a08e204e3f4341\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 618 1 0 \"66418798_6380_43c2_a0644f8699190860\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 620 1 0 \"ed050484_aae0_4332_9096caa6332dd844\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 621 1 0 \"94c09a3c_f3dd_404f_aeb1e22cd6ab93f1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 622 1 0 \"de2f5fdb_c9fe_49a6_b084b9b0c0a8fff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 623 1 0 \"cb865020_491b_49f0_b0e0a82416439b2c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 624 1 0 \"712dbd1f_9190_4cba_9233e9573aee1e0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 625 1 0 \"2164d880_5d51_4377_b4d405d275c6745c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 626 1 0 \"62b2e06f_44ea_4ea8_86a08e204e3f4341\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 627 1 0 \"09c6686a_8c44_4de7_a0e6ca0553a9bd51\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 628 1 0 \"9671837b_6a40_4124_b1b4f1cdf28f0c53\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 629 1 0 \"e3c84b24_0ecb_409f_b3add2590bb8f0de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"b5eacb0a_efbd_4e5d_9f9687aa3d9cb9d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChPatternLength = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 631 1 0 \"5f18d38d_7871_4eab_97a40f86914a33a1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChPatternLength < int_TotalChannels)\r\n{\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",i_str_ChannelPattern);\r\n// {{{ 633 1 0 \"5ab8aedb_9a36_48da_a5e343cfa04c0dde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Channel pattern is less than the total number of channels on the system!\"));\r\n// }} \"\"\r\n// {{ 634 1 0 \"5f18d38d_7871_4eab_97a40f86914a33a1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 635 1 0 \"a58b5ecf_aaf9_4beb_83e3d4e0e530bbc9\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalYValues=i_arr_Y_Position.GetSize();\r\n// }} \"\"\r\n// {{ 636 1 0 \"76daf011_f0cc_4fba_999b8ccef97ba851\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalYValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 637 1 0 \"900055d7_738b_493b_a32316d107001cd6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Y Values\"), i_arr_Y_Position);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"6c1dba85_06e5_4373_b7855e7ffe9c3e61\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Y Positions\"));\r\n// }} \"\"\r\n// {{ 639 1 0 \"76daf011_f0cc_4fba_999b8ccef97ba851\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 640 1 0 \"76533b2a_27da_4ae6_902efa913bcd6f64\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalZValues=i_arr_Z_Position.GetSize();\r\n// }} \"\"\r\n// {{ 641 1 0 \"15116105_19e0_4578_a7660d0b2ca55e3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalZValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 642 1 0 \"2f02574e_79ad_4258_a076aeb85e609be3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Z Values\"), i_arr_Z_Position);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"ba6a3596_cbd9_4462_b14d5d57277b013e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Z Positions\"));\r\n// }} \"\"\r\n// {{ 644 1 0 \"15116105_19e0_4578_a7660d0b2ca55e3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 645 1 0 \"09c6686a_8c44_4de7_a0e6ca0553a9bd51\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 646 1 0 \"f11f999e_0854_4102_bb6042fa30a815b3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining;\r\n// }} \"\"\r\n// {{ 647 1 0 \"e5d98103_ce4e_4afc_ac2d08ccba1fc5c5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 648 1 0 \"58575a96_a7c1_4d5f_bf41e87aa5ae405b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0JM\");\r\n// }} \"\"\r\n// {{ 649 1 0 \"d61a886f_5076_4ae9_b1dd819e4a88f428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 650 1 0 \"73a5485f_f5fb_4974_a388cbc9ab2d23b2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 651 1 0 \"904d4e5a_954f_47ef_97104823731d65b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 652 1 0 \"7bb51ccc_9054_4926_bf5e9c2df41ce6a3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 653 1 0 \"e2dafa89_6e2a_4ea7_ab11ff97d45a8159\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 654 1 0 \"21f5e4dd_52d3_46bd_8eb69dee3019a652\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"06062bca_c330_4b2f_a92eebffdd7dea2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"b9b3a2aa_d68d_4865_ac492948a052aee6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 657 1 0 \"6ba7dbe2_f091_4c3e_84da23bb4b1ba0cc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 658 1 0 \"e2dafa89_6e2a_4ea7_ab11ff97d45a8159\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 659 1 0 \"7afbc2cb_bf70_45d6_ae0633677fc7876d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 660 1 0 \"a2330c76_8eca_48b1_8e8b5c9a8a588417\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 661 1 0 \"26d9c430_97d1_4936_8dd31c3c37de23af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 662 1 0 \"ae8d66ef_830f_4872_b50a757b05d6480d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 663 1 0 \"26d9c430_97d1_4936_8dd31c3c37de23af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 664 1 0 \"82b23f42_8244_4d0e_a4d4c5255e69a396\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 665 1 0 \"a2330c76_8eca_48b1_8e8b5c9a8a588417\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 666 1 0 \"88b84a9d_bc1c_434c_b59b15b232e32919\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 667 1 0 \"904d4e5a_954f_47ef_97104823731d65b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 668 1 0 \"9567a089_f10e_43f4_b69e78b19a86cc26\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 669 1 0 \"aa6ff721_f361_4bdf_91eaf5e6c839b1f2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xp\");\r\n// }} \"\"\r\n// {{ 670 1 0 \"e1080b1a_08b9_4cb1_af5e7a91fd7b313b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_flt_X_Position = i_flt_X_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 671 1 0 \"ef2018f3_aac1_4961_80adf02b79b4d4c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_int_X_Position = MthCeiling(i_flt_X_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 672 1 0 \"2ccd69fd_a830_4c2b_b41b31ff45eaf1bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_int_X_Position = MthFloor(i_flt_X_Position);\r\n// }} \"\"\r\n// {{{ 673 1 0 \"11edefad_7f22_4a8b_8b9ab71df3c6ba7f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrConcat2(i_int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 674 1 0 \"79ae717b_d1e2_4a95_ad9f743468a6b7f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_X_Position = StrFillLeft(i_str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 675 1 0 \"9dd5796c_1a92_4386_8dc3a4dedb747178\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, i_str_X_Position, Translate(\"&\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 676 1 0 \"ab5f3441_8277_43ea_99407f3ad7ada4fd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 677 1 0 \"9567a089_f10e_43f4_b69e78b19a86cc26\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 678 1 0 \"cead53e1_935f_41a1_91506082d70dcf93\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 679 1 0 \"ffd2f938_f4ab_466b_a5586247894bfacd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 680 1 0 \"d527c771_c71c_46a9_af83979042451748\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalYValues;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 681 1 0 \"7a1e3e29_00be_438b_b1f20cfefda640ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 682 1 0 \"06b9f2a3_7877_4bd4_85666597e781e705\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 683 1 0 \"7a1e3e29_00be_438b_b1f20cfefda640ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 684 1 0 \"40199f71_d408_414e_82eb2f5a17a7a359\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 685 1 0 \"16b4e33e_ac59_4058_85c89a1854aa0c73\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 686 1 0 \"0aecfea7_56b8_4781_97ea1fb254c429ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 687 1 0 \"90a433ed_5c49_4306_9988ad763c19438e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthFloor(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"ef87d007_2126_4e81_a37d32c8d4045fe2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 689 1 0 \"0517e7cd_74d6_4a3c_b2e5226c79e5d7b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"ff22e472_a18c_4b01_a1df10a6bc96d4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 691 1 0 \"d527c771_c71c_46a9_af83979042451748\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 692 1 0 \"46befb3c_8ab4_432b_afe08894217d8112\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 693 1 0 \"cead53e1_935f_41a1_91506082d70dcf93\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 694 1 0 \"4ba00e7c_50ab_4b73_b80ae966ce36e61b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 695 1 0 \"fbafb7f2_c25d_4e3f_b25df6a6244a6e47\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 696 1 0 \"46db4e08_f803_46e8_b3f7023cee38e8ec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 697 1 0 \"d1b5ac71_b75d_4cbf_9737bea7ea524f7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"693f9035_20b4_407b_a631a56eb21dc33f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 699 1 0 \"6faadd81_8d7a_4c92_83d1e611880750a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"68bf4ec0_a400_446a_8e211fefe98f350b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 701 1 0 \"d3e29cfd_ba51_472f_9d7811fbfcfd8611\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 702 1 0 \"4ba00e7c_50ab_4b73_b80ae966ce36e61b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 703 1 0 \"2de5d222_a0ec_4b6a_93c5c577e35c5c2e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"2ab4db29_cdf2_45bf_8cb3160c44101b23\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"zp\");\r\n// }} \"\"\r\n// {{ 705 1 0 \"3ddd11c6_23c1_4d59_8687c5af379578f8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalZValues;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 706 1 0 \"5256b625_2856_4ec2_a8794e03741483f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 707 1 0 \"58122ce0_c738_4bd4_80d4cd608290ff0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 708 1 0 \"5256b625_2856_4ec2_a8794e03741483f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 709 1 0 \"b4fdcece_d6e7_452d_b1d98125f5c7bded\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 710 1 0 \"14b2371b_ad8a_4691_8cf7865cb19d24da\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 711 1 0 \"33b5ee4c_2270_4b36_a36fc22efa53e856\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"8bcfaf91_a50b_4cba_9e50235d79eba84f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 713 1 0 \"923ef198_851c_40a1_9d165e15f6012064\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"70fce9c2_1e9b_4394_919326482e7b1729\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 715 1 0 \"3ddd11c6_23c1_4d59_8687c5af379578f8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 716 1 0 \"d08694ed_ec48_4020_9103e972cb31d93d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 717 1 0 \"2de5d222_a0ec_4b6a_93c5c577e35c5c2e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 718 1 0 \"5049a41c_4f7b_41c8_a3a796ffa41af0ab\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 719 1 0 \"6a7401ec_83d8_4602_b65b1efd850c9f50\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 720 1 0 \"eb8f95e6_493b_426d_a2265777da33ffd6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 721 1 0 \"6a7401ec_83d8_4602_b65b1efd850c9f50\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 723 1 0 \"6b2d78e7_a928_476c_9b21484ee4ebdcd9\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"6b2d78e7_a928_476c_9b21484ee4ebdcd9\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 724 1 0 \"8c1a2540_7cc1_4178_93f73390e264dded\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Channel_Position\" \"Begin\"\r\nfunction Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable bol_SimulationMode;\r\nprivate variable int_TotalChannels;\r\nprivate variable flt_Resolution_X;\r\nprivate variable flt_Resolution_Y;\r\nprivate variable int_Count;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable flt_ReturnValue;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_Channel_Position\" \"InitLocals\"\r\no_X_Coord = 0;\r\no_Y_Coord = 0;\r\no_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 335 1 0 \"697f51fd_cc8b_4e37_8ee2357935963f00\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"6dc82ffd_44a0_4c92_8b73830f79f25fee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 338 1 0 \"b89367d2_2621_46d1_84f16c2b2cf1baca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 339 1 0 \"8628b83c_336a_4d1d_92187e1d5009001d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 340 1 0 \"194a15ad_627e_43ac_a4b167dbce147b98\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 341 1 0 \"e714c237_6d8d_4313_bc85381ab3841d10\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 342 1 0 \"0d54c7eb_2f4d_4811_ab86c8d70ea96458\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 343 1 0 \"a8595e49_fe36_4f26_998cbf1c440c4793\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 344 1 0 \"697f51fd_cc8b_4e37_8ee2357935963f00\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 345 1 0 \"50343e6a_8c14_402b_854c209092dd3c0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbol_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 346 1 0 \"babd1fda_466a_4d9a_8d73f11322b3b87e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{ 347 1 0 \"42810f08_ccc8_4698_a4336b6d90068ed9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 348 1 0 \"dc1f2931_358d_47ef_ba7ff11fe10f7a5c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.1;\r\n// }} \"\"\r\n// {{ 349 1 0 \"54ca21c1_cf47_443a_876b79f4f6e79ffa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Y = 0.1;\r\n// }} \"\"\r\n// {{ 350 1 0 \"1eb2c648_f863_466a_bbefa8b068e9368e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_X = 0.1;\r\n// }} \"\"\r\n// {{ 351 1 0 \"08e736d1_1412_4aaa_aef30b7a88d336d8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 352 1 0 \"410a5e25_de98_4ab2_833a35f1a6d6b83b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1PMRZ\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 353 1 0 \"e324bf7e_19fc_4198_951535c0dde27bf3\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e324bf7e_19fc_4198_951535c0dde27bf3\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 354 1 0 \"f4c895a8_cbce_404a_be2d9b371798e138\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 355 1 0 \"3c8b90c4_55ba_405d_8c3cba93210ff265\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 356 1 0 \"3dd6420d_f192_4264_a2db9da4d83103aa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"rz\"), flt_Resolution_Z, 4, int_TotalChannels, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 357 1 0 \"c4eafc52_35d7_4893_97e1d3293058561c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 358 1 0 \"5419bc17_e595_4ecb_aa606e2d85294cb8\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_Z_Coord=arr_Values.GetAt(i_int_CurrentChannel-1);\r\n// }} \"\"\r\n// {{ 359 1 0 \"c4eafc52_35d7_4893_97e1d3293058561c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 360 1 0 \"3c8b90c4_55ba_405d_8c3cba93210ff265\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 361 1 0 \"209ae7df_a2f5_49a6_b01fa3d7dbf8fc26\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 362 1 0 \"f71e037e_8d7a_47dc_904a8d97b3b23f7f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1PMRY\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 363 1 0 \"210eaa2b_24e5_4af4_ba7c385ee3103d46\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"210eaa2b_24e5_4af4_ba7c385ee3103d46\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 364 1 0 \"c31d6ce5_4951_4c4a_a5525e24c5e14f92\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 365 1 0 \"aaf8e255_7aa0_4d96_8c0e7b48c5c46ba1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 366 1 0 \"edd40619_0bc6_411a_ab6bded9f8550f50\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"ry\"), flt_Resolution_Y, 4, int_TotalChannels, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 367 1 0 \"101d1567_e010_440c_af9191e463f7c789\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 368 1 0 \"65bf856b_3fc0_437e_a6a3d3c15323a71d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_Y_Coord=arr_Values.GetAt(i_int_CurrentChannel-1);\r\n// }} \"\"\r\n// {{ 369 1 0 \"101d1567_e010_440c_af9191e463f7c789\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 370 1 0 \"aaf8e255_7aa0_4d96_8c0e7b48c5c46ba1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 371 1 0 \"d7ebd66b_8e73_49c3_822063886286fa92\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 372 1 0 \"101c3872_e276_4ea2_b651a39f364e8dc3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1XMRX\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 373 1 0 \"7250b726_7ba5_492f_bb45f15a4123bc70\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"7250b726_7ba5_492f_bb45f15a4123bc70\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 374 1 0 \"a590eefb_35ca_41b3_810302e333422c82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 375 1 0 \"1a22df5e_4c06_4e6e_b5aed2bef583c481\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 376 1 0 \"e5942f85_b650_4599_a3854076ef178258\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rx\"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 377 1 0 \"48d47d6d_a47a_46c9_a64f49a0b9ef03f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"rx\"), flt_Resolution_X, 5, 5, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 378 1 0 \"628d50ca_5cde_4414_ac74ac6672c69edb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 379 1 0 \"426856a4_6ef7_40c0_ac318819686f02de\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_X_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 380 1 0 \"ef836613_a26d_4717_a4ebab4a55c96bfe\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_X_Coord=arr_Values.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 381 1 0 \"628d50ca_5cde_4414_ac74ac6672c69edb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 382 1 0 \"1a22df5e_4c06_4e6e_b5aed2bef583c481\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"   Current X Position:  \",o_X_Coord);\r\nTrace(\"   Current Y Position:  \",o_Y_Coord);\r\nTrace(\"   Current Z Position:  \",o_Z_Coord);\r\n// {{{ 5 \"Get_Channel_Position\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Reset_Search_Z\" \"Begin\"\r\nfunction Reset_Search_Z( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"Reset_Search_Z\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 986 1 0 \"2ba67953_cf21_430a_becb5b187ee31f75\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 987 1 0 \"129c1702_7ff6_4fb9_a6ccb4ab207ed069\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 988 1 0 \"fb249dca_76bf_41d8_ac57c6df79e2f49d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 990 1 0 \"5542c641_50ef_40d6_aefcde36b4c2fe99\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 991 1 0 \"51a7a0db_6514_460a_bcae3caba815ce3b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 992 1 0 \"02cc285c_0854_4538_8f5941d84d3e77e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 993 1 0 \"d563b758_51bb_4338_82f08e22d4c38408\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 994 1 0 \"4036c4af_d5f2_466a_844e067f0147ae48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 995 1 0 \"2ff391e7_205b_4b06_9d5a8e0e8571072d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 996 1 0 \"129c1702_7ff6_4fb9_a6ccb4ab207ed069\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 997 1 0 \"c657f0eb_8424_4e33_a3c8526437b41d79\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c657f0eb_8424_4e33_a3c8526437b41d79\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 998 1 0 \"d05c184e_e001_410b_8de00b7255736ca8\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"d05c184e_e001_410b_8de00b7255736ca8\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 999 1 0 \"e87e1e76_01aa_4ace_b9be5942a362a9e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 5 \"Reset_Search_Z\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position_1mL\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_SafeTravelHeight;\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable flt_SafeTravelHeight;\r\nprivate variable flt_X_Position;\r\nprivate variable str_Y_Position;\r\nprivate variable str_FWParameter;\r\nprivate variable int_Length;\r\nprivate variable str_TH;\r\nprivate variable i;\r\nprivate variable int_Y_Position;\r\nprivate variable strFunctionName;\r\nprivate variable str_ZP;\r\nprivate variable str_FWCommand;\r\nprivate variable flt_Y_Position;\r\nprivate variable str_YP;\r\nprivate variable int_TotalParameters;\r\nprivate variable str_Z_Position;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_XP;\r\nprivate variable int_Z_Position;\r\nprivate variable str_TM;\r\nprivate variable flt_Z_Position;\r\nprivate variable int_TotalChannels;\r\nprivate variable str_X_Position;\r\nprivate variable int_TotalXValues;\r\nprivate variable int_Count;\r\nprivate variable str_ChValue;\r\nprivate variable int_TotalYValues;\r\nprivate variable int_X_Position;\r\nprivate variable int_ChValue;\r\nprivate variable int_TotalZValues;\r\nprivate variable int_ChIndex;\r\nprivate variable str_SafeTravelHeight;\r\nprivate variable int_ChPatternLength;\r\nprivate variable arr_Parameters[];\r\nprivate variable arr_ChPattern[];\r\n// {{ 5 \"Move_Channels_To_Absolute_Position_1mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 726 1 0 \"dde884c5_6aa3_450e_87b6d10af154de85\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 727 1 0 \"ebe56fb5_9d7d_4221_b8a95b8abe373a66\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 728 1 0 \"b56daa7d_80f2_47df_bc35b753d7f1eb14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 730 1 0 \"4cefb903_8677_478f_be2845f9fd8a3239\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 731 1 0 \"19c5108f_ba35_4cdb_983114dbe1a5ec21\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 732 1 0 \"4f30661e_8684_4736_8061ec4730fd826e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 733 1 0 \"8d41fb67_8b1c_408a_a1d53dc13965dc6e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 734 1 0 \"8d9105cb_6976_4cd1_be3c809348d5df26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 735 1 0 \"c787d268_c478_4932_a09413f819a35d7d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 736 1 0 \"ebe56fb5_9d7d_4221_b8a95b8abe373a66\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 737 1 0 \"d4c6dce0_ef3a_49f5_a5f92f44eceda343\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 738 1 0 \"4ac66093_061c_4d07_a6173a52b8c740fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 739 1 0 \"2ccc0a6c_1908_4374_a528cacde492d824\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"8d4c2ba6_01b3_4d69_99fa509d2613f5e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChPatternLength = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 741 1 0 \"3c6279bd_b3d6_40ec_981bc31667054fd6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChPatternLength < int_TotalChannels)\r\n{\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",i_str_ChannelPattern);\r\n// {{{ 743 1 0 \"ee0e8164_a3d5_4f39_b6a23c78dcba63f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Channel pattern is less than the total number of channels on the system!\"));\r\n// }} \"\"\r\n// {{ 744 1 0 \"3c6279bd_b3d6_40ec_981bc31667054fd6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 745 1 0 \"c57b1aa4_0837_4882_a8f9627c35b72f45\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalXValues=i_arr_X_Position.GetSize();\r\n// }} \"\"\r\n// {{ 746 1 0 \"f2bbf66c_8e32_4406_8eeda47b7b2612e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalXValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 747 1 0 \"6cc10662_8298_4887_84af046f6e89cc61\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"X Values\"), i_arr_X_Position);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"05aa072e_e312_44a3_990722f07490699f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the X Positions\"));\r\n// }} \"\"\r\n// {{ 749 1 0 \"f2bbf66c_8e32_4406_8eeda47b7b2612e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 750 1 0 \"2b57d1dd_cb9a_47f6_b37e883523ee55bb\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalYValues=i_arr_Y_Position.GetSize();\r\n// }} \"\"\r\n// {{ 751 1 0 \"9bd2ed4e_c870_4d2d_ba77f58514184882\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalYValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 752 1 0 \"098da980_36a6_4ac9_ac56c2ae0644e519\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Y Values\"), i_arr_Y_Position);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"e754fd84_8cd3_480e_b2a91c1725519d47\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Y Positions\"));\r\n// }} \"\"\r\n// {{ 754 1 0 \"9bd2ed4e_c870_4d2d_ba77f58514184882\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 755 1 0 \"a853a74f_13ad_4150_9395747006a0ee7c\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalZValues=i_arr_Z_Position.GetSize();\r\n// }} \"\"\r\n// {{ 756 1 0 \"5a084c42_d4e1_4d9e_90bb6037e4681215\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalZValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 757 1 0 \"9f01b6ce_58dd_4a3b_bab43608139df8fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Z Values\"), i_arr_Z_Position);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"0ca8fcde_6746_490b_bfd5229050aa2034\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Z Positions\"));\r\n// }} \"\"\r\n// {{ 759 1 0 \"5a084c42_d4e1_4d9e_90bb6037e4681215\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 760 1 0 \"d4c6dce0_ef3a_49f5_a5f92f44eceda343\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 761 1 0 \"580fc218_f5df_4c6c_bfc0fc59784e3a18\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining;\r\n// }} \"\"\r\n// {{ 762 1 0 \"8317fe12_5047_4417_b143716cf38b5c56\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 763 1 0 \"94438913_5789_4fca_b21fe0749ea79ee0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0JM\");\r\n// }} \"\"\r\n// {{ 764 1 0 \"af82730f_8f6d_41e2_a281f5747891059b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 765 1 0 \"c13f8049_e559_4590_8d32cdb027278d77\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 766 1 0 \"6a4ad6b7_b9c0_4ac0_96df6132459af199\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 767 1 0 \"8dad4e48_ffa4_484c_985d47eb8e3b384f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 768 1 0 \"5866852a_6943_4dd8_b5bd2874a6b9e916\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 769 1 0 \"2da7f99c_b1d0_4a98_9b6184c49919b67e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"a2c28c5d_38bf_4bc8_8c30b09929e5fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 771 1 0 \"c7a45740_fab7_4a98_97aa00f3b16ff49d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 772 1 0 \"015e72ea_60b7_4e91_aaf359cca621435c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 773 1 0 \"5866852a_6943_4dd8_b5bd2874a6b9e916\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 774 1 0 \"49c03c16_fb92_4501_99d98e33c2335740\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tm\");\r\n// }} \"\"\r\n// {{ 775 1 0 \"49da9750_1bbb_446c_9a5c7b9d21a12f70\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 776 1 0 \"89c95929_305a_4e7f_92be12c1a90ab313\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 777 1 0 \"47a1d963_9727_4156_a735c636a0a1711a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 778 1 0 \"89c95929_305a_4e7f_92be12c1a90ab313\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 779 1 0 \"80931cbe_03ad_4d3f_b660107253a08c47\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 780 1 0 \"49da9750_1bbb_446c_9a5c7b9d21a12f70\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 781 1 0 \"b4c5e895_9cf9_41e9_875342f8a0e88b08\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 782 1 0 \"6a4ad6b7_b9c0_4ac0_96df6132459af199\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 783 1 0 \"3ebb4c39_cc7d_4c12_82fcd0e2ee320f11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 784 1 0 \"7742159f_4645_49b2_a5f4ab44e824652d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xp\");\r\n// }} \"\"\r\n// {{ 785 1 0 \"ebce37dc_1f84_4668_a738a6701ede4af3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 786 1 0 \"26cc0467_1520_4b8f_9f64c85c846f3a66\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 787 1 0 \"66676e91_322f_490a_b7444661ee078770\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat2(str_XP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 788 1 0 \"26cc0467_1520_4b8f_9f64c85c846f3a66\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 789 1 0 \"7a695800_a40e_4c52_a0637b9b1214e62f\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_X_Position=i_arr_X_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 790 1 0 \"8f5bce01_bd80_4d8f_ba4521be3b85a940\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Position = flt_X_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 791 1 0 \"7c85534d_cadf_4f91_bd2bf1fc9c3bba3e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_X_Position = MthCeiling(flt_X_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 792 1 0 \"31128c36_0b61_4808_95d15d0f6acb8de6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_X_Position = MthFloor(flt_X_Position);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"4010980c_2e18_4155_b411ed489131faf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_X_Position = StrConcat2(int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 794 1 0 \"58bc1bd9_259d_4673_ba226e0f44a870f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_X_Position = StrFillLeft(str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"af0db8a6_a59d_4e17_9bb183f8fef3f851\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, str_X_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 796 1 0 \"ebce37dc_1f84_4668_a738a6701ede4af3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 797 1 0 \"2002c66e_bf37_4e20_b5b8bd70619c79fe\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 798 1 0 \"3ebb4c39_cc7d_4c12_82fcd0e2ee320f11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 799 1 0 \"ca5f7062_80d6_40c9_873c342c9c038383\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 800 1 0 \"ba6d31ba_0894_41ab_a021b7bdf28ea44b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yp\");\r\n// }} \"\"\r\n// {{ 801 1 0 \"9e124154_b674_4531_b26b30aa66a6c437\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 802 1 0 \"c0d6907a_4311_42f9_868b3b21cb32ceb0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 803 1 0 \"e9109eb7_5d80_45d3_b1d21b6a572b219e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 804 1 0 \"c0d6907a_4311_42f9_868b3b21cb32ceb0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 805 1 0 \"53cacb7e_71f9_4283_9feae8f83f7bd87e\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 806 1 0 \"33d7519c_42d3_40cc_94b6a479e50ace71\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 807 1 0 \"1937dced_42c7_4773_976e8dc2cb65e811\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 808 1 0 \"34e811ce_ba0a_45bb_8e9277f893225e98\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthFloor(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 809 1 0 \"5cfb9661_83a4_4731_8041b6b008e8fa10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 810 1 0 \"46b3ba3d_2c7f_43db_afc9d307958b57cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 811 1 0 \"70423494_409f_425f_87f70d9944a5636b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 812 1 0 \"9e124154_b674_4531_b26b30aa66a6c437\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 813 1 0 \"a25abe98_0ce5_4848_a841b86512a722e4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 814 1 0 \"ca5f7062_80d6_40c9_873c342c9c038383\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 815 1 0 \"16a7103c_d7eb_4056_a70b5861311859fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 816 1 0 \"6e7632cf_e433_442d_94cf912b7d71d72d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 817 1 0 \"f0d12bd4_7c9a_4bdc_84b696913ef34a26\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 818 1 0 \"6b22e321_7ad7_45e3_9d42a95bb3d16caf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 819 1 0 \"07e90b9a_a0c1_4b7c_84b1a9bb2ae78993\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 820 1 0 \"20cee882_54aa_45e7_9e47adf94f0fb2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 821 1 0 \"c32ab1e1_cb46_4294_80dc73386beed683\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 822 1 0 \"c0610e07_ef7a_44d8_b3e51fac2bcf7a1d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 823 1 0 \"16a7103c_d7eb_4056_a70b5861311859fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 824 1 0 \"40f87651_5875_477d_899eec89a60a79d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 825 1 0 \"4eeb323e_b023_4da4_ade3c02ca3cc17e7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"zp\");\r\n// }} \"\"\r\n// {{ 826 1 0 \"91f451ab_6da8_475c_a691955e760a3228\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 827 1 0 \"e1581606_ce8e_4977_9b843e79d237f378\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 828 1 0 \"099ade8a_e784_419c_86cc880b0b3ebe44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 829 1 0 \"e1581606_ce8e_4977_9b843e79d237f378\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 830 1 0 \"566d6745_b21b_4efe_b214b332fca8b017\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 831 1 0 \"46db7800_d664_4555_969195c85d3e81b9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 832 1 0 \"c48f7223_03a4_4cfb_baa66b3e0efd2385\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"74677797_6348_447a_8ef558bb0ccb6f7f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 834 1 0 \"62653a21_e047_4eb3_aab0bbbb33980946\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"18bb4db2_bef8_4fc4_984dc44767ac9cc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 836 1 0 \"91f451ab_6da8_475c_a691955e760a3228\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 837 1 0 \"7a53768c_b21d_4a0b_978e245861c13a32\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 838 1 0 \"40f87651_5875_477d_899eec89a60a79d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"ec3d3329_2668_43c2_b9f555e64a54603b\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 840 1 0 \"edb114ef_5cc5_43aa_9176c6694551f1b1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 841 1 0 \"58a240b0_bda9_4de2_b7f4a880d25c35ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 842 1 0 \"edb114ef_5cc5_43aa_9176c6694551f1b1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 844 1 0 \"eeffe2e6_18b4_4fb4_9f9026a16cbea805\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"eeffe2e6_18b4_4fb4_9f9026a16cbea805\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 845 1 0 \"b64fbf24_e988_48c5_ad2a16a7d011bd6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position_5mL\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_SafeTravelHeight;\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable str_Y_Position;\r\nprivate variable flt_SafeTravelHeight;\r\nprivate variable flt_X_Position;\r\nprivate variable str_FWParameter;\r\nprivate variable int_Length;\r\nprivate variable str_TH;\r\nprivate variable i;\r\nprivate variable int_Y_Position;\r\nprivate variable strFunctionName;\r\nprivate variable str_ZP;\r\nprivate variable str_FWCommand;\r\nprivate variable int_TotalParameters;\r\nprivate variable str_Z_Position;\r\nprivate variable str_YP;\r\nprivate variable flt_Y_Position;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_XP;\r\nprivate variable int_Z_Position;\r\nprivate variable str_TM;\r\nprivate variable flt_Z_Position;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_TotalXValues;\r\nprivate variable int_Count;\r\nprivate variable str_X_Position;\r\nprivate variable int_TotalYValues;\r\nprivate variable str_ChValue;\r\nprivate variable int_X_Position;\r\nprivate variable int_TotalZValues;\r\nprivate variable int_ChValue;\r\nprivate variable str_SafeTravelHeight;\r\nprivate variable int_ChPatternLength;\r\nprivate variable int_ChIndex;\r\nprivate variable arr_Parameters[];\r\nprivate variable arr_ChPattern[];\r\n// {{ 5 \"Move_Channels_To_Absolute_Position_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 847 1 0 \"788a84c9_62dc_4792_98bbf8c5a8280f95\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 848 1 0 \"bfc59f8e_7562_4c31_94a437abd7f2c22d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 849 1 0 \"5efb7e4e_1c55_45e3_ba49240939927f8e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 851 1 0 \"c8cc2b50_b015_4374_824af32eeae0dc1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 852 1 0 \"0ea692e4_a44b_4d73_a3013605412475f7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 853 1 0 \"59730736_3179_473f_865731175540e786\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 854 1 0 \"5be44454_c83f_44de_b6b04a6e4744d0c9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 855 1 0 \"fb1aeba0_bc91_4016_b29c39d72bf8aaf1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 856 1 0 \"c9de3195_7510_48b3_bc7ef84551cf82be\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 857 1 0 \"bfc59f8e_7562_4c31_94a437abd7f2c22d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 858 1 0 \"0cd8b871_d6ed_41e4_bdeea0839052a341\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 859 1 0 \"30be081c_1766_4432_b12bfbb309ef3bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 860 1 0 \"8801fb5b_4513_4831_a83742b54cc6760b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 861 1 0 \"13c3e35d_513f_4e1e_a037745c6c3b19a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChPatternLength = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 862 1 0 \"736f4a0a_b567_4228_99719775b20237f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChPatternLength < int_TotalChannels)\r\n{\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",i_str_ChannelPattern);\r\n// {{{ 864 1 0 \"fdfe8b4b_3b60_4fc8_9865304a6d1b5bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Channel pattern is less than the total number of channels on the system!\"));\r\n// }} \"\"\r\n// {{ 865 1 0 \"736f4a0a_b567_4228_99719775b20237f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 866 1 0 \"7d27d5c7_a65b_4793_b9a46f6db03840c5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalXValues=i_arr_X_Position.GetSize();\r\n// }} \"\"\r\n// {{ 867 1 0 \"6098fe30_660f_4756_b1d6b3f26069b6c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalXValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 868 1 0 \"081c74f7_1e8c_4331_a42ebfadf47ca62c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"X Values\"), i_arr_X_Position);\r\n// }} \"\"\r\n// {{{ 869 1 0 \"d7230343_be19_4415_9b2efeffa3b69d0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the X Positions\"));\r\n// }} \"\"\r\n// {{ 870 1 0 \"6098fe30_660f_4756_b1d6b3f26069b6c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 871 1 0 \"330f83af_9950_4adf_8bb524c71f73764a\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalYValues=i_arr_Y_Position.GetSize();\r\n// }} \"\"\r\n// {{ 872 1 0 \"c2973fc5_137c_4168_8ad098e2cbf34073\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalYValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 873 1 0 \"2088155b_5330_4987_9aed2f1ce1666f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Y Values\"), i_arr_Y_Position);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"e471f1bb_7a35_45c5_9a41db7f8d0e8986\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Y Positions\"));\r\n// }} \"\"\r\n// {{ 875 1 0 \"c2973fc5_137c_4168_8ad098e2cbf34073\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 876 1 0 \"7ff10ba5_746b_4aa1_82987a72718969bd\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalZValues=i_arr_Z_Position.GetSize();\r\n// }} \"\"\r\n// {{ 877 1 0 \"d18d6c20_2775_48b5_92399f0c03b97968\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalZValues < int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{{ 878 1 0 \"74537f21_83d6_436e_bc3c3ea7719f7fc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Z Values\"), i_arr_Z_Position);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"5ea80aba_1c13_46b3_a43b044ca52e18a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"There are not enough values in the array for the Z Positions\"));\r\n// }} \"\"\r\n// {{ 880 1 0 \"d18d6c20_2775_48b5_92399f0c03b97968\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 881 1 0 \"0cd8b871_d6ed_41e4_bdeea0839052a341\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 882 1 0 \"5fee1b91_6c24_4b04_9b8a29939ffedbdb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining;\r\n// }} \"\"\r\n// {{ 883 1 0 \"db3faaa0_cf1b_483a_aa305ad33bbe6c01\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 884 1 0 \"7efe6794_7ab8_4438_aec584c9df82ff15\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"C0LL\");\r\n// }} \"\"\r\n// {{ 885 1 0 \"6f8b3c9b_6d6e_4f32_8f051aa0ab9d0723\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWParameter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 886 1 0 \"2f789ce2_a3b5_48cc_a3addcbda3a8d19a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Parameters.SetSize(0);\r\n// }} \"\"\r\n// {{ 887 1 0 \"141cc3b9_3c16_4121_b856db30baa31c18\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 888 1 0 \"7528dc18_5299_4565_86f61ade13e6a51f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 889 1 0 \"1fe64d18_dff9_4730_be7dd2242565234c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 890 1 0 \"295ace19_cbc0_4a45_b4c6f2fc5bbb20f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 891 1 0 \"faba3183_73f3_4dbd_b8eb3970565ac48e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChValue = StrRight(str_ChValue, 1);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"5dd047ec_6738_40a9_a0d4428fd82a0f3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChValue = StrIVal(str_ChValue);\r\n// }} \"\"\r\n// {{ 893 1 0 \"f4792c82_cb88_48c5_a313d5293f8de311\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_ChValue);\r\n// }} \"\"\r\n// {{ 894 1 0 \"1fe64d18_dff9_4730_be7dd2242565234c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 895 1 0 \"a6a7ea4b_4392_408c_931670c6be55223e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TM = Translate(\"tr\");\r\n// }} \"\"\r\n// {{ 896 1 0 \"67eddedd_558b_4372_87881b1e62c8ea15\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 897 1 0 \"164c6818_e0d4_4009_941883cd6a1e3398\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 898 1 0 \"9d151c41_a543_4803_a1311b5a27f1face\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 899 1 0 \"164c6818_e0d4_4009_941883cd6a1e3398\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 900 1 0 \"d7494bec_41ff_4134_a5e0dbf2ca4f3e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 901 1 0 \"67eddedd_558b_4372_87881b1e62c8ea15\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 902 1 0 \"f4f12525_9901_4138_8aef7c5b9484a85a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TM);\r\n// }} \"\"\r\n// {{ 903 1 0 \"141cc3b9_3c16_4121_b856db30baa31c18\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 904 1 0 \"5eedd538_b0ba_4d70_9db1cd8e618fbaaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 905 1 0 \"71d04987_1496_460e_806e187643bc2f99\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_XP = Translate(\"xb\");\r\n// }} \"\"\r\n// {{ 906 1 0 \"085c87a1_b35e_4938_a57096aebe112690\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 907 1 0 \"b0371a3e_82ad_46d4_9836405495ba240e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 908 1 0 \"691baf0d_611c_4031_97560b896b15f2ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat2(str_XP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 909 1 0 \"b0371a3e_82ad_46d4_9836405495ba240e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 910 1 0 \"bc908856_bba1_4254_a6430066f9628c47\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_X_Position=i_arr_X_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 911 1 0 \"2506449a_c352_4165_83a97412545310dc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_X_Position = flt_X_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 912 1 0 \"4bc84289_459c_4bcf_9a9e18ceb7ee8e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_X_Position = MthCeiling(flt_X_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 913 1 0 \"e7b0fb7a_deeb_48d5_ac53e6600ba76f07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_X_Position = MthFloor(flt_X_Position);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"d2bfa995_2990_405c_ae10245afc5a6dc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_X_Position = StrConcat2(int_X_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 915 1 0 \"135fb249_77c1_40ef_905f7b4fcabc65ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_X_Position = StrFillLeft(str_X_Position, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"d70115d5_bd5d_4bb5_b5311e29ca0f1090\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_XP = StrConcat4(str_XP, str_X_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 917 1 0 \"085c87a1_b35e_4938_a57096aebe112690\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 918 1 0 \"72d714c9_4369_4888_86c3951e8fbe5686\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_XP);\r\n// }} \"\"\r\n// {{ 919 1 0 \"5eedd538_b0ba_4d70_9db1cd8e618fbaaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 920 1 0 \"445b4a70_8014_4fab_9e8df871cb2f997f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 921 1 0 \"05cfbfdf_1451_480a_894d4e4cd18b017c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_YP = Translate(\"yf\");\r\n// }} \"\"\r\n// {{ 922 1 0 \"c1dd65a3_40c3_4151_8d86c328ec254972\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 923 1 0 \"b5ce6c13_b6b6_48bb_a6655c8d96d9beb7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 924 1 0 \"4ac55f29_86ff_44bd_9d9d3ff235a02fb9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat2(str_YP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 925 1 0 \"b5ce6c13_b6b6_48bb_a6655c8d96d9beb7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 926 1 0 \"308fc17b_914a_4f4e_904824521b1c9b40\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 927 1 0 \"26473385_6fcd_4082_b92e399da412ce7d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Y_Position = flt_Y_Position * 10;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 928 1 0 \"7019269f_5312_47c0_91247a5f09a6c147\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthCeiling(flt_Y_Position);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 929 1 0 \"1f95e947_93a4_4134_831454de16da9aaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Y_Position = MthFloor(flt_Y_Position);\r\n// }} \"\"\r\n// {{{ 930 1 0 \"21b2cc90_4152_4c8a_948e839fe95b0c23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrConcat2(int_Y_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 931 1 0 \"59af3cb8_e1d6_4ef3_883bec679bfd2d09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Y_Position = StrFillLeft(str_Y_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"79acaa44_5e32_4180_a1c96c53dcd1a590\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_YP = StrConcat4(str_YP, str_Y_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 933 1 0 \"c1dd65a3_40c3_4151_8d86c328ec254972\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 934 1 0 \"c6131584_5a3f_43be_b90fa939c304c82a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_YP);\r\n// }} \"\"\r\n// {{ 935 1 0 \"445b4a70_8014_4fab_9e8df871cb2f997f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 936 1 0 \"2a621f49_078d_40c6_a8e5f3942052bb4b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"b5f990a5_4872_48ff_bbdf79e97708b94e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TH = Translate(\"th\");\r\n// }} \"\"\r\n// {{ 938 1 0 \"daea6efa_a685_48da_96476f10f2503dc1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SafeTravelHeight = flt_SafeTravelHeight * 10;\r\n// }} \"\"\r\n// {{{ 939 1 0 \"e4bd3b39_414e_4aff_aedcf2241ac41ec9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"7b9864bf_1a03_4212_bb3dbcba42910616\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 941 1 0 \"b559d7d1_6372_4b70_9ceaf550da7ce273\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"b053b8e5_522c_4416_8f47a5e08c3a6bc5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 943 1 0 \"236984db_57bf_4093_8010a9ee4701a7d2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_TH);\r\n// }} \"\"\r\n// {{ 944 1 0 \"2a621f49_078d_40c6_a8e5f3942052bb4b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 945 1 0 \"a305457d_f45c_479c_91debe97563ab049\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 946 1 0 \"b64f05e4_6aa6_43a1_b8eb0f474959669c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ZP = Translate(\"pz\");\r\n// }} \"\"\r\n// {{ 947 1 0 \"f7023814_20dc_4c64_a7c857481039e4d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 948 1 0 \"38bf3a90_142a_4f1d_8ae371379017fe97\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex > 1)\r\n{\r\n// }} \"\"\r\n// {{{ 949 1 0 \"36bee97a_5741_4d0d_959e4fa1aab2d64f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat2(str_ZP, Translate(\" \"));\r\n// }} \"\"\r\n// {{ 950 1 0 \"38bf3a90_142a_4f1d_8ae371379017fe97\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 951 1 0 \"9ba133a3_a9a9_482e_88fd492f8e2ab338\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 952 1 0 \"60706e6f_e5d4_4d9c_a559e292e5596c1d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Z_Position = flt_Z_Position * 10;\r\n// }} \"\"\r\n// {{{ 953 1 0 \"0f4f37b5_4536_4b55_8b10796e2d6f6f71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Z_Position = MthCeiling(flt_Z_Position);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"5b7a584d_7143_42d3_9bafebae2af371ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrConcat2(int_Z_Position, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 955 1 0 \"6a8ce2e6_9620_4fdd_9c82816a5ccd9257\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Z_Position = StrFillLeft(str_Z_Position, Translate(\"0\"), 4);\r\n// }} \"\"\r\n// {{{ 956 1 0 \"65eb776b_f57e_49fc_af9298c15635489f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 957 1 0 \"f7023814_20dc_4c64_a7c857481039e4d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 958 1 0 \"c54a8d25_a774_4ed1_88454fa57f6a4a16\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Parameters.AddAsLast(str_ZP);\r\n// }} \"\"\r\n// {{ 959 1 0 \"a305457d_f45c_479c_91debe97563ab049\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 960 1 0 \"d1958b62_b532_41b4_ac2748ad47d606b7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalParameters=arr_Parameters.GetSize();\r\n// }} \"\"\r\n// {{ 961 1 0 \"1ff5ed47_4a3e_4965_af143118b8947b39\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalParameters;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 962 1 0 \"3d3b7067_b251_44ac_bc68fa5e99918c36\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 963 1 0 \"1ff5ed47_4a3e_4965_af143118b8947b39\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 965 1 0 \"2783da43_7cf0_40bd_aa3a8867292aeb42\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"2783da43_7cf0_40bd_aa3a8867292aeb42\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 966 1 0 \"e4ffeee8_6468_467d_a8bd04cb69d2ebf2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"Move_Channels_To_Absolute_Position_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"InitializeDispenseDrive_1mL\" \"Begin\"\r\nfunction InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\n// {{ 5 \"InitializeDispenseDrive_1mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 584 1 0 \"f9a7889f_785d_49db_80d946245c4fc5c3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 585 1 0 \"4da2964b_e02c_45cc_be6d294607557ad3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 587 1 0 \"f5d2fd4e_9cdd_4b12_92d3afa3b8674ea9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 588 1 0 \"97eb9592_5d53_403e_87fff7dc2b1a1172\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 589 1 0 \"bd426cd8_58c7_446d_82a41e472ef6aff1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 590 1 0 \"c9b1ad26_4f78_4c4c_8764da8f1d7f2a62\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 591 1 0 \"ce2aecb7_674d_4804_9c858281fa1a3422\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 592 1 0 \"508dc682_6cb7_455c_8ad4199fdf24eb3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 593 1 0 \"f9a7889f_785d_49db_80d946245c4fc5c3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 594 1 0 \"be67db63_38c5_4220_b86290e89c723756\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 595 1 0 \"cafc317d_6f9d_4cb1_9dee1e68faea636f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 596 1 0 \"868aedf0_aa83_47f7_96578d18005bf150\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"A1P\"), i_int_CurrentChannel, Translate(\"DI\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 597 1 0 \"d5d4ced4_97d6_456d_8467256330e38844\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"d5d4ced4_97d6_456d_8467256330e38844\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 598 1 0 \"c40df688_5b38_4363_99cf7a7a2dd7887a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"InitializeDispenseDrive_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"InitializeDispenseDrive_5mL\" \"Begin\"\r\nfunction InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\n// {{ 5 \"InitializeDispenseDrive_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 600 1 0 \"47ed5c20_7923_45a1_ad750a7ba39d08b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"e49fef9d_7493_4c23_964dea87b5b2af4f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 603 1 0 \"0aae2e46_ebb0_48ab_81ae508103a908ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 604 1 0 \"6ff09b66_565b_4312_8eb5260e6e1441e3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 605 1 0 \"6f5da4b0_bf52_4695_b38fd3a2f0d025fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 606 1 0 \"28abdaf7_ce7b_4b79_808baf70e1aeabcd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 607 1 0 \"76d23fc9_3469_4b55_ad9abe340949e2f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 608 1 0 \"c2b4c4a4_e01a_4ab5_872b1984bca7f4b6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 609 1 0 \"47ed5c20_7923_45a1_ad750a7ba39d08b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 610 1 0 \"6247e00e_21c5_4776_855eb1a091b41e28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 611 1 0 \"93d01cd9_d00f_43b4_8e97cfb8ac570ec7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 612 1 0 \"d089e556_cd64_40ab_a92a11eef5194cb6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"A1L\"), i_int_CurrentChannel, Translate(\"DI\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 613 1 0 \"e51458cc_6f8e_4a9f_b2470540cf3430f9\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"e51458cc_6f8e_4a9f_b2470540cf3430f9\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 614 1 0 \"04c7bbe1_8d73_4f54_9d8440db0504bba3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{{ 5 \"InitializeDispenseDrive_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Channel_Position_5mL\" \"Begin\"\r\nfunction Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable bol_SimulationMode;\r\nprivate variable flt_Resolution_X;\r\nprivate variable int_TotalChannels;\r\nprivate variable flt_Resolution_Y;\r\nprivate variable int_Count;\r\nprivate variable flt_Resolution_Z;\r\nprivate variable flt_ReturnValue;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_Channel_Position_5mL\" \"InitLocals\"\r\no_X_Coord = 0;\r\no_Y_Coord = 0;\r\no_Z_Coord = 0;\r\n// }} \"\"\r\n// {{ 385 1 0 \"ffaa00d3_0f8e_4301_ac2ea5d8e7d5b9d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 386 1 0 \"d48828a7_1133_43c5_a35f2bc7e0547ec7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 388 1 0 \"e292094a_cdf9_4143_bc793656bbb49925\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 389 1 0 \"fef97844_2116_43af_85d4563955a1d600\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 390 1 0 \"efebd71d_5f2e_455c_84c0afafaa2bac93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 391 1 0 \"6c32801e_6b37_4412_8c268dfeaaecfc7f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 392 1 0 \"1cb4bfe9_4d8c_46cd_b8363a7e48648e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 393 1 0 \"6718fe98_72cd_48b3_8cad8e7b17444c16\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 394 1 0 \"ffaa00d3_0f8e_4301_ac2ea5d8e7d5b9d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 395 1 0 \"b6f8e5e5_93ab_4e4a_8e456c4bf58a96e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbol_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 396 1 0 \"8ab0186c_669c_46d7_9541e1dcb22bf537\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{ 397 1 0 \"7222e0b8_a3b9_430c_a86417e0cb81843f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"5a159ff1_02e0_4f1b_a30c3a791c00ed25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Z = 0.1;\r\n// }} \"\"\r\n// {{ 399 1 0 \"0f6223a0_ebb9_4513_90d07b82d1b0f398\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_Y = 0.1;\r\n// }} \"\"\r\n// {{ 400 1 0 \"68cb8641_8eb7_44f3_918325871118424b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution_X = 0.1;\r\n// }} \"\"\r\n// {{ 401 1 0 \"96bbb9aa_1836_45e4_a27e4d7b5cf53689\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 402 1 0 \"14026989_63be_4dac_af79c6273d762ed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1LMRZ\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 403 1 0 \"0d3dec41_c196_43f0_a235ef54f4debc8c\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"0d3dec41_c196_43f0_a235ef54f4debc8c\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 404 1 0 \"7848ae71_60d2_46f5_b777045ee44e5b84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 405 1 0 \"1d099b2f_4384_4d5a_8182b36c421b4590\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 406 1 0 \"73e3a8df_05da_4e5f_9a15e91bd22e53d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"rz\"), flt_Resolution_Z, 4, int_TotalChannels, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 407 1 0 \"627d4dab_ed64_4c3b_b522289386242039\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 408 1 0 \"c027f9dd_1a3c_4f3b_ba16f157a319499b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_Z_Coord=arr_Values.GetAt(i_int_CurrentChannel-1);\r\n// }} \"\"\r\n// {{ 409 1 0 \"627d4dab_ed64_4c3b_b522289386242039\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 410 1 0 \"1d099b2f_4384_4d5a_8182b36c421b4590\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 411 1 0 \"43291a22_65ed_4169_a03fb2e1a9b4f711\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 412 1 0 \"cb6ea9dd_be54_4768_b42725c6435bac5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1LMRY\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 413 1 0 \"77fb92c1_4e99_48a0_91384e37cd31c76c\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"77fb92c1_4e99_48a0_91384e37cd31c76c\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 414 1 0 \"57c4c19c_f8ec_440c_9e0f92d91fe978a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 415 1 0 \"572b5cab_8b20_44ff_8e44ff139f641967\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 416 1 0 \"7c29e40b_e5c3_4644_a718865993a73455\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"ry\"), flt_Resolution_Y, 4, int_TotalChannels, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 417 1 0 \"c81dee5c_9bb7_497b_82bef1e9b26ac0a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 418 1 0 \"b3076f7d_7e51_4975_b24aca5603350486\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_Y_Coord=arr_Values.GetAt(i_int_CurrentChannel-1);\r\n// }} \"\"\r\n// {{ 419 1 0 \"c81dee5c_9bb7_497b_82bef1e9b26ac0a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 420 1 0 \"572b5cab_8b20_44ff_8e44ff139f641967\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 421 1 0 \"607cf504_0425_419a_88aa77ca35811eb1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 422 1 0 \"58c37c1f_0705_49dc_92f8c2be04af2ae6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1XMRX\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 423 1 0 \"b947ca24_9670_4aaa_b0fb91d3db128f49\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b947ca24_9670_4aaa_b0fb91d3db128f49\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 424 1 0 \"25dcaec0_dbdc_45c3_84f4a447927e3072\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1);\r\n// }} \"\"\r\n// {{ 425 1 0 \"71938169_7825_4783_a65b4ccfa8c7e358\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 426 1 0 \"8f46efb7_8818_4266_ad658418a922cc9c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rx\"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 427 1 0 \"e6ccfed4_ec75_4f1b_b901b58a30d6ba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"rx\"), flt_Resolution_X, 5, 5, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 428 1 0 \"c2199846_b8f0_459b_8750f8df127e21e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 429 1 0 \"ba05d325_d2a3_40ec_98b8f30652940b9b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_X_Coord = flt_ReturnValue;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 430 1 0 \"3069a30f_3df0_4589_9776e675b27f4b24\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_X_Coord=arr_Values.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 431 1 0 \"c2199846_b8f0_459b_8750f8df127e21e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"71938169_7825_4783_a65b4ccfa8c7e358\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"   Current X Position:  \",o_X_Coord);\r\nTrace(\"   Current Y Position:  \",o_Y_Coord);\r\nTrace(\"   Current Z Position:  \",o_Z_Coord);\r\n// {{{ 5 \"Get_Channel_Position_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Present_1mL\" \"Begin\"\r\nfunction Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable flt_Value;\r\nprivate variable str_Firmware;\r\nprivate variable int_TotalChannels;\r\nprivate variable str_CurrentChannel;\r\nprivate variable arr_TipsPresent[];\r\n// {{ 5 \"Get_Tip_Present_1mL\" \"InitLocals\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 435 1 0 \"692d97ec_2e44_4ad3_941604612e15477a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 436 1 0 \"c2d46cb7_b9a0_4d34_ab49f4907ea7b6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 438 1 0 \"8c00161a_83bd_4220_aac4483a952718f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 439 1 0 \"61a933a3_2b98_45c5_add4d2a7a7b930c8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 440 1 0 \"68a5ac55_7eee_4fb1_9ebf9204d47fa6b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 441 1 0 \"6fbf1377_f50d_429f_a52befc083a5aa7c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 442 1 0 \"b8711a41_9ec8_4893_97c8175ae988b1d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 443 1 0 \"f8c48f11_6fda_4541_98b36044ac3297aa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 444 1 0 \"692d97ec_2e44_4ad3_941604612e15477a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 445 1 0 \"9073ced6_8ef9_42f5_b57ce67944ba7a7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 446 1 0 \"8e23ff46_cbbb_4b19_a1b7ee0cea08f4f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{ 447 1 0 \"3cfc9602_994d_46a9_b81b7e38f385e420\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 448 1 0 \"987ca36d_9eba_4a64_9030c590557183ca\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"e27a8d03_6c09_46f9_a5015fbbc4dbe40c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 1;\r\n// }} \"\"\r\n// {{ 450 1 0 \"8fcd972d_ca18_48b0_975f2785dbd72bf6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 451 1 0 \"76c2b900_74f0_418e_a7ce512b00446e21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 452 1 0 \"d59df0e1_175f_4a07_b5edd1592a949b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate(\"0\"), 2);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"b65b82aa_2bb2_4636_b849d7b3759c5973\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"A1P\"), Translate(\"M\"), Translate(\"QA\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 454 1 0 \"a024fef4_e611_4e47_83b54acc919de469\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"a024fef4_e611_4e47_83b54acc919de469\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 455 1 0 \"e2c800f1_a06b_4434_914599d87f1ee831\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 456 1 0 \"d0d6e6fa_e12f_4c72_89f600ca8e10643b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 457 1 0 \"870fdd05_a9ee_444a_9f87d4f72b471ac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, Translate(\"rt\"), 1, bol_ParameterFound, arr_TipsPresent);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 458 1 0 \"1ad31436_c12f_443f_a92b0cfa1be8af44\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"rt\"), 1, 1, G_FW_PIP_COM_TotalChannels, bol_ParameterFound, arr_TipsPresent);\r\n// }} \"\"\r\n// {{{ 459 1 0 \"f4e54d34_d056_4a79_a6e50502e199aedd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rt\"), flt_Resolution, 1, bol_ParameterFound, flt_Value);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 460 1 0 \"af8bd4fa_57f7_4cb4_ae151cb9ba583194\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 461 1 0 \"c249b9a1_6aed_4426_86e39063f47f4ca6\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalChannels=arr_TipsPresent.GetSize();\r\n// }} \"\"\r\n// {{ 462 1 0 \"9bacba32_ff97_4f36_8783640a8ce7d603\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_CurrentChannel <= int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 463 1 0 \"9a16a7b0_ea5c_4fdb_b99237fc00b03067\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Value=arr_TipsPresent.GetAt(i_int_CurrentChannel-1);\r\n// }} \"\"\r\n// {{ 464 1 0 \"9bacba32_ff97_4f36_8783640a8ce7d603\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 465 1 0 \"5316f650_5931_4963_8db123342c2d6f90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Value = 0.0;\r\n// }} \"\"\r\n// {{ 466 1 0 \"9bacba32_ff97_4f36_8783640a8ce7d603\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 467 1 0 \"5a648d8e_81f6_4983_9f296436693d7485\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Value == 1.0)\r\n{\r\n// }} \"\"\r\n// {{ 468 1 0 \"0bc4235d_47c8_4f1f_9f275e5eddaf9ee4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 1;\r\n// }} \"\"\r\n// {{ 469 1 0 \"5a648d8e_81f6_4983_9f296436693d7485\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 470 1 0 \"24f036c7_7014_404b_bbc53cc0ae0aafbf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 471 1 0 \"5a648d8e_81f6_4983_9f296436693d7485\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 472 1 0 \"af8bd4fa_57f7_4cb4_ae151cb9ba583194\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Tip Present:  \",o_bool_TipPresent);\r\n// {{{ 5 \"Get_Tip_Present_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Present_5mL\" \"Begin\"\r\nfunction Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable flt_Value;\r\nprivate variable str_Firmware;\r\nprivate variable int_TotalChannels;\r\nprivate variable arr_TipsPresent[];\r\n// {{ 5 \"Get_Tip_Present_5mL\" \"InitLocals\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 475 1 0 \"f7a356f8_c1e4_4ffc_aafed44e36cfad5a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 476 1 0 \"5919d06b_9b3f_4111_8335cabb068b5165\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 478 1 0 \"13629838_0e35_4894_aa04361700fbe4b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 479 1 0 \"d319297c_4288_43a6_a4867a2fd3a78830\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 480 1 0 \"daac456d_28c8_4d02_8f09e1846edcd05e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 481 1 0 \"7dc09aae_c077_44a1_8d83d6a8aa2e3e95\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 482 1 0 \"1b7c633c_0a54_4546_b56f8745755de8df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 483 1 0 \"c8a8b308_4fe5_49ef_8bf314c0a2ae7e6c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 484 1 0 \"f7a356f8_c1e4_4ffc_aafed44e36cfad5a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 485 1 0 \"387d1568_acfe_48ed_897df469280a705e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 486 1 0 \"90462648_16a7_4c51_92ff110d71b134d9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 487 1 0 \"2ea14abd_a06c_4bb1_906d6fa10f7d6844\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 1;\r\n// }} \"\"\r\n// {{ 488 1 0 \"a1197d52_9d86_4cbf_93da2eb82e95ebd6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 489 1 0 \"4f00dc0c_bf0c_4ed5_b86e23436882255f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"A1L\"), Translate(\"M\"), Translate(\"QA\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 490 1 0 \"625fb85f_6c51_4a86_b63a5eea83adcd17\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"625fb85f_6c51_4a86_b63a5eea83adcd17\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 491 1 0 \"0661dd15_8532_474f_8633b297439518d7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 492 1 0 \"45eec093_bcb5_4b93_a4430d4c4c34c64e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 493 1 0 \"76aa95a6_773e_479a_9c793fc3f85dea3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, Translate(\"rt\"), 1, bol_ParameterFound, arr_TipsPresent);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 494 1 0 \"4a2132e1_9661_41cc_b52967b3fa1ebaab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"rt\"), 1, 1, G_FW_XL_COM_TotalChannels, bol_ParameterFound, arr_TipsPresent);\r\n// }} \"\"\r\n// {{{ 495 1 0 \"b95b4952_7e8c_460b_a2c6951715281266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate(\"rt\"), flt_Resolution, 1, bol_ParameterFound, flt_Value);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 496 1 0 \"6183815c_7a60_4564_b8b3065efa645887\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 497 1 0 \"4e33dd02_07fb_4946_9737400395968b28\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalChannels=arr_TipsPresent.GetSize();\r\n// }} \"\"\r\n// {{ 498 1 0 \"8c73e53d_911a_42ba_853feac5e3070d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_CurrentChannel <= int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 499 1 0 \"49b70053_c013_49bf_ae77fbf3870e2beb\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Value=arr_TipsPresent.GetAt(i_int_CurrentChannel-1);\r\n// }} \"\"\r\n// {{ 500 1 0 \"8c73e53d_911a_42ba_853feac5e3070d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 501 1 0 \"790ca4d4_8a9c_45e7_a85854e9cd7ca950\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Value = 0.0;\r\n// }} \"\"\r\n// {{ 502 1 0 \"8c73e53d_911a_42ba_853feac5e3070d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 503 1 0 \"52195489_2848_4336_99484f4c94c61873\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Value == 1.0)\r\n{\r\n// }} \"\"\r\n// {{ 504 1 0 \"6709cce2_fde6_4952_82212f2f0f5e9d1d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 1;\r\n// }} \"\"\r\n// {{ 505 1 0 \"52195489_2848_4336_99484f4c94c61873\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 506 1 0 \"df51d909_1005_485f_a72d146731a9bbc5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bool_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 507 1 0 \"52195489_2848_4336_99484f4c94c61873\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 508 1 0 \"6183815c_7a60_4564_b8b3065efa645887\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Tip Present:  \",o_bool_TipPresent);\r\n// {{{ 5 \"Get_Tip_Present_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Volume_1mL\" \"Begin\"\r\nfunction Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalFound;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_Tip_Volume_1mL\" \"InitLocals\"\r\no_flt_MaxTipVolume = 0;\r\no_flt_CurrentVolumeInTip = 0;\r\n// }} \"\"\r\n// {{ 511 1 0 \"3f616c1c_a920_49b5_8bb9cc4982bcb762\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 512 1 0 \"2de9e027_e3d5_4d72_81a326cf1143c767\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 514 1 0 \"74037b15_82bf_4b49_89808c331da98bad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 515 1 0 \"0b1a39ee_c71e_4f49_b9f26cef8f3de1ff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 516 1 0 \"08c5a202_276c_419a_92f411e0a16eca19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 517 1 0 \"5c328cea_8550_44c0_bbc238b62d2a07e4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 518 1 0 \"04c70b62_138c_431c_b75e75f2da2ba65b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 519 1 0 \"35fde00e_77a4_40eb_8e21ecbc691d2d3b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 520 1 0 \"3f616c1c_a920_49b5_8bb9cc4982bcb762\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 521 1 0 \"e3c93a6e_e698_4e57_b4968e9a795e9c27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel);\r\n// }} \"\"\r\n// {{ 522 1 0 \"db263934_1479_484f_9d9721c4fcd6ff61\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = 0.0;\r\n// }} \"\"\r\n// {{ 523 1 0 \"09c2ea34_52a7_445f_995023f89a1b8fa8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = 0.0;\r\n// }} \"\"\r\n// {{ 524 1 0 \"4ef3c13b_91d4_41de_b32b4cd821a91e80\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"72501c75_cd91_4681_b5730704f44ccdc5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 0.046876;\r\n// }} \"\"\r\n// {{ 526 1 0 \"badb8d2b_e440_4302_b19882f38c2b8fe4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 527 1 0 \"5581d8c9_62ca_40bc_86a0db96de706592\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"A1P\"), i_int_CurrentChannel, Translate(\"QC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 528 1 0 \"4f306e9c_ed7b_4f7d_b20e833bd211e6a1\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"4f306e9c_ed7b_4f7d_b20e833bd211e6a1\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 529 1 0 \"cbcd0aae_49bc_4691_902b07d2bffbe01c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 530 1 0 \"d23cc9ec_4d2b_4d0c_934d5f622d65f157\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 531 1 0 \"c363b4fe_2898_4b19_9fa61de69aa085a0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"qc\"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 532 1 0 \"3c7b0b84_4a47_4910_895f313103880228\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalFound=arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 533 1 0 \"81bc6df0_c414_4234_849143ec1f4478a1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 1)\r\n{\r\n// }} \"\"\r\n// {{ 534 1 0 \"8bbb9b60_9a0f_45c2_aabe3b48400141b0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 535 1 0 \"9150ac99_4d34_4498_bf0e47fce2a6dd1d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{{ 536 1 0 \"40ccad34_8e55_4ea3_9b92fdc1ef77bb52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 537 1 0 \"8bbb9b60_9a0f_45c2_aabe3b48400141b0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"81bc6df0_c414_4234_849143ec1f4478a1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 539 1 0 \"cc969ed1_0da6_4636_941efc85d8765ff0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"b8e8b344_0420_4491_a753694f1cad01b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 2)\r\n{\r\n// }} \"\"\r\n// {{ 541 1 0 \"176889e5_453b_4458_885d079db4e721b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 542 1 0 \"73286740_91e5_40a2_a5db551470366b70\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"7936498d_edac_4f87_b25e6bb3367f71ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip);\r\n// }} \"\"\r\n// {{ 544 1 0 \"176889e5_453b_4458_885d079db4e721b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 545 1 0 \"b8e8b344_0420_4491_a753694f1cad01b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Max tip volume:  \",o_flt_MaxTipVolume,\" uL\");\r\nTrace(\"     \",\"Current tip volume:  \",o_flt_CurrentVolumeInTip,\" uL\");\r\n// {{{ 5 \"Get_Tip_Volume_1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get_Tip_Volume_5mL\" \"Begin\"\r\nfunction Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable bol_ParameterFound;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_TotalFound;\r\nprivate variable flt_Resolution;\r\nprivate variable int_Count;\r\nprivate variable str_Firmware;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"Get_Tip_Volume_5mL\" \"InitLocals\"\r\no_flt_MaxTipVolume = 0;\r\no_flt_CurrentVolumeInTip = 0;\r\n// }} \"\"\r\n// {{ 548 1 0 \"84e37093_56d0_43fe_bc679ee3e6648bc8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 549 1 0 \"b0d66ee3_8aec_446c_9d2a8594ead234cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 551 1 0 \"d6f19931_c43d_4cdd_94672a1de7b3ec6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 552 1 0 \"11a74334_c295_431c_93e763eb33e8d510\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 553 1 0 \"f4854814_2241_4fe3_8353c63ee3fe6f40\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 554 1 0 \"ad9be799_857e_4147_88930ea9b3ecf8d4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 555 1 0 \"a81d9c57_f947_4a02_9241d5176b3ab69c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{ 556 1 0 \"453258ba_4a47_4158_9c54615a841aedec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = strFunctionName_Cut;\r\n// }} \"\"\r\n// {{ 557 1 0 \"84e37093_56d0_43fe_bc679ee3e6648bc8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 558 1 0 \"8888f3d0_2e8b_4eb8_b3ed361083ddce01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = 0.0;\r\n// }} \"\"\r\n// {{ 559 1 0 \"83fcda40_d699_4896_8eaedd6f1e5a6fe4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = 0.0;\r\n// }} \"\"\r\n// {{ 560 1 0 \"80eecbde_ac55_492c_98367f57dc3b2299\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 561 1 0 \"eac0a3f8_9b55_4305_bbe1291c5eb12981\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Resolution = 0.044711063;\r\n// }} \"\"\r\n// {{ 562 1 0 \"b980110c_f4be_4ced_b97c09563a7a5b20\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 563 1 0 \"aad6ee8f_f853_4117_9885d2cef7edd3ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Firmware = StrConcat4(Translate(\"A1L\"), i_int_CurrentChannel, Translate(\"QC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 564 1 0 \"95008990_1bb2_4cff_9d81aa099b6a6d5f\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"95008990_1bb2_4cff_9d81aa099b6a6d5f\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 565 1 0 \"c6b5c1a4_07e0_41b8_b538f9c071e6aebf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{ 566 1 0 \"00366979_e1e1_4f84_8f36f3c265859b21\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 567 1 0 \"3148a5bf_49c6_4572_bd36369ec0517fdb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"qc\"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 568 1 0 \"a355bdd1_03b6_441d_8232df219b1a9dab\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalFound=arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 569 1 0 \"bd79da4a_b71b_422a_8484ef50e27a1764\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 1)\r\n{\r\n// }} \"\"\r\n// {{ 570 1 0 \"be606b8f_aa38_4681_85ed4a9b93753fef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 571 1 0 \"7a2b3f6d_dbfb_411a_96bc7f90964afbde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{{ 572 1 0 \"4fed12d7_3411_4ce9_825b240efbddcb3b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 573 1 0 \"be606b8f_aa38_4681_85ed4a9b93753fef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 574 1 0 \"bd79da4a_b71b_422a_8484ef50e27a1764\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 575 1 0 \"4c1aae9c_f2b2_42d9_902020331cd33aad\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 576 1 0 \"77ddf967_8865_44c3_9c84ecb201e609c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalFound >= 2)\r\n{\r\n// }} \"\"\r\n// {{ 577 1 0 \"542034cd_544b_4ea8_a6e644e1761c17f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 578 1 0 \"5b77c4fd_6dc1_44f6_bab20f813b294c2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1);\r\n// }} \"\"\r\n// {{{ 579 1 0 \"fbef6bb9_9621_4d9d_a5e0635f42fad456\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip);\r\n// }} \"\"\r\n// {{ 580 1 0 \"542034cd_544b_4ea8_a6e644e1761c17f1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 581 1 0 \"77ddf967_8865_44c3_9c84ecb201e609c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Channel Number:  \",i_int_CurrentChannel);\r\nTrace(\"     \",\"Max tip volume:  \",o_flt_MaxTipVolume,\" uL\");\r\nTrace(\"     \",\"Current tip volume:  \",o_flt_CurrentVolumeInTip,\" uL\");\r\n// {{{ 5 \"Get_Tip_Volume_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"QueryTipLength\" \"Begin\"\r\nfunction QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void {\r\n// }} \"\"\r\nprivate variable str_ReturnValue;\r\nprivate variable bol_ParameterFound;\r\nprivate variable bln_TipPresent;\r\nprivate variable strFunctionName;\r\nprivate variable flt_ZTipCoord;\r\nprivate variable str_FirmwareCMND;\r\nprivate variable flt_ZStopDisk;\r\nprivate variable arr_Values[];\r\n// {{ 5 \"QueryTipLength\" \"InitLocals\"\r\no_fltTipLength = 0;\r\n// }} \"\"\r\n// {{ 968 1 0 \"1a46acf9_fd9c_4e07_bba23f994b037a4f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_fltTipLength = 0.0;\r\n// }} \"\"\r\n// {{{ 969 1 0 \"e7b6706d_8674_44cd_aa26ed6ee00ecf7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet_Tip_Present_1mL(ML_STAR, i_intChannelNumber, bln_TipPresent);\r\n// }} \"\"\r\n// {{ 970 1 0 \"00b81d7c_e02c_4214_8f8b47907e90f79b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipPresent == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 971 1 0 \"b0de3b91_6c91_475d_8fef3293ace5a0c7\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 972 1 0 \"00b81d7c_e02c_4214_8f8b47907e90f79b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 973 1 0 \"1aeb9867_9524_46f4_80586627e401d526\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetStopDiskZCoord(ML_STAR, i_intChannelNumber, flt_ZStopDisk);\r\n// }} \"\"\r\n// {{ 974 1 0 \"24cb0a4c_ef4d_4c2a_b3877e37ae236320\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 975 1 0 \"166a467f_3de8_4f4f_aab55cbca76ef9ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FirmwareCMND = StrConcat4(Translate(\"A1PMRZ\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 976 1 0 \"4e53f8b5_2dd2_46c9_9f9e86952bd71877\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"4e53f8b5_2dd2_46c9_9f9e86952bd71877\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 977 1 0 \"f483f601_5a9d_4b95_9f092e670763d1a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"bec21b5c_8815_4c59_a509953f2da390f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate(\"rz\"), 0.1, 4, G_FW_PIP_COM_TotalChannels, bol_ParameterFound, arr_Values);\r\n// }} \"\"\r\n// {{ 979 1 0 \"8cc2b4b6_5d76_479e_bdbfaa65e6f5abbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_ParameterFound == 1)\r\n{\r\n// }} \"\"\r\n// {{ 980 1 0 \"21679e56_49b1_4d0d_ad2068efb50aa1f6\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ZTipCoord=arr_Values.GetAt(i_intChannelNumber-1);\r\n// }} \"\"\r\n// {{ 981 1 0 \"8cc2b4b6_5d76_479e_bdbfaa65e6f5abbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 982 1 0 \"4788c03a_1e6c_4741_9224c8917ea074ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZTipCoord = flt_ZStopDisk;\r\n// }} \"\"\r\n// {{ 983 1 0 \"8cc2b4b6_5d76_479e_bdbfaa65e6f5abbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 984 1 0 \"5961dc31_d549_4aee_b4e26a7d4797f8de\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_fltTipLength = flt_ZStopDisk - flt_ZTipCoord;\r\n// }} \"\"\r\n// {{{ 5 \"QueryTipLength\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2021-10-06 15:00$$checksum=911ac006$$length=087$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR Channel Tools.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 12/13/2021 11:05:43 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_CHANNEL_TOOLS {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction LIQUID_LEVEL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void { }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction LIQUID_LEVEL_ReturnVolumesFromLiquidLevel( device & ML_STAR, variable i_str_PipettingReturn, variable i_str_LiquidLevelReturn, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) void { }\r\nfunction MOVE_ChannelsToSequencePosition( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void { }\r\nfunction MOVE_ChannelsToSequencePosition_5mL( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void { }\r\nfunction MOVE_CheckPlateWithTwoChannels( device & ML_STAR, variable i_int_FrontMostChannel, sequence i_seq_PlateToCheck, variable i_flt_TapWidth ) variable {  return (0); }\r\nfunction MOVE_InitDispenseDrive( device & ML_STAR, variable i_int_ChNumber ) void { }\r\nfunction MOVE_InitDispenseDrive_5mL( device & ML_STAR, variable i_int_ChNumber ) void { }\r\nfunction PLATE_STACK_CountPlateStacks( device & ML_STAR, sequence i_seq_PlateStack_Full, sequence & o_seq_PlateStack_Count, variable & o_int_PlateCount ) void { }\r\nfunction QUERY_GetChannelPosition( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void { }\r\nfunction QUERY_GetChannelPosition_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void { }\r\nfunction QUERY_GetTipPresentState( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void { }\r\nfunction QUERY_GetTipPresentState_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void { }\r\nfunction QUERY_GetTipVolume( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void { }\r\nfunction QUERY_GetTipVolume_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void { }\r\nfunction SPLIT_WELLS_AddContainersToWell( device & ML_STAR, sequence i_seq_SequenceToSplit, variable i_int_SequenceIndex, variable i_int_MaxSplitNumber, sequence & io_seq_SplitSequence ) void { }\r\nfunction SPLIT_WELLS_RemoveContainers( device & ML_STAR, variable i_bool_UpdateVolumes ) void { }\r\nfunction TRAVEL_LANES_MoveChannelsToTravelLanes( device & ML_STAR ) void { }\r\nfunction TRAVEL_LANES_MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void { }\r\nfunction TRAVEL_LANES_MoveChannelsToYPosition( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { }\r\nfunction TRAVEL_LANES_MoveChannelsToYPosition_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { }\r\nfunction TRAVEL_LANES_MoveChannelsWithTravelLanes( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { }\r\nfunction TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { }\r\nfunction TRAVEL_LANES_SingleSource_ChannelDisplacement( device & ML_STAR, variable i_strStepReturn ) void { }\r\nfunction TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL( device & ML_STAR, variable i_strStepReturn ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2021-12-13 11:05$$checksum=1b6412be$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR Channel Tools.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\Plate Stack Verify.hs_\"\r\n#include \"HSLFilLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\Split_Wells.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\CHANNEL_TOOLS_GLOBAL.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n#include \"SMTs\\\\lookup.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\Liquid Level Check.hs_\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"HSLExtensions\\\\Array.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\Travel Lanes.hs_\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"Labware Properties\\\\Labware_Property_Query.hs_\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\FW_HelperLibrary.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\STAR Channel Movement Tools.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\VANTAGE Channel Movement Tools.hs_\"\r\n#include \"HSL_MethodHelper.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_CHANNEL_TOOLS {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function Abstract(  ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction LIQUID_LEVEL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction LIQUID_LEVEL_ReturnVolumesFromLiquidLevel( device & ML_STAR, variable i_str_PipettingReturn, variable i_str_LiquidLevelReturn, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) void ;\r\nfunction MOVE_ChannelsToSequencePosition( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void ;\r\nfunction MOVE_ChannelsToSequencePosition_5mL( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void ;\r\nfunction MOVE_CheckPlateWithTwoChannels( device & ML_STAR, variable i_int_FrontMostChannel, sequence i_seq_PlateToCheck, variable i_flt_TapWidth ) variable ;\r\nfunction MOVE_InitDispenseDrive( device & ML_STAR, variable i_int_ChNumber ) void ;\r\nfunction MOVE_InitDispenseDrive_5mL( device & ML_STAR, variable i_int_ChNumber ) void ;\r\nfunction PLATE_STACK_CountPlateStacks( device & ML_STAR, sequence i_seq_PlateStack_Full, sequence & o_seq_PlateStack_Count, variable & o_int_PlateCount ) void ;\r\nfunction QUERY_GetChannelPosition( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void ;\r\nfunction QUERY_GetChannelPosition_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void ;\r\nfunction QUERY_GetTipPresentState( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void ;\r\nfunction QUERY_GetTipPresentState_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void ;\r\nfunction QUERY_GetTipVolume( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void ;\r\nfunction QUERY_GetTipVolume_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void ;\r\nfunction SPLIT_WELLS_AddContainersToWell( device & ML_STAR, sequence i_seq_SequenceToSplit, variable i_int_SequenceIndex, variable i_int_MaxSplitNumber, sequence & io_seq_SplitSequence ) void ;\r\nfunction SPLIT_WELLS_RemoveContainers( device & ML_STAR, variable i_bool_UpdateVolumes ) void ;\r\nfunction TRAVEL_LANES_MoveChannelsToTravelLanes( device & ML_STAR ) void ;\r\nfunction TRAVEL_LANES_MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void ;\r\nfunction TRAVEL_LANES_MoveChannelsToYPosition( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void ;\r\nfunction TRAVEL_LANES_MoveChannelsToYPosition_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void ;\r\nfunction TRAVEL_LANES_MoveChannelsWithTravelLanes( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void ;\r\nfunction TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void ;\r\nfunction TRAVEL_LANES_SingleSource_ChannelDisplacement( device & ML_STAR, variable i_strStepReturn ) void ;\r\nfunction TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL( device & ML_STAR, variable i_strStepReturn ) void ;\r\nprivate function _FunctionError( variable i_str_FunctionName, variable i_str_ErrorDescription ) void ;\r\nprivate function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nPLATE_STACK_VERIFY::_InitLibrary();\r\nSPLIT_WELLS::_InitLibrary();\r\nHELPERLIBRARY::_InitLibrary();\r\nLOOKUP::_InitLibrary();\r\nLIQUID_LEVEL_CHECK::_InitLibrary();\r\nTRAVEL_LANES::_InitLibrary();\r\nLPQ::_InitLibrary();\r\nFW_HELPERLIBRARY::_InitLibrary();\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::_InitLibrary();\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nPLATE_STACK_VERIFY::_ExitLibrary();\r\nSPLIT_WELLS::_ExitLibrary();\r\nHELPERLIBRARY::_ExitLibrary();\r\nLOOKUP::_ExitLibrary();\r\nLIQUID_LEVEL_CHECK::_ExitLibrary();\r\nTRAVEL_LANES::_ExitLibrary();\r\nLPQ::_ExitLibrary();\r\nFW_HELPERLIBRARY::_ExitLibrary();\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary();\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"PLATE_STACK_CountPlateStacks\" \"Begin\"\r\nfunction PLATE_STACK_CountPlateStacks( device & ML_STAR, sequence i_seq_PlateStack_Full, sequence & o_seq_PlateStack_Count, variable & o_int_PlateCount ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate sequence arr_PlateStack[];\r\nprivate variable arr_PlateCounts[];\r\nprivate variable str_LogFolderPath;\r\nprivate variable flt_X_Coord;\r\nprivate variable int_StackNum;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable int_StackCount;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable str_TempSortFile;\r\nprivate sequence seq_CurrentStack;\r\nprivate file SortFile;\r\nprivate variable i;\r\nprivate variable int_TotalInStack;\r\nprivate variable flt_NotUsed;\r\nprivate variable str_SQL_Sort;\r\nprivate variable int_StackLoop;\r\nprivate sequence seq_TempPlateStack;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable int_Count;\r\nprivate file SortFile2;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable bool_FileExists;\r\n// {{ 5 \"PLATE_STACK_CountPlateStacks\" \"InitLocals\"\r\n{ sequence __temp; o_seq_PlateStack_Count = __temp; }\r\no_int_PlateCount = 0;\r\n// }} \"\"\r\n// {{ 1950 1 0 \"bd6a5218_8352_4374_ab1989a030826000\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1951 1 0 \"7d42947f_c74e_4be7_895b7b6cd7cfa60b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1953 1 0 \"9af12363_8986_488d_b64ccfbbd81317a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1954 1 0 \"0679dae5_5219_41dc_b744197e0e535edf\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1955 1 0 \"cd428867_8cb0_47eb_a56eb10330d1cfd1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1956 1 0 \"31f4a0a2_7943_42e7_a1604182a4d0af67\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1957 1 0 \"a274551a_16b8_4b1a_80a4a84bae5e4642\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1959 1 0 \"bd6a5218_8352_4374_ab1989a030826000\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1960 1 0 \"62f33c7f_0b4a_4c22_841611ea3851ca1a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1961 1 0 \"9a1af323_47e6_49b1_9f4cce00d7750007\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_PlateStack_Count);\r\n// }} \"\"\r\n// {{ 1962 1 0 \"64dea824_c106_40a7_b0846983551fa11d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_PlateCount = 0;\r\n// }} \"\"\r\n// {{{ 1963 1 0 \"8959cfea_8051_4950_85f06b5dc7f75520\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nPLATE_STACK_VERIFY::Get_Arr_StackSequences(ML_STAR, i_seq_PlateStack_Full, arr_PlateStack);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1964 1 0 \"7731361d_3322_4762_a35b165be2486903\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LogFolderPath = FilGetLogFilesPath();\r\n// }} \"\"\r\n// {{{ 1965 1 0 \"c04ae655_6b35_4db2_af2df94c8fb6000b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TempSortFile = StrConcat4(str_LogFolderPath, Translate(\"\\\\\"), Translate(\"TEMP_SORTING_FILE\"), Translate(\".xls\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1966 1 0 \"163f0164_de7c_41f0_9b2b2f1e12531a14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortFile);\r\n// }} \"\"\r\n// {{{ 1967 1 0 \"90e574a7_6250_4fb1_8059072874d98252\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortFile);\r\n// }} \"\"\r\n// {{ 1968 1 0 \"4471e5ad_acee_4f0d_bff10f13610721e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1969 1 0 \"893f28ed_8cfa_4df9_a2ca28a30e3da8c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortFile);\r\n// }} \"\"\r\n// {{ 1970 1 0 \"4471e5ad_acee_4f0d_bff10f13610721e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1971 1 0 \"6d248701_0c25_4757_9ca88981e96dac97\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nPLATE_STACK_VERIFY::Plate_Stack_Verify(ML_STAR, arr_PlateStack, arr_PlateCounts);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1972 1 0 \"e180f468_17cf_4574_ac79dce662b6b95e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nPLATE_STACK_VERIFY::Plate_Stack_Verfy_V2(ML_STAR, arr_PlateStack, arr_PlateCounts);\r\n// }} \"\"\r\n// {{{ 1973 1 0 \"6ce2130f_0bb5_45c5_831f0114aa71fc8f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Plate Counts\"), arr_PlateCounts);\r\n// }} \"\"\r\n// {{ 1974 1 0 \"c55e0360_57c7_4d6d_9034aa8efe9303e8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1975 1 0 \"6f6a66d7_3ad0_4da5_a204607a37c52cfd\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile.AddField(\"STACK_NUM\", int_StackNum, hslInteger);\r\nSortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\nSortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\nSortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\nSortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\nSortFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\nif( 0 == SortFile.Open(str_TempSortFile + \" \" + \"SORT_FILE\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1976 1 0 \"ee44ecdb_c12b_4359_91435c48addfaaa8\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_StackCount=arr_PlateStack.GetSize();\r\n// }} \"\"\r\n// {{ 1977 1 0 \"4071ab62_3af9_4d03_b7c359e6fafc542d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_StackNum = 0; int_StackNum < int_StackCount;)\r\n{\r\nint_StackNum = int_StackNum + 1;\r\n// }} \"\"\r\n// {{ 1978 1 0 \"ecfcc1d6_9f7f_4dd5_8e4d4d3df7ea38e2\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nseq_CurrentStack=arr_PlateStack.GetAt(int_StackNum-1);\r\n// }} \"\"\r\n// {{{ 1979 1 0 \"149ad0c0_a5ab_4b6f_b66643044be71fc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalInStack = SeqGetTotal(seq_CurrentStack);\r\n// }} \"\"\r\n// {{ 1980 1 0 \"c26d6da5_98b8_49cf_8212be67c528610d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalInStack;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1981 1 0 \"16076977_81b3_47d9_9ea18123fa052a01\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_CurrentStack.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 1982 1 0 \"c73825d7_c2a7_44bc_99a801f377ac986f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_CurrentStack);\r\n// }} \"\"\r\n// {{{ 1983 1 0 \"ba3d09ee_996b_4f61_bd231f71c31d20f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_CurrentStack);\r\n// }} \"\"\r\n// {{{ 1984 1 0 \"e5c474d0_2814_4525_b9ffced23ff2d15f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 1985 1 0 \"1f462b94_1577_49d3_afe15fdb9b5a396a\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1986 1 0 \"c26d6da5_98b8_49cf_8212be67c528610d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1987 1 0 \"4071ab62_3af9_4d03_b7c359e6fafc542d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1988 1 0 \"cf199eb1_5227_44e7_a6a83dcb9f7188c1\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 1989 1 0 \"c55e0360_57c7_4d6d_9034aa8efe9303e8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1990 1 0 \"88859c3a_81e8_4eef_994a48f1c2ce76f4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1991 1 0 \"85de04c9_3427_4c70_b4133d491d635be1\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_StackLoop=arr_PlateCounts.GetSize();\r\n// }} \"\"\r\n// {{{ 1992 1 0 \"3b96ddf1_98bf_4d75_819ad6b2120d9368\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TempPlateStack);\r\n// }} \"\"\r\n// {{ 1993 1 0 \"7d0325f3_ad35_405a_afaea35f56549fb8\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile2.AddField(\"STACK_NUM\", int_StackNum, hslInteger);\r\nSortFile2.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\nSortFile2.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\nSortFile2.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\nSortFile2.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\nSortFile2.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\nif( 0 == SortFile2.Open(str_TempSortFile + \" \" + \"SORT_FILE2\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1994 1 0 \"38a1153d_28ed_443f_a8b6d1fce6504cfd\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_StackLoop;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1995 1 0 \"7957c260_1f41_4157_ae4e7a347911dcc5\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_StackCount=arr_PlateCounts.GetAt(i-1);\r\n// }} \"\"\r\n// {{ 1996 1 0 \"4802a929_6f57_423f_bcf18e02f53e119f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_PlateCount = o_int_PlateCount + int_StackCount;\r\n// }} \"\"\r\n// {{ 1997 1 0 \"03af9fc9_f8f6_412e_be2e498133c76e4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_StackCount > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1998 1 0 \"6894a09a_806a_4f6b_b9013c2f16e9ab06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM [SORT_FILE$] WHERE STACK_NUM = \"), i, Translate(\" ORDER BY Z_COORD ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1999 1 0 \"6b934522_f549_4d40_86992a173a6557cd\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile.AddField(\"STACK_NUM\", int_StackNum, hslInteger);\r\nSortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\nSortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\nSortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\nSortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\nSortFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\nif( 0 == SortFile.Open(str_TempSortFile + \" \" + \"SORT_FILE$\", hslRead, str_SQL_Sort) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2000 1 0 \"122cab7f_1c4c_4071_babbea26fffe0b53\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nint_Count = 0;\r\nwhile (\r\n   (SortFile.Eof() == 0)\r\n)\r\n{\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{ 2001 1 0 \"9d4325a7_4872_4ba4_96dac0c871d83173\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2002 1 0 \"76daa390_6f85_49d1_9981bd2412cd7a2e\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile2.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2003 1 0 \"e24e2fe4_e8e7_4605_b2669f4a54695fdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Count == int_StackCount)\r\n{\r\n// }} \"\"\r\n// {{ 2004 1 0 \"fb2e872a_21c6_4421_a823d77a89ba5bd6\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2005 1 0 \"e24e2fe4_e8e7_4605_b2669f4a54695fdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2006 1 0 \"122cab7f_1c4c_4071_babbea26fffe0b53\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2007 1 0 \"8164edb8_d008_4886_9ca48115d6274731\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 2008 1 0 \"03af9fc9_f8f6_412e_be2e498133c76e4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2009 1 0 \"38a1153d_28ed_443f_a8b6d1fce6504cfd\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2010 1 0 \"1401c62a_6519_4864_8053a849f7affc7e\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempPlateStack.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 2011 1 0 \"88859c3a_81e8_4eef_994a48f1c2ce76f4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2012 1 0 \"2828a0ae_7bbf_4ee2_bf87e689a652014e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2013 1 0 \"0e186ed3_8a42_42c8_ba4475c815f7df6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM [SORT_FILE2$] \"), Translate(\"\"), Translate(\" ORDER BY STACK_NUM ASC, Z_COORD DESC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2014 1 0 \"d3a9bd2b_8dc4_40a8_93af2e19e956075d\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile2.AddField(\"STACK_NUM\", int_StackNum, hslInteger);\r\nSortFile2.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\nSortFile2.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\nSortFile2.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\nSortFile2.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\nSortFile2.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\nif( 0 == SortFile2.Open(str_TempSortFile + \" \" + \"SORT_FILE2$\", hslRead, str_SQL_Sort) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2015 1 0 \"0404a4bc_309c_44ce_bbc6bb3a14eaa86d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (SortFile2.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 2016 1 0 \"ca777f95_f746_4b36_8024d1646f94addf\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile2.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2017 1 0 \"012ff4f6_8e18_4743_804f4771e92cd211\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_PlateStack_Count, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 2018 1 0 \"0404a4bc_309c_44ce_bbc6bb3a14eaa86d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2019 1 0 \"e456b26f_74f9_446a_ac874137f7fe22f0\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile2.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile2.RemoveFields();\r\n// }} \"\"\r\n// {{ 2020 1 0 \"6ae8506b_01e2_45b0_a15ba425bf3e56ed\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_PlateStack_Count.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 2021 1 0 \"2828a0ae_7bbf_4ee2_bf87e689a652014e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2022 1 0 \"f2df1472_3ccd_4145_99f73df6b839e529\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2024 1 0 \"f2df1472_3ccd_4145_99f73df6b839e529\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PLATE_STACK_CountPlateStacks\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SPLIT_WELLS_AddContainersToWell\" \"Begin\"\r\nfunction SPLIT_WELLS_AddContainersToWell( device & ML_STAR, sequence i_seq_SequenceToSplit, variable i_int_SequenceIndex, variable i_int_MaxSplitNumber, sequence & io_seq_SplitSequence ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable int_Count;\r\nprivate variable int_MaxPositions_Sequence;\r\nprivate variable str_SequenceIndex;\r\nprivate variable str_CurrentPosID;\r\nprivate variable int_Index;\r\nprivate variable str_CurrentLabID;\r\nprivate variable str_ConfigFile;\r\nprivate variable flt_ContainerBottomWidth;\r\nprivate variable flt_ContainerBottomHeight;\r\nprivate variable flt_ContainerTopWidth;\r\nprivate variable int_ContainerShape;\r\nprivate variable str_ContainerFile;\r\nprivate variable str_ContainerFileName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_KeySearch;\r\nprivate variable int_SegmentCount;\r\n// {{ 5 \"SPLIT_WELLS_AddContainersToWell\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2146 1 0 \"9740e189_7c1b_4399_bdadbb4acf7b0aa0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSPLIT_WELLS_GLOBAL::InitializeVariables();\r\n// }} \"\"\r\n// {{ 2147 1 0 \"3002445f_c8ed_4618_80f20cf88a7835a5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2148 1 0 \"0561789e_b3d0_4ea5_bf789aa2c48ddef6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2150 1 0 \"3a72cd46_db84_4117_a9d2c92bb981c495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2151 1 0 \"cce40cdd_65ef_4db3_87fa2be6c613f7ce\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"b80b15c0_f363_49f2_bd25b31e190ff005\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2153 1 0 \"18d45ae6_a570_4943_a9ac68898c9fa888\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2154 1 0 \"e61945f0_8b3a_4010_9e48ea41a614aba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2156 1 0 \"3002445f_c8ed_4618_80f20cf88a7835a5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2157 1 0 \"276f67df_3e1f_4a2a_b2fa6951918b50e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (SPLIT_WELLS_GLOBAL::BOOL_LIBRARY_INITIALIZED == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"ac0d13dc_aeed_49e1_9323978dc1c8416c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPLIT_WELLS::InitializeSplitWells();\r\n// }} \"\"\r\n// {{ 2159 1 0 \"276f67df_3e1f_4a2a_b2fa6951918b50e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2160 1 0 \"7d37525c_98cb_49df_bad4408ae8d4f0aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2161 1 0 \"5b38ff28_d67b_4377_ab3c328da5b78ee3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2162 1 0 \"08d37428_1f97_4ca8_86edcadecc7c354f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SequenceIndex = StrConcat2(i_int_SequenceIndex, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"e82da283_6267_4861_98c0938820772f6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Index = StrIVal(str_SequenceIndex);\r\n// }} \"\"\r\n// {{{ 2164 1 0 \"e40c8e4e_c79a_4e9a_8fc863e030d15479\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_MaxPositions_Sequence = SeqGetTotal(i_seq_SequenceToSplit);\r\n// }} \"\"\r\n// {{ 2165 1 0 \"c42378bf_65b2_4575_adff944cfe7cf2bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index < 1)\r\n{\r\n// }} \"\"\r\n// {{ 2166 1 0 \"999a93bb_dbf2_47a6_9055cbf45481e4f2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=================================\\nIndex is less than 1\\n=================================\"));\r\n// }} \"\"\r\n// {{{ 2167 1 0 \"72c9f125_f099_4f4a_a590a3f6bf474e19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Split_Wells - Sequence index is less than 1\"));\r\n// }} \"\"\r\n// {{ 2168 1 0 \"c42378bf_65b2_4575_adff944cfe7cf2bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2169 1 0 \"e29edb38_9c3b_47c7_92cad0ac440652bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index > int_MaxPositions_Sequence)\r\n{\r\n// }} \"\"\r\n// {{ 2170 1 0 \"c2616d47_ad9e_45b1_ac589eb8e410de1e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=================================\\nIndex is greater than the number of sequence positions\\n=================================\"));\r\n// }} \"\"\r\n// {{{ 2171 1 0 \"dfb9f0e4_bdc6_4d92_abe8b8a6e66ea7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Split_Wells - Sequence index is greater than the positions in the sequence\"));\r\n// }} \"\"\r\n// {{ 2172 1 0 \"e29edb38_9c3b_47c7_92cad0ac440652bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2173 1 0 \"7d37525c_98cb_49df_bad4408ae8d4f0aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2174 1 0 \"927271b1_b211_4de9_b320d05bf7a9d76b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2175 1 0 \"72c491d1_0d44_4fc0_9f0fdde713c0e70f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_SequenceToSplit.SetCurrentPosition(i_int_SequenceIndex);\r\n// }} \"\"\r\n// {{{ 2176 1 0 \"9ca54737_6bf7_46d5_9b675179e1f23d85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentLabID = SeqGetLabwareId(i_seq_SequenceToSplit);\r\n// }} \"\"\r\n// {{{ 2177 1 0 \"556efab7_30ef_46ab_8e8bfccdcad6e84a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentPosID = SeqGetPositionId(i_seq_SequenceToSplit);\r\n// }} \"\"\r\n// {{{ 2178 1 0 \"6766a605_97ab_400f_86dec34e0b52f9c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetConfigurationFile(ML_STAR, str_CurrentLabID, str_ConfigFile);\r\n// }} \"\"\r\n// {{{ 2179 1 0 \"0df03131_627b_4134_ba761a638f16030c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_Index = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE, str_ConfigFile);\r\n// }} \"\"\r\n// {{ 2180 1 0 \"c8ab8f5f_100d_4722_906e5555d659943a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2181 1 0 \"5c63a9d9_6e7e_49a1_bfa6b8bf7b7cb9b4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_CurrentLabID, str_CurrentPosID, str_ContainerFile);\r\n// }} \"\"\r\n// {{{ 2182 1 0 \"73b5f1d0_cf57_413b_86135190f3c76a0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ContainerFileName = HSLExtensions::File::GetFileNameWithoutExtension(str_ContainerFile);\r\n// }} \"\"\r\n// {{{ 2183 1 0 \"52e209aa_bffc_42ff_92519a677dbd45b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, Translate(\"Segments\"), int_SegmentCount);\r\n// }} \"\"\r\n// {{{ 2184 1 0 \"8369981c_32f9_4893_8c8c603402e0edd1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToInt(int_SegmentCount);\r\n// }} \"\"\r\n// {{{ 2185 1 0 \"604fe7e7_8569_4f18_a4574e047dd8a543\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, Translate(\"Shape\"), int_ContainerShape);\r\n// }} \"\"\r\n// {{{ 2186 1 0 \"e717d2aa_eb46_4fe2_bb8c58d147a1946d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToInt(int_ContainerShape);\r\n// }} \"\"\r\n// {{ 2187 1 0 \"c45ed826_a75d_4aeb_86c636c17da28e93\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 0)\r\n{\r\n// }} \"\"\r\n// {{ 2188 1 0 \"b6593a84_be41_4e83_9441729be6b48753\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2189 1 0 \"aa1e65d4_cced_43db_aa4063db1d1c62d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DY\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2190 1 0 \"bd6d027c_7331_4d9e_82fac6c13bc5565f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2191 1 0 \"51725053_d2bc_4b16_ae47ee844de3274a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2192 1 0 \"ff1145b1_eb4d_460f_900cc603e9bfc09d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DY\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2193 1 0 \"fa44b801_dd35_4997_902d52c9dc04a5dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 2194 1 0 \"07d4a299_229a_4c53_86e9254d158a2827\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 2195 1 0 \"1653ea22_3ea1_45bb_b1b50296d0079131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".Max\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2196 1 0 \"5500cfc1_1081_454b_b006003bdcf90c83\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{{ 2197 1 0 \"7f28e1b3_2aa9_4f0e_a1721bb8500fb6db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 2198 1 0 \"c45ed826_a75d_4aeb_86c636c17da28e93\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2199 1 0 \"3c030e67_062a_49da_a6c9d7843d3a2895\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2200 1 0 \"44aa388d_77d7_46bd_811ca05e7ff3afdd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2201 1 0 \"4e047bd3_e0a6_4deb_84c6fcb0b7abef76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DX\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2202 1 0 \"998c5d7e_e14a_422d_b7cf6afabb37f3dc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2203 1 0 \"6dab221f_e8cb_49cd_9a16e286a23eae45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2204 1 0 \"1e090604_8459_49fd_b35b6a7adef3769c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DY\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2205 1 0 \"3af9f71a_1fa8_417d_a89d1dfc1274916d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 2206 1 0 \"2b804b38_c35f_4e2c_a6ece4616d0bca40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 2207 1 0 \"1ab9b11c_d991_4f5e_93cdfee6997eae87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".Max\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2208 1 0 \"90b74c10_cb67_43ea_b160083771c4a2d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{{ 2209 1 0 \"a903f6e8_602a_452d_ab95563165f5aee6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 2210 1 0 \"3c030e67_062a_49da_a6c9d7843d3a2895\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2211 1 0 \"522e12ae_80eb_4e6d_96caeceb4f22337a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 2)\r\n{\r\n// }} \"\"\r\n// {{ 2212 1 0 \"132eb169_bbdf_4332_88b1b69fe4d0cd26\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2213 1 0 \"f86a11d8_ba1c_4488_9ed47eb9ba5cd7c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DX\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2214 1 0 \"942748bd_98b3_4ac0_bc20353140143eb1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2215 1 0 \"1b80b252_ef49_45af_9afa7bdf24acbaf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2216 1 0 \"d309cc2f_2da7_4d73_87b33388bcf907c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DY\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2217 1 0 \"b55e2c23_bba6_46fe_83a87c0bcc018025\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 2218 1 0 \"01b1ef5c_b4e2_46f2_817bd8833511fd2c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 2219 1 0 \"1df538a7_c15b_4b48_863aab96aadc8b66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".Max\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2220 1 0 \"bcccdd36_1953_46b3_ad23f04a66162dfe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{{ 2221 1 0 \"62a77db0_7040_4419_9f7637a20a52309c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 2222 1 0 \"522e12ae_80eb_4e6d_96caeceb4f22337a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2223 1 0 \"3d01e867_da5c_40fa_8536c5d27e00e080\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 3)\r\n{\r\n// }} \"\"\r\n// {{ 2224 1 0 \"bd6fe9cc_c29a_449b_94c7355467be64df\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2225 1 0 \"254a8376_e7fc_4e49_88984959e052c3ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DX\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2226 1 0 \"f176664d_b09c_4c56_ac53309a46dd86e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2227 1 0 \"55f390b6_4f35_4690_a9205fe86ca7e089\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2228 1 0 \"d53795fd_2202_48e5_a2834303d1d9c3fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DY\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2229 1 0 \"4c7f73ad_cf80_4125_b6a1f33c516d0655\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 2230 1 0 \"1a66fd42_b279_4891_88a00f9ca31e00fc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{{ 2231 1 0 \"146af97c_ba62_40fa_bbe933f1b8918ce7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".Max\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2232 1 0 \"0f489173_3951_4b91_8b7db1b1c4a37e7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{{ 2233 1 0 \"1aa9e881_10cd_41f8_a54d6cc456fc6c74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 2234 1 0 \"3d01e867_da5c_40fa_8536c5d27e00e080\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2235 1 0 \"40bfc4c4_90db_4226_adde218862fd276b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 4)\r\n{\r\n// }} \"\"\r\n// {{ 2236 1 0 \"9e856cdc_d16e_404b_b4571365320cb0fb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2237 1 0 \"a9e625e6_5b88_40c4_bdb5ee58b091b2f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerBottomWidth = 0.0;\r\n// }} \"\"\r\n// {{{ 2238 1 0 \"4f7d8735_4f42_4d94_93a0e8e08d60d812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DX\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2239 1 0 \"5f74467c_e81a_4488_90f5928fa358546c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2240 1 0 \"763e0d69_070d_4454_b43fe166180cd4a5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2241 1 0 \"11c064ea_4091_4f4c_b82d6d8d30903b3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".Max\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2242 1 0 \"ed0d4938_1d52_4368_a037d52f52f340ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{{ 2243 1 0 \"806c751d_3b69_4b29_b02200d01a268a90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 2244 1 0 \"40bfc4c4_90db_4226_adde218862fd276b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2245 1 0 \"96f981f2_c958_4527_a11c2c427befdd54\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 5)\r\n{\r\n// }} \"\"\r\n// {{ 2246 1 0 \"6327241f_18a7_4d1b_a8cd21fafc296372\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2247 1 0 \"5cd6975c_8242_499d_b7b8b31458407a73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerBottomWidth = 0.0;\r\n// }} \"\"\r\n// {{{ 2248 1 0 \"17195c64_a253_45b8_9eb7c254ff70774c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".DX\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2249 1 0 \"df6d2e6d_ccba_405d_aa9be69411ca3c82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2250 1 0 \"209eee43_dcd1_42dc_97f189b20b522530\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{{ 2251 1 0 \"a04a39c4_0877_49d1_850e174e6577d204\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_KeySearch = StrConcat4(int_SegmentCount, Translate(\".Max\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2252 1 0 \"5237f268_7009_4149_86cd88c0f12c8238\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{{ 2253 1 0 \"d6f14b6a_be5a_4860_86863cbee9176d23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 2254 1 0 \"96f981f2_c958_4527_a11c2c427befdd54\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2255 1 0 \"0342a64f_5ecf_41a8_ba852671f0fbc692\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_SHAPE.AddAsLast(int_ContainerShape);\r\n// }} \"\"\r\n// {{ 2256 1 0 \"cde5e7a3_6349_4a8e_b00331adfe4d905e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ContainerFile);\r\n// }} \"\"\r\n// {{ 2257 1 0 \"4a4bdb9e_5b3e_4d4d_b3d77b305685a33e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_TOP_WIDTH.AddAsLast(flt_ContainerTopWidth);\r\n// }} \"\"\r\n// {{ 2258 1 0 \"da09baee_77eb_4f0a_b89e8b786c7c2fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.AddAsLast(flt_ContainerBottomWidth);\r\n// }} \"\"\r\n// {{ 2259 1 0 \"e481ea9d_c659_4093_81c328970d8a3ef6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nSPLIT_WELLS_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.AddAsLast(flt_ContainerBottomHeight);\r\n// }} \"\"\r\n// {{ 2260 1 0 \"c8ab8f5f_100d_4722_906e5555d659943a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2261 1 0 \"8bc0fc55_4875_4d42_a3a46397826d8f26\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_ContainerShape=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_SHAPE.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{ 2262 1 0 \"69fe191f_9bee_4cd6_b134c4f594956f5d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerTopWidth=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_TOP_WIDTH.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{ 2263 1 0 \"1f1526f8_d1f9_432d_bb57d106fa66b332\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBottomWidth=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{ 2264 1 0 \"b1951062_9c48_4751_9fa4542f1cdc9f53\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_ContainerBottomHeight=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{ 2265 1 0 \"d91b5d9c_c9a7_4f06_9941ee3bf9c94dad\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_ContainerFile=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{ 2266 1 0 \"c8ab8f5f_100d_4722_906e5555d659943a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2267 1 0 \"8bd2a14f_e9d2_4215_812ddd528a579805\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2268 1 0 \"fd2ff78d_314d_40d1_8d8412ebeebb7135\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 0)\r\n{\r\n// }} \"\"\r\n// {{ 2269 1 0 \"90114a43_8695_4ff0_97c27049cb0fe75d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"======================================\\nFLAT WELLS\\n======================================\"));\r\n// }} \"\"\r\n// {{{ 2270 1 0 \"940a1fc3_2e1e_40bf_8f4f6c3bf85927a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPLIT_WELLS::SplitWellsFlatBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, io_seq_SplitSequence);\r\n// }} \"\"\r\n// {{ 2271 1 0 \"fd2ff78d_314d_40d1_8d8412ebeebb7135\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2272 1 0 \"ee75e07e_2570_454f_9ba2aaf0f19be32b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2273 1 0 \"984f636f_0b2e_48a7_b1258d28231c1d7f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"======================================\\nFLAT WELLS\\n======================================\"));\r\n// }} \"\"\r\n// {{{ 2274 1 0 \"1ed41d68_da0c_440e_a5e27ad3291b4dc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPLIT_WELLS::SplitWellsFlatBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, io_seq_SplitSequence);\r\n// }} \"\"\r\n// {{ 2275 1 0 \"ee75e07e_2570_454f_9ba2aaf0f19be32b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2276 1 0 \"a8d8e4ac_625b_447e_a83e7305c309901f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 2)\r\n{\r\n// }} \"\"\r\n// {{ 2277 1 0 \"82a6b687_4d7a_46d3_b59db2e1b4ae8d30\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"======================================\\nFLAT WELLS\\n======================================\"));\r\n// }} \"\"\r\n// {{{ 2278 1 0 \"57c4b733_a989_4e90_b57dcd8e8cf0da75\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPLIT_WELLS::SplitWellsFlatBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, io_seq_SplitSequence);\r\n// }} \"\"\r\n// {{ 2279 1 0 \"a8d8e4ac_625b_447e_a83e7305c309901f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2280 1 0 \"17ab64c7_9d7e_42ad_9d0c7777242cb14a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 3)\r\n{\r\n// }} \"\"\r\n// {{ 2281 1 0 \"9deb7db7_2e25_49a9_88eab3b49b94062f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"======================================\\nANGLE WELLS\\n======================================\"));\r\n// }} \"\"\r\n// {{{ 2282 1 0 \"ea7bcdda_28df_48d4_83e9a75b847d6e78\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPLIT_WELLS::SplitWellsVBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_ContainerBottomHeight, io_seq_SplitSequence);\r\n// }} \"\"\r\n// {{ 2283 1 0 \"17ab64c7_9d7e_42ad_9d0c7777242cb14a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2284 1 0 \"a30056f8_fab1_4e9c_80af48a7003dcd2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 4)\r\n{\r\n// }} \"\"\r\n// {{ 2285 1 0 \"d70f13c7_e4a9_4bb9_8a8c54e10f951b04\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"======================================\\nANGLE WELLS\\n======================================\"));\r\n// }} \"\"\r\n// {{{ 2286 1 0 \"3a4de7f0_8a1c_4bb1_87dc2420e33216db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPLIT_WELLS::SplitWellsVBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_ContainerBottomHeight, io_seq_SplitSequence);\r\n// }} \"\"\r\n// {{ 2287 1 0 \"a30056f8_fab1_4e9c_80af48a7003dcd2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2288 1 0 \"0a535777_3bc6_4508_9126bb2e49fab81e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ContainerShape == 5)\r\n{\r\n// }} \"\"\r\n// {{ 2289 1 0 \"12aaa2f0_be39_4213_9845b70c562d89e6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"======================================\\nANGLE WELLS\\n======================================\"));\r\n// }} \"\"\r\n// {{{ 2290 1 0 \"06bba2df_3ae3_43f7_8539856eed4cd733\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPLIT_WELLS::SplitWellsVBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_ContainerBottomHeight, io_seq_SplitSequence);\r\n// }} \"\"\r\n// {{ 2291 1 0 \"0a535777_3bc6_4508_9126bb2e49fab81e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2292 1 0 \"8bd2a14f_e9d2_4215_812ddd528a579805\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2293 1 0 \"ca5b3741_dd04_414a_830ca8628e9c1995\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2295 1 0 \"ca5b3741_dd04_414a_830ca8628e9c1995\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"SPLIT_WELLS_AddContainersToWell\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SPLIT_WELLS_RemoveContainers\" \"Begin\"\r\nfunction SPLIT_WELLS_RemoveContainers( device & ML_STAR, variable i_bool_UpdateVolumes ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable int_Count;\r\nprivate variable strFunctionName_Cut;\r\n// {{ 5 \"SPLIT_WELLS_RemoveContainers\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2297 1 0 \"cd84f7fa_ffd9_4bab_87cf42a7eb70c364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2298 1 0 \"67892ee1_04de_4826_8f53a8f57aca4442\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2300 1 0 \"04ce9541_2209_431e_a2bd421862aa4338\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2301 1 0 \"d013949c_c9f3_4732_9138909f2581a20d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2302 1 0 \"f5f78043_5e4f_4b74_bd474369855d0c1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2303 1 0 \"beb7ac42_8787_4c71_a12cca4fccef4d4b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2304 1 0 \"b8d116d1_7bfb_4b0b_ad2c26932c634cf7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2306 1 0 \"cd84f7fa_ffd9_4bab_87cf42a7eb70c364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2307 1 0 \"bc292a11_1518_4dea_8053af199dcf5ea3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPLIT_WELLS::RemoveContainers(ML_STAR, i_bool_UpdateVolumes);\r\n// }} \"\"\r\n// {{ 2308 1 0 \"cb2c4107_325a_4199_8453491cd702c7dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2310 1 0 \"cb2c4107_325a_4199_8453491cd702c7dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"SPLIT_WELLS_RemoveContainers\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LIQUID_LEVEL_MeasureLiquidSingle\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable int_Count;\r\nprivate variable bool_FunctionSuccessful;\r\nprivate variable strFunctionName_Cut;\r\n// {{ 5 \"LIQUID_LEVEL_MeasureLiquidSingle\" \"InitLocals\"\r\no_flt_VolumeMeasured = 0;\r\n// }} \"\"\r\n// {{ 1551 1 0 \"bbd37a7e_e6ff_4711_9d37d0db70f2c928\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1552 1 0 \"9a1e779e_fe37_4b6b_a3380b2a1e8a9f78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1554 1 0 \"d9cafebd_865e_49e6_805eb179ca4cdd2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1555 1 0 \"1d8c348f_ebaf_46cf_9a2b8b43983bfa8c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1556 1 0 \"e6a212c3_6198_4fcc_98558ec55def2a5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1557 1 0 \"f8a83d4d_e38d_43a2_8e04a240f626c75d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"fcece0e8_3216_4fc1_93b7530c92eee2a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1560 1 0 \"bbd37a7e_e6ff_4711_9d37d0db70f2c928\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"2f13cfb8_9e3a_4d0b_934c7696682e677b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"8be9f04f_d14c_435a_8694341300a045bf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_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);\r\n// }} \"\"\r\n// {{ 1563 1 0 \"9d6b2c68_4b31_4846_ac13c0e1cc12b2e0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1565 1 0 \"9d6b2c68_4b31_4846_ac13c0e1cc12b2e0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1566 1 0 \"432f3b6d_3536_4828_a3f25463cf9751dc\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_FunctionSuccessful);\r\n// }} \"\"\r\n// {{{ 5 \"LIQUID_LEVEL_MeasureLiquidSingle\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LIQUID_LEVEL_MeasureLiquidMulti\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable bool_FunctionSuccessful;\r\nprivate variable int_Count;\r\nprivate variable strFunctionName_Cut;\r\n// {{ 5 \"LIQUID_LEVEL_MeasureLiquidMulti\" \"InitLocals\"\r\no_arr_VolumesMeasured.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1534 1 0 \"56a57b07_b0be_4f1f_8104ee8d3648af70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1535 1 0 \"fb150298_430b_427b_91d6858278430672\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1537 1 0 \"9067eb45_25e7_4722_87690023cef921bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1538 1 0 \"de07a8ec_b4c1_46ab_94150801e42e0558\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"a54b8965_ae62_474b_a09baadc63164362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1540 1 0 \"52d39605_9e78_4225_9e0051bd9524b045\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1541 1 0 \"1f2235c6_eb6f_4092_8463f5f05e547cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1543 1 0 \"56a57b07_b0be_4f1f_8104ee8d3648af70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"41f70261_7656_49ac_be65714b157dbe5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"a7e846ef_6897_4301_8f49f79825497248\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_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);\r\n// }} \"\"\r\n// {{ 1546 1 0 \"2611e881_56f7_4ace_b8de50b64d3a4bdd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1548 1 0 \"2611e881_56f7_4ace_b8de50b64d3a4bdd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1549 1 0 \"3f168ff3_50ee_4634_b1378c64fd1712f0\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_FunctionSuccessful);\r\n// }} \"\"\r\n// {{{ 5 \"LIQUID_LEVEL_MeasureLiquidMulti\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LIQUID_LEVEL_GetLiquidLevelHeight\" \"Begin\"\r\nfunction LIQUID_LEVEL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable int_Count;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_LabID;\r\n// {{ 5 \"LIQUID_LEVEL_GetLiquidLevelHeight\" \"InitLocals\"\r\no_flt_LiquidHeight = 0;\r\n// }} \"\"\r\n// {{ 1516 1 0 \"a086588b_4acb_4619_8f04776ef83e3db2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1517 1 0 \"e5cca96d_f439_4751_979db4aba90f7437\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1519 1 0 \"5ebec32f_3f4e_4580_ad2b9de1f1c5859f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1520 1 0 \"6e99261b_ced2_48ab_a1bb6c4b2a89d77e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1521 1 0 \"96b3ced6_dad2_46ad_a3a2a1646f6c3184\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1522 1 0 \"d98776d1_ae1d_4104_afd49475e7d06dd3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1523 1 0 \"428b63e5_33c8_4009_8e41e22ad4fd153b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1525 1 0 \"a086588b_4acb_4619_8f04776ef83e3db2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"35924568_f966_4c71_b5418fba319b6f14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1527 1 0 \"1796c362_98b2_4d33_9abf662ada19d00e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLIQUID_LEVEL_CHECK::FindLiquidHeight(ML_STAR, i_str_LiquidLevelReturn, i_seq_Labware, i_int_Channel, o_flt_LiquidHeight);\r\n// }} \"\"\r\n// {{{ 1528 1 0 \"e45e6b0c_5f53_4a7a_8d32057a5fd5cd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Labware);\r\n// }} \"\"\r\nTrace(\"******** Liquid Level Height for \",str_LabID,\" is \",o_flt_LiquidHeight);\r\n// {{ 1530 1 0 \"83406c53_82ae_480f_a14b3e61633f0afd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1532 1 0 \"83406c53_82ae_480f_a14b3e61633f0afd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"LIQUID_LEVEL_GetLiquidLevelHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort1Sequence\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable status;\r\nprivate variable used_exclusion;\r\nprivate variable channel_raster;\r\nprivate variable num_to_sort;\r\nprivate variable in_group;\r\nprivate variable pos1;\r\nprivate variable restriction_raster;\r\nprivate variable num_used;\r\nprivate variable in_index;\r\nprivate variable update_sql;\r\nprivate variable y_min;\r\nprivate variable y_max;\r\nprivate variable ret_Number_Remaining;\r\nprivate variable num_labhand_channels;\r\nprivate variable total_channels;\r\nprivate variable file_index;\r\nprivate variable null;\r\nprivate variable restriction1;\r\nprivate variable not_used;\r\nprivate variable lab1;\r\nprivate variable sort_file;\r\nprivate variable num_1mL_channels;\r\nprivate variable prev_y_coord;\r\nprivate variable filter_sql;\r\nprivate variable count_sql;\r\nprivate variable prev_x_coord;\r\nprivate variable order_by;\r\nprivate variable num_5mL_channels;\r\nprivate variable y1;\r\nprivate variable count_value;\r\nprivate variable channel_number;\r\nprivate variable x1;\r\nprivate variable line_number;\r\nprivate variable sequence_name;\r\nprivate sequence temp_seq1;\r\nprivate file Count_Available;\r\nprivate file Update_FIle;\r\nprivate file Sort_File;\r\nprivate variable arr_Y_Min[];\r\nprivate variable arr_Y_Max[];\r\nprivate variable arr_line_numbers[];\r\nprivate variable bool_FileExists;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"CHAN_ACCESS_Sort1Sequence\" \"InitLocals\"\r\n{ sequence __temp; o_Sorted_Sequence = __temp; }\r\no_Channel_Pattern = 0;\r\n// }} \"\"\r\n// {{ 3 1 0 \"d6f3fc22_7f9a_4989_a9a14fc455fd3c07\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 4 1 0 \"2dba5073_0b0c_41f8_bd562729012a79ae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 6 1 0 \"cd6a9b1a_4754_4705_a20fb1d817421dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"e9d33642_9e8e_441b_a24b03d0ebb532e3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 8 1 0 \"71859bb0_4b46_4d9d_9c9ac8dfe0e43c2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 9 1 0 \"5697df8f_5556_4863_a1ad5ebee7679cbe\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 10 1 0 \"8c2a7383_cd1a_42b3_95124c9b77137785\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 12 1 0 \"d6f3fc22_7f9a_4989_a9a14fc455fd3c07\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 13 1 0 \"b0725c22_fda8_4015_9137316a1b954471\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 14 1 0 \"c5e2774a_aa75_4e50_a7c4c835bb139e64\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"8db8b7b8_6c6a_4332_a835386fab8c7c30\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"3831ca5f_ab0a_4a2c_8a12b8c994337837\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 17 1 0 \"9c1b70e0_9604_4f29_aa911457e0a71bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 18 1 0 \"9e8078f0_f002_4e31_a0906b3f835792f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"13554f0c_dc3c_4abf_9262375de4760861\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrConcat2(i_Channel_Type, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 20 1 0 \"6cd45cb1_2ce3_44ef_9f5eb1ffc8ffcfd1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrIVal(i_Channel_Type);\r\n// }} \"\"\r\n// {{ 21 1 0 \"89fb37dd_eaed_4f98_90d1ff6c9fd5afcb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type < 0)\r\n{\r\n// }} \"\"\r\n// {{{ 22 1 0 \"97c80ab4_8340_4a92_98f2dfc079ddb7f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 23 1 0 \"4a53cda6_4691_4ff8_9a9f329753cb7250\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 24 1 0 \"89fb37dd_eaed_4f98_90d1ff6c9fd5afcb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 25 1 0 \"15f8d3c2_e518_4a81_bb6e834ffa682698\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 26 1 0 \"7dc752c7_839b_4204_9c23187c3fe067bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 27 1 0 \"48f6c7d1_b36f_4bad_9bb7215e3a998d86\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 28 1 0 \"15f8d3c2_e518_4a81_bb6e834ffa682698\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 29 1 0 \"900c32f8_10d7_481a_97d54a8eb66849b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 30 1 0 \"8960a3f9_e0a4_4706_97ed4ab462270328\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_1mL_channels;\r\n// }} \"\"\r\n// {{ 31 1 0 \"900c32f8_10d7_481a_97d54a8eb66849b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 32 1 0 \"98a89b12_59af_47ab_b4160536fef74631\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 33 1 0 \"50cab040_35cb_461a_b73f298f00973142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_5mL_channels;\r\n// }} \"\"\r\n// {{ 34 1 0 \"98a89b12_59af_47ab_b4160536fef74631\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 35 1 0 \"96d0d544_aaa4_48a2_9280ef0af21f6919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 36 1 0 \"3a1c1512_764a_4ce9_a4e32bf0861f00f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_labhand_channels;\r\n// }} \"\"\r\n// {{ 37 1 0 \"96d0d544_aaa4_48a2_9280ef0af21f6919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 38 1 0 \"c5e2774a_aa75_4e50_a7c4c835bb139e64\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 39 1 0 \"6e731c7c_d48e_45aa_a4c2d9255f38545f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 40 1 0 \"3bd6ed4a_5a72_4873_957be930a530b10f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Channel_Pattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 41 1 0 \"0f8f2c00_b4b7_485c_a08b98e61e8565c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (total_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 42 1 0 \"43b0f265_1241_4654_a1ee4c5e154f7428\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 43 1 0 \"a6765e72_2173_4dfe_b330837939e4bb7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 44 1 0 \"480c0969_e36e_4743_bb487758958bdd83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 45 1 0 \"43b0f265_1241_4654_a1ee4c5e154f7428\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 46 1 0 \"ac77a079_5aa9_4414_b11b8e0244a15df7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 47 1 0 \"542e5ee0_f2a5_41af_810c5cc8282784e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 5 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 48 1 0 \"0dc3ca0c_8a0e_4c42_8bd52c4605c595e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 5 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 49 1 0 \"ac77a079_5aa9_4414_b11b8e0244a15df7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 50 1 0 \"25afbf98_97fd_4adb_8ebf13b2ce7e9542\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 51 1 0 \"14738f7d_6fde_4920_bb3785e27d0dba06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no Lab Handler channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 52 1 0 \"9c73d852_df59_49b9_8e836607886df2c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No Lab Handler channels installed!!\"));\r\n// }} \"\"\r\n// {{ 53 1 0 \"25afbf98_97fd_4adb_8ebf13b2ce7e9542\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 54 1 0 \"0f8f2c00_b4b7_485c_a08b98e61e8565c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 55 1 0 \"38df9805_a332_46f3_a2ab55db4d4061f9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"92e6240f_0773_42a1_a6bd6860aa8c1d67\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"3b7547d5_0711_40d1_af97e25f8056e94c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrConcat2(i_Max_Channel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 58 1 0 \"1f7a62aa_0b36_435f_a7c58d1f8b1d2430\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrIVal(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 59 1 0 \"ae5efae8_ee87_4c22_bfe8d31d7d196965\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 60 1 0 \"126a7044_31fd_438d_8c3ed2fbc1ee0460\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 61 1 0 \"ae5efae8_ee87_4c22_bfe8d31d7d196965\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 62 1 0 \"bce55838_c315_4ef8_975a41a3b89cf383\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel > total_channels)\r\n{\r\n// }} \"\"\r\n// {{ 63 1 0 \"4fb360f7_4053_4389_a7b8b647b27e6fb1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 64 1 0 \"bce55838_c315_4ef8_975a41a3b89cf383\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 65 1 0 \"113f54fa_a980_4fe2_8550c7cae73fa7bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = 0;\r\n// }} \"\"\r\n// {{{ 66 1 0 \"95baef2f_9689_4604_b497b89fa46e30e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence);\r\n// }} \"\"\r\n// {{ 67 1 0 \"9edbd3b6_2024_4a5a_86081664e3393f47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 68 1 0 \"0debce79_26eb_4775_aab52e8c135bbda0\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_PIP_COM_YMax;\r\n// }} \"\"\r\n// {{ 69 1 0 \"79fcce01_b9f9_45cd_a7196f9953b818eb\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_PIP_COM_YMin;\r\n// }} \"\"\r\n// {{ 70 1 0 \"1bd28008_345c_46c2_93f60f65ae31754c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{ 71 1 0 \"9edbd3b6_2024_4a5a_86081664e3393f47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 72 1 0 \"a5827b05_0def_470a_8d5b5a054d38353b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 73 1 0 \"70e0858d_c2b1_4a64_adce77def7184425\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_XL_COM_YMax;\r\n// }} \"\"\r\n// {{ 74 1 0 \"edcf2857_5db9_4fcc_9f0a735ba8fa051a\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_XL_COM_YMin;\r\n// }} \"\"\r\n// {{ 75 1 0 \"c3c593f3_a099_4563_8bcf1cf5abb30f31\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_XL_COM_Raster;\r\n// }} \"\"\r\n// {{ 76 1 0 \"a5827b05_0def_470a_8d5b5a054d38353b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 77 1 0 \"4c0f45ef_9465_4050_b03596afa0d47112\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"e794f148_b377_4c9d_a85db760b0a30b0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster);\r\n// }} \"\"\r\n// {{ 79 1 0 \"4c0f45ef_9465_4050_b03596afa0d47112\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 80 1 0 \"2b3ea4df_8973_464f_96e4fcb745e167e3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 81 1 0 \"ecf3b9ae_7ab1_49e6_ae76a33a1eae255b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(sort_file);\r\n// }} \"\"\r\n// {{{ 82 1 0 \"3c4c0b74_5a3f_4d66_a409ce1ff2617a91\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(sort_file);\r\n// }} \"\"\r\n// {{ 83 1 0 \"9a47dea5_d1c2_44b4_a296d0d310bd8bcf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 84 1 0 \"71c03dfe_8803_485e_af7894413e3b1b07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(sort_file);\r\n// }} \"\"\r\n// {{ 85 1 0 \"9a47dea5_d1c2_44b4_a296d0d310bd8bcf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 86 1 0 \"30b51238_87b2_447c_aef14e349adf5ace\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort = SeqGetTotal(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 87 1 0 \"bf45ec82_c452_4f7c_ad4821e78f16b2be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name = SeqGetName(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{ 88 1 0 \"d964d78a_43e0_4150_8f2e9ba6427362c0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_to_sort == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 89 1 0 \"8457ebc3_a63e_4cdf_9bc2139f78eeb3fc\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{ 90 1 0 \"d964d78a_43e0_4150_8f2e9ba6427362c0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 91 1 0 \"390b968f_06ab_437c_b1dad73164df8b99\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 92 1 0 \"ad89e116_e937_4e4b_ad3eb2bcce1ae558\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 93 1 0 \"0985e440_8e98_4b8c_9a22b58639499f02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sequence to Sort:  \"), sequence_name);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"90491856_a701_43e2_8bc1d1f1e73dfc90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Number of Positions in Sequence:  \"), num_to_sort);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"be83bfbf_e8d4_4145_85587f46c1f90657\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by Labware:  \"), i_Sort_by_Labware);\r\n// }} \"\"\r\n// {{{ 96 1 0 \"f562c993_84b4_4550_9229746336a018df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by XY:  \"), i_Sort_by_XY);\r\n// }} \"\"\r\n// {{{ 97 1 0 \"202bc06f_66d6_4952_91f9d583460e8808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort for Channel Raster:  \"), i_Sort_for_Channel_Raster);\r\n// }} \"\"\r\n// {{{ 98 1 0 \"05ddc00b_edb5_4c58_b629a901cceec06e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Channel Raster:  \"), channel_raster);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"57963eb9_86cc_45b1_9ad05b4f1f5779d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Maximum Channel:  \"), i_Max_Channel);\r\n// }} \"\"\r\nif(i_Channel_Type == 0) Trace(\"           Channel Type:  1 mL\");\r\nelse if(i_Channel_Type == 1) Trace(\"           Channel Type:  5 mL\");\r\nelse if(i_Channel_Type == 2) Trace(\"           Channel Type:  Labware Handler\");\r\n// {{{ 101 1 0 \"7b56ec9c_9f2e_4239_bd135ce1d1cf86cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 102 1 0 \"6e3988d1_672e_451c_840ecbf87a3dd4d8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 103 1 0 \"48aa5382_86f1_4ea0_850e51e6ded083c6\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 104 1 0 \"21e72fef_11d9_41d4_af27c4e5b31fc8b5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnot_used = Translate(\"-----\");\r\n// }} \"\"\r\n// {{ 105 1 0 \"da36dcc3_35f4_40f6_89ba2e012a0b15b9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstatus = Translate(\"NOT_DONE\");\r\n// }} \"\"\r\n// {{ 106 1 0 \"9e2cc9d9_5f94_470b_87d5907d0b061972\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(line_number = 0; line_number < num_to_sort;)\r\n{\r\nline_number = line_number + 1;\r\n// }} \"\"\r\n// {{ 107 1 0 \"221851d3_3c9c_4513_9cdf93b73156311b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"eb236da1_eaf2_4d72_805161785d744f1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab1 = SeqGetLabwareId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"bd3df358_05c9_485d_8911100cd2430a53\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos1 = SeqGetPositionId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"ac07d35a_5031_41d1_92f17e6510fed8e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null);\r\n// }} \"\"\r\n// {{ 111 1 0 \"fb772a16_204b_46e1_9c124ec30f74a050\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 112 1 0 \"9e2cc9d9_5f94_470b_87d5907d0b061972\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 113 1 0 \"0fccaf77_0033_4f13_9c652672825f3a38\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 114 1 0 \"90cca26c_e4bb_4cf5_8c2b74c55ed3b2b7\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_line_numbers.SetSize(0);\r\n// }} \"\"\r\n// {{ 115 1 0 \"85787c03_c070_43b2_8df71d15d8d3f381\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 116 1 0 \"f757dc20_0d30_49f2_899e0a07118d7528\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = 999.0;\r\n// }} \"\"\r\n// {{ 117 1 0 \"d71b0271_0071_499b_91887a97e6cc10d9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(channel_number = 0; channel_number < i_Max_Channel;)\r\n{\r\nchannel_number = channel_number + 1;\r\n// }} \"\"\r\n// {{ 118 1 0 \"1608acda_ea81_44ef_81a2e48f1c15c264\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = prev_y_coord - channel_raster;\r\n// }} \"\"\r\n// {{{ 119 1 0 \"ef8f1f7a_b92a_4957_b0bf77bec5f37bb9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction_raster = StrConcat8(Translate(\"AND (X1\"), Translate(\" = \"), prev_x_coord, Translate(\" AND \"), Translate(\"Y1\"), Translate(\" <= \"), prev_y_coord, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 120 1 0 \"e947ea79_d666_4f92_8e9b7447436053e6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"e5a47cc5_5e8c_43fd_8b5de50af78d7f1b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_max=arr_Y_Max.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{ 122 1 0 \"46108d45_883e_47c1_87c6fee6b3f015a4\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_min=arr_Y_Min.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"9393a38b_33ec_404a_8bd5f9e85d3233da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction1 = StrConcat8(Translate(\"(Y1 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y1 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 124 1 0 \"8281c5b4_d83e_4c48_917ba84a77f161da\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 125 1 0 \"51e01213_7dd6_44e2_9e05db67afbd54cb\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 126 1 0 \"1c1cff31_0280_4e78_8d13f567019b5e01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{ 127 1 0 \"00b116cb_ad69_4886_9dff0ef4c7e7b638\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nused_exclusion = Translate(\"\");\r\n// }} \"\"\r\n// {{ 128 1 0 \"1c1cff31_0280_4e78_8d13f567019b5e01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 129 1 0 \"988458ab_1759_4a49_bb850df0b8f6c4d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(Translate(\"AND LINE_NUMBER NOT IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 130 1 0 \"b14e49f0_bf51_462e_aea988896ed5ed0a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 131 1 0 \"cf8317a2_7ddb_40ff_b02a5a7af0f20f75\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 132 1 0 \"71638867_fcca_4697_b8f61cb123bbd4c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 133 1 0 \"dcd3ba66_c2c5_410f_b15f5481a6028d95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 134 1 0 \"71638867_fcca_4697_b8f61cb123bbd4c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 135 1 0 \"ab78e3bd_b9e3_4cd3_a9f574151f983412\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, line_number);\r\n// }} \"\"\r\n// {{ 136 1 0 \"b14e49f0_bf51_462e_aea988896ed5ed0a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 137 1 0 \"e3a7b785_b2dc_4dba_9cb2656affb2d13e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 138 1 0 \"1c1cff31_0280_4e78_8d13f567019b5e01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 139 1 0 \"522954f8_63eb_44d9_b10ea9259cd87d5e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 140 1 0 \"588f5dc2_6343_437b_95182190bd7f0f81\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\norder_by = Translate(\"\");\r\n// }} \"\"\r\nif(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, X1 ASC, Y1 DESC\";\r\n}\r\nelse if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, LINE_NUMBER ASC\";\r\n}\r\nelse if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY X1 ASC, Y1 DESC\";\r\n}\r\nelse \r\n{\r\n   order_by = \"ORDER BY LINE_NUMBER ASC\";\r\n}\r\n// {{ 142 1 0 \"495cbddd_2877_429c_89518c61735363cd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 143 1 0 \"527c8ef5_8b06_498b_ae94ae6fe4a5f035\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), restriction_raster);\r\n// }} \"\"\r\n// {{ 144 1 0 \"02be3c85_6b62_49da_b79be1fe9ba99bfa\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 145 1 0 \"c892384f_93c7_4723_88370965c33bf275\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 146 1 0 \"2543264f_e1d1_4d28_bce161a111380660\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 147 1 0 \"ad969767_85bf_463f_802c75925652b373\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{ 148 1 0 \"e5a06bcf_9e88_44dc_949cf89eb432245e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 149 1 0 \"ad969767_85bf_463f_802c75925652b373\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 150 1 0 \"2b9a7720_3438_4e5b_8b89b6eccc1be2e1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 151 1 0 \"9c36e68b_6382_4d1b_9e822e1fe59722db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 152 1 0 \"06849aa6_e5cd_4458_83fd520397eea087\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 153 1 0 \"32a96f15_24be_444b_b0a936167d0f6d4d\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 154 1 0 \"b5e2fffd_d01e_4b96_850d89265dfa963d\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 155 1 0 \"eabe061b_6c3f_4bc5_b1a0572dcec52d55\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value > 0)\r\n{\r\n// }} \"\"\r\n// {{ 156 1 0 \"c7b878e7_4e8a_442f_867141fb057476ef\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 157 1 0 \"a165ab4b_8b6e_4110_a5c79e0ecb683d03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat12(Translate(\"SELECT * FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\" \"), order_by, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 158 1 0 \"ae01ec44_8376_4898_b7f9436a984b44fe\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 159 1 0 \"993a71c1_7692_4530_91fc94a260e80b70\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfile_index = 0;\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\nfile_index = file_index + 1;\r\n// }} \"\"\r\n// {{ 160 1 0 \"47503b32_5a37_41c4_9f9c458d0cb7f757\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 161 1 0 \"fe4a1497_1002_4a83_a638eeabd2dee9b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Sort_for_Channel_Raster == 0)\r\n{\r\n// }} \"\"\r\n// {{ 162 1 0 \"4d92fa33_0ecc_4fdd_884347f1f82dd349\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 163 1 0 \"fe4a1497_1002_4a83_a638eeabd2dee9b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"140ef73f_acb7_4446_91c85d77f3144670\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (x1 != prev_x_coord)\r\n{\r\n// }} \"\"\r\n// {{ 165 1 0 \"e5776e1d_8789_4a28_86ec97c97ded8021\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 166 1 0 \"140ef73f_acb7_4446_91c85d77f3144670\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 167 1 0 \"668414d6_639f_4f77_ac48b94c64d1a8c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (y1 <= prev_y_coord)\r\n{\r\n// }} \"\"\r\n// {{ 168 1 0 \"d5ddbf3a_9e63_4c20_accfce8130574069\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 169 1 0 \"668414d6_639f_4f77_ac48b94c64d1a8c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 170 1 0 \"993a71c1_7692_4530_91fc94a260e80b70\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 171 1 0 \"719d6a45_db87_4ad4_a438ae98f3e40487\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{{ 172 1 0 \"8cbb6a18_4289_4d73_b4fad7f888a533fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"8d539857_787b_43ff_8eaecfd8bdf3f1f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1);\r\n// }} \"\"\r\n// {{ 174 1 0 \"32d1929b_8397_450d_a30a4cfb09ad3d2a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_line_numbers.AddAsLast(line_number);\r\n// }} \"\"\r\n// {{ 175 1 0 \"8befa745_c35c_44c6_8ef55b6877b709bd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = x1;\r\n// }} \"\"\r\n// {{ 176 1 0 \"bc5d7822_7342_4c81_a026ae2dcd5949d7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = y1;\r\n// }} \"\"\r\n// {{ 177 1 0 \"eabe061b_6c3f_4bc5_b1a0572dcec52d55\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 178 1 0 \"d71b0271_0071_499b_91887a97e6cc10d9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 179 1 0 \"859e4a63_d3d7_4513_aa0b98ab0cf3ceeb\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 180 1 0 \"63c0a16d_2749_4a35_9cd7e1a1e7987699\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 181 1 0 \"5e07202c_fbf6_4270_b9e9db886ce9776a\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 182 1 0 \"c06a2569_9f74_4a19_b529f51e24485183\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = num_to_sort - num_used;\r\n// }} \"\"\r\n// {{ 183 1 0 \"c4242370_8fcd_4f69_bb47802ae08f4585\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 184 1 0 \"e6f53725_860a_4915_b0681dc07a42e98f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"**********************************  The remaining positions are out of reach for the selected channels!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 185 1 0 \"251370c2_2b61_4942_8e85ca1ce9e82bba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"The remaining positions are out of reach for all the selected channels!!!!\"));\r\n// }} \"\"\r\n// {{ 186 1 0 \"c4242370_8fcd_4f69_bb47802ae08f4585\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 187 1 0 \"d0432436_6d86_4224_883c5e087bf5c911\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(Translate(\"LINE_NUMBER IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 188 1 0 \"54c12b82_9c4c_441d_83c5e48cd638917e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 189 1 0 \"0b8456c2_da8f_40fe_a6cde463f32d8fc4\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 190 1 0 \"18a2b225_5504_45ab_890b6046745887ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 191 1 0 \"588c448b_345a_44de_89526bb45e1cdaf9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 192 1 0 \"18a2b225_5504_45ab_890b6046745887ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 193 1 0 \"fb8a03d1_16f9_4617_88a8fd526880c4fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, line_number);\r\n// }} \"\"\r\n// {{ 194 1 0 \"54c12b82_9c4c_441d_83c5e48cd638917e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 195 1 0 \"2f800577_9538_4f41_9a612f06dcf88b30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 196 1 0 \"3d895c8e_1123_485c_a3bad157cb497397\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nupdate_sql = StrConcat4(Translate(\"UPDATE SORT SET STATUS = 'DONE' WHERE \"), in_group, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 197 1 0 \"31938dfe_e810_4987_afa5bf2ad6d04016\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Update_FIle.Open(sort_file + \" \" + \"SORT\", hslRead, update_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 198 1 0 \"dbea1a68_1cb4_4bde_b770dd8ecda0d1be\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Update_FIle.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nUpdate_FIle.RemoveFields();\r\n// }} \"\"\r\n// {{ 199 1 0 \"6864ff66_518b_4849_b4b8299c93568db0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 200 1 0 \"040197d8_a1f3_4ebc_9549c2ed2f08988d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat2(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 201 1 0 \"82390a90_ecc3_4d3b_9bf6f38b82efb738\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 202 1 0 \"5eddbfdd_b75a_4f8a_964a138fc95d22c3\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 203 1 0 \"4a346fab_4996_4a1e_bb7c222defe54652\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 204 1 0 \"965649d4_d5d5_49c7_bad705a1e100b8b1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = count_value;\r\n// }} \"\"\r\n// {{ 205 1 0 \"120db923_7435_47a1_bfd3b07c69fb00c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"138cab6d_0fd9_4630_b3b92a6266e4e682\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{ 207 1 0 \"120db923_7435_47a1_bfd3b07c69fb00c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 208 1 0 \"495922d0_a11e_40d3_a6722c58302c30c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat2(Translate(\"SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 209 1 0 \"69bb4ff5_83ec_4bc4_b28a5544fb7fe024\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq1);\r\n// }} \"\"\r\n// {{ 210 1 0 \"cb945e4d_b94d_42c4_8a092d53b267d222\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 211 1 0 \"569c6913_ab6d_49a4_863164a4fa038b88\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 212 1 0 \"f67ee222_a5ba_4deb_8a0ebc90d4ba5767\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 213 1 0 \"278267b9_602a_47b5_bf2b5f6af92df5e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq1, lab1, pos1);\r\n// }} \"\"\r\n// {{ 214 1 0 \"569c6913_ab6d_49a4_863164a4fa038b88\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 215 1 0 \"61fa63ae_fe3c_4f12_aaef291cb3fda7a2\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 216 1 0 \"abfd90ec_d8a6_4d8d_8b26fa61cbc71548\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq1.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 217 1 0 \"0583089a_8948_4354_91611ef08c996f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort, temp_seq1);\r\n// }} \"\"\r\n// {{ 218 1 0 \"120db923_7435_47a1_bfd3b07c69fb00c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 219 1 0 \"f083d51e_c0c2_40d3_a96236e2ed7a65a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 221 1 0 \"f083d51e_c0c2_40d3_a96236e2ed7a65a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 222 1 0 \"3efcf433_c482_4a05_99a3246142a78416\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort1Sequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort1Sequence1Array\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable channel_raster;\r\nprivate variable used_exclusion;\r\nprivate variable status;\r\nprivate variable pos1;\r\nprivate variable num_to_sort;\r\nprivate variable in_group;\r\nprivate variable restriction_raster;\r\nprivate variable num_used;\r\nprivate variable in_index;\r\nprivate variable y_min;\r\nprivate variable update_sql;\r\nprivate variable y_max;\r\nprivate variable val1;\r\nprivate variable ret_Number_Remaining;\r\nprivate variable num_in_array;\r\nprivate variable value_equal;\r\nprivate variable num_labhand_channels;\r\nprivate variable total_channels;\r\nprivate variable file_index;\r\nprivate variable null;\r\nprivate variable restriction1;\r\nprivate variable not_used;\r\nprivate variable lab1;\r\nprivate variable sort_file;\r\nprivate variable prev_x_coord;\r\nprivate variable num_1mL_channels;\r\nprivate variable filter_sql;\r\nprivate variable prev_y_coord;\r\nprivate variable count_sql;\r\nprivate variable order_by;\r\nprivate variable num_5mL_channels;\r\nprivate variable is_string;\r\nprivate variable y1;\r\nprivate variable val_type1;\r\nprivate variable channel_number;\r\nprivate variable count_value;\r\nprivate variable x1;\r\nprivate variable line_number;\r\nprivate variable is_integer;\r\nprivate variable is_float;\r\nprivate variable sequence_name;\r\nprivate sequence temp_seq1;\r\nprivate file Count_Available;\r\nprivate file Update_FIle;\r\nprivate file Sort_File;\r\nprivate variable arr_temp_array1[];\r\nprivate variable arr_Y_Min[];\r\nprivate variable arr_Y_Max[];\r\nprivate variable arr_line_numbers[];\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable bool_FileExists;\r\n// {{ 5 \"CHAN_ACCESS_Sort1Sequence1Array\" \"InitLocals\"\r\n{ sequence __temp; o_Sorted_Sequence = __temp; }\r\no_Sorted_Array.SetSize( 0);\r\no_Channel_Pattern = 0;\r\n// }} \"\"\r\n// {{ 224 1 0 \"859f2747_addd_43dc_b174f032c09082ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 225 1 0 \"fa9a0018_ce85_4233_9f8f79768a985347\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 227 1 0 \"100ea6ff_0ed3_49c0_951442d26a6218e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 228 1 0 \"92a571f6_f6b6_48fd_bb8ce1a7c17ad9c2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 229 1 0 \"dc1531e2_b8f3_4dbd_a68d8d4a82ee8482\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 230 1 0 \"148c0c87_371d_4f1e_8d7970a3182d92fa\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 231 1 0 \"35343af9_2c8c_4b25_be676f2ef8d64f16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 233 1 0 \"859f2747_addd_43dc_b174f032c09082ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 234 1 0 \"993096e7_5333_49ab_9b6cd4b11ab4ae78\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 235 1 0 \"b22d0c2c_d4f4_40ef_b385238b87d3b3d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 236 1 0 \"2d1efb37_eb7b_4601_9dd0d6450b952b4e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 237 1 0 \"8ab492d9_c036_40c5_8eb2e8698212026f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 238 1 0 \"1a4daa24_8d2e_466e_a694798a815fefc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 239 1 0 \"62ef6e3c_a822_4f37_b3acb378c55f1c5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"e6dc126e_483b_4039_97ec2cceac88d93c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrConcat2(i_Channel_Type, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 241 1 0 \"b241e611_053a_4023_9e9fc70a2a8529ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrIVal(i_Channel_Type);\r\n// }} \"\"\r\n// {{ 242 1 0 \"0278d514_5bf3_4d38_b4a12c6799e214a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type < 0)\r\n{\r\n// }} \"\"\r\n// {{{ 243 1 0 \"e9d94097_d99b_4463_9f46a2766590581f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 244 1 0 \"c2323579_a8e8_4d81_85c57a708ea99166\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 245 1 0 \"0278d514_5bf3_4d38_b4a12c6799e214a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 246 1 0 \"9e35a5bf_9d0b_42b2_ab63325afd4f376b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 247 1 0 \"e1576b5d_2016_49e4_82b6fac677d638b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 248 1 0 \"658afd15_6ba4_4cf7_adfc2fdd8df23dd7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 249 1 0 \"9e35a5bf_9d0b_42b2_ab63325afd4f376b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 250 1 0 \"71830ba8_1b16_41c9_9b6f6749bb157255\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 251 1 0 \"4f39ba55_c372_4573_be2a102fdcaf54fd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_1mL_channels;\r\n// }} \"\"\r\n// {{ 252 1 0 \"71830ba8_1b16_41c9_9b6f6749bb157255\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"fffb1524_ddcf_45fb_ac057450180b9bf5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 254 1 0 \"4d612a8a_704c_4d4a_a15977299cf85361\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_5mL_channels;\r\n// }} \"\"\r\n// {{ 255 1 0 \"fffb1524_ddcf_45fb_ac057450180b9bf5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 256 1 0 \"ed0e24dc_5835_4fef_a3044e5cd7b4d02c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 257 1 0 \"1dccb59a_d987_45c6_861fba28854a6c37\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_labhand_channels;\r\n// }} \"\"\r\n// {{ 258 1 0 \"ed0e24dc_5835_4fef_a3044e5cd7b4d02c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 259 1 0 \"b22d0c2c_d4f4_40ef_b385238b87d3b3d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 260 1 0 \"ac670a4f_4a46_412f_875979a0a4113534\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 261 1 0 \"b5d3b5e5_f9d4_4479_b9a2510207f9b9fd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Channel_Pattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 262 1 0 \"6e9a6e07_09c9_45d8_bb1c560b3831d2c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (total_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 263 1 0 \"3e8b51d3_0339_4d7c_89155d36de153586\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 264 1 0 \"b5f5abd2_5151_4502_ae6f112b8b907a8f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 265 1 0 \"888541b4_6a53_467c_a1c6c3b295c39e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 266 1 0 \"3e8b51d3_0339_4d7c_89155d36de153586\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"a1815b5e_beb4_443b_b938fddfd615639d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"72d82c21_0b43_4b9e_942742760313bd1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 5 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 269 1 0 \"49367259_1600_4192_9f2ead1dc9d26a2a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 5 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 270 1 0 \"a1815b5e_beb4_443b_b938fddfd615639d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 271 1 0 \"7641e088_40ab_462a_911f445606772f04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 272 1 0 \"aa7e1a84_4539_49e7_a81d270b8dadc350\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no Lab Handler channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 273 1 0 \"47425b17_31d5_4934_a001fa3eeb5c1f24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No Lab Handler channels installed!!\"));\r\n// }} \"\"\r\n// {{ 274 1 0 \"7641e088_40ab_462a_911f445606772f04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"6e9a6e07_09c9_45d8_bb1c560b3831d2c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 276 1 0 \"36b122d3_8c01_4d2f_81b7df627d631a0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 277 1 0 \"62c42dc6_0d49_4a0e_a28b7b70474dcdeb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0);\r\n// }} \"\"\r\n// {{{ 278 1 0 \"9df6e2ad_debf_48e9_bef681c27e228bb6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrConcat2(i_Max_Channel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 279 1 0 \"231e95f0_d2fb_461c_81a5f01e603586df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrIVal(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 280 1 0 \"dd0923ed_7516_4871_a74f722facd97cdf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 281 1 0 \"530c87be_1123_406e_ab6a2a5be1ed562a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 282 1 0 \"dd0923ed_7516_4871_a74f722facd97cdf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 283 1 0 \"6041d695_7b98_437a_b82150aa177f6687\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel > total_channels)\r\n{\r\n// }} \"\"\r\n// {{ 284 1 0 \"22618534_0b46_49c8_aab6ecf432ebd32c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 285 1 0 \"6041d695_7b98_437a_b82150aa177f6687\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"b1435ae7_440b_474f_ba5db96112d9524c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = 0;\r\n// }} \"\"\r\n// {{{ 287 1 0 \"6044702f_66a5_4452_b7c32bbb77fb0492\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence);\r\n// }} \"\"\r\n// {{ 288 1 0 \"97f184cb_dac4_4e7a_8753930da4542693\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_Sorted_Array.SetSize(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 289 1 0 \"05a00d25_5083_4282_9ddfe6619752d650\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 290 1 0 \"eb7c0c97_d10b_4530_8c983221dc8d7f5c\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_PIP_COM_YMax;\r\n// }} \"\"\r\n// {{ 291 1 0 \"c45bc921_e017_4f4e_9cd01ea2e7c22b76\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_PIP_COM_YMin;\r\n// }} \"\"\r\n// {{ 292 1 0 \"4c8aee98_9c2d_4f35_bce0c6c05be618c6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{ 293 1 0 \"05a00d25_5083_4282_9ddfe6619752d650\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"87b10b49_de4e_4bc9_aa1caca1bfdd3067\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 295 1 0 \"4a7bc42b_5d13_4ec6_92b9bf4a32d051cb\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_XL_COM_YMax;\r\n// }} \"\"\r\n// {{ 296 1 0 \"7dc0124e_03bb_4450_aa76f707cd1232e8\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_XL_COM_YMin;\r\n// }} \"\"\r\n// {{ 297 1 0 \"234efb66_b7a4_44fc_b5f91366b18dfbb4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_XL_COM_Raster;\r\n// }} \"\"\r\n// {{ 298 1 0 \"87b10b49_de4e_4bc9_aa1caca1bfdd3067\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 299 1 0 \"0e60082f_5f4e_447d_97cadb0835bd4272\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"bed7a88f_9070_4e62_86d95747145f8662\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster);\r\n// }} \"\"\r\n// {{ 301 1 0 \"0e60082f_5f4e_447d_97cadb0835bd4272\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 302 1 0 \"bfc49120_0e6e_46ff_9c5301337cf8acbc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 303 1 0 \"04dfeb7c_7fb3_4070_b886b012f852cc02\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(sort_file);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"472369f3_a85e_41b8_b7ccc82b2bcbc3ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(sort_file);\r\n// }} \"\"\r\n// {{ 305 1 0 \"3c08d656_5063_44d0_8126a0cf7dfea963\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 306 1 0 \"a55536b1_4851_4d81_b7243e23fb470116\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(sort_file);\r\n// }} \"\"\r\n// {{ 307 1 0 \"3c08d656_5063_44d0_8126a0cf7dfea963\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 308 1 0 \"a7cd4e60_4224_4fbb_8fa6665e191e2d75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort = SeqGetTotal(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"77354240_6eb4_45b5_99c1198f96cbf270\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name = SeqGetName(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{ 310 1 0 \"16320a9d_b3c3_45ff_9e3168f529b124d2\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_in_array=io_Array_of_Variables.GetSize();\r\n// }} \"\"\r\n// {{ 311 1 0 \"5758402a_cef6_4850_80d90585f85786f7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nvalue_equal = 0;\r\n// }} \"\"\r\nif(num_to_sort == num_in_array) value_equal = 1;\r\n// {{ 313 1 0 \"a302ff3d_62d2_46d6_ac9e60f1a488c6e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_to_sort == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"222db455_79d3_4d3f_905a6c32c8a1344b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{ 315 1 0 \"a302ff3d_62d2_46d6_ac9e60f1a488c6e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 316 1 0 \"695ca188_d0dd_4d6c_b74f438dae1f375e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (value_equal == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 317 1 0 \"fd765036_3ede_4274_954e447d5a1d842e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"##############  SEQUENCE AND ARRAY DO NOT HAVE THE SAME NUMBER OF POSITIONS.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 318 1 0 \"0388252c_59ca_46c9_9548201b9104e6f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Sequence and array does not have the same number of positions.\"));\r\n// }} \"\"\r\n// {{ 319 1 0 \"695ca188_d0dd_4d6c_b74f438dae1f375e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 320 1 0 \"b212dd37_9a8a_41e4_9e40f462e148cf1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 321 1 0 \"e0c1801e_07ab_447e_8f7cf4804b8ecc03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 322 1 0 \"8265c0d5_5985_4659_bed8f5177f261a69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sequence to Sort:  \"), sequence_name);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"d9df33b7_a1aa_4b2d_86f74f28ada5955e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Number of Positions in Sequence:  \"), num_to_sort);\r\n// }} \"\"\r\n// {{{ 324 1 0 \"b0b86df8_9ed4_414f_a9647ef83263152d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by Labware:  \"), i_Sort_by_Labware);\r\n// }} \"\"\r\n// {{{ 325 1 0 \"4655d85a_229b_4ce7_a4d67ec5d47c5f70\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by XY:  \"), i_Sort_by_XY);\r\n// }} \"\"\r\n// {{{ 326 1 0 \"6fef4614_9ffa_4038_8c762bebe3782cbb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort for Channel Raster:  \"), i_Sort_for_Channel_Raster);\r\n// }} \"\"\r\n// {{{ 327 1 0 \"c07c66f3_db50_41ec_9394d9c32d21426d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Channel Raster:  \"), channel_raster);\r\n// }} \"\"\r\n// {{{ 328 1 0 \"3deabee1_915d_419d_bd6a25217f212ab7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Maximum Channel:  \"), i_Max_Channel);\r\n// }} \"\"\r\nif(i_Channel_Type == 0) Trace(\"           Channel Type:  1 mL\");\r\nelse if(i_Channel_Type == 1) Trace(\"           Channel Type:  5 mL\");\r\nelse if(i_Channel_Type == 2) Trace(\"           Channel Type:  Labware Handler\");\r\n// {{{ 330 1 0 \"8e22d413_c6db_4f5b_9f89108eb8da2365\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 331 1 0 \"9ff9ea74_90ae_4d44_998acf0bc8b8e390\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 332 1 0 \"9450234e_6e9d_4ab4_b00c5cb604183b1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_float = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"360b0b07_c5c6_4bf5_8748743dbdb14aeb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_integer = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"9edb3b10_aaf7_4663_877eca15429d4c64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_string = HSLExtensions::Array::IsStringArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{ 335 1 0 \"47fd5db1_fa1e_46c7_98a62d6e907f2a9b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval_type1 = 0;\r\n// }} \"\"\r\nif(is_float == 1) val_type1 = 1;\r\nelse if(is_integer == 1) val_type1 = 2;\r\n// {{ 337 1 0 \"7e33240a_8e21_4bd7_ad3abba1b00d94c8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 338 1 0 \"48eae329_c026_442a_ba747e1faad2279a\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 339 1 0 \"d1cd0e59_9359_4c0c_b014ceb5c9890064\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnot_used = Translate(\"-----\");\r\n// }} \"\"\r\n// {{ 340 1 0 \"0841b6dd_d632_40b0_8f3090526e2f704e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstatus = Translate(\"NOT_DONE\");\r\n// }} \"\"\r\n// {{ 341 1 0 \"2e91d526_2001_41f2_876b636b01b6dc54\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(line_number = 0; line_number < num_to_sort;)\r\n{\r\nline_number = line_number + 1;\r\n// }} \"\"\r\n// {{ 342 1 0 \"9a850b41_5d36_4dd0_8da1622fe877801b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"96c325c9_3555_4c3d_b73dc5ade9a7ddf1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab1 = SeqGetLabwareId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 344 1 0 \"6d390a45_f79e_40d9_8a999a93d2ba9aeb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos1 = SeqGetPositionId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 345 1 0 \"9a13ed8c_0972_46a8_bfa66315d099eec1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null);\r\n// }} \"\"\r\n// {{ 346 1 0 \"817bc09d_f4e1_4baf_b0c0aab6165ece48\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval1=io_Array_of_Variables.GetAt(line_number-1);\r\n// }} \"\"\r\n// {{ 347 1 0 \"c8b9bb06_15f6_4c27_86cee5d6e212142c\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 348 1 0 \"2e91d526_2001_41f2_876b636b01b6dc54\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 349 1 0 \"c90b5977_03bb_4b5a_ae1c867fb403982f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 350 1 0 \"9b66b2eb_103c_47be_9b30e802664e4393\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_line_numbers.SetSize(0);\r\n// }} \"\"\r\n// {{ 351 1 0 \"3e640c5e_f7c0_4fb4_a7b77e1809bfb276\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 352 1 0 \"a053a414_5b3d_462f_a3e70c29d6ca54a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = 999.0;\r\n// }} \"\"\r\n// {{ 353 1 0 \"f59abef5_52c6_465e_ac7d4dfe0141c699\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(channel_number = 0; channel_number < i_Max_Channel;)\r\n{\r\nchannel_number = channel_number + 1;\r\n// }} \"\"\r\n// {{ 354 1 0 \"00311f56_d96d_4062_ab245c061bb28846\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = prev_y_coord - channel_raster;\r\n// }} \"\"\r\n// {{{ 355 1 0 \"09c441b4_e06d_4710_b22fb2adda84ad8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction_raster = StrConcat8(Translate(\"AND (X1\"), Translate(\" = \"), prev_x_coord, Translate(\" AND \"), Translate(\"Y1\"), Translate(\" <= \"), prev_y_coord, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 356 1 0 \"b9204fe7_ea1f_4686_916aef49d51f44f1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 357 1 0 \"1a810470_43f1_4bb9_a1a425a42b67f005\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_max=arr_Y_Max.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{ 358 1 0 \"0bd66511_b780_4282_a3ae50e7d626c4bb\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_min=arr_Y_Min.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{{ 359 1 0 \"3ad9278b_02a9_4476_b2a79b1bd9c58a0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction1 = StrConcat8(Translate(\"(Y1 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y1 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 360 1 0 \"d23394bf_fb28_4d96_9824ba3790058636\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 361 1 0 \"7c6534bb_a197_4c93_bd4fdb166798ead6\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 362 1 0 \"9c611d0b_4b6f_4317_90f2087adcc6dd37\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{ 363 1 0 \"986a49ed_85ec_4b47_a86ff3a2fa9484bd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nused_exclusion = Translate(\"\");\r\n// }} \"\"\r\n// {{ 364 1 0 \"9c611d0b_4b6f_4317_90f2087adcc6dd37\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 365 1 0 \"8cd3a0ce_620d_4bef_a0774034b781e85d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(Translate(\"AND LINE_NUMBER NOT IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 366 1 0 \"ad885f3c_09ea_4f51_ad78277fc682aa30\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 367 1 0 \"548aff85_ece7_4592_be087e241637acc6\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 368 1 0 \"cab8ff12_b883_46cc_926dd0399c851e3f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 369 1 0 \"1cbe0b93_2fc7_4177_9ed145250c32bc4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 370 1 0 \"cab8ff12_b883_46cc_926dd0399c851e3f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 371 1 0 \"2c69b7c2_9b64_46fe_b25619f703d442dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, line_number);\r\n// }} \"\"\r\n// {{ 372 1 0 \"ad885f3c_09ea_4f51_ad78277fc682aa30\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 373 1 0 \"ee222584_dc8c_473e_a0a6c27bdb55df74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 374 1 0 \"9c611d0b_4b6f_4317_90f2087adcc6dd37\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 375 1 0 \"6b7d1da4_857c_469a_80695ba667e5bed0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 376 1 0 \"56dec4ab_2017_4601_bf5b619d1d8e65ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\norder_by = Translate(\"\");\r\n// }} \"\"\r\nif(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, X1 ASC, Y1 DESC\";\r\n}\r\nelse if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, LINE_NUMBER ASC\";\r\n}\r\nelse if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY X1 ASC, Y1 DESC\";\r\n}\r\nelse \r\n{\r\n   order_by = \"ORDER BY LINE_NUMBER ASC\";\r\n}\r\n// {{ 378 1 0 \"a2edb2cc_c200_4056_98eddb4b08260429\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 379 1 0 \"b890f0e8_8fe0_4454_a573b7017fdfb573\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), restriction_raster);\r\n// }} \"\"\r\n// {{ 380 1 0 \"7b1fa051_a22b_4d4c_b866995ebef497b0\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 381 1 0 \"38209b86_2947_43d3_95c8110b4e09af0b\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 382 1 0 \"bd02e292_91c0_494e_a0da986820989587\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 383 1 0 \"c90b41cc_2c6a_462b_b5eb14a568d27ffa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{ 384 1 0 \"8bf987aa_778e_4ce3_bca27e15620014c9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 385 1 0 \"c90b41cc_2c6a_462b_b5eb14a568d27ffa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 386 1 0 \"1c328817_cbe8_4125_8e4bea448bcc64e0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 387 1 0 \"91140b5b_dec8_4ce3_be3b21670f443207\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 388 1 0 \"57e6d1f1_f7ca_4fd6_9aa8da793e919822\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 389 1 0 \"481c7a8a_b907_41a9_b205a144a97982a9\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 390 1 0 \"a65a359a_81e7_409e_8166fe2c62673dc9\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 391 1 0 \"1e27d55f_2d55_42a4_acb35b856b681877\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value > 0)\r\n{\r\n// }} \"\"\r\n// {{ 392 1 0 \"de24d4f1_c2f0_4f48_9b13d23d587dc9fd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 393 1 0 \"5a9e4f07_3a09_453e_9dfabdf984abcbb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat12(Translate(\"SELECT * FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\" \"), order_by, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 394 1 0 \"fe7f08fd_a595_4d26_ad0d6bba65b14170\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"3761a6ad_eedf_487f_ab1dec090365412b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfile_index = 0;\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\nfile_index = file_index + 1;\r\n// }} \"\"\r\n// {{ 396 1 0 \"8fb90739_278c_4bdd_a51361f1465856a3\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 397 1 0 \"bf2a6773_f3ee_456c_a29a7f6581d1ae4a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Sort_for_Channel_Raster == 0)\r\n{\r\n// }} \"\"\r\n// {{ 398 1 0 \"901faa1b_f82a_47e0_9a6923ead11232d4\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 399 1 0 \"bf2a6773_f3ee_456c_a29a7f6581d1ae4a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 400 1 0 \"740b3984_7632_4c78_a6b1896a5cdd268a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (x1 != prev_x_coord)\r\n{\r\n// }} \"\"\r\n// {{ 401 1 0 \"770013f0_dbe6_4506_abe01299baa3ac72\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 402 1 0 \"740b3984_7632_4c78_a6b1896a5cdd268a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 403 1 0 \"1bbd2615_01df_4097_99815149c6923ec0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (y1 <= prev_y_coord)\r\n{\r\n// }} \"\"\r\n// {{ 404 1 0 \"53e73996_6f07_491e_83e063e2f626751a\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 405 1 0 \"1bbd2615_01df_4097_99815149c6923ec0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 406 1 0 \"3761a6ad_eedf_487f_ab1dec090365412b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 407 1 0 \"2b3f1e04_e5b3_4890_a77b425d6051de25\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n// {{{ 409 1 0 \"1f7c5560_002f_43b8_8b9429a580f6c3e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"b8a2ae26_b3ed_440f_96fe5eb72e8adb3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1);\r\n// }} \"\"\r\n// {{ 411 1 0 \"84e8377a_0233_42dd_94f0996931dec666\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array.SetAt(channel_number-1, val1);\r\n// }} \"\"\r\n// {{ 412 1 0 \"1b6660d2_8727_4b45_8edec9c177ca0c2c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_line_numbers.AddAsLast(line_number);\r\n// }} \"\"\r\n// {{ 413 1 0 \"07e4725b_da6f_47d4_bb9ce0ac22bf749a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = x1;\r\n// }} \"\"\r\n// {{ 414 1 0 \"786d82af_6013_461c_be5af625c118ac8b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = y1;\r\n// }} \"\"\r\n// {{ 415 1 0 \"1e27d55f_2d55_42a4_acb35b856b681877\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 416 1 0 \"b1195e50_8ab8_4feb_b98dbdb9755d15ff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval1 = Translate(\"0\");\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n// {{ 418 1 0 \"e845dd4f_c537_43fd_8f9a47f0fc625473\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array.SetAt(channel_number-1, val1);\r\n// }} \"\"\r\n// {{ 419 1 0 \"1e27d55f_2d55_42a4_acb35b856b681877\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 420 1 0 \"f59abef5_52c6_465e_ac7d4dfe0141c699\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 421 1 0 \"ba84d3e1_d8af_427e_80d4d9f4b897daa1\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 422 1 0 \"d783ecc8_4e4a_4b5d_86a289c05401d5c9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 423 1 0 \"c3810bf2_b58f_4a3b_a301bad2a15f03d4\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 424 1 0 \"d0284fb8_4332_4740_ba882c5961523873\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = num_to_sort - num_used;\r\n// }} \"\"\r\n// {{ 425 1 0 \"2f23c357_d57f_40af_83af9ede43af55b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 426 1 0 \"73d6c385_e90f_404f_a9a5e807f926e6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"**********************************  The remaining positions are out of reach for the selected channels!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 427 1 0 \"dbba32bb_65be_4a2a_b977e75ca1caa933\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"The remaining positions are out of reach for all the selected channels!!!!\"));\r\n// }} \"\"\r\n// {{ 428 1 0 \"2f23c357_d57f_40af_83af9ede43af55b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 429 1 0 \"772473a2_7f9b_4c9a_a38a4079c291ce82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(Translate(\"LINE_NUMBER IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 430 1 0 \"b0cbef3b_ac40_456d_a4771aa35f7a2737\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 431 1 0 \"971a0af4_ad0b_47ef_8167dbe2508fcddb\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 432 1 0 \"90f5127c_b5cc_4e33_ae9283d96bfda405\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"f9eb7c40_8660_456b_96aabc01e136da45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 434 1 0 \"90f5127c_b5cc_4e33_ae9283d96bfda405\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 435 1 0 \"59b56322_1062_48ee_b24b50d12afe9f42\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, line_number);\r\n// }} \"\"\r\n// {{ 436 1 0 \"b0cbef3b_ac40_456d_a4771aa35f7a2737\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 437 1 0 \"97d0589e_a3b0_47b4_865f688dacfbd71c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 438 1 0 \"26c5e709_7e9f_42d6_9a16fc220e271449\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nupdate_sql = StrConcat4(Translate(\"UPDATE SORT SET STATUS = 'DONE' WHERE \"), in_group, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 439 1 0 \"f97b1074_5be4_4e67_9c9d4131bd75eba9\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Update_FIle.Open(sort_file + \" \" + \"SORT\", hslRead, update_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 440 1 0 \"7d21acb2_1ea1_48a9_b4d24da53bd738be\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Update_FIle.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nUpdate_FIle.RemoveFields();\r\n// }} \"\"\r\n// {{ 441 1 0 \"06a584e4_442a_4fc7_bffa937b06256c43\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 442 1 0 \"69086706_acc8_4a82_8fe1763b01cce182\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat2(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 443 1 0 \"a067fd14_083e_457a_98eef646e339de8f\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 444 1 0 \"6c2ba365_cfe1_44ac_ac1836c6fb22d86d\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 445 1 0 \"46f4757c_53a0_4d3d_8b2fda4fa733a49b\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 446 1 0 \"e402d723_f7ff_4142_bfc938fe41d48771\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = count_value;\r\n// }} \"\"\r\n// {{ 447 1 0 \"f9796bbb_97a1_49fb_9085d6034927d6eb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 448 1 0 \"7126da96_b7af_4d7d_8120206540f423ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{ 449 1 0 \"3d319957_3310_4727_913bdbe6f7cc7a53\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nio_Array_of_Variables.SetSize(0);\r\n// }} \"\"\r\n// {{ 450 1 0 \"f9796bbb_97a1_49fb_9085d6034927d6eb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 451 1 0 \"cb1007c0_e522_479b_923e28ee78fd490b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat2(Translate(\"SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 452 1 0 \"a66659f9_db6d_4876_a9b8d623a04d79d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq1);\r\n// }} \"\"\r\n// {{ 453 1 0 \"dc5bb7b8_3fa8_403b_b6acad3a472d98e6\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_temp_array1.SetSize(0);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e27a58d9_b7c0_49d1_a20f1a1305c6fccb\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 455 1 0 \"cdc7d6b6_3d03_4230_aebbae278b12eef9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 456 1 0 \"5d9a3450_de6a_49f7_ac9a94816561e70b\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n// {{ 458 1 0 \"2d354c1c_2be7_414d_a2e5264626130cd2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_temp_array1.AddAsLast(val1);\r\n// }} \"\"\r\n// {{{ 459 1 0 \"62e3ccec_1a57_4944_88e029bfa2f8dd75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq1, lab1, pos1);\r\n// }} \"\"\r\n// {{ 460 1 0 \"cdc7d6b6_3d03_4230_aebbae278b12eef9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 461 1 0 \"f2ee08db_b9ae_4c1b_bf7875017fa4b85f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 462 1 0 \"0f1a44c4_06fe_4668_a07c1c7337a0bed8\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq1.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 463 1 0 \"5b7b28b2_8ac7_4faf_9f965cd9849ef390\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort, temp_seq1);\r\n// }} \"\"\r\n// {{ 464 1 0 \"e2ff80fc_5c39_449e_93cbc5c02668bd7f\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\nio_Array_of_Variables=arr_temp_array1;\r\n// }} \"\"\r\n// {{ 465 1 0 \"f9796bbb_97a1_49fb_9085d6034927d6eb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 466 1 0 \"0fdfabeb_3be9_441f_a1f88d79ae51d453\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 468 1 0 \"0fdfabeb_3be9_441f_a1f88d79ae51d453\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 469 1 0 \"a97cd7c4_1c57_4c08_a861607d3d11337c\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort1Sequence1Array\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort1Sequence2Arrays\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable used_exclusion;\r\nprivate variable channel_raster;\r\nprivate variable status;\r\nprivate variable num_in_array2;\r\nprivate variable num_to_sort;\r\nprivate variable in_group;\r\nprivate variable pos1;\r\nprivate variable is_string2;\r\nprivate variable restriction_raster;\r\nprivate variable num_used;\r\nprivate variable in_index;\r\nprivate variable update_sql;\r\nprivate variable y_min;\r\nprivate variable ret_Number_Remaining;\r\nprivate variable is_float2;\r\nprivate variable val1;\r\nprivate variable y_max;\r\nprivate variable num_in_array;\r\nprivate variable value_equal;\r\nprivate variable num_labhand_channels;\r\nprivate variable total_channels;\r\nprivate variable val2;\r\nprivate variable file_index;\r\nprivate variable null;\r\nprivate variable restriction1;\r\nprivate variable not_used;\r\nprivate variable lab1;\r\nprivate variable sort_file;\r\nprivate variable is_integer2;\r\nprivate variable filter_sql;\r\nprivate variable prev_y_coord;\r\nprivate variable num_1mL_channels;\r\nprivate variable prev_x_coord;\r\nprivate variable count_sql;\r\nprivate variable order_by;\r\nprivate variable num_5mL_channels;\r\nprivate variable val_type1;\r\nprivate variable is_string;\r\nprivate variable y1;\r\nprivate variable channel_number;\r\nprivate variable count_value;\r\nprivate variable val_type2;\r\nprivate variable x1;\r\nprivate variable is_integer;\r\nprivate variable line_number;\r\nprivate variable is_float;\r\nprivate variable sequence_name;\r\nprivate sequence temp_seq1;\r\nprivate file Count_Available;\r\nprivate file Update_FIle;\r\nprivate file Sort_File;\r\nprivate variable arr_temp_array1[];\r\nprivate variable arr_temp_array2[];\r\nprivate variable arr_Y_Min[];\r\nprivate variable arr_Y_Max[];\r\nprivate variable arr_line_numbers[];\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable bool_FileExists;\r\nprivate variable int_Count;\r\n// {{ 5 \"CHAN_ACCESS_Sort1Sequence2Arrays\" \"InitLocals\"\r\n{ sequence __temp; o_Sorted_Sequence = __temp; }\r\no_Sorted_Array.SetSize( 0);\r\no_Sorted_Array2.SetSize( 0);\r\no_Channel_Pattern = 0;\r\n// }} \"\"\r\n// {{ 471 1 0 \"d5e351cb_41fc_4c1a_9bb57ea21513b5cd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 472 1 0 \"e5ff749c_fbf4_4cd7_b55ca11e98443723\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 474 1 0 \"7cffb75b_3051_48fb_bd0ffa8b746f9ff5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 475 1 0 \"5f26a3ee_57c4_4afe_b1f85f64d445bd1c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 476 1 0 \"78c32475_90f7_4bde_8ed2d8ab7a45c45f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 477 1 0 \"637d6345_8eb2_4a42_b105bb3fcdea2fc0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 478 1 0 \"3d21013f_4eb2_40e8_9eae992f400b62db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 480 1 0 \"d5e351cb_41fc_4c1a_9bb57ea21513b5cd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 481 1 0 \"c5993fdd_988d_44c0_8f2ffc3182e43a13\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 482 1 0 \"a733d1e9_3461_4ad4_9f63e113bbbd8d8a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"536df048_9f70_4c63_9405e4263dc44ebd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 484 1 0 \"bac8145f_7f61_4ab7_9e29d985fe40e57e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 485 1 0 \"1c0bf5aa_ecdc_4d7b_b134d25f42dd5cc3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 486 1 0 \"3af7af3c_e018_40b0_bf777b548fcb9586\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47);\r\n// }} \"\"\r\n// {{{ 487 1 0 \"f5ea5095_102b_4099_871d88db59d090d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrConcat2(i_Channel_Type, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 488 1 0 \"1733d707_2383_40f9_b2176dc45599ce12\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrIVal(i_Channel_Type);\r\n// }} \"\"\r\n// {{ 489 1 0 \"49decf33_1a13_40f1_a1bc0c6894304688\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type < 0)\r\n{\r\n// }} \"\"\r\n// {{{ 490 1 0 \"29aca248_ee54_4041_b053a76e4da78837\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 491 1 0 \"2f63c653_1e5c_4d2c_8a7bc400d7f32070\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 492 1 0 \"49decf33_1a13_40f1_a1bc0c6894304688\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 493 1 0 \"7308f035_ce5b_401a_bc8af70d7e1e47bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 494 1 0 \"4be49f71_c45e_4633_a988a811516a47f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 495 1 0 \"b90b5730_0b8e_4f10_bc517b4dac4d959a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 496 1 0 \"7308f035_ce5b_401a_bc8af70d7e1e47bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 497 1 0 \"ea475905_72fb_4897_80a23c088ca33a82\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 498 1 0 \"c0ea74b1_829b_4f0e_8ea08dd914766ab0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_1mL_channels;\r\n// }} \"\"\r\n// {{ 499 1 0 \"ea475905_72fb_4897_80a23c088ca33a82\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 500 1 0 \"93b57430_edae_4d32_b597db5925c050da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 501 1 0 \"208df700_d1d1_4416_a1c87210f62bc8a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_5mL_channels;\r\n// }} \"\"\r\n// {{ 502 1 0 \"93b57430_edae_4d32_b597db5925c050da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 503 1 0 \"51504218_1e0e_4c52_a3d821675f85d031\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 504 1 0 \"0c6ca8ae_2056_429e_b0cd6d5c44f4bf2d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_labhand_channels;\r\n// }} \"\"\r\n// {{ 505 1 0 \"51504218_1e0e_4c52_a3d821675f85d031\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 506 1 0 \"a733d1e9_3461_4ad4_9f63e113bbbd8d8a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 507 1 0 \"b2f0f0cd_312c_4489_b8b78fcbf9128edc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 508 1 0 \"b0d8f127_c061_46a6_8fc708f831969caa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Channel_Pattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 509 1 0 \"95f829c5_bf9a_4d72_b3ec9d6d34651a6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (total_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 510 1 0 \"2c3147ca_ac10_4206_b614cb746ca9028b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 511 1 0 \"f4b42977_d5fc_4213_b2193ef4bb94d368\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 512 1 0 \"6f726399_c924_45a0_9e0cec66c72e2260\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 513 1 0 \"2c3147ca_ac10_4206_b614cb746ca9028b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 514 1 0 \"756907b5_3d9e_407b_bd8e96031907766a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 515 1 0 \"af215748_c85f_4549_a6898bbf5bb9e864\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 5 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 516 1 0 \"188c8c72_25fb_49fe_a172e257284fa158\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 5 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 517 1 0 \"756907b5_3d9e_407b_bd8e96031907766a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 518 1 0 \"9ee75066_66ba_45a4_8f8044b0f04e5ca6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 519 1 0 \"f6b22ab1_23ed_49d6_86e8b0822f968516\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no Lab Handler channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 520 1 0 \"7079d1c7_d37d_492b_b8251ac9f17b9d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No Lab Handler channels installed!!\"));\r\n// }} \"\"\r\n// {{ 521 1 0 \"9ee75066_66ba_45a4_8f8044b0f04e5ca6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 522 1 0 \"95f829c5_bf9a_4d72_b3ec9d6d34651a6d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 523 1 0 \"8ca0a003_a0f8_4afd_b7654793ba1549f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"8799a827_3994_49a3_9f71b330f289c637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0);\r\n// }} \"\"\r\n// {{{ 525 1 0 \"b365f325_f840_4b5d_969db2f6d5cf5e5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrConcat2(i_Max_Channel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 526 1 0 \"2c9e10e8_a51e_4237_92ed756435b3358e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrIVal(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 527 1 0 \"376e18de_7bb0_4b75_a47ad14db8b49a25\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 528 1 0 \"8226c29d_9939_405e_a068e520bf26c032\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 529 1 0 \"376e18de_7bb0_4b75_a47ad14db8b49a25\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 530 1 0 \"203cd1ac_9697_4e68_8d20e9aa8658286f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel > total_channels)\r\n{\r\n// }} \"\"\r\n// {{ 531 1 0 \"f4f87acd_0c92_4198_b9ac578d532d413a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 532 1 0 \"203cd1ac_9697_4e68_8d20e9aa8658286f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 533 1 0 \"f5e603b9_1825_4e81_bfedd59c95bf635c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = 0;\r\n// }} \"\"\r\n// {{{ 534 1 0 \"00077552_3b71_44e7_91b963dc819a6e4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence);\r\n// }} \"\"\r\n// {{ 535 1 0 \"313c4f2f_9946_44ad_8e183fabb0a77d70\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_Sorted_Array.SetSize(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 536 1 0 \"c21bc53a_3438_46e0_8e58b0eab8317cb3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_Sorted_Array2.SetSize(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 537 1 0 \"428371de_1e9d_44bd_bf5cdf8754706434\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 538 1 0 \"6257a649_1975_4838_bd78b6f133f15dd4\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_PIP_COM_YMax;\r\n// }} \"\"\r\n// {{ 539 1 0 \"bfe2f179_48cf_40bd_ba37f53f4712d792\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_PIP_COM_YMin;\r\n// }} \"\"\r\n// {{ 540 1 0 \"78bd17cc_c58e_4db5_9e6a67fcfdb57925\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{ 541 1 0 \"428371de_1e9d_44bd_bf5cdf8754706434\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 542 1 0 \"d10493cd_85b9_40f5_9253ebf18658d685\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 543 1 0 \"00499320_3ec2_420e_911324962dca671a\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_XL_COM_YMax;\r\n// }} \"\"\r\n// {{ 544 1 0 \"e647454d_66cc_448d_b026b70f81e38122\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_XL_COM_YMin;\r\n// }} \"\"\r\n// {{ 545 1 0 \"9f4c2b55_f18d_4698_979c83eb84e02772\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_XL_COM_Raster;\r\n// }} \"\"\r\n// {{ 546 1 0 \"d10493cd_85b9_40f5_9253ebf18658d685\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 547 1 0 \"afc5d524_21d0_496a_9dd327ef13f5fbda\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 548 1 0 \"caa58ebc_92f3_455d_b401cdeee91a52a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster);\r\n// }} \"\"\r\n// {{ 549 1 0 \"afc5d524_21d0_496a_9dd327ef13f5fbda\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"935b06e7_f8ff_4287_9b722c47e44b5deb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 551 1 0 \"2f3e683c_1dac_4cde_bcd5064c5c8f3e96\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(sort_file);\r\n// }} \"\"\r\n// {{{ 552 1 0 \"bec910ea_e693_4f5d_b1762048ec11828f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(sort_file);\r\n// }} \"\"\r\n// {{ 553 1 0 \"e98d4e62_0922_4d3c_853465c9b7739cd8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 554 1 0 \"e2b5a448_3bc7_44dc_b481ec9c7cd51e48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(sort_file);\r\n// }} \"\"\r\n// {{ 555 1 0 \"e98d4e62_0922_4d3c_853465c9b7739cd8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 556 1 0 \"19aa48a2_0b85_4a8d_bf36aa1249c402ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort = SeqGetTotal(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"18bc44ca_d6a2_43ee_8ca7da146ea6a01d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name = SeqGetName(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{ 558 1 0 \"82a74a37_351c_4c2b_822d1033b0854a66\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_in_array=io_Array_of_Variables.GetSize();\r\n// }} \"\"\r\n// {{ 559 1 0 \"1c5132ae_dda1_4ab5_a2e19116fb903cbb\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_in_array2=io_Array_of_Variables2.GetSize();\r\n// }} \"\"\r\n// {{ 560 1 0 \"4911101a_bbe7_4e1d_afd46c64d18fc563\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nvalue_equal = 0;\r\n// }} \"\"\r\nif(num_to_sort == num_in_array && num_to_sort == num_in_array2) value_equal = 1;\r\n// {{ 562 1 0 \"e9796f1c_fe9a_421f_9e3716fcf2bc5a9f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_to_sort == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 563 1 0 \"1864cfdb_07de_42de_ac4bcc7d7dd3e30c\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{ 564 1 0 \"e9796f1c_fe9a_421f_9e3716fcf2bc5a9f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 565 1 0 \"71f230ba_2ab8_4bdd_8451cbede5aecbbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (value_equal == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 566 1 0 \"8c7648cd_6aac_4944_85a6b8efb48c0360\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"##############  SEQUENCE AND ARRAYS DO NOT HAVE THE SAME NUMBER OF POSITIONS.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 567 1 0 \"8f5394b1_dafa_409e_97806469847499c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Sequence and arrays do not have the same number of positions.\"));\r\n// }} \"\"\r\n// {{ 568 1 0 \"71f230ba_2ab8_4bdd_8451cbede5aecbbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 569 1 0 \"cc4765b9_25a3_42c1_af0a5c44a9479cd9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 570 1 0 \"09a2e2e5_dede_4373_b6799ee8b5074db3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 571 1 0 \"2d28b857_395e_46c5_a3a81f03cbbacd88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sequence to Sort:  \"), sequence_name);\r\n// }} \"\"\r\n// {{{ 572 1 0 \"f93c4224_20de_4768_a37b5f70e4bbfc0a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Number of Positions in Sequence:  \"), num_to_sort);\r\n// }} \"\"\r\n// {{{ 573 1 0 \"609b8130_988e_4461_9035936a7c4d1cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by Labware:  \"), i_Sort_by_Labware);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"fbdea640_c499_4747_b39881ed28e03ac7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by XY:  \"), i_Sort_by_XY);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"03b2ce05_e40b_4343_a6b6cb93d58dafa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort for Channel Raster:  \"), i_Sort_for_Channel_Raster);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"4cb56b93_2eec_48a6_8132414ff26fd69c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Channel Raster:  \"), channel_raster);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"2a39d194_c9b3_4524_80ba8f10bd2b73fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Maximum Channel:  \"), i_Max_Channel);\r\n// }} \"\"\r\nif(i_Channel_Type == 0) Trace(\"           Channel Type:  1 mL\");\r\nelse if(i_Channel_Type == 1) Trace(\"           Channel Type:  5 mL\");\r\nelse if(i_Channel_Type == 2) Trace(\"           Channel Type:  Labware Handler\");\r\n// {{{ 579 1 0 \"fcb17679_6241_4ed0_9d9f04a69a6d4f2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 580 1 0 \"fd977631_7d93_4dc0_b8c69b4cb146c150\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 581 1 0 \"71d06f6a_8372_4afd_973574df03e62f5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_float = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"47c1e87d_3f8c_4496_83bb4bec16bb5fc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_integer = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 583 1 0 \"90da5ba8_8bcd_4c67_9eb3ea802d74b65c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_string = HSLExtensions::Array::IsStringArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"14f1b780_805d_4b17_b712516d3d88a402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_float2 = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables2);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"42b8780f_e0b9_47a0_b66ac3fa0d1bde9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_integer2 = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables2);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"3f19c19f_26ca_4f26_aadf1e4b9873aba2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_string2 = HSLExtensions::Array::IsStringArray(io_Array_of_Variables2);\r\n// }} \"\"\r\n// {{ 587 1 0 \"bd40b829_2216_4277_9bb7a303189e9e4a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval_type1 = 0;\r\n// }} \"\"\r\n// {{ 588 1 0 \"8a2849ab_7fb7_4f36_9ebbc3853fa8e6c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval_type2 = 0;\r\n// }} \"\"\r\nif(is_float == 1) val_type1 = 1;\r\nelse if(is_integer == 1) val_type1 = 2;\r\n\r\nif(is_float2 == 1) val_type2 = 1;\r\nelse if(is_integer2 == 1) val_type2 = 2;\r\n// {{ 590 1 0 \"fee6bc9b_524a_4572_8b00e7f24c77a057\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 591 1 0 \"e99d1301_3e9b_4125_aa8d439db6fa7b1c\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", val2, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"da2730f7_b588_4482_aa2f69f03cde50ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnot_used = Translate(\"-----\");\r\n// }} \"\"\r\n// {{ 593 1 0 \"26fe431f_622a_44f0_bf04cc34bbad7412\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstatus = Translate(\"NOT_DONE\");\r\n// }} \"\"\r\n// {{ 594 1 0 \"8c2ed21d_f502_4316_90066ab1a8796225\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(line_number = 0; line_number < num_to_sort;)\r\n{\r\nline_number = line_number + 1;\r\n// }} \"\"\r\n// {{ 595 1 0 \"8a7ec7b6_5d6a_4b08_844cb2c067fc3176\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"7f956177_b1f5_446e_9fca85e6160f37ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab1 = SeqGetLabwareId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"678ffd16_9965_4d4b_89b89827706772fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos1 = SeqGetPositionId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"1bf15487_db33_4e52_a10e9ca36952079b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null);\r\n// }} \"\"\r\n// {{ 599 1 0 \"28d0b136_19e7_4cf8_93653630fffd8207\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval1=io_Array_of_Variables.GetAt(line_number-1);\r\n// }} \"\"\r\n// {{ 600 1 0 \"d9f87989_d0a4_4a55_a7e9dbb73bc1ab36\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval2=io_Array_of_Variables2.GetAt(line_number-1);\r\n// }} \"\"\r\n// {{ 601 1 0 \"ab62c233_1a20_4146_b5bc4d673b05b76d\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 602 1 0 \"8c2ed21d_f502_4316_90066ab1a8796225\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 603 1 0 \"9555f01a_68ac_4092_839d4cf77725f984\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 604 1 0 \"fbe96d0e_df43_4a02_bd8c2c58ec196c0a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_line_numbers.SetSize(0);\r\n// }} \"\"\r\n// {{ 605 1 0 \"52a6a4b3_75bd_4c50_bbeb62ba36ee3a6a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 606 1 0 \"11475ea1_0699_4a29_b7cc5dd46b0f404a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = 999.0;\r\n// }} \"\"\r\n// {{ 607 1 0 \"0e8200f0_cb10_409b_b33aa9c7bef7e2a4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(channel_number = 0; channel_number < i_Max_Channel;)\r\n{\r\nchannel_number = channel_number + 1;\r\n// }} \"\"\r\n// {{ 608 1 0 \"3161ab8c_aeda_4ee3_90f187d33437bb6a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = prev_y_coord - channel_raster;\r\n// }} \"\"\r\n// {{{ 609 1 0 \"1f0bd26f_8d2e_4b53_9bf513b19f4fe864\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction_raster = StrConcat8(Translate(\"AND (X1\"), Translate(\" = \"), prev_x_coord, Translate(\" AND \"), Translate(\"Y1\"), Translate(\" <= \"), prev_y_coord, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 610 1 0 \"496acd7a_fd4c_44f9_9dc35348e77db53f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 611 1 0 \"db051b25_dc4f_4eb7_9f1f8843e19ce356\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_max=arr_Y_Max.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{ 612 1 0 \"606f3fde_02c9_416d_8aaa1a25e69b03c8\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_min=arr_Y_Min.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{{ 613 1 0 \"b932d4ac_9908_46ef_abdbf8ce9e78df5a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction1 = StrConcat8(Translate(\"(Y1 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y1 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 614 1 0 \"5672a2f9_c6ef_4da5_ac45cb4c32415224\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 615 1 0 \"ed15f69d_ba9b_4e52_8612cef431b23a2c\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 616 1 0 \"d3368136_cb74_411d_b3995e656fa4b09a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{ 617 1 0 \"4dddf02f_2854_4966_b9f09b1f9b0dc97b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nused_exclusion = Translate(\"\");\r\n// }} \"\"\r\n// {{ 618 1 0 \"d3368136_cb74_411d_b3995e656fa4b09a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 619 1 0 \"17ccb9cb_2b2f_4d71_8a6ac57f218b701b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(Translate(\"AND LINE_NUMBER NOT IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 620 1 0 \"b93ef8e0_ffc1_4b13_b9bee78dc64d76c6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 621 1 0 \"b1e46920_aa56_494b_b5233ffe5fef8364\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 622 1 0 \"015ceb12_3ea1_4bb6_a1d681ecb00b573a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 623 1 0 \"4e8b5f9a_e81f_4cd8_ae2e253ad4fb46d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 624 1 0 \"015ceb12_3ea1_4bb6_a1d681ecb00b573a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 625 1 0 \"1a0562ab_308d_409d_a34936ae0334cc6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, line_number);\r\n// }} \"\"\r\n// {{ 626 1 0 \"b93ef8e0_ffc1_4b13_b9bee78dc64d76c6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 627 1 0 \"acaaf743_f07f_4591_af1a64945cbc3648\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 628 1 0 \"d3368136_cb74_411d_b3995e656fa4b09a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 629 1 0 \"5b0c3b18_c4b5_4eef_b77b2f1e5eb26673\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 630 1 0 \"984f59e5_fbf9_4b77_9538403ff13775d5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\norder_by = Translate(\"\");\r\n// }} \"\"\r\nif(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, X1 ASC, Y1 DESC\";\r\n}\r\nelse if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, LINE_NUMBER ASC\";\r\n}\r\nelse if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY X1 ASC, Y1 DESC\";\r\n}\r\nelse \r\n{\r\n   order_by = \"ORDER BY LINE_NUMBER ASC\";\r\n}\r\n// {{ 632 1 0 \"02c7628f_fbf0_4a29_87b178f15bf11f56\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 633 1 0 \"1b39a7d9_816e_481d_998110fd5747b596\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), restriction_raster);\r\n// }} \"\"\r\n// {{ 634 1 0 \"a1ba3c95_9d64_4ae0_b7237dec32224ca6\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 635 1 0 \"891216b7_16c6_4b18_8ef2f7f71011ecf4\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 636 1 0 \"9c69bed8_10ae_400f_85862ec7f8ef0c65\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 637 1 0 \"05b4a348_abc7_4129_8678fdcf004a4d3f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{ 638 1 0 \"89c18bd3_656a_4489_861e2206d444bc3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 639 1 0 \"05b4a348_abc7_4129_8678fdcf004a4d3f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 640 1 0 \"03ecb8da_3837_425f_9e8df0f913e75732\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 641 1 0 \"45af02e8_d80e_4e37_a20ab9de2debbbf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 642 1 0 \"b4affe6a_e18b_4353_b1b3059ba4cd1e29\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 643 1 0 \"815b61dd_38eb_46a6_a9a22a6dd82daa7c\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 644 1 0 \"7133d0c0_1220_44ae_9d3a605289ce5b85\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 645 1 0 \"a593c055_4329_42a7_81de29bc66e4bee4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value > 0)\r\n{\r\n// }} \"\"\r\n// {{ 646 1 0 \"dbb27cbc_4039_492a_8337c1512f191420\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 647 1 0 \"8c5f738a_51e0_4fa1_99408199950e4266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat12(Translate(\"SELECT * FROM SORT WHERE \"), restriction1, Translate(\" \"), used_exclusion, Translate(\" \"), order_by, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 648 1 0 \"7babd096_d48e_4754_890a786a1e9db498\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", val2, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 649 1 0 \"c031bc0b_a179_4961_ac760c5f5946e812\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfile_index = 0;\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\nfile_index = file_index + 1;\r\n// }} \"\"\r\n// {{ 650 1 0 \"a126e1b0_4415_4144_8080e54989aad5a1\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 651 1 0 \"0f59b9cb_2f52_4fb9_99949e1b24b5c58a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Sort_for_Channel_Raster == 0)\r\n{\r\n// }} \"\"\r\n// {{ 652 1 0 \"01d9ef52_6f7e_4f47_a3ec6d1735764973\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 653 1 0 \"0f59b9cb_2f52_4fb9_99949e1b24b5c58a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 654 1 0 \"f39db529_5de1_4125_aee5d24d559b8c0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (x1 != prev_x_coord)\r\n{\r\n// }} \"\"\r\n// {{ 655 1 0 \"41447ce1_9eb3_46af_84053a6fa0fa83ca\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 656 1 0 \"f39db529_5de1_4125_aee5d24d559b8c0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 657 1 0 \"6056913d_e22f_4e59_85cc74a6e8c56ae1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (y1 <= prev_y_coord)\r\n{\r\n// }} \"\"\r\n// {{ 658 1 0 \"65fb5b25_8fcb_44f9_abe59692efc1ba89\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 659 1 0 \"6056913d_e22f_4e59_85cc74a6e8c56ae1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 660 1 0 \"c031bc0b_a179_4961_ac760c5f5946e812\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 661 1 0 \"023d982f_a3af_47c0_aab3e201509c96e2\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n\r\nif(val_type2 == 1) val2 = FVal(val2);\r\nelse if(val_type2 == 2) val2 = IVal(val2); \r\n// {{{ 663 1 0 \"d6fc3bca_32f7_4570_be4ddc20a24f2e48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 664 1 0 \"78d6bc38_adaa_4050_91e59d1bd2313637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1);\r\n// }} \"\"\r\n// {{ 665 1 0 \"193341f5_c547_4bcf_9fef2913bb9b5fb3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array.SetAt(channel_number-1, val1);\r\n// }} \"\"\r\n// {{ 666 1 0 \"1064866d_97d2_4cd9_8a37c78815ff32ae\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array2.SetAt(channel_number-1, val2);\r\n// }} \"\"\r\n// {{ 667 1 0 \"b44bedac_ae84_4061_a0148b3316f63b59\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_line_numbers.AddAsLast(line_number);\r\n// }} \"\"\r\n// {{ 668 1 0 \"d15053b7_e804_4b0b_acfbf02ad2cdf9a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = x1;\r\n// }} \"\"\r\n// {{ 669 1 0 \"ff861218_98ff_41fb_9113fd2dd34b4066\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = y1;\r\n// }} \"\"\r\n// {{ 670 1 0 \"a593c055_4329_42a7_81de29bc66e4bee4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 671 1 0 \"4b0ff222_be5f_4fd8_8fe5ec9389c9ee1b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval1 = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 672 1 0 \"f89f3278_c0c1_4d93_9a2340e10046c634\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval2 = Translate(\"0\");\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n\r\nif(val_type2 == 1) val2 = FVal(val2);\r\nelse if(val_type2 == 2) val2 = IVal(val2); \r\n// {{ 674 1 0 \"6ec6e16b_5aee_4ff8_90ddd62ecf32955c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array.SetAt(channel_number-1, val1);\r\n// }} \"\"\r\n// {{ 675 1 0 \"8adb17aa_5cea_4f94_aa627a1af3aea7c3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array2.SetAt(channel_number-1, val2);\r\n// }} \"\"\r\n// {{ 676 1 0 \"a593c055_4329_42a7_81de29bc66e4bee4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 677 1 0 \"0e8200f0_cb10_409b_b33aa9c7bef7e2a4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 678 1 0 \"2408af48_9e2f_4a34_9620d119811f70c2\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 679 1 0 \"6a2f641d_a9e1_4659_a126ef5558409667\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 680 1 0 \"66bd359f_6b8e_4739_a5c3e742c67ee2ab\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 681 1 0 \"0c413658_8a74_4aba_b409fa607e1bb9ce\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = num_to_sort - num_used;\r\n// }} \"\"\r\n// {{ 682 1 0 \"7c212616_7a75_4eba_b39dd91f48fb7c67\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 683 1 0 \"b45dd088_b48a_4ba4_87c2eb037078de73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"**********************************  The remaining positions are out of reach for the selected channels!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 684 1 0 \"8acf957f_8199_471d_aed754fb80b4d24b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"The remaining positions are out of reach for all the selected channels!!!!\"));\r\n// }} \"\"\r\n// {{ 685 1 0 \"7c212616_7a75_4eba_b39dd91f48fb7c67\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 686 1 0 \"e45c4c71_8256_4888_a8d9ce2113de8d15\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(Translate(\"LINE_NUMBER IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 687 1 0 \"9804db64_3a65_4674_a2abc63f2ab67d68\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 688 1 0 \"0442fa8a_b68b_43e7_bf4da84667f95855\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 689 1 0 \"2f540f0e_0f29_4db9_bc2f91fdd3c13b20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 690 1 0 \"9f5f7cee_e618_40a4_82d6b990b3767429\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 691 1 0 \"2f540f0e_0f29_4db9_bc2f91fdd3c13b20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 692 1 0 \"a1ca5ce1_a156_4b4d_ac466aa9e32f0c26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, line_number);\r\n// }} \"\"\r\n// {{ 693 1 0 \"9804db64_3a65_4674_a2abc63f2ab67d68\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 694 1 0 \"cb9793aa_157c_48cd_8fc75b742ac8d144\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 695 1 0 \"ba6bbb5e_bf20_4b17_adad03cac884ec39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nupdate_sql = StrConcat4(Translate(\"UPDATE SORT SET STATUS = 'DONE' WHERE \"), in_group, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 696 1 0 \"52fc2921_035c_469f_8b4b009a1381b3f6\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Update_FIle.Open(sort_file + \" \" + \"SORT\", hslRead, update_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 697 1 0 \"7058df4e_04d2_4951_955d073d6fed4d66\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Update_FIle.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nUpdate_FIle.RemoveFields();\r\n// }} \"\"\r\n// {{ 698 1 0 \"e69c3cae_941b_4704_84f18489b64a30b8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 699 1 0 \"1f1ab101_416d_42ad_b105f29f2e80e3ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat2(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 700 1 0 \"0b1e503e_fb8a_4690_bfb2fb6a297cea08\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 701 1 0 \"6b106eed_a12a_4220_9a8be1344d2d9e17\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 702 1 0 \"1b66442e_b6b6_4073_9749add78ee57902\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 703 1 0 \"c8f5284a_c4c2_49de_bac7261914229c9d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = count_value;\r\n// }} \"\"\r\n// {{ 704 1 0 \"0f29b6a2_3ead_4727_87d4f6992b3a5df8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"773b1ee3_8d1d_42c0_b933c32c30a7618f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{ 706 1 0 \"76c501c8_c205_4167_93f0b08d793c1fda\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nio_Array_of_Variables.SetSize(0);\r\n// }} \"\"\r\n// {{ 707 1 0 \"9dedfee4_257e_4f83_a716f6c70cb5291c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nio_Array_of_Variables2.SetSize(0);\r\n// }} \"\"\r\n// {{ 708 1 0 \"0f29b6a2_3ead_4727_87d4f6992b3a5df8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 709 1 0 \"962f485d_144b_4072_9e912f5d5b105b7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat2(Translate(\"SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 710 1 0 \"194f50dd_2455_46cd_af820377a7a3e237\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq1);\r\n// }} \"\"\r\n// {{ 711 1 0 \"0f3e6e06_29cb_4ab2_917cb28f7f323224\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_temp_array1.SetSize(0);\r\n// }} \"\"\r\n// {{ 712 1 0 \"51aacaba_076c_4ba3_982f69d81c66db97\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_temp_array2.SetSize(0);\r\n// }} \"\"\r\n// {{ 713 1 0 \"baef4e50_532a_4fd0_898f82276f56c203\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", not_used, hslString, 255);\r\nSort_File.AddField(\"POS2\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", val2, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", not_used, hslString, 255);\r\nSort_File.AddField(\"Y2\", not_used, hslString, 255);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"9be0ffc5_acaf_4ad5_bff935a5d177cea7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 715 1 0 \"69edf095_77ee_429a_9e38823221c13310\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n\r\nif(val_type2 == 1) val2 = FVal(val2);\r\nelse if(val_type2 == 2) val2 = IVal(val2); \r\n// {{ 717 1 0 \"ba0c6dc8_e603_48aa_abfd961ccac7b0a4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_temp_array1.AddAsLast(val1);\r\n// }} \"\"\r\n// {{ 718 1 0 \"621a8818_739e_4349_a2929676376f706b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_temp_array2.AddAsLast(val2);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"ff824449_7774_4403_b7bb19cb86df7eba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq1, lab1, pos1);\r\n// }} \"\"\r\n// {{ 720 1 0 \"9be0ffc5_acaf_4ad5_bff935a5d177cea7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 721 1 0 \"1f74037a_3f44_4874_9a3463e0e83e07e8\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 722 1 0 \"ba880904_76a8_42cc_850dd57a926cbd75\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq1.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"cf616d79_c09a_4eb3_9fd3799835b8e6ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort, temp_seq1);\r\n// }} \"\"\r\n// {{ 724 1 0 \"a41d5add_2967_4d98_a703cb2cce36153f\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\nio_Array_of_Variables=arr_temp_array1;\r\n// }} \"\"\r\n// {{ 725 1 0 \"892a25fc_a536_41cd_8423258fb814099e\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\nio_Array_of_Variables2=arr_temp_array2;\r\n// }} \"\"\r\n// {{ 726 1 0 \"0f29b6a2_3ead_4727_87d4f6992b3a5df8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 727 1 0 \"db3b2161_6abf_434d_88291363ab3d3388\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 729 1 0 \"db3b2161_6abf_434d_88291363ab3d3388\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 730 1 0 \"53234bf3_5273_4351_a2ae7e869a0adfd3\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort1Sequence2Arrays\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort2Sequences\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable channel_raster;\r\nprivate variable status;\r\nprivate variable used_exclusion;\r\nprivate variable num_to_sort;\r\nprivate variable in_group;\r\nprivate variable pos1;\r\nprivate variable pos2;\r\nprivate variable num_used;\r\nprivate variable restriction_raster;\r\nprivate variable in_index;\r\nprivate variable y_min;\r\nprivate variable num_to_sort2;\r\nprivate variable update_sql;\r\nprivate variable y_max;\r\nprivate variable ret_Number_Remaining;\r\nprivate variable value_equal;\r\nprivate variable num_labhand_channels;\r\nprivate variable total_channels;\r\nprivate variable sequence_name2;\r\nprivate variable file_index;\r\nprivate variable restriction1;\r\nprivate variable null;\r\nprivate variable not_used;\r\nprivate variable restriction2;\r\nprivate variable lab1;\r\nprivate variable sort_file;\r\nprivate variable lab2;\r\nprivate variable prev_x_coord;\r\nprivate variable num_1mL_channels;\r\nprivate variable filter_sql;\r\nprivate variable prev_y_coord;\r\nprivate variable count_sql;\r\nprivate variable order_by;\r\nprivate variable num_5mL_channels;\r\nprivate variable channel_number;\r\nprivate variable y1;\r\nprivate variable count_value;\r\nprivate variable y2;\r\nprivate variable x1;\r\nprivate variable x2;\r\nprivate variable line_number;\r\nprivate variable sequence_name;\r\nprivate sequence temp_seq1;\r\nprivate sequence temp_seq2;\r\nprivate file Count_Available;\r\nprivate file Update_FIle;\r\nprivate file Sort_File;\r\nprivate variable arr_Y_Min[];\r\nprivate variable arr_Y_Max[];\r\nprivate variable arr_line_numbers[];\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable bool_FileExists;\r\nprivate variable int_Count;\r\n// {{ 5 \"CHAN_ACCESS_Sort2Sequences\" \"InitLocals\"\r\n{ sequence __temp; o_Sorted_Sequence = __temp; }\r\n{ sequence __temp; o_Sorted_Sequence2 = __temp; }\r\no_Channel_Pattern = 0;\r\n// }} \"\"\r\n// {{ 732 1 0 \"56048c9f_01f6_4299_80b85888fb7157dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 733 1 0 \"6a02fc8a_d94c_4849_97a835b68b2776ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 735 1 0 \"44188243_f9d4_440b_992eeb9923e3253e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 736 1 0 \"b45d35ae_0637_4b96_899780ad539d9305\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 737 1 0 \"409413e0_08c6_4259_94352885e394ff65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 738 1 0 \"2eedec2e_716f_424b_838cf160d1de27fa\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 739 1 0 \"e0e89933_5283_4e8d_b5a82389e2ae2820\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 741 1 0 \"56048c9f_01f6_4299_80b85888fb7157dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 742 1 0 \"cfd4a7cf_de37_4582_af31669db49fac7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 743 1 0 \"c53f0541_8f64_4eec_8a3a188f148b713f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 744 1 0 \"ef64f7cc_b6bd_4cd5_acf4564bf8816311\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 745 1 0 \"cf89696d_bf02_4edb_bc4c72789e535700\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 746 1 0 \"ab995c26_f9cf_4722_9d205d94bfed1043\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 747 1 0 \"c4ca04bf_3795_4d20_ad0453f712f05f96\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"3025841d_eb9f_450f_a2bad133a89d629d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrConcat2(i_Channel_Type, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 749 1 0 \"4b3e3142_1245_4c67_83842ab2d9bf2b2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrIVal(i_Channel_Type);\r\n// }} \"\"\r\n// {{ 750 1 0 \"4c0991d1_fc00_4889_8c2bc80f9f4c9d95\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type < 0)\r\n{\r\n// }} \"\"\r\n// {{{ 751 1 0 \"ee99e0c7_1979_4ebc_ae068df2d8a134b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 752 1 0 \"d5ec531a_72ce_4613_adf3df6d177e1529\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 753 1 0 \"4c0991d1_fc00_4889_8c2bc80f9f4c9d95\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 754 1 0 \"bc1356dc_0a8e_46b2_9a54cb72817a8970\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 755 1 0 \"3e5f2709_9b70_4c3b_a28105f8eb9ea02a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 756 1 0 \"be3e9c00_6338_4a7b_a34e14ec7e414add\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 757 1 0 \"bc1356dc_0a8e_46b2_9a54cb72817a8970\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 758 1 0 \"ae448151_f498_4161_9e9900070732c07a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 759 1 0 \"bfada038_80d5_44cb_a80999599ac404ab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_1mL_channels;\r\n// }} \"\"\r\n// {{ 760 1 0 \"ae448151_f498_4161_9e9900070732c07a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 761 1 0 \"b3ef8a2b_9bdc_456b_ac222eb46a41b149\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 762 1 0 \"d6791503_4d25_4f92_adafbb43ff57061d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_5mL_channels;\r\n// }} \"\"\r\n// {{ 763 1 0 \"b3ef8a2b_9bdc_456b_ac222eb46a41b149\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 764 1 0 \"b12db044_46c4_469b_a4943d945bc5fedc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 765 1 0 \"62030388_d4c0_4b9f_b943ff362d0dafae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_labhand_channels;\r\n// }} \"\"\r\n// {{ 766 1 0 \"b12db044_46c4_469b_a4943d945bc5fedc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 767 1 0 \"c53f0541_8f64_4eec_8a3a188f148b713f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 768 1 0 \"ec61b074_68a6_4a72_825dd5c319a947eb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 769 1 0 \"73e6d3c0_95b6_45d3_a7f905237d0a5186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Channel_Pattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 770 1 0 \"ff1b3919_8499_4d5c_95895738dfecf4f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (total_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 771 1 0 \"b140c42c_44dc_472a_9d4c08f6cb352fdb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 772 1 0 \"11f2c63b_5b0f_490b_8966766c3f990e2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 773 1 0 \"d6ceb756_e01d_491b_af9bf76ab171eacd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 774 1 0 \"b140c42c_44dc_472a_9d4c08f6cb352fdb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 775 1 0 \"0288d38d_293b_42d2_bfbcf4a586ee844f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 776 1 0 \"04daef15_0559_45b5_85104bdb06402b75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 5 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 777 1 0 \"96cbc5da_5e73_4b8b_98dbe17643aba2dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 5 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 778 1 0 \"0288d38d_293b_42d2_bfbcf4a586ee844f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 779 1 0 \"f6c13aed_323b_45ef_9f8261b6817bd15e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 780 1 0 \"ffd18b04_f6da_41fc_be2c9c72bf69018f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no Lab Handler channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 781 1 0 \"b78ab301_fc6f_4690_8a14ef0866241b25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No Lab Handler channels installed!!\"));\r\n// }} \"\"\r\n// {{ 782 1 0 \"f6c13aed_323b_45ef_9f8261b6817bd15e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 783 1 0 \"ff1b3919_8499_4d5c_95895738dfecf4f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 784 1 0 \"bf5058b5_7da4_4ba3_9ffbf9f1614ddc72\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"ee4db105_d58a_4330_b27b86c75adffb4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"a3a29f43_48dd_469d_be3a236947001e4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"953929a3_7d9f_467b_a7ab2fb3609dc86b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrConcat2(i_Max_Channel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 788 1 0 \"85cc649a_ad10_46a9_ad87a17d97810789\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrIVal(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 789 1 0 \"d9326954_22a4_4113_aa18ab195ef6bd32\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 790 1 0 \"e5e6e5b1_fa3d_424c_a19f1aa05f9fbb55\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 791 1 0 \"d9326954_22a4_4113_aa18ab195ef6bd32\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 792 1 0 \"f2e7bf54_9c8b_4a67_a66388c3cb48b30a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel > total_channels)\r\n{\r\n// }} \"\"\r\n// {{ 793 1 0 \"46723988_2183_480b_9a6763a9d007e276\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 794 1 0 \"f2e7bf54_9c8b_4a67_a66388c3cb48b30a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 795 1 0 \"2b88fe7e_bfc6_4f6f_9106b29f1058771a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = 0;\r\n// }} \"\"\r\n// {{{ 796 1 0 \"b1649732_fb6d_4644_9395930717ed1b25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"61ba12e1_7f51_418e_b3e5f832dce6cea9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence2);\r\n// }} \"\"\r\n// {{ 798 1 0 \"237663b0_493b_4416_9cd4c979fade6905\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 799 1 0 \"6f057986_7b25_4574_9e7596c7313ab4bf\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_PIP_COM_YMax;\r\n// }} \"\"\r\n// {{ 800 1 0 \"2da33b9a_336c_437c_ac2dbc7ba70bcb7c\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_PIP_COM_YMin;\r\n// }} \"\"\r\n// {{ 801 1 0 \"0d576b93_ade1_4ef7_8a5fab477fb0fa4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{ 802 1 0 \"237663b0_493b_4416_9cd4c979fade6905\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 803 1 0 \"a253cd6c_163f_44f1_931a7fa163b58bf4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 804 1 0 \"a739e638_5029_490a_82a7859b2305f966\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_XL_COM_YMax;\r\n// }} \"\"\r\n// {{ 805 1 0 \"a1efdf23_e333_4172_acaff19513a82779\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_XL_COM_YMin;\r\n// }} \"\"\r\n// {{ 806 1 0 \"db364570_5d8f_41f0_b6c3e7f12af839a6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_XL_COM_Raster;\r\n// }} \"\"\r\n// {{ 807 1 0 \"a253cd6c_163f_44f1_931a7fa163b58bf4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 808 1 0 \"80db1fce_3e50_463e_a5106763820ffc89\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 809 1 0 \"ed5c1da8_e54d_45fb_9cb45208f0034c60\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster);\r\n// }} \"\"\r\n// {{ 810 1 0 \"80db1fce_3e50_463e_a5106763820ffc89\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 811 1 0 \"9d1b3e1a_3627_4d72_a6d81d3cd1f2c702\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 812 1 0 \"d9472adb_776b_43ba_bff0607d78490256\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(sort_file);\r\n// }} \"\"\r\n// {{{ 813 1 0 \"f0849845_44e3_42ac_9cad180b0560d8f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(sort_file);\r\n// }} \"\"\r\n// {{ 814 1 0 \"cc94b1ff_0ab8_40d3_b678e578f6ffea7a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 815 1 0 \"60a71f28_1856_4264_a3cd535715b05abb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(sort_file);\r\n// }} \"\"\r\n// {{ 816 1 0 \"cc94b1ff_0ab8_40d3_b678e578f6ffea7a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 817 1 0 \"5283a301_5b6d_4278_ba33fe69acba4370\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort = SeqGetTotal(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"1cf51280_19c7_4394_9418ced0373aaf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort2 = SeqGetTotal(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 819 1 0 \"7b6db7c2_6053_46ce_aad1554d43fb3a4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name = SeqGetName(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 820 1 0 \"e34a9939_070b_404e_a696270d4c2da8ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name2 = SeqGetName(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{ 821 1 0 \"3d315e3f_71c1_4da2_ab259a183234f61d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nvalue_equal = 0;\r\n// }} \"\"\r\nif(num_to_sort == num_to_sort2) value_equal = 1;\r\n// {{ 823 1 0 \"3a27ce8f_1abd_4c1e_95527347ffc4ab4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_to_sort == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 824 1 0 \"4b875c86_3002_47a6_94ee31a5b349c45a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{ 825 1 0 \"3a27ce8f_1abd_4c1e_95527347ffc4ab4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"f23af82c_fcae_48f1_b258ce7401cfb1b0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (value_equal == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 827 1 0 \"3983cf81_e75a_4e1c_9250886b11386593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"##############  SEQUENCES DO NOT HAVE THE SAME NUMBER OF POSITIONS.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 828 1 0 \"286df1c2_8da9_4f3a_ba6113ba0ca861ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Sequences do not have the same number of positions.\"));\r\n// }} \"\"\r\n// {{{ 829 1 0 \"02fbb52d_f04d_4afa_929abb493eb4835f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{ 830 1 0 \"f23af82c_fcae_48f1_b258ce7401cfb1b0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 831 1 0 \"5243c674_7b61_4f15_99049d8c8a0e1780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 832 1 0 \"c8361870_0779_41a1_bdee59f839be71a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 833 1 0 \"450b9dd3_f2b6_4cba_958aa8312120dd2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"           Sequence to Sort:  \"), sequence_name, Translate(\"     Second Sequence to Sort:  \"), sequence_name2);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"3028dd69_9093_432f_a885ded31df56d2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Number of Positions in Sequence:  \"), num_to_sort);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"bbcec75c_f514_4173_a88be21d3aa023e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by Labware:  \"), i_Sort_by_Labware);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"12b44670_986a_4b96_9205a484673519ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by XY:  \"), i_Sort_by_XY);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"98f08005_202e_4503_a7cc86b65ba4c7aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort for Channel Raster:  \"), i_Sort_for_Channel_Raster);\r\n// }} \"\"\r\n// {{{ 838 1 0 \"3a62351c_833d_425e_b1910659693ff8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Channel Raster:  \"), channel_raster);\r\n// }} \"\"\r\n// {{{ 839 1 0 \"219e2a93_ed79_4e9a_ada43ff6b5d25647\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Maximum Channel:  \"), i_Max_Channel);\r\n// }} \"\"\r\nif(i_Channel_Type == 0) Trace(\"           Channel Type:  1 mL\");\r\nelse if(i_Channel_Type == 1) Trace(\"           Channel Type:  5 mL\");\r\nelse if(i_Channel_Type == 2) Trace(\"           Channel Type:  Labware Handler\");\r\n// {{{ 841 1 0 \"125582c8_203f_4b2d_9ad674bc077b0745\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 842 1 0 \"485e1c78_e818_4693_9b01f3e5b0fe043f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 843 1 0 \"b4e41c1d_6147_4b10_90b45cb63852b6b3\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 844 1 0 \"eee3e7da_e7bd_4a7b_85801ebff6e1677f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnot_used = Translate(\"-----\");\r\n// }} \"\"\r\n// {{ 845 1 0 \"e62fe0ed_a277_4a5a_ad7fef1d3518d395\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstatus = Translate(\"NOT_DONE\");\r\n// }} \"\"\r\n// {{ 846 1 0 \"e24c9df0_d448_49ae_b91d361b8a29f7c4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(line_number = 0; line_number < num_to_sort;)\r\n{\r\nline_number = line_number + 1;\r\n// }} \"\"\r\n// {{ 847 1 0 \"5db078db_10ff_4df5_a03443e5363e6904\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{ 848 1 0 \"d3d86169_31dc_4c7c_9752338b3bd18d16\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort2.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{{ 849 1 0 \"e381f20f_0bbb_4428_9c945432bd84362c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab1 = SeqGetLabwareId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 850 1 0 \"3de066c7_dbfe_4f46_99db5a468ea50e7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos1 = SeqGetPositionId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 851 1 0 \"742aecec_a7c8_49d4_8d11c00e86826630\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab2 = SeqGetLabwareId(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 852 1 0 \"c2cb4905_e00b_4310_94dcdfa33ab3213c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos2 = SeqGetPositionId(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"bf0c14b3_fee5_45d9_b31cc5fd35f7b280\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"e33276f8_9403_40a4_ae86353ec28f0cd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab2, pos2, x2, y2, null, null);\r\n// }} \"\"\r\n// {{ 855 1 0 \"9941f41e_60cd_4064_a8541fd412fc6c62\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 856 1 0 \"e24c9df0_d448_49ae_b91d361b8a29f7c4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 857 1 0 \"281adab9_e115_4156_9e78e820f3a712fd\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 858 1 0 \"daf8c216_f99d_4de1_b474674aa853dfaf\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_line_numbers.SetSize(0);\r\n// }} \"\"\r\n// {{ 859 1 0 \"05de3679_46dd_45b4_a42067fb3e7e898a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 860 1 0 \"46fe52a3_60fc_4b3d_8fd71c7a3584809c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = 999.0;\r\n// }} \"\"\r\n// {{ 861 1 0 \"5c42a6e6_e283_4d2d_9e054ab57c49e47a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(channel_number = 0; channel_number < i_Max_Channel;)\r\n{\r\nchannel_number = channel_number + 1;\r\n// }} \"\"\r\n// {{ 862 1 0 \"434646d9_5e9c_4012_acfdb0855167d090\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = prev_y_coord - channel_raster;\r\n// }} \"\"\r\n// {{{ 863 1 0 \"ce7730ca_44bf_45a1_867679d7b6271383\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction_raster = StrConcat8(Translate(\"AND (X1\"), Translate(\" = \"), prev_x_coord, Translate(\" AND \"), Translate(\"Y1\"), Translate(\" <= \"), prev_y_coord, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 864 1 0 \"1c47f5ed_bf1c_46bd_a7ef41f68719ec42\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 865 1 0 \"5678448b_2486_48d5_aa8b021c9f3e45ea\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_max=arr_Y_Max.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{ 866 1 0 \"7ef78f8d_3ef5_416e_af47a0e91c2cfe39\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_min=arr_Y_Min.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{{ 867 1 0 \"40062975_148f_469f_ba996c0fef3fa09a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction1 = StrConcat8(Translate(\"(Y1 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y1 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 868 1 0 \"d0dc22af_609e_4560_b7e6bda5abae8cd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction2 = StrConcat8(Translate(\"(Y2 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y2 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 869 1 0 \"c0c6055d_95c0_4cdc_b78180a863aaf000\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 870 1 0 \"76b61d70_07ad_4561_833e31697f72b997\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 871 1 0 \"dfef20b3_1a1c_4aa7_92f655ce841cae69\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{ 872 1 0 \"d9d91472_b53d_4b31_ae8d17954ccdc0ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nused_exclusion = Translate(\"\");\r\n// }} \"\"\r\n// {{ 873 1 0 \"dfef20b3_1a1c_4aa7_92f655ce841cae69\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 874 1 0 \"0b292a8e_49df_494d_8327008c82ba339d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(Translate(\"AND LINE_NUMBER NOT IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 875 1 0 \"1d80629a_f902_4927_8f2b37e79fd920cc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 876 1 0 \"4d97fb86_88d4_4740_97df085419560071\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 877 1 0 \"468b3e54_8c75_44ab_8a12b9166e6b1ea5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 878 1 0 \"393744ae_1c31_4097_b3709b0393096c88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 879 1 0 \"468b3e54_8c75_44ab_8a12b9166e6b1ea5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 880 1 0 \"43c8c5e7_04ea_4380_ae0a543792960c7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, line_number);\r\n// }} \"\"\r\n// {{ 881 1 0 \"1d80629a_f902_4927_8f2b37e79fd920cc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 882 1 0 \"9583371c_0da8_48da_8b9b4d4c8017521a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 883 1 0 \"dfef20b3_1a1c_4aa7_92f655ce841cae69\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 884 1 0 \"71303df3_c8e0_4784_8881b56d2a7dfed2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 885 1 0 \"d861cbb3_973d_48e9_9f86833d66f20f7d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\norder_by = Translate(\"\");\r\n// }} \"\"\r\nif(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, X1 ASC, Y1 DESC\";\r\n}\r\nelse if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, LINE_NUMBER ASC\";\r\n}\r\nelse if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY X1 ASC, Y1 DESC\";\r\n}\r\nelse \r\n{\r\n   order_by = \"ORDER BY LINE_NUMBER ASC\";\r\n}\r\n// {{ 887 1 0 \"22179ca2_8c47_4fcb_8b6d5dca5de81edc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 888 1 0 \"9f1b6a2d_ecf4_4ab1_8e3190f6af3e096b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), restriction_raster);\r\n// }} \"\"\r\n// {{ 889 1 0 \"c4b6bb90_9fba_4cca_8b57f79cb9264f77\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 890 1 0 \"f7708e97_4eef_4e75_accd19eb14a366ef\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 891 1 0 \"fbf101f1_367b_46fd_b1ba42936234131f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 892 1 0 \"08f0304c_a90f_4e9d_948acf938ed47565\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{ 893 1 0 \"05a9472b_1a52_420e_93729578bd797d30\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 894 1 0 \"08f0304c_a90f_4e9d_948acf938ed47565\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 895 1 0 \"3e34ae34_79b5_4e60_abee0f97115cf38d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 896 1 0 \"f876479a_4fd8_43bc_83d3cc28450b31f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 897 1 0 \"129a7091_7819_4747_a4ba71964d6ad18f\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 898 1 0 \"fcaf3ce3_04d8_47fd_a70bdfda4550a0a7\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 899 1 0 \"f0e58c0c_6ddd_42cf_a499eb574dec95eb\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 900 1 0 \"f48cdf1b_2596_4821_8d6b2dac858511cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value > 0)\r\n{\r\n// }} \"\"\r\n// {{ 901 1 0 \"b9fdf0f3_9c53_414d_a6ed39e2694ed5a5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 902 1 0 \"02aa6d6f_9e86_4b94_889dabd5a39f5815\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat12(Translate(\"SELECT * FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\" \"), used_exclusion, Translate(\" \"), order_by);\r\n// }} \"\"\r\n// {{ 903 1 0 \"c2aa44f2_d009_4a9e_83647b9b3d6b2979\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 904 1 0 \"7882f0d9_65eb_426d_8bafb856a5be1281\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfile_index = 0;\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\nfile_index = file_index + 1;\r\n// }} \"\"\r\n// {{ 905 1 0 \"6e42a157_6498_48a9_a8049d1f23806164\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 906 1 0 \"e30d9310_2685_4d99_b26957ec25ad2b0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Sort_for_Channel_Raster == 0)\r\n{\r\n// }} \"\"\r\n// {{ 907 1 0 \"6ee94b1e_0502_4138_a3410d879b4e428d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 908 1 0 \"e30d9310_2685_4d99_b26957ec25ad2b0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 909 1 0 \"a7f8232d_cc00_4880_a7ea622e37c85978\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (x1 != prev_x_coord)\r\n{\r\n// }} \"\"\r\n// {{ 910 1 0 \"73c27af6_bcc7_4403_a18ac4716710dd3d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 911 1 0 \"a7f8232d_cc00_4880_a7ea622e37c85978\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 912 1 0 \"62353529_271c_4f69_8aba96546b67d1f6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (y1 <= prev_y_coord)\r\n{\r\n// }} \"\"\r\n// {{ 913 1 0 \"1c98b0a1_2d3f_4a07_a747087fa699bd4a\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 914 1 0 \"62353529_271c_4f69_8aba96546b67d1f6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 915 1 0 \"7882f0d9_65eb_426d_8bafb856a5be1281\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 916 1 0 \"080927be_dbae_47c1_b2642ee113a69626\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{{ 917 1 0 \"4e8a4b35_1859_413c_a797ff35980c2387\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 918 1 0 \"bfa0a541_cda3_47d5_8964cd88f209ab75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence2, lab2, pos2);\r\n// }} \"\"\r\n// {{{ 919 1 0 \"9ed7647c_f9d4_43e9_ae4c17f8938949dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1);\r\n// }} \"\"\r\n// {{ 920 1 0 \"f756f0f5_8f2f_46f7_80d365d2979c35b4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_line_numbers.AddAsLast(line_number);\r\n// }} \"\"\r\n// {{ 921 1 0 \"32c7489b_2f40_4e36_918a15b7a4ada438\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = x1;\r\n// }} \"\"\r\n// {{ 922 1 0 \"0771a0b9_6c0b_496d_a0fc09b50e8bf012\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = y1;\r\n// }} \"\"\r\n// {{ 923 1 0 \"f48cdf1b_2596_4821_8d6b2dac858511cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 924 1 0 \"5c42a6e6_e283_4d2d_9e054ab57c49e47a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 925 1 0 \"c70d40c7_806b_4858_ada3ea1a5efc8115\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 926 1 0 \"d443a023_5368_4a3b_9d17cd43874d5a0a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence2.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 927 1 0 \"139a899b_8ade_403a_93413f5f49136638\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 928 1 0 \"06449385_c8f9_4caa_bc88eae3109c1f90\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 929 1 0 \"b4a587a3_736a_4521_a328a1b9b64df56d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = num_to_sort - num_used;\r\n// }} \"\"\r\n// {{ 930 1 0 \"e19b530c_0dff_48ac_80a29641d5ff410c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 931 1 0 \"5ab60e0c_6869_45cf_b02244dd5707a750\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"**********************************  The remaining positions are out of reach for the selected channels!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 932 1 0 \"d5f0d531_48a2_4af0_b8c2b65a13e3017c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"The remaining positions are out of reach for all the selected channels!!!!\"));\r\n// }} \"\"\r\n// {{ 933 1 0 \"e19b530c_0dff_48ac_80a29641d5ff410c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 934 1 0 \"1d0cb76d_6c82_4501_8658c19a48b78eb5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(Translate(\"LINE_NUMBER IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 935 1 0 \"1db7edb5_0fde_4b4c_ae47de6749089c2e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 936 1 0 \"0baef3ce_613b_4e9f_bc02fafcafc79174\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 937 1 0 \"3f5cfec8_eab3_459d_9e806ce5be144253\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 938 1 0 \"78819e75_2a58_457d_b316bba2b18965d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 939 1 0 \"3f5cfec8_eab3_459d_9e806ce5be144253\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 940 1 0 \"06ff7f60_9f54_4692_ac7c0936aeee842f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, line_number);\r\n// }} \"\"\r\n// {{ 941 1 0 \"1db7edb5_0fde_4b4c_ae47de6749089c2e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 942 1 0 \"ba2af7bd_c106_45d1_8eaa64d342fabe9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 943 1 0 \"ec6a7777_6ee5_4504_80e9d9b58b2e0cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nupdate_sql = StrConcat4(Translate(\"UPDATE SORT SET STATUS = 'DONE' WHERE \"), in_group, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 944 1 0 \"b0c3de17_47a5_42a2_b1253d2c74cf889d\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Update_FIle.Open(sort_file + \" \" + \"SORT\", hslRead, update_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 945 1 0 \"38a000f2_2766_4f2a_82c1922b52a9cdcd\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Update_FIle.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nUpdate_FIle.RemoveFields();\r\n// }} \"\"\r\n// {{ 946 1 0 \"45d05b03_c09e_492e_97fe1ad88673a39d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 947 1 0 \"79666003_dcc1_4d1a_88c9eea028435b91\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat2(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 948 1 0 \"e44f2e10_ed93_4e8f_90f3aa8b28b5dafd\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 949 1 0 \"fca869a0_fee8_4a34_91f2aace06a7e8c3\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 950 1 0 \"b3ef8df1_3fdb_4d64_a09fed108180cff1\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 951 1 0 \"a5d64f4e_7a05_485e_87429d7740d1afd6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = count_value;\r\n// }} \"\"\r\n// {{ 952 1 0 \"4c16932b_ffdc_42f7_aa20300afe712db7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 953 1 0 \"93ceeb6e_4c35_4f75_9936a678540eac38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"4ca9684a_49cb_41d7_b0b6c88f668a0604\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{ 955 1 0 \"4c16932b_ffdc_42f7_aa20300afe712db7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 956 1 0 \"27bf09be_052b_4a38_8dba9123d02757b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat2(Translate(\"SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 957 1 0 \"9b6514ed_0b64_450e_96b0f2850b4a958f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq1);\r\n// }} \"\"\r\n// {{{ 958 1 0 \"e051ac8e_c6d6_41b9_a95ac3d891f001cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq2);\r\n// }} \"\"\r\n// {{ 959 1 0 \"ab7b762e_bccb_411f_9c6fb636eeea5724\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", not_used, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 960 1 0 \"405b0654_32ed_4c34_8a6eb2505cde9ab5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 961 1 0 \"56556423_1bc0_4aed_827fe9a770951ef5\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 962 1 0 \"152cdf71_b24d_40da_82a10a8e523f629b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq1, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"369d6c27_127e_4fe8_91ef4365f759554c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq2, lab2, pos2);\r\n// }} \"\"\r\n// {{ 964 1 0 \"405b0654_32ed_4c34_8a6eb2505cde9ab5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 965 1 0 \"05408058_ffa2_4b6b_8ca2b4f94e19be5e\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 966 1 0 \"d9b0502f_ddba_4815_a8032d210ff32315\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq1.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 967 1 0 \"383a52cb_9ea9_4c62_b137018566581b3a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq2.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 968 1 0 \"3cb79c03_075d_41aa_b1242a9ecfd2222d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort, temp_seq1);\r\n// }} \"\"\r\n// {{{ 969 1 0 \"c899d938_1474_4a27_8f3c1201ebcb6403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort2, temp_seq2);\r\n// }} \"\"\r\n// {{ 970 1 0 \"4c16932b_ffdc_42f7_aa20300afe712db7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 971 1 0 \"63a09525_d512_444e_bfac0374d0426505\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 973 1 0 \"63a09525_d512_444e_bfac0374d0426505\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 974 1 0 \"76a45130_0459_4ce3_b574ad612bff03c0\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort2Sequences\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort2Sequences1Array\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable channel_raster;\r\nprivate variable status;\r\nprivate variable used_exclusion;\r\nprivate variable pos1;\r\nprivate variable in_group;\r\nprivate variable num_to_sort;\r\nprivate variable restriction_raster;\r\nprivate variable num_used;\r\nprivate variable pos2;\r\nprivate variable in_index;\r\nprivate variable y_min;\r\nprivate variable num_to_sort2;\r\nprivate variable update_sql;\r\nprivate variable y_max;\r\nprivate variable val1;\r\nprivate variable ret_Number_Remaining;\r\nprivate variable num_in_array;\r\nprivate variable value_equal;\r\nprivate variable num_labhand_channels;\r\nprivate variable sequence_name2;\r\nprivate variable total_channels;\r\nprivate variable file_index;\r\nprivate variable restriction1;\r\nprivate variable null;\r\nprivate variable restriction2;\r\nprivate variable not_used;\r\nprivate variable lab1;\r\nprivate variable sort_file;\r\nprivate variable lab2;\r\nprivate variable filter_sql;\r\nprivate variable count_sql;\r\nprivate variable num_1mL_channels;\r\nprivate variable prev_y_coord;\r\nprivate variable prev_x_coord;\r\nprivate variable order_by;\r\nprivate variable num_5mL_channels;\r\nprivate variable is_string;\r\nprivate variable count_value;\r\nprivate variable val_type1;\r\nprivate variable y1;\r\nprivate variable channel_number;\r\nprivate variable y2;\r\nprivate variable x1;\r\nprivate variable is_integer;\r\nprivate variable x2;\r\nprivate variable line_number;\r\nprivate variable sequence_name;\r\nprivate variable is_float;\r\nprivate sequence temp_seq1;\r\nprivate sequence temp_seq2;\r\nprivate file Count_Available;\r\nprivate file Update_FIle;\r\nprivate file Sort_File;\r\nprivate variable arr_temp_array1[];\r\nprivate variable arr_Y_Min[];\r\nprivate variable arr_Y_Max[];\r\nprivate variable arr_line_numbers[];\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable bool_FileExists;\r\nprivate variable int_Count;\r\n// {{ 5 \"CHAN_ACCESS_Sort2Sequences1Array\" \"InitLocals\"\r\n{ sequence __temp; o_Sorted_Sequence = __temp; }\r\n{ sequence __temp; o_Sorted_Sequence2 = __temp; }\r\no_Sorted_Array.SetSize( 0);\r\no_Channel_Pattern = 0;\r\n// }} \"\"\r\n// {{ 976 1 0 \"f57f6b31_4cf8_4660_b3a9f4f217f4c7f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 977 1 0 \"8ccf9d2d_0c7b_4782_887f0b0673d43f11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 979 1 0 \"61b75823_8cc2_4314_80fdf86abcca1cb9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 980 1 0 \"8101c6fe_0b67_4dc6_b05df5b3e7af826c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 981 1 0 \"6db86073_be00_43c1_bf17eb37bfb21fd0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 982 1 0 \"c96420be_f013_47c0_9b2667eace8f2b45\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 983 1 0 \"8e099521_accf_47a4_82d9f837b2ecd744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 985 1 0 \"f57f6b31_4cf8_4660_b3a9f4f217f4c7f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 986 1 0 \"bc0b6ddf_91b4_4a82_80e3b20c790372b7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 987 1 0 \"f36c0800_6cb7_43c9_a775cc090ccedbf5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 988 1 0 \"ad046114_8c7c_4921_b6e66859558124c4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 989 1 0 \"37522b27_0c7e_4afa_a3ca5eb9e393240e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"aee83e04_a03c_4ee0_a68adda93506e214\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"6ce15483_4ad1_4afb_862e848f194defa4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"9bfee936_b18c_42b1_83f35ad816fe1e7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrConcat2(i_Channel_Type, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 993 1 0 \"e2732a65_d62e_439c_81ab39b155eeaad2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrIVal(i_Channel_Type);\r\n// }} \"\"\r\n// {{ 994 1 0 \"b957161a_4d81_482c_830e37bca6160800\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type < 0)\r\n{\r\n// }} \"\"\r\n// {{{ 995 1 0 \"9248f8c6_9fb0_415c_bcc31dfea9af7f25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 996 1 0 \"d82a236d_27a0_4a2b_bd41db25cf30d776\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 997 1 0 \"b957161a_4d81_482c_830e37bca6160800\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 998 1 0 \"8870bd98_7508_49c3_8ef41d118b597e01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 999 1 0 \"5ab92afb_9bfe_4cc0_b38f716fec86e080\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1000 1 0 \"6e2e67c9_e9f1_4aa5_929c3705b71b0886\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 1001 1 0 \"8870bd98_7508_49c3_8ef41d118b597e01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1002 1 0 \"d00caa78_053a_494a_841736e358456e3f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1003 1 0 \"29662209_7e0c_41d5_833c85cd2ca8ab94\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_1mL_channels;\r\n// }} \"\"\r\n// {{ 1004 1 0 \"d00caa78_053a_494a_841736e358456e3f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1005 1 0 \"be1009fb_f32f_4c5a_bdc89e0894596fe3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1006 1 0 \"30020bc0_8916_4df2_87d9b078a6d57599\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_5mL_channels;\r\n// }} \"\"\r\n// {{ 1007 1 0 \"be1009fb_f32f_4c5a_bdc89e0894596fe3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1008 1 0 \"fb078e4a_c14b_4fa7_b59e248cd2ccf461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 1009 1 0 \"ccbb948f_6918_4cde_906fb9ef7958498c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_labhand_channels;\r\n// }} \"\"\r\n// {{ 1010 1 0 \"fb078e4a_c14b_4fa7_b59e248cd2ccf461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1011 1 0 \"f36c0800_6cb7_43c9_a775cc090ccedbf5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1012 1 0 \"6c1db780_9bb9_41cf_b6e9382d0b24eac0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1013 1 0 \"6d483b25_96d3_4f77_a40d871d69df925d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Channel_Pattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1014 1 0 \"79b3af70_ff6c_4a35_b95b1d962b0374bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (total_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1015 1 0 \"9774c213_b406_42cb_831ae3351da10c17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"29c9affe_4139_4474_85537a234985d18c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"80512fbe_fbab_4268_b89c43e058ab2e3b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1018 1 0 \"9774c213_b406_42cb_831ae3351da10c17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1019 1 0 \"fc0b4b49_3725_4f62_b1d9ec7d95e63bf2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"fe6837c9_e6fe_4196_853021ee6715970f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 5 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"fd5ab874_8fd6_443c_a7e393e4185f14ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 5 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1022 1 0 \"fc0b4b49_3725_4f62_b1d9ec7d95e63bf2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1023 1 0 \"dccf0cab_4669_4eaa_a31e792b83cdbe98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1024 1 0 \"19fb8ce7_3f67_41e0_87a19258f3cf2735\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no Lab Handler channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"29bcef8c_37dd_4414_af67cf7d9a8bb420\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No Lab Handler channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1026 1 0 \"dccf0cab_4669_4eaa_a31e792b83cdbe98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1027 1 0 \"79b3af70_ff6c_4a35_b95b1d962b0374bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"91975aa4_f7ee_46f3_8e9de4e2956265f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"c1bddf1d_eb88_4969_b533ab2c7c7f70ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"9fff71ca_3068_4ab7_8a314d82950ff383\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0);\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"f0c7fb1a_4ce3_48b5_913ea902d65941d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrConcat2(i_Max_Channel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"ef1fe6b7_9a7d_4043_8d937f8aef3f270d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrIVal(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 1033 1 0 \"746bf271_50aa_44f3_bf12efac41ed774b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 1034 1 0 \"5bc82123_b2dd_49a5_996ce7862512549c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 1035 1 0 \"746bf271_50aa_44f3_bf12efac41ed774b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1036 1 0 \"d50b50aa_f4d4_487f_8e969ee46180ce6b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel > total_channels)\r\n{\r\n// }} \"\"\r\n// {{ 1037 1 0 \"7c04686a_a90a_4aea_ba23781212daac62\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 1038 1 0 \"d50b50aa_f4d4_487f_8e969ee46180ce6b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1039 1 0 \"f4345204_7811_40bc_b99f695313f6be8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = 0;\r\n// }} \"\"\r\n// {{{ 1040 1 0 \"783c974b_994f_4f7c_8ff36ad39f646d31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence);\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"e3a5442f_6e8c_4ad6_b7eac6aaa29c9100\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence2);\r\n// }} \"\"\r\n// {{ 1042 1 0 \"80a9b4f6_abb2_46fe_bbcb62b966540ede\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_Sorted_Array.SetSize(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 1043 1 0 \"de156c02_b9fa_4f11_904f43f62d6142e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1044 1 0 \"f031d828_3180_478f_a85f082f28108146\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_PIP_COM_YMax;\r\n// }} \"\"\r\n// {{ 1045 1 0 \"1a18de02_05f6_4c58_9e096ead22a5a37e\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_PIP_COM_YMin;\r\n// }} \"\"\r\n// {{ 1046 1 0 \"1d6711fb_be21_4b87_af7f93c14454d1b3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{ 1047 1 0 \"de156c02_b9fa_4f11_904f43f62d6142e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1048 1 0 \"ef854889_3110_4fbc_96eb2cc4a18b477d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1049 1 0 \"cd565ed0_ca84_4eb7_8be3caca7ab2baed\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_XL_COM_YMax;\r\n// }} \"\"\r\n// {{ 1050 1 0 \"3850d160_3717_4eed_825efee0154e5a02\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_XL_COM_YMin;\r\n// }} \"\"\r\n// {{ 1051 1 0 \"c27e8ad1_3582_4cee_a65d1af0a1ad60a1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_XL_COM_Raster;\r\n// }} \"\"\r\n// {{ 1052 1 0 \"ef854889_3110_4fbc_96eb2cc4a18b477d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1053 1 0 \"605f6f90_47b0_4615_9415021bdecad78e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"d083b56d_c4ff_48f3_902a7553e8e83837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster);\r\n// }} \"\"\r\n// {{ 1055 1 0 \"605f6f90_47b0_4615_9415021bdecad78e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1056 1 0 \"ea235d98_077a_4fc3_aab1ed1b7902dc5a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"797c23fa_96f5_4d8e_9e7a3e9d775851b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(sort_file);\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"e743c719_883d_4b9f_bb887c05a8cbb8fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(sort_file);\r\n// }} \"\"\r\n// {{ 1059 1 0 \"ea723d9b_553f_48e0_b5dc81ad8a91b033\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1060 1 0 \"b663953c_d341_46e9_9040bf15a8df1ca3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(sort_file);\r\n// }} \"\"\r\n// {{ 1061 1 0 \"ea723d9b_553f_48e0_b5dc81ad8a91b033\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"993d10ce_e5cc_4dc6_93877a5e04a7d27a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort = SeqGetTotal(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"e2107629_642f_4166_82fc758f4ec7b86a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort2 = SeqGetTotal(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"7e52bea4_c7f5_4ef4_9f9c7a5a7f3ce319\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name = SeqGetName(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"70804ea4_688d_4e7b_80985cd5bc34d517\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name2 = SeqGetName(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{ 1066 1 0 \"fec33be9_2744_4384_9913594099197eb4\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_in_array=io_Array_of_Variables.GetSize();\r\n// }} \"\"\r\n// {{ 1067 1 0 \"e41e1f02_a263_47cf_b906096fa3fe7845\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nvalue_equal = 0;\r\n// }} \"\"\r\nif(num_to_sort == num_in_array && num_to_sort == num_to_sort2) value_equal = 1;\r\n// {{ 1069 1 0 \"649119e1_d67a_4035_b780cb3a0cfea38b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_to_sort == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1070 1 0 \"1b2684f4_fa7e_4f06_b687020d1382c182\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{ 1071 1 0 \"649119e1_d67a_4035_b780cb3a0cfea38b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1072 1 0 \"9699c3d3_67ca_432d_8966c8706ccce7d3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (value_equal == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"17db9f18_4ff4_4914_a0a9aec304c9f69d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"##############  SEQUENCES AND ARRAY DO NOT HAVE THE SAME NUMBER OF POSITIONS.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"b454fcf6_6eb4_4442_85829c0ae8fae98c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Sequences and array do not have the same number of positions.\"));\r\n// }} \"\"\r\n// {{ 1075 1 0 \"9699c3d3_67ca_432d_8966c8706ccce7d3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1076 1 0 \"3dbad4fc_4ebb_4ee6_bcc7b43ef0d3b84e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"b0356b45_7966_43ed_8c285d072df548c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"b4ccc780_e053_451e_947a07c6a9c922de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"           Sequence to Sort:  \"), sequence_name, Translate(\"     Second Sequence to Sort:  \"), sequence_name2);\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"bda287cb_2c1a_44dd_b9a51458ebec8431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Number of Positions in Sequence:  \"), num_to_sort);\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"b2d4e5a5_9cac_444d_aef8f6f1bf0dea79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by Labware:  \"), i_Sort_by_Labware);\r\n// }} \"\"\r\n// {{{ 1081 1 0 \"dc76577f_c9b1_4d64_a033becc2cf8e850\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by XY:  \"), i_Sort_by_XY);\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"dc496c7d_acd5_4518_9e9f4ed82791f59a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort for Channel Raster:  \"), i_Sort_for_Channel_Raster);\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"02263a9b_0855_488e_bf4e44ee06eb2d50\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Channel Raster:  \"), channel_raster);\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"7886f9cb_e03a_47cc_b93043450d139dbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Maximum Channel:  \"), i_Max_Channel);\r\n// }} \"\"\r\nif(i_Channel_Type == 0) Trace(\"           Channel Type:  1 mL\");\r\nelse if(i_Channel_Type == 1) Trace(\"           Channel Type:  5 mL\");\r\nelse if(i_Channel_Type == 2) Trace(\"           Channel Type:  Labware Handler\");\r\n// {{{ 1086 1 0 \"936560ac_818a_428d_a61274092d626c7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1087 1 0 \"ab5f49a1_3a30_4920_b4153a3170916996\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"af35687a_c6e6_4bad_876c8e27daa9531d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_float = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"64bb9744_df9c_4f83_b8ad452cbaafd03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_integer = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"7a1f1fbf_22a2_4d9e_945369f7727d8c13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_string = HSLExtensions::Array::IsStringArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{ 1091 1 0 \"2695c76b_1e23_4b18_a4ab83851de72e17\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval_type1 = 0;\r\n// }} \"\"\r\nif(is_float == 1) val_type1 = 1;\r\nelse if(is_integer == 1) val_type1 = 2;\r\n// {{ 1093 1 0 \"8bb6ae81_09e8_4a0d_8bf5fb84255aad30\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1094 1 0 \"a82d841a_ae30_4d06_a1b8af558edf9f64\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1095 1 0 \"20606247_e15f_482b_aa62fa1407aa5f9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnot_used = Translate(\"-----\");\r\n// }} \"\"\r\n// {{ 1096 1 0 \"e3e0bf49_7365_4e09_a936ee8c3200127f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstatus = Translate(\"NOT_DONE\");\r\n// }} \"\"\r\n// {{ 1097 1 0 \"eb3931c8_f944_4c14_af01bb3a38ebdf06\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(line_number = 0; line_number < num_to_sort;)\r\n{\r\nline_number = line_number + 1;\r\n// }} \"\"\r\n// {{ 1098 1 0 \"1f42d01f_2f71_42fb_b1c4191a3a27816f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{ 1099 1 0 \"48976863_8161_477b_bda77f3b50d939e7\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort2.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"67926329_6b70_4063_a5eea28f906a3637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab1 = SeqGetLabwareId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"8aef6f58_ca96_4b11_b5a773eb3c3898c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos1 = SeqGetPositionId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"43e2eb4c_016d_460b_a88a3e3c85ce4baf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab2 = SeqGetLabwareId(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"e0268ee4_c01e_4abc_9d9c9bd7f2ba2056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos2 = SeqGetPositionId(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"b51bc0f1_8ef0_4736_80ba136a56b077dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"34270127_ae23_432a_b080b67b349063a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab2, pos2, x2, y2, null, null);\r\n// }} \"\"\r\n// {{ 1106 1 0 \"cbd086ec_dafd_44bb_9cb2a6794a2f9826\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval1=io_Array_of_Variables.GetAt(line_number-1);\r\n// }} \"\"\r\n// {{ 1107 1 0 \"ad0797ba_9782_46d7_b27b6442e3dd8807\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1108 1 0 \"eb3931c8_f944_4c14_af01bb3a38ebdf06\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1109 1 0 \"3677170f_fa76_4692_89db41f1eb2a4810\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 1110 1 0 \"1d45bfab_7ea2_4428_8e2ab86d420e4a50\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_line_numbers.SetSize(0);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"9845a95a_a032_4aec_96d86da26f174bb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 1112 1 0 \"2858cbd1_92af_4f99_bd14d6ed66bdffb5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = 999.0;\r\n// }} \"\"\r\n// {{ 1113 1 0 \"8aae9017_7ee1_4446_88a24b3229905d0a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(channel_number = 0; channel_number < i_Max_Channel;)\r\n{\r\nchannel_number = channel_number + 1;\r\n// }} \"\"\r\n// {{ 1114 1 0 \"2d2819e3_42b1_494a_a1dd3972f710a006\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = prev_y_coord - channel_raster;\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"63151a2b_c4f8_4616_9a50d0480ec72039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction_raster = StrConcat8(Translate(\"AND (X1\"), Translate(\" = \"), prev_x_coord, Translate(\" AND \"), Translate(\"Y1\"), Translate(\" <= \"), prev_y_coord, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 1116 1 0 \"95857976_fe14_465f_bc14c96ab35268a1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1117 1 0 \"07a12e40_432b_4b83_91edbd14cb075546\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_max=arr_Y_Max.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{ 1118 1 0 \"f9894c0b_29a8_46dc_a7e28624ce018607\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_min=arr_Y_Min.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"3843383f_1b60_4420_b4ba3b79f2ca6ba2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction1 = StrConcat8(Translate(\"(Y1 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y1 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"ccda9ff6_ddb6_4365_869810ff0da994b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction2 = StrConcat8(Translate(\"(Y2 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y2 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 1121 1 0 \"11a39da5_afee_4c12_99d36721c09eae65\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1122 1 0 \"2cca8815_9832_47a6_9dd130d9741e739f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 1123 1 0 \"a43607f9_d55f_426e_89b21428fda5d741\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1124 1 0 \"5f64db6a_0c04_4ccb_a8fee1e2a8894cae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nused_exclusion = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1125 1 0 \"a43607f9_d55f_426e_89b21428fda5d741\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"500b08c2_3aca_46b1_a9d86dfd13302234\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(Translate(\"AND LINE_NUMBER NOT IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1127 1 0 \"10098597_070e_4d54_8e4fb9800f940454\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 1128 1 0 \"1a0da0d8_47b2_472e_a461896098f0393a\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 1129 1 0 \"d9bb8e5e_0a9e_41c3_84efb7f95fe4af06\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"736870cf_d443_42dc_ba33c5ace6367f12\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 1131 1 0 \"d9bb8e5e_0a9e_41c3_84efb7f95fe4af06\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"a49e7669_125c_4784_9935c1c7b9ebfc30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, line_number);\r\n// }} \"\"\r\n// {{ 1133 1 0 \"10098597_070e_4d54_8e4fb9800f940454\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"02984ed6_3a15_40e9_85f55cfcdc0c6b31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 1135 1 0 \"a43607f9_d55f_426e_89b21428fda5d741\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1136 1 0 \"190d4729_71ad_4e8d_aa41d51043871b92\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1137 1 0 \"05c8042e_7d47_4ec4_ad58f480f293899e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\norder_by = Translate(\"\");\r\n// }} \"\"\r\nif(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, X1 ASC, Y1 DESC\";\r\n}\r\nelse if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, LINE_NUMBER ASC\";\r\n}\r\nelse if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY X1 ASC, Y1 DESC\";\r\n}\r\nelse \r\n{\r\n   order_by = \"ORDER BY LINE_NUMBER ASC\";\r\n}\r\n// {{ 1139 1 0 \"0a3203ff_7671_4787_947171c246a5644e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"bed9b525_8107_495c_8dc16f64da4af833\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), restriction_raster);\r\n// }} \"\"\r\n// {{ 1141 1 0 \"77216d38_e07d_4f2e_a253311960e0a457\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1142 1 0 \"aeee44f5_3952_4c66_abadc274c1ad4ad6\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1143 1 0 \"5f1e9a76_1a9a_4424_a65798d22e96196f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 1144 1 0 \"1e8eb8bf_205a_42ae_bb5a13e8760375a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1145 1 0 \"c46a332f_6d5c_4ed0_a7cf4a6780a8fe3b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 1146 1 0 \"1e8eb8bf_205a_42ae_bb5a13e8760375a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1147 1 0 \"ba0a183e_225b_4f57_823b50ab4f876b8d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"bb44259e_ca5d_4193_81de0459339be8f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1149 1 0 \"8fa018aa_4e3c_40cc_a6f7f31d6ad82e74\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1150 1 0 \"bb271a19_1be6_432c_aee269712acbbcb6\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1151 1 0 \"3a4fe840_2053_4f8d_8b9c3d77229d3a5f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 1152 1 0 \"eff287c4_8ea6_4697_97842ac97c7d7d5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1153 1 0 \"495d0cd0_c158_44d5_af6e90d036d64e87\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"5d2b77d3_d85a_47cd_89fdc7b9fba72771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat12(Translate(\"SELECT * FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\" \"), used_exclusion, Translate(\" \"), order_by);\r\n// }} \"\"\r\n// {{ 1155 1 0 \"a530d9b2_9222_43c0_9b442475efbffbfd\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1156 1 0 \"1bffb287_eed2_4fd7_be0cffce97fe5c78\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfile_index = 0;\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\nfile_index = file_index + 1;\r\n// }} \"\"\r\n// {{ 1157 1 0 \"bf90f2d3_6262_4d2b_b8660f527e24d783\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1158 1 0 \"464589a5_5089_4cbf_8b5979ba70c64925\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Sort_for_Channel_Raster == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1159 1 0 \"f4829396_4697_43a6_a347474316c4b43a\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1160 1 0 \"464589a5_5089_4cbf_8b5979ba70c64925\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1161 1 0 \"3d1cb9ed_cd3f_42e3_9926f160b489aae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (x1 != prev_x_coord)\r\n{\r\n// }} \"\"\r\n// {{ 1162 1 0 \"2ddffe87_e7cf_4cb7_8321a73ec8793aba\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1163 1 0 \"3d1cb9ed_cd3f_42e3_9926f160b489aae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1164 1 0 \"e8d80961_6e0f_4b6d_a24958b2f51d6df0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (y1 <= prev_y_coord)\r\n{\r\n// }} \"\"\r\n// {{ 1165 1 0 \"d1c73e95_81f8_4c04_80b721853d2904bf\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1166 1 0 \"e8d80961_6e0f_4b6d_a24958b2f51d6df0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1167 1 0 \"1bffb287_eed2_4fd7_be0cffce97fe5c78\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1168 1 0 \"76a2d5d0_e9a9_4044_9499be6f4e907119\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n// {{{ 1170 1 0 \"1a4088a4_69dc_4b0e_b94110a042ccd0ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"18fecddc_f635_4e9a_b10edc45161087b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence2, lab2, pos2);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"50fc6fcc_c00b_4200_bd1d10f02dcca2ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1);\r\n// }} \"\"\r\n// {{ 1173 1 0 \"5ca9da10_9f52_42a3_96d1fba13ed021c7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array.SetAt(channel_number-1, val1);\r\n// }} \"\"\r\n// {{ 1174 1 0 \"31061999_1ca7_4550_a356ada0c9aba99f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_line_numbers.AddAsLast(line_number);\r\n// }} \"\"\r\n// {{ 1175 1 0 \"bfebd84b_458b_45a1_9da0e5bd4119375b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = x1;\r\n// }} \"\"\r\n// {{ 1176 1 0 \"466c1041_f5c7_40dd_acf056ac1f574acf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = y1;\r\n// }} \"\"\r\n// {{ 1177 1 0 \"eff287c4_8ea6_4697_97842ac97c7d7d5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1178 1 0 \"cdde6572_0894_4934_b4291dfe56d963dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval1 = Translate(\"0\");\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n// {{ 1180 1 0 \"e5f822b0_207c_42d4_bdfe82946f1e5e76\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array.SetAt(channel_number-1, val1);\r\n// }} \"\"\r\n// {{ 1181 1 0 \"eff287c4_8ea6_4697_97842ac97c7d7d5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1182 1 0 \"8aae9017_7ee1_4446_88a24b3229905d0a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1183 1 0 \"0d4eebd5_64d9_4e6c_a2749989a33af625\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1184 1 0 \"3cfde14f_c4fc_40bd_bb51f692b9da7ed5\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence2.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1185 1 0 \"f0266df3_530a_4a78_b146b56635aa5450\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1186 1 0 \"142f8e16_3187_4cf5_bfc768432accdaf0\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 1187 1 0 \"cf1df8c3_2f2c_4a8f_bc34d348eae22250\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = num_to_sort - num_used;\r\n// }} \"\"\r\n// {{ 1188 1 0 \"b0463a8d_5165_42cf_b01971f96aacbb5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1189 1 0 \"47f37ef9_b0fd_485b_a4491252ac560833\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"**********************************  The remaining positions are out of reach for the selected channels!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"1747499c_cec7_4e16_804760cdea0999f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"The remaining positions are out of reach for all the selected channels!!!!\"));\r\n// }} \"\"\r\n// {{ 1191 1 0 \"b0463a8d_5165_42cf_b01971f96aacbb5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"0c08e170_2fdc_4366_8d1b4ab3ff663b8d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(Translate(\"LINE_NUMBER IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1193 1 0 \"673ef581_0d5e_4a82_8d1b0d5895f08332\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 1194 1 0 \"cc7c042b_a4fd_49ba_b290770e3eb9b02d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 1195 1 0 \"7c7f9600_e425_4f1d_a2c835f29e568af4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1196 1 0 \"3399a1df_2722_4021_abae3ab2678fe8c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 1197 1 0 \"7c7f9600_e425_4f1d_a2c835f29e568af4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"f0b1fdf0_1ed7_4be8_942db1ea8ef49bb4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, line_number);\r\n// }} \"\"\r\n// {{ 1199 1 0 \"673ef581_0d5e_4a82_8d1b0d5895f08332\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1200 1 0 \"3273e2f8_6949_4393_875a8b98f4fc3a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"94d85f56_92b8_4123_8a846947cac96234\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nupdate_sql = StrConcat4(Translate(\"UPDATE SORT SET STATUS = 'DONE' WHERE \"), in_group, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1202 1 0 \"43626c63_9aca_4778_b606ced7a781c16e\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Update_FIle.Open(sort_file + \" \" + \"SORT\", hslRead, update_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1203 1 0 \"3c2e2f74_579b_4410_bd602e16cd923e6a\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Update_FIle.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nUpdate_FIle.RemoveFields();\r\n// }} \"\"\r\n// {{ 1204 1 0 \"700f1df4_d185_4f7a_9056e1a9323f289e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1205 1 0 \"a8dc546f_928f_4a7e_92c3ad4596333c08\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat2(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1206 1 0 \"111d9bc3_2de2_43bc_9ac2f89e97609023\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1207 1 0 \"c779716a_c35b_4679_9a8ea2fe38d2a623\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1208 1 0 \"e56d75bd_5382_427d_bb0533208e6d948b\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 1209 1 0 \"40eb4133_ae76_48da_86dfdd6f877ba443\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = count_value;\r\n// }} \"\"\r\n// {{ 1210 1 0 \"3eb2eac6_13fc_446a_b52dd5fc88dabeb9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"54810d6f_5a92_41c5_acfbbae37f9209f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"d694f333_c021_49a8_bb97f776c06e38c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"4705342e_571b_42f7_aa6f93ea327872f3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nio_Array_of_Variables.SetSize(0);\r\n// }} \"\"\r\n// {{ 1214 1 0 \"3eb2eac6_13fc_446a_b52dd5fc88dabeb9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"74202f87_3711_43da_803b616b9a5cc078\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat2(Translate(\"SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1216 1 0 \"bc4043c7_87ac_491f_801fdde44c537503\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq1);\r\n// }} \"\"\r\n// {{{ 1217 1 0 \"abcdf94f_00db_45ad_800004c0e838a962\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq2);\r\n// }} \"\"\r\n// {{ 1218 1 0 \"ab657f87_5b95_422d_99220227544b62b9\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_temp_array1.SetSize(0);\r\n// }} \"\"\r\n// {{ 1219 1 0 \"8024356f_ca57_4011_a11e67cfabec3646\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", not_used, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1220 1 0 \"4d57f00e_9efc_4bb5_b3035fc6d8e02c88\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 1221 1 0 \"7f05889b_afe3_4174_98be8e4223f6c151\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n// {{ 1223 1 0 \"bb73039f_e5f7_4bd9_9b0b05e3f9bad9e1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_temp_array1.AddAsLast(val1);\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"836e368a_47a2_4230_9f8653656e75cf37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq1, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"679a0e07_10c6_48a2_9a59ce7df39a77de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq2, lab2, pos2);\r\n// }} \"\"\r\n// {{ 1226 1 0 \"4d57f00e_9efc_4bb5_b3035fc6d8e02c88\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1227 1 0 \"41ec2a34_a5d5_47e9_9b48058d0b6cb094\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 1228 1 0 \"b024b7b1_5571_477d_90db2a7d8fef0b59\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq1.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1229 1 0 \"b5cd384b_45be_4302_a5f50680736c287b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq2.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"13632985_705b_4410_b73c41dd3da9d689\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort, temp_seq1);\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"6899547e_995a_49e5_a523b2171732c5e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort2, temp_seq2);\r\n// }} \"\"\r\n// {{ 1232 1 0 \"d3dbe404_fa38_4e88_9e08be84889f09d5\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\nio_Array_of_Variables=arr_temp_array1;\r\n// }} \"\"\r\n// {{ 1233 1 0 \"3eb2eac6_13fc_446a_b52dd5fc88dabeb9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1234 1 0 \"225cb460_269d_4b0c_b9a6a09bdf1d9d34\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1236 1 0 \"225cb460_269d_4b0c_b9a6a09bdf1d9d34\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"5adfaaf4_cb83_4b9c_9ae7fabdba049ee3\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort2Sequences1Array\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort2Sequences2Arrays\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable status;\r\nprivate variable channel_raster;\r\nprivate variable used_exclusion;\r\nprivate variable num_in_array2;\r\nprivate variable in_group;\r\nprivate variable num_to_sort;\r\nprivate variable pos1;\r\nprivate variable is_string2;\r\nprivate variable pos2;\r\nprivate variable restriction_raster;\r\nprivate variable num_used;\r\nprivate variable in_index;\r\nprivate variable num_to_sort2;\r\nprivate variable update_sql;\r\nprivate variable y_min;\r\nprivate variable is_float2;\r\nprivate variable val1;\r\nprivate variable ret_Number_Remaining;\r\nprivate variable y_max;\r\nprivate variable value_equal;\r\nprivate variable sequence_name2;\r\nprivate variable total_channels;\r\nprivate variable num_in_array;\r\nprivate variable num_labhand_channels;\r\nprivate variable val2;\r\nprivate variable file_index;\r\nprivate variable null;\r\nprivate variable restriction1;\r\nprivate variable not_used;\r\nprivate variable sort_file;\r\nprivate variable restriction2;\r\nprivate variable lab1;\r\nprivate variable lab2;\r\nprivate variable is_integer2;\r\nprivate variable prev_y_coord;\r\nprivate variable filter_sql;\r\nprivate variable num_1mL_channels;\r\nprivate variable prev_x_coord;\r\nprivate variable count_sql;\r\nprivate variable order_by;\r\nprivate variable num_5mL_channels;\r\nprivate variable val_type1;\r\nprivate variable is_string;\r\nprivate variable y1;\r\nprivate variable count_value;\r\nprivate variable channel_number;\r\nprivate variable val_type2;\r\nprivate variable y2;\r\nprivate variable x1;\r\nprivate variable is_integer;\r\nprivate variable x2;\r\nprivate variable line_number;\r\nprivate variable is_float;\r\nprivate variable sequence_name;\r\nprivate sequence temp_seq1;\r\nprivate sequence temp_seq2;\r\nprivate file Count_Available;\r\nprivate file Update_FIle;\r\nprivate file Sort_File;\r\nprivate variable arr_temp_array1[];\r\nprivate variable arr_temp_array2[];\r\nprivate variable arr_Y_Min[];\r\nprivate variable arr_Y_Max[];\r\nprivate variable arr_line_numbers[];\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable bool_FileExists;\r\nprivate variable int_Count;\r\n// {{ 5 \"CHAN_ACCESS_Sort2Sequences2Arrays\" \"InitLocals\"\r\n{ sequence __temp; o_Sorted_Sequence = __temp; }\r\n{ sequence __temp; o_Sorted_Sequence2 = __temp; }\r\no_Sorted_Array.SetSize( 0);\r\no_Sorted_Array2.SetSize( 0);\r\no_Channel_Pattern = 0;\r\n// }} \"\"\r\n// {{ 1239 1 0 \"8e64663d_3a12_41ec_b8d5bad22487df1e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1240 1 0 \"ea78c2fe_ec36_49c1_95c8e5410d3f6972\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1242 1 0 \"19560468_8386_4b5a_b16746f005871328\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1243 1 0 \"0bff90ce_5236_4835_a65adcba7686d8dd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1244 1 0 \"e66bab0d_4ece_4775_b12daf6bd0bfb4d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1245 1 0 \"955f2883_91b6_4e2c_ae223ea2d35bf74c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1246 1 0 \"28e69e63_6426_4c24_9914b6c0d07d242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1248 1 0 \"8e64663d_3a12_41ec_b8d5bad22487df1e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"4ad4108e_613d_48e1_b037f781ff2cfc3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1250 1 0 \"6e2bb588_f5bd_408c_a79076470b18099e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1251 1 0 \"bec2fdfd_bd08_4d98_b19fcd98aa0a2f98\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1252 1 0 \"a3e20884_340d_4b99_b572da80fa3fa967\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 1253 1 0 \"5d5df72a_b3d7_40f6_b2cb92f1bbd3571f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 1254 1 0 \"3250a0cd_34c8_444b_9784649949a2dd79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47);\r\n// }} \"\"\r\n// {{{ 1255 1 0 \"85f16578_663c_42fd_bbdede83ca7c697e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrConcat2(i_Channel_Type, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"12b1c7b8_7b05_4ceb_a3572bbf963d69b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Channel_Type = StrIVal(i_Channel_Type);\r\n// }} \"\"\r\n// {{ 1257 1 0 \"703c9f19_61f8_46e1_ae8d4db0f1bcc93a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type < 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"83998bb5_67e9_4bbf_bce1ac048ff25073\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1259 1 0 \"a4804f8f_2819_4e3c_940090586ed430a1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 1260 1 0 \"703c9f19_61f8_46e1_ae8d4db0f1bcc93a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1261 1 0 \"b014d099_dde1_4e82_8205b83923be9af7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1262 1 0 \"ebc4b6d3_343e_464d_92607a297e3bfde0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"***************  Channel type of \"), i_Channel_Type, Translate(\" is not recognized by this library!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1263 1 0 \"29aac073_7dd2_4599_846d1a82d044aa1f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = 0;\r\n// }} \"\"\r\n// {{ 1264 1 0 \"b014d099_dde1_4e82_8205b83923be9af7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1265 1 0 \"bbf885cf_8ed6_4219_8d8ed570190509b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1266 1 0 \"9a26e26b_7660_4795_b39b83056806ef92\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_1mL_channels;\r\n// }} \"\"\r\n// {{ 1267 1 0 \"bbf885cf_8ed6_4219_8d8ed570190509b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1268 1 0 \"df5284ab_dff6_4ea0_a31875bc92311584\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1269 1 0 \"99bfb87f_4a58_4f6e_966aef017a8fb839\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_5mL_channels;\r\n// }} \"\"\r\n// {{ 1270 1 0 \"df5284ab_dff6_4ea0_a31875bc92311584\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1271 1 0 \"7448d39f_bc68_4ec6_89a20ec3be57525c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{ 1272 1 0 \"800343da_d1a5_4b20_a6614ed3119bacab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ntotal_channels = num_labhand_channels;\r\n// }} \"\"\r\n// {{ 1273 1 0 \"7448d39f_bc68_4ec6_89a20ec3be57525c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1274 1 0 \"6e2bb588_f5bd_408c_a79076470b18099e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1275 1 0 \"fd41469c_fe50_4acc_b8c02d7916c563e9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1276 1 0 \"430ba026_5d5c_4f6c_a8e2a96dbb76749c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Channel_Pattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1277 1 0 \"f0186af0_1b39_4767_b6c71b63804891e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (total_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1278 1 0 \"566820af_6088_49b5_8214fb0fa64f8009\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"cd469db9_08f4_4581_8f933201b4b2dbdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"7b47b8e9_beb8_4f94_845ba1947ec71a41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1281 1 0 \"566820af_6088_49b5_8214fb0fa64f8009\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1282 1 0 \"9469a7c2_83d7_40ec_a3ac7238beb24832\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1283 1 0 \"fee41faa_9283_4193_a185db7b2dba9ab4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 5 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1284 1 0 \"ae526001_4144_4783_becc5aaad0f6176d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 5 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1285 1 0 \"9469a7c2_83d7_40ec_a3ac7238beb24832\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1286 1 0 \"43f5ddf4_b8f2_4de2_9b18eca1a0de0374\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"373744ab_fa89_48b3_9bacd63e0743485e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no Lab Handler channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"fab6c08e_71cc_468f_a5d29891585c02a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No Lab Handler channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1289 1 0 \"43f5ddf4_b8f2_4de2_9b18eca1a0de0374\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1290 1 0 \"f0186af0_1b39_4767_b6c71b63804891e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"58726945_c8e4_4098_bf59f14e7207abe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1292 1 0 \"bb1078e8_4135_4051_b9d84b939b04af10\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 1293 1 0 \"8b844b7f_13db_4d92_8b8981e64741eef3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0);\r\n// }} \"\"\r\n// {{{ 1294 1 0 \"8da5bb6c_4a7a_49d1_b2b8cb206ca2a4c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrConcat2(i_Max_Channel, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1295 1 0 \"d1fbb1b9_0e01_4e8b_9c2ac0eaca7682b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_Max_Channel = StrIVal(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 1296 1 0 \"8cfe9eac_5d67_4ea6_b5dbb6329092f2a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 1297 1 0 \"637be79f_4731_4c81_8f05d35dc6f5512e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 1298 1 0 \"8cfe9eac_5d67_4ea6_b5dbb6329092f2a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1299 1 0 \"a0c65768_240c_41ac_974b1161ee99dc8b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Max_Channel > total_channels)\r\n{\r\n// }} \"\"\r\n// {{ 1300 1 0 \"11041a58_4788_4ca7_ac91e051c993ea46\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_Max_Channel = total_channels;\r\n// }} \"\"\r\n// {{ 1301 1 0 \"a0c65768_240c_41ac_974b1161ee99dc8b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1302 1 0 \"46255588_aa8e_4f84_ba54b3e60ad05fb6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = 0;\r\n// }} \"\"\r\n// {{{ 1303 1 0 \"30ab6711_2419_4fdc_bfd6a75c0f2fed87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence);\r\n// }} \"\"\r\n// {{{ 1304 1 0 \"a14bdf8f_5893_41af_ab830ab35e34f807\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_Sorted_Sequence2);\r\n// }} \"\"\r\n// {{ 1305 1 0 \"37634588_2215_4a47_811122e602da1b1c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_Sorted_Array.SetSize(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 1306 1 0 \"96954cb1_b7a1_41f8_8ed2ccfb63f0ba4b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_Sorted_Array2.SetSize(i_Max_Channel);\r\n// }} \"\"\r\n// {{ 1307 1 0 \"891bc6f2_44d1_4d27_a20265d956200988\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1308 1 0 \"f134e264_5541_42ea_90685d2fdc053633\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_PIP_COM_YMax;\r\n// }} \"\"\r\n// {{ 1309 1 0 \"d6271242_21cb_4ee6_bbfe976791b6f305\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_PIP_COM_YMin;\r\n// }} \"\"\r\n// {{ 1310 1 0 \"9e2a014b_44ef_470a_96ed1cb7148d8f94\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{ 1311 1 0 \"891bc6f2_44d1_4d27_a20265d956200988\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1312 1 0 \"ea6e8b57_1de5_4be7_9ebc3e82d2eb0bed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1313 1 0 \"b4de3d7e_9b11_4776_b615db6759177ad4\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Max=G_ARR_FW_XL_COM_YMax;\r\n// }} \"\"\r\n// {{ 1314 1 0 \"23661192_b49a_4939_980a305fb311e79e\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\narr_Y_Min=G_ARR_FW_XL_COM_YMin;\r\n// }} \"\"\r\n// {{ 1315 1 0 \"a425a701_ad3c_4d30_8c2befe0270b44b0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nchannel_raster = G_FW_XL_COM_Raster;\r\n// }} \"\"\r\n// {{ 1316 1 0 \"ea6e8b57_1de5_4be7_9ebc3e82d2eb0bed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1317 1 0 \"119810d2_a079_448e_a3c26c99217b5f94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Channel_Type == 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"6ee6bae3_f7ed_4283_a4cc4d7b68a57ef6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster);\r\n// }} \"\"\r\n// {{ 1319 1 0 \"119810d2_a079_448e_a3c26c99217b5f94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1320 1 0 \"a16e3a3b_1fff_4ece_a734c2795859a1c4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1321 1 0 \"01466f15_045b_4012_ad60c7a7f9d1c16c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(sort_file);\r\n// }} \"\"\r\n// {{{ 1322 1 0 \"b666188b_02f7_460c_88f7c5f359175588\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(sort_file);\r\n// }} \"\"\r\n// {{ 1323 1 0 \"3dd374c9_613c_4a88_93c1c2ee88a8f35b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1324 1 0 \"08109037_9256_4884_b06e3820d65a91b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(sort_file);\r\n// }} \"\"\r\n// {{ 1325 1 0 \"3dd374c9_613c_4a88_93c1c2ee88a8f35b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"8876c9fb_6ac1_462b_95bc0e3ec2b1ddd4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort = SeqGetTotal(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"68bf6699_1f52_4291_9a55635b06f7260f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_to_sort2 = SeqGetTotal(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"cbf06196_ad27_485f_a19e44e52957e9ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name = SeqGetName(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1329 1 0 \"dccd5ed1_48db_428f_8a0ddabd429872de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nsequence_name2 = SeqGetName(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{ 1330 1 0 \"6c5ae403_6300_4e25_85349450110f8bdb\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_in_array=io_Array_of_Variables.GetSize();\r\n// }} \"\"\r\n// {{ 1331 1 0 \"d9566ca2_84d6_46d7_91a24162844be0c3\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_in_array2=io_Array_of_Variables2.GetSize();\r\n// }} \"\"\r\n// {{ 1332 1 0 \"cbc8a930_9018_4407_ae16624e048b8cf4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nvalue_equal = 0;\r\n// }} \"\"\r\nif(num_to_sort == num_in_array && num_to_sort == num_in_array2 && num_to_sort == num_to_sort2) value_equal = 1;\r\n// {{ 1334 1 0 \"a0654358_c0e2_4c70_96f61ccb182cc402\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_to_sort == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"3cc8a056_2083_4fbe_8e7e674c9f896b6c\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{ 1336 1 0 \"a0654358_c0e2_4c70_96f61ccb182cc402\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1337 1 0 \"9c24d28e_a308_4555_84b08d2c1a69aae7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (value_equal == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"51ba0509_9932_415b_a4823acf319d4d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"##############  SEQUENCES AND ARRAYS DO NOT HAVE THE SAME NUMBER OF POSITIONS.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"1f5fecb5_8b68_4878_9f3d9138796b5b90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Sequences and arrays do not have the same number of positions.\"));\r\n// }} \"\"\r\n// {{ 1340 1 0 \"9c24d28e_a308_4555_84b08d2c1a69aae7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1341 1 0 \"9c1d5724_c4af_4da6_903d8163e0601aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1342 1 0 \"e10a8375_e823_4596_97bbe897814cba0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1343 1 0 \"60a93b23_e55e_4e16_b854c6265f8c78c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace4(Translate(\"           Sequence to Sort:  \"), sequence_name, Translate(\"     Second Sequence to Sort:  \"), sequence_name2);\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"329264d0_2a39_4f01_b7a7a1148ed094d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Number of Positions in Sequence:  \"), num_to_sort);\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"8ff20552_33cb_448b_860c63c527b9fbfe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by Labware:  \"), i_Sort_by_Labware);\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"49d5d6db_b4f0_4849_bbf9ec3aac7116ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort by XY:  \"), i_Sort_by_XY);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"6cb6815f_5026_4d68_99fb775a41ce2f01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Sort for Channel Raster:  \"), i_Sort_for_Channel_Raster);\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"d5cfdbfd_7630_4835_9aaa606bda9b4bc1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Channel Raster:  \"), channel_raster);\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"0cb8931b_69c5_4935_a6e0df0ec2d5fff1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"           Maximum Channel:  \"), i_Max_Channel);\r\n// }} \"\"\r\nif(i_Channel_Type == 0) Trace(\"           Channel Type:  1 mL\");\r\nelse if(i_Channel_Type == 1) Trace(\"           Channel Type:  5 mL\");\r\nelse if(i_Channel_Type == 2) Trace(\"           Channel Type:  Labware Handler\");\r\n// {{{ 1351 1 0 \"c84e4052_253d_411b_9c190cfe31a359c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"________________________________________________________\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1352 1 0 \"e4b29af2_80f2_4519_8a4af06690e49c90\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1353 1 0 \"28e600a5_726f_41a9_a0d1837f87b79e2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_float = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 1354 1 0 \"9fe34c61_8962_47fd_bc17a159b5a1afd6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_integer = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"767d5aa9_ed7d_4678_91e41cd36572ddbe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_string = HSLExtensions::Array::IsStringArray(io_Array_of_Variables);\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"edc2e8f1_6bd8_42ac_9adb0cb84acd2613\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_float2 = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables2);\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"3e2973e7_df8b_41d6_8a5200fc85404499\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_integer2 = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables2);\r\n// }} \"\"\r\n// {{{ 1358 1 0 \"aeb68d89_9056_4163_9ca89f26a2c7b93b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nis_string2 = HSLExtensions::Array::IsStringArray(io_Array_of_Variables2);\r\n// }} \"\"\r\n// {{ 1359 1 0 \"34f0a73f_c599_4695_af4b6a1f11753967\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval_type1 = 0;\r\n// }} \"\"\r\n// {{ 1360 1 0 \"54a64584_cb80_43ee_9719278a3c2bf1dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval_type2 = 0;\r\n// }} \"\"\r\nif(is_float == 1) val_type1 = 1;\r\nelse if(is_integer == 1) val_type1 = 2;\r\n\r\nif(is_float2 == 1) val_type2 = 1;\r\nelse if(is_integer2 == 1) val_type2 = 2;\r\n// {{ 1362 1 0 \"869e598c_7182_4d58_b094b37d6672b252\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1363 1 0 \"4ffa4a46_e7b3_4e4d_aac5bd257f91e04a\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", val2, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1364 1 0 \"4662172e_cd5f_4151_ab2b594c27ea1599\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nnot_used = Translate(\"-----\");\r\n// }} \"\"\r\n// {{ 1365 1 0 \"dd6293fb_7c03_4ed4_869e8ee77bccf5a2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstatus = Translate(\"NOT_DONE\");\r\n// }} \"\"\r\n// {{ 1366 1 0 \"a8bddbd5_b7a5_407e_8e7fbcc9e719aa86\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(line_number = 0; line_number < num_to_sort;)\r\n{\r\nline_number = line_number + 1;\r\n// }} \"\"\r\n// {{ 1367 1 0 \"73f4ed07_9b87_4f6d_99ece4ce9a8d5b3a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{ 1368 1 0 \"535a2841_b06e_4619_8f164815a6ca71ba\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence_to_Sort2.SetCurrentPosition(line_number);\r\n// }} \"\"\r\n// {{{ 1369 1 0 \"272d1d0f_2ece_4110_bd399ced9aed037a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab1 = SeqGetLabwareId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1370 1 0 \"f5fd6206_74b7_4d20_a41f4ed3e03f587a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos1 = SeqGetPositionId(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"1a6f95e1_b9a2_4524_81d09fcc23b723e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlab2 = SeqGetLabwareId(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"40cb07d9_4029_46dc_8e21cf8f9a3ab5b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npos2 = SeqGetPositionId(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"47ca805a_80cc_4942_b6417ec44d3ab2ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"1ca82882_2785_4101_a3e3e378e2715720\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, lab2, pos2, x2, y2, null, null);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"4941ec47_24be_459a_a7dba58726bea274\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval1=io_Array_of_Variables.GetAt(line_number-1);\r\n// }} \"\"\r\n// {{ 1376 1 0 \"83c045de_11c2_41fe_896ea6ffe6c8930e\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval2=io_Array_of_Variables2.GetAt(line_number-1);\r\n// }} \"\"\r\n// {{ 1377 1 0 \"74789bb3_bdab_4101_8da9b78f833b08aa\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1378 1 0 \"a8bddbd5_b7a5_407e_8e7fbcc9e719aa86\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1379 1 0 \"e077479e_4cdd_4ae7_a3a6f26252bb1e18\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 1380 1 0 \"59dcc6ff_3946_4f3f_a6ad52b95eda61a9\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_line_numbers.SetSize(0);\r\n// }} \"\"\r\n// {{ 1381 1 0 \"9cd23aee_303e_44c4_8ce9ccd40eaf6de8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 1382 1 0 \"72d63116_19ad_4ea2_a693a2854ae2d138\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = 999.0;\r\n// }} \"\"\r\n// {{ 1383 1 0 \"5547d174_8230_4b26_8118b8baab684e59\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(channel_number = 0; channel_number < i_Max_Channel;)\r\n{\r\nchannel_number = channel_number + 1;\r\n// }} \"\"\r\n// {{ 1384 1 0 \"541a6a9b_fe6d_4cbf_98fc43e88e4d8652\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = prev_y_coord - channel_raster;\r\n// }} \"\"\r\n// {{{ 1385 1 0 \"c879ed7f_79e7_486d_95c229e6465d0414\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction_raster = StrConcat8(Translate(\"AND (X1\"), Translate(\" = \"), prev_x_coord, Translate(\" AND \"), Translate(\"Y1\"), Translate(\" <= \"), prev_y_coord, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 1386 1 0 \"90b96ed0_dc7b_42cb_8c36e65781e1da5b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1387 1 0 \"bce833bd_ca25_46c5_922978f6c0e3d575\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_max=arr_Y_Max.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{ 1388 1 0 \"06226992_ad86_47ce_93b1e437f45d9e83\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\ny_min=arr_Y_Min.GetAt(channel_number-1);\r\n// }} \"\"\r\n// {{{ 1389 1 0 \"c8d7e09d_544b_431a_933a829a34caa5e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction1 = StrConcat8(Translate(\"(Y1 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y1 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"0920d297_7168_494d_8cbfa223f7cd9c6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nrestriction2 = StrConcat8(Translate(\"(Y2 \"), Translate(\">= \"), y_min, Translate(\" AND \"), Translate(\"Y2 \"), Translate(\"<= \"), y_max, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 1391 1 0 \"e207e1a7_c4a9_4e43_b6cccc35601bafeb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1392 1 0 \"afa30a28_3e2f_4085_bbddf49dae406386\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 1393 1 0 \"b2b9d489_13ca_40c3_9d038a8942f710c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1394 1 0 \"2beb1f38_2264_4a3f_89ccaf77d4441d65\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nused_exclusion = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1395 1 0 \"b2b9d489_13ca_40c3_9d038a8942f710c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"76601d6f_6041_44b3_a8131cc72f99ddf7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(Translate(\"AND LINE_NUMBER NOT IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1397 1 0 \"ec0ed496_e9e4_41a7_b32c7480433ab956\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 1398 1 0 \"488a43e3_9dc5_4b50_ac5d9a4527f2da21\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 1399 1 0 \"c480ec6f_df15_4e14_a4822a54ebb6fdc0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"b07d7bf5_fc6b_4a2f_927bd1670034d218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 1401 1 0 \"c480ec6f_df15_4e14_a4822a54ebb6fdc0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"b8f001e0_83fb_479f_a494e23371ab153e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, line_number);\r\n// }} \"\"\r\n// {{ 1403 1 0 \"ec0ed496_e9e4_41a7_b32c7480433ab956\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"31ae1aa1_795d_45b0_bab295122b90caa0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nused_exclusion = StrConcat2(used_exclusion, Translate(\")\"));\r\n// }} \"\"\r\n// {{ 1405 1 0 \"b2b9d489_13ca_40c3_9d038a8942f710c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1406 1 0 \"119a9c72_4f32_406b_b2149e020f7637bb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1407 1 0 \"501e5f7a_c22b_4495_99da22ff2c4e3983\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\norder_by = Translate(\"\");\r\n// }} \"\"\r\nif(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, X1 ASC, Y1 DESC\";\r\n}\r\nelse if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0)\r\n{\r\n   order_by = \"ORDER BY LAB1 ASC, LINE_NUMBER ASC\";\r\n}\r\nelse if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1)\r\n{\r\n   order_by = \"ORDER BY X1 ASC, Y1 DESC\";\r\n}\r\nelse \r\n{\r\n   order_by = \"ORDER BY LINE_NUMBER ASC\";\r\n}\r\n// {{ 1409 1 0 \"5eff79c5_2f18_4fa9_8d96b78be2c76536\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1410 1 0 \"82055f9e_077b_470a_a13f43d7260215c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), restriction_raster);\r\n// }} \"\"\r\n// {{ 1411 1 0 \"b29bb188_e89a_4538_9a8f0c132566de07\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1412 1 0 \"494a689b_edc6_4d45_93d65c467694ecc3\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1413 1 0 \"a0c742c2_61cf_4cf2_a0a6030ef7f7cf2d\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 1414 1 0 \"522db406_6e3e_40a8_b2c4a70d4022a1d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1415 1 0 \"7e1b1508_36bd_479f_a247c8cb6fe9e7fd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = 0.0;\r\n// }} \"\"\r\n// {{ 1416 1 0 \"522db406_6e3e_40a8_b2c4a70d4022a1d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1417 1 0 \"5c9b8bc7_5410_4190_adec5c528278f7ce\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"ebf4819f_5ddf_4bba_bc4dd71405d26e25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat12(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\" \"), used_exclusion, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1419 1 0 \"6439096f_6011_4d7c_b209362292c546d7\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1420 1 0 \"26b24db6_03fc_4046_bb0d0dd5f1cb0120\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1421 1 0 \"a70b3f06_c363_4f6b_90c011df8e39f102\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 1422 1 0 \"33910428_3def_47ee_8aa7c37d7a569cbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1423 1 0 \"1bd6eec8_3061_4f09_b48172b7e97e33e9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1424 1 0 \"005ba677_1bd0_4abb_8b4605796453c802\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat12(Translate(\"SELECT * FROM SORT WHERE \"), restriction1, Translate(\" AND \"), restriction2, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\" \"), used_exclusion, Translate(\" \"), order_by);\r\n// }} \"\"\r\n// {{ 1425 1 0 \"21a473ba_6e8a_411f_bfb3a76a3620d990\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", val2, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1426 1 0 \"b9247005_4c63_41ad_bc30f8d7eec195ba\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfile_index = 0;\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\nfile_index = file_index + 1;\r\n// }} \"\"\r\n// {{ 1427 1 0 \"c9caa5bf_af96_4f7d_b7a3e4e78cd74e9c\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1428 1 0 \"be3d3cf0_09cb_48b6_a07b59cd47afa3dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_Sort_for_Channel_Raster == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1429 1 0 \"2a5367a4_edfe_4a4e_aaffc404d0ae02fb\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1430 1 0 \"be3d3cf0_09cb_48b6_a07b59cd47afa3dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1431 1 0 \"3e50c5a9_531a_4ba8_85961556439e6989\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (x1 != prev_x_coord)\r\n{\r\n// }} \"\"\r\n// {{ 1432 1 0 \"5178f29a_a887_4d3e_88a24ec1dd70deff\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1433 1 0 \"3e50c5a9_531a_4ba8_85961556439e6989\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1434 1 0 \"351c04ac_5d59_4a66_b6a48c47e74bd045\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (y1 <= prev_y_coord)\r\n{\r\n// }} \"\"\r\n// {{ 1435 1 0 \"3ddc35ff_67cd_4e0f_ae24b890ae5a8095\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1436 1 0 \"351c04ac_5d59_4a66_b6a48c47e74bd045\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1437 1 0 \"b9247005_4c63_41ad_bc30f8d7eec195ba\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1438 1 0 \"98319eb3_e2c4_4925_96ba278376148a70\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n\r\nif(val_type2 == 1) val2 = FVal(val2);\r\nelse if(val_type2 == 2) val2 = IVal(val2); \r\n// {{{ 1440 1 0 \"b071f251_d9e7_4caa_9b9c9118edbc914c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"56abc579_d539_49a0_9ee092c4d0db9722\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_Sorted_Sequence2, lab2, pos2);\r\n// }} \"\"\r\n// {{{ 1442 1 0 \"5135156b_aa5c_4419_9529102c07a7e6fc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1);\r\n// }} \"\"\r\n// {{ 1443 1 0 \"3d8bc82a_710e_4f07_969bc22c714a59e2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array.SetAt(channel_number-1, val1);\r\n// }} \"\"\r\n// {{ 1444 1 0 \"c0785354_9cdb_4a92_82b0692c4de82cc4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array2.SetAt(channel_number-1, val2);\r\n// }} \"\"\r\n// {{ 1445 1 0 \"15b296fd_6940_4c2e_81d303e614f4526f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_line_numbers.AddAsLast(line_number);\r\n// }} \"\"\r\n// {{ 1446 1 0 \"44a776ab_c062_43ec_a9efe6c828e83d35\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_x_coord = x1;\r\n// }} \"\"\r\n// {{ 1447 1 0 \"3d9550b8_99a4_42db_b2ca49fea1377ebe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nprev_y_coord = y1;\r\n// }} \"\"\r\n// {{ 1448 1 0 \"33910428_3def_47ee_8aa7c37d7a569cbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1449 1 0 \"f6224fd5_a1d3_495e_a292089dee1cfbc5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval1 = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1450 1 0 \"9a36909b_d308_4b93_9ecc56d18556ee0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nval2 = Translate(\"0\");\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n\r\nif(val_type2 == 1) val2 = FVal(val2);\r\nelse if(val_type2 == 2) val2 = IVal(val2); \r\n// {{ 1452 1 0 \"1326456a_c6d6_4767_999a7c960f5510da\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array.SetAt(channel_number-1, val1);\r\n// }} \"\"\r\n// {{ 1453 1 0 \"c550ec3a_94f7_4752_bae87a253339ec42\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_Sorted_Array2.SetAt(channel_number-1, val2);\r\n// }} \"\"\r\n// {{ 1454 1 0 \"33910428_3def_47ee_8aa7c37d7a569cbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1455 1 0 \"5547d174_8230_4b26_8118b8baab684e59\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1456 1 0 \"c08df4a1_d0eb_46db_8e9f4da0ab635376\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1457 1 0 \"cbdabc11_57e0_4105_a4d302d1d94eb8dc\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_Sorted_Sequence2.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1458 1 0 \"4f882251_53f5_4f39_893b69abccf851d5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1459 1 0 \"ca2ecbfe_233f_462d_894aa33141d7140f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnum_used=arr_line_numbers.GetSize();\r\n// }} \"\"\r\n// {{ 1460 1 0 \"133afc40_89c3_493c_a97614f0b68b360c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = num_to_sort - num_used;\r\n// }} \"\"\r\n// {{ 1461 1 0 \"05713312_e98b_4da9_b0e3c4508d7c2133\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_used == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"925c2c0a_7f66_452d_8234689ce4338ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"**********************************  The remaining positions are out of reach for the selected channels!!!!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"faf017e8_c733_4b23_b705350390dfdd72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"The remaining positions are out of reach for all the selected channels!!!!\"));\r\n// }} \"\"\r\n// {{ 1464 1 0 \"05713312_e98b_4da9_b0e3c4508d7c2133\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"3e407516_d1aa_40ae_b318b95f2c7bba18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(Translate(\"LINE_NUMBER IN(\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1466 1 0 \"bb88fc1f_057a_463e_9606b431f2af9ec1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(in_index = 0; in_index < num_used;)\r\n{\r\nin_index = in_index + 1;\r\n// }} \"\"\r\n// {{ 1467 1 0 \"dc6f3266_9f3c_48c8_9b90239e7f2672a8\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nline_number=arr_line_numbers.GetAt(in_index-1);\r\n// }} \"\"\r\n// {{ 1468 1 0 \"f99c2a83_aa50_4af0_b1dc4071417c1817\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (in_index != 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1469 1 0 \"3ae4aeea_c3bf_4237_a6d35d601f74e0f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\", \"));\r\n// }} \"\"\r\n// {{ 1470 1 0 \"f99c2a83_aa50_4af0_b1dc4071417c1817\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"44bc1347_122c_4cb7_b4b6aaad212a91f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, line_number);\r\n// }} \"\"\r\n// {{ 1472 1 0 \"bb88fc1f_057a_463e_9606b431f2af9ec1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"77b415e5_e3b6_42a4_aa21cad6a8c2fb4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nin_group = StrConcat2(in_group, Translate(\")\"));\r\n// }} \"\"\r\n// {{{ 1474 1 0 \"653481af_9996_498f_8bf9a57aea1d4f16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nupdate_sql = StrConcat4(Translate(\"UPDATE SORT SET STATUS = 'DONE' WHERE \"), in_group, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1475 1 0 \"29a61488_1d93_422d_a7d2d22a73c0bf25\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Update_FIle.Open(sort_file + \" \" + \"SORT\", hslRead, update_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1476 1 0 \"9245d259_a4e9_4b50_87223c2330ad146f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Update_FIle.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nUpdate_FIle.RemoveFields();\r\n// }} \"\"\r\n// {{ 1477 1 0 \"f4ea0571_0c41_4200_a82ab8ae420182e2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"68125a50_991e_4e43_89015f148f480b2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncount_sql = StrConcat2(Translate(\"SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1479 1 0 \"607a45aa_dc01_402f_b1594db59d0e214f\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nCount_Available.AddField(\"N\", count_value, hslInteger);\r\nif( 0 == Count_Available.Open(sort_file + \" \" + \"SORT\", hslRead, count_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1480 1 0 \"534b07c1_c77e_4179_bff9e6ed62270be8\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Count_Available.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1481 1 0 \"b3fc62f3_acd0_4c5e_a0571fcc58346d89\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Count_Available.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nCount_Available.RemoveFields();\r\n// }} \"\"\r\n// {{ 1482 1 0 \"7e26b349_d014_42a5_a485929344bb1ce7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_Number_Remaining = count_value;\r\n// }} \"\"\r\n// {{ 1483 1 0 \"cd023051_7937_4914_9513249618124e15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (count_value == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"d2a9e660_4bf5_40d0_b6e3da7ac4faec96\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort);\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"c4a22bcc_e66c_4124_80c8e278e4b5e7d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence_to_Sort2);\r\n// }} \"\"\r\n// {{ 1486 1 0 \"29d5955c_ab63_4d8d_9facd0b6862b6a91\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nio_Array_of_Variables.SetSize(0);\r\n// }} \"\"\r\n// {{ 1487 1 0 \"e50ed0a7_4ab1_48cb_bf042be5885705ee\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nio_Array_of_Variables2.SetSize(0);\r\n// }} \"\"\r\n// {{ 1488 1 0 \"cd023051_7937_4914_9513249618124e15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1489 1 0 \"45a701cb_c9b3_4a23_b426f510994400c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nfilter_sql = StrConcat2(Translate(\"SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"76d48976_d57d_4f07_9b199dfe6ee8218d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq1);\r\n// }} \"\"\r\n// {{{ 1491 1 0 \"bed6f154_6eef_43e3_9ac635b059885242\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(temp_seq2);\r\n// }} \"\"\r\n// {{ 1492 1 0 \"73026b2f_f42b_4f0d_b7daec049e2f0c7a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_temp_array1.SetSize(0);\r\n// }} \"\"\r\n// {{ 1493 1 0 \"b0bf7652_a388_4d44_9c2f696ee9befdf1\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_temp_array2.SetSize(0);\r\n// }} \"\"\r\n// {{ 1494 1 0 \"c3273d5b_73e1_4eab_92b304fd1d677327\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSort_File.AddField(\"LINE_NUMBER\", line_number, hslInteger);\r\nSort_File.AddField(\"LAB1\", lab1, hslString, 255);\r\nSort_File.AddField(\"POS1\", pos1, hslString, 255);\r\nSort_File.AddField(\"LAB2\", lab2, hslString, 255);\r\nSort_File.AddField(\"POS2\", pos2, hslString, 255);\r\nSort_File.AddField(\"VAL1\", val1, hslString, 255);\r\nSort_File.AddField(\"VAL2\", val2, hslString, 255);\r\nSort_File.AddField(\"X1\", x1, hslFloat);\r\nSort_File.AddField(\"Y1\", y1, hslFloat);\r\nSort_File.AddField(\"X2\", x2, hslFloat);\r\nSort_File.AddField(\"Y2\", y2, hslFloat);\r\nSort_File.AddField(\"STATUS\", status, hslString, 255);\r\nif( 0 == Sort_File.Open(sort_file + \" \" + \"SORT\", hslRead, filter_sql) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1495 1 0 \"1509e5e3_3654_4066_a66e644d4d9b4402\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (Sort_File.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 1496 1 0 \"85b4b232_d86c_4bf7_99c3d971101d1e60\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == Sort_File.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// This converts the array values back to their original state\r\n\r\nif(val_type1 == 1) val1 = FVal(val1);\r\nelse if(val_type1 == 2) val1 = IVal(val1); \r\n\r\nif(val_type2 == 1) val2 = FVal(val2);\r\nelse if(val_type2 == 2) val2 = IVal(val2); \r\n// {{ 1498 1 0 \"02218d0a_a63b_4fde_846f197afa3eca14\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_temp_array1.AddAsLast(val1);\r\n// }} \"\"\r\n// {{ 1499 1 0 \"9f5b9ad5_fe60_4066_a7580511049f0d7c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_temp_array2.AddAsLast(val2);\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"e9682f55_0196_4479_b74ca04282cfbca4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq1, lab1, pos1);\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"c5f153f7_5c2a_4519_a7b25d82cd991832\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(temp_seq2, lab2, pos2);\r\n// }} \"\"\r\n// {{ 1502 1 0 \"1509e5e3_3654_4066_a66e644d4d9b4402\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1503 1 0 \"fbb8df3b_f29d_4bc1_8353ba7c35774934\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != Sort_File.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSort_File.RemoveFields();\r\n// }} \"\"\r\n// {{ 1504 1 0 \"160eb761_a6f4_4dd9_a0c3dfe04214c2f8\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq1.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1505 1 0 \"b1a2a763_cc81_46ac_b254de4c7c9a4c97\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ntemp_seq2.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"f729cbeb_0fd8_4163_bf71da891ae913d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort, temp_seq1);\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"1a5f47b4_fe9b_422b_9f4d3751ef00299f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(io_Sequence_to_Sort2, temp_seq2);\r\n// }} \"\"\r\n// {{ 1508 1 0 \"1282fe00_14d1_4ccc_b7e3ec87dbf4153a\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\nio_Array_of_Variables=arr_temp_array1;\r\n// }} \"\"\r\n// {{ 1509 1 0 \"76ad685f_5795_407b_92557593042945ec\" \"{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}\"\r\nio_Array_of_Variables2=arr_temp_array2;\r\n// }} \"\"\r\n// {{ 1510 1 0 \"cd023051_7937_4914_9513249618124e15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1511 1 0 \"be296dcc_7640_4015_bdc3a549488186c3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1513 1 0 \"be296dcc_7640_4015_bdc3a549488186c3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1514 1 0 \"5c6666bb_f508_42a8_a7ca3857c253fe6b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_Number_Remaining);\r\n// }} \"\"\r\n// {{{ 5 \"CHAN_ACCESS_Sort2Sequences2Arrays\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsWithTravelLanes\" \"Begin\"\r\nfunction TRAVEL_LANES_MoveChannelsWithTravelLanes( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\nprivate variable flt_X_Origin;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_StartLocation;\r\n// {{ 5 \"TRAVEL_LANES_MoveChannelsWithTravelLanes\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2404 1 0 \"bf4ddb1c_a293_42e0_95cb90c8ac169433\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2405 1 0 \"8b3fdca2_48dd_4f8d_b3fcc426305a3adf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2407 1 0 \"cb6c3374_d1e9_43b5_ab3186ca0a13739a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2408 1 0 \"135389ad_e810_4148_a38ce5a5ca2e83c2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2409 1 0 \"534e71ac_abe8_4cda_8d3902f667e84e25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2410 1 0 \"7f2d5c0e_9626_4b23_882e36bcee38d551\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2411 1 0 \"72d489fc_e0b4_401b_b4543e4447d3ca9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2413 1 0 \"bf4ddb1c_a293_42e0_95cb90c8ac169433\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2414 1 0 \"244b25ab_abad_47da_996e66c237b1e4ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2415 1 0 \"ce476cc4_c4fd_47b5_bd2a0ce616ead4f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2416 1 0 \"e563f5ea_8350_48f5_ae3cb5aab6d56d1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2418 1 0 \"846cb307_b45a_48a4_94bd8810d0c38cb8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(ML_STAR, i_seq_TargetSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 2419 1 0 \"522f5b02_0ee4_459d_b6abf77178cff1b3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2420 1 0 \"7111678b_e5c1_4221_86a413021a8f1cce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 2421 1 0 \"522f5b02_0ee4_459d_b6abf77178cff1b3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2422 1 0 \"ce476cc4_c4fd_47b5_bd2a0ce616ead4f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2423 1 0 \"5eda256a_fe0b_4c9a_a86410c4f04ef44a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2424 1 0 \"4dcee46f_a67b_4079_b61a3c78b9cd2b4e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveChannelsToTravelLanes(ML_STAR);\r\n// }} \"\"\r\n// {{ 2425 1 0 \"4d993f30_bac7_4c58_972ff3b143ad2798\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2426 1 0 \"7fe0857b_60e3_4b68_84c444a5ee8eee09\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_LabID, flt_X_Origin, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 2427 1 0 \"460c6ecc_6329_49ea_86f3ba493489b927\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StartLocation = flt_X_Origin + i_flt_XOffsetFromOrigin;\r\n// }} \"\"\r\n// {{ 2428 1 0 \"b45e1913_9e87_421a_be30448ebec5c7af\" \"ML_STAR:{81DA4252-3BA9-11d4-AE21-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._81DA4252_3BA9_11d4_AE21_0004ACB1DCB2(\"b45e1913_9e87_421a_be30448ebec5c7af\"); // MoveToPosition\r\n}\r\n// }} \"\"\r\n// {{ 2429 1 0 \"695c426f_0f33_4815_9d39270592f5495f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2430 1 0 \"efde072d_df7c_4c3b_a284df36d20057d8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveChannelsToSequencePosition(ML_STAR, i_seq_TargetSequence);\r\n// }} \"\"\r\n// {{ 2431 1 0 \"d0057c50_76b8_4593_8b601f1a3eecabce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2433 1 0 \"d0057c50_76b8_4593_8b601f1a3eecabce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsWithTravelLanes\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_FunctionError\" \"Begin\"\r\nprivate function _FunctionError( variable i_str_FunctionName, variable i_str_ErrorDescription ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable str_ErrorDescription;\r\nprivate variable strFunctionName;\r\nprivate variable int_Count;\r\n// {{ 5 \"_FunctionError\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2498 1 0 \"4f1f4204_fa0f_4836_852c13ab74fd4ac3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(i_str_FunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2499 1 0 \"ddcaeb51_ff64_4582_9ad14fc284d8b9ab\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2500 1 0 \"fec2f6d1_c945_4b45_b892b44989105008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(i_str_FunctionName);\r\n// }} \"\"\r\n// {{ 2501 1 0 \"dc668a2e_0ee3_46fe_bd3a121e591187b0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2502 1 0 \"5d098416_aa31_4411_95a586acfa8fbe76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName = StrMid(i_str_FunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\n// {{{ 2503 1 0 \"55e7b209_1529_4065_b2c49b584d33a85b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorDescription = StrConcat8(strFunctionName, Translate(\"\\n\\n\"), i_str_ErrorDescription, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2504 1 0 \"e94b7eb2_e816_409a_a59584104b658f96\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, str_ErrorDescription);\r\n// }} \"\"\r\n// {{{ 5 \"_FunctionError\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetSequencePosition\" \"Begin\"\r\nprivate function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable {\r\n// }} \"\"\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"_GetSequencePosition\" \"InitLocals\"\r\no_str_LabID = 0;\r\no_str_PosID = 0;\r\n// }} \"\"\r\n// {{ 2506 1 0 \"c09074ad_c581_4c0c_8a7417467584b19d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 1;\r\n// }} \"\"\r\n// {{ 2507 1 0 \"df0ca6e0_acf2_4736_9dd18e05e4fb2a9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LabID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2508 1 0 \"84858757_be4b_480e_84e134f939fbe72f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_PosID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2509 1 0 \"3864929d_a041_4ba5_bbc35adda5dc5f4c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8D69442271644f4385C6843541353BFB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2510 1 0 \"ae3ca308_a91e_4be0_9e564f41095d9f36\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_LabID = SeqGetLabwareId(i_seq_LabwareSequence);\r\n// }} \"\"\r\n// {{{ 2511 1 0 \"afa15363_acb6_4c59_a0e2ed6f1c8a0601\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_PosID = SeqGetPositionId(i_seq_LabwareSequence);\r\n// }} \"\"\r\n// {{ 2512 1 0 \"a7ed179b_13c8_45d4_95ed96b0908b2578\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_str_LabID == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2513 1 0 \"3df2ed9f_4e16_4ce3_ad1f6062e09f4a74\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 0;\r\n// }} \"\"\r\n// {{ 2514 1 0 \"a7ed179b_13c8_45d4_95ed96b0908b2578\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2515 1 0 \"3864929d_a041_4ba5_bbc35adda5dc5f4c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8D69442271644f4385C6843541353BFB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2516 1 0 \"945969a2_4636_47a4_b9125299d6e4abc9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 0;\r\n// }} \"\"\r\n// {{ 2517 1 0 \"3864929d_a041_4ba5_bbc35adda5dc5f4c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2518 1 0 \"36ed66b9_0ea5_4647_b95f80410a552359\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_SequenceValid);\r\n// }} \"\"\r\n// {{{ 5 \"_GetSequencePosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsToTravelLanes\" \"Begin\"\r\nfunction TRAVEL_LANES_MoveChannelsToTravelLanes( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"TRAVEL_LANES_MoveChannelsToTravelLanes\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2312 1 0 \"e0db3e76_d835_4bb2_ad0889ffdc25b57b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2313 1 0 \"6ad1e181_c756_4697_a33ca88706afc479\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2315 1 0 \"90911ddc_85fd_4e02_91a457567d25f25a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2316 1 0 \"4fdf90bb_3070_4ae1_95d4d699344147ec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2317 1 0 \"65c33834_8481_4e44_9875bf56bfa0d371\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2318 1 0 \"4515826d_f24e_4d5d_bb01f8974ad8cf0d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2319 1 0 \"86723a23_a7bb_42cb_b08bc8481468a6d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2321 1 0 \"e0db3e76_d835_4bb2_ad0889ffdc25b57b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2322 1 0 \"fa57a0d5_c2a5_43ae_9c80b575198fb356\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2323 1 0 \"c2124bf2_ebf8_47c3_bb8fbe16305cbe80\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2324 1 0 \"37002039_ba32_435c_874f2d9bf6a6a485\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveChannelsToTravelLanes(ML_STAR);\r\n// }} \"\"\r\n// {{ 2325 1 0 \"f1e8f90f_e461_4c3b_a708bf7718d1afad\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2327 1 0 \"f1e8f90f_e461_4c3b_a708bf7718d1afad\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsToTravelLanes\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_SingleSource_ChannelDisplacement\" \"Begin\"\r\nfunction TRAVEL_LANES_SingleSource_ChannelDisplacement( device & ML_STAR, variable i_strStepReturn ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"TRAVEL_LANES_SingleSource_ChannelDisplacement\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2466 1 0 \"476875ee_fa36_450e_bb4cb2a730d0cf9c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2467 1 0 \"f9fc1ef3_e820_4e49_8fd1db6249210d16\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2469 1 0 \"1da74f45_397a_40fc_8c95e1a969720e17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2470 1 0 \"7d1b0598_5932_4d68_ae490495d24e8087\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2471 1 0 \"fdfd19ee_68f6_4512_a3c127016f6ba8c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2472 1 0 \"53d41a14_1764_4b03_aa895200da844956\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2473 1 0 \"c044d1df_8788_41f5_951c2cd4f700db8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2475 1 0 \"476875ee_fa36_450e_bb4cb2a730d0cf9c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2476 1 0 \"9bb212d3_a1a4_4dff_904f57a21e2d0bea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{{ 2477 1 0 \"015ece5e_cc9f_42d9_b226bdcb72b6362c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveUsedChannel(ML_STAR, i_strStepReturn);\r\n// }} \"\"\r\n// {{ 2478 1 0 \"8f12ad1b_a0a6_41bd_a93edfa7b6f59d04\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2480 1 0 \"8f12ad1b_a0a6_41bd_a93edfa7b6f59d04\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_SingleSource_ChannelDisplacement\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LIQUID_LEVEL_ReturnVolumesFromLiquidLevel\" \"Begin\"\r\nfunction LIQUID_LEVEL_ReturnVolumesFromLiquidLevel( device & ML_STAR, variable i_str_PipettingReturn, variable i_str_LiquidLevelReturn, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable int_Total1mLChannels;\r\nprivate variable int_Channel;\r\nprivate variable str_LabID;\r\nprivate variable flt_LiquidHeight;\r\nprivate variable flt_Volume;\r\nprivate variable str_PosID;\r\nprivate variable stringPos;\r\nprivate sequence seq_Temp;\r\n// {{ 5 \"LIQUID_LEVEL_ReturnVolumesFromLiquidLevel\" \"InitLocals\"\r\no_arr_VolumesMeasured.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1568 1 0 \"5d8c49e2_629a_4c59_b88d2a749c32d7a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1569 1 0 \"cbc44d4f_8b36_43ca_a4f0b3adf1447e87\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1571 1 0 \"75f68a0a_c74c_4a36_a3bfa8bbfcef67f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1572 1 0 \"5b84d377_8b6a_497e_a229aa03630c31ba\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1573 1 0 \"ab00b6c1_4fff_4fa5_a25a7f083768d8fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1574 1 0 \"9314a499_1174_4843_bca848c123586603\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"a572640a_36db_42bc_bc9a05dbeb4d55bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1577 1 0 \"5d8c49e2_629a_4c59_b88d2a749c32d7a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"52da0230_79b5_4df6_b99326e9b3602b5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1579 1 0 \"12a11a3f_fd76_44b0_9d921440d2b607a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1580 1 0 \"1a44948e_4f44_485c_8d7df456a77e3671\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1581 1 0 \"54365205_3052_4237_bbd700dcb6468e6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Total1mLChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\nTrace(\"     \",\"Total Channels:  \",int_Total1mLChannels);\r\n// {{ 1583 1 0 \"1f759726_990d_4640_a2b30be6fabde8d1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Total1mLChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1584 1 0 \"dacae122_4729_4dea_91efe5147dd3b319\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\n\\nNO 1mL CHANNELS ARE LOADED ON THE SYSTEM!\\n\\n=========================================\"));\r\n// }} \"\"\r\n// {{ 1585 1 0 \"6cc4ec6c_5e1a_46fc_b7168036c1fb3dc7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1587 1 0 \"6cc4ec6c_5e1a_46fc_b7168036c1fb3dc7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1588 1 0 \"fa31f0f3_a1cd_4f47_9085200eaa4560ac\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 1589 1 0 \"1f759726_990d_4640_a2b30be6fabde8d1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1590 1 0 \"12a11a3f_fd76_44b0_9d921440d2b607a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1591 1 0 \"680166e5_7283_4969_8c5f3f950f811c2a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1592 1 0 \"81b5c21d_9c55_4643_b54a7e7762471436\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_VolumesMeasured.SetSize(0);\r\n// }} \"\"\r\n// {{ 1593 1 0 \"0f0a9fec_2e32_493d_a66cd159dfce3ff1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Channel = 0; int_Channel < int_Total1mLChannels;)\r\n{\r\nint_Channel = int_Channel + 1;\r\n// }} \"\"\r\n// {{ 1594 1 0 \"daaf08ce_d656_452b_9624b3368cc8947a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_VolumesMeasured.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1595 1 0 \"0f0a9fec_2e32_493d_a66cd159dfce3ff1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1596 1 0 \"b09bca09_6e86_4012_bbcddb8d9f32c557\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Channel = 0; int_Channel < int_Total1mLChannels;)\r\n{\r\nint_Channel = int_Channel + 1;\r\n// }} \"\"\r\n// {{{ 1597 1 0 \"6e8bb6a1_7b51_4acf_84b66aa2eed16a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstringPos = StepReturn::GetPositionFromNum(int_Channel, i_str_PipettingReturn);\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"939d1013_4451_46e0_a7ff6c0d7790ffee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = StepReturn::GetLabwareId(stringPos, i_str_PipettingReturn);\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"216f5377_b1aa_4d9a_acee856aea25997c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = StepReturn::GetPositionId(stringPos, i_str_PipettingReturn);\r\n// }} \"\"\r\n// {{{ 1600 1 0 \"2e21edef_ae0f_4f27_96ca6114482c47ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_LabID);\r\n// }} \"\"\r\n// {{ 1601 1 0 \"98f03a7b_50df_4ebc_abf24b16fd7e24f6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1602 1 0 \"1e216a92_f4bf_49c4_8afd0988f3ee3d80\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1603 1 0 \"bf849a0d_a41c_4282_85e73f7d228c56a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_Temp, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1604 1 0 \"abe74597_41a7_49cc_b143085a9a520ddb\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"7ae82dcc_c57a_4317_a487e3c66604493d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLIQUID_LEVEL_CHECK::FindLiquidHeight(ML_STAR, i_str_LiquidLevelReturn, seq_Temp, int_Channel, flt_LiquidHeight);\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"8f717acb_f81d_4da8_a31a4d29cae3cdd2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Volume = DevComputeContainerVolume2(ML_STAR, str_LabID, str_PosID, flt_LiquidHeight, 0, 0);\r\n// }} \"\"\r\n// {{ 1607 1 0 \"d1862b21_4c77_40e1_985d370a475950c6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_ConvertTouL == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1608 1 0 \"b955d6e7_02da_4438_96c53a1ee8389a62\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Volume = flt_Volume * 1000.0;\r\n// }} \"\"\r\nTrace(\"**************\",str_LabID,\" - \",str_PosID,\": \",flt_Volume,\" uL\");\r\n// {{ 1610 1 0 \"d1862b21_4c77_40e1_985d370a475950c6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"**************\",str_LabID,\" - \",str_PosID,\": \",flt_Volume,\" mL\");\r\n// {{ 1612 1 0 \"d1862b21_4c77_40e1_985d370a475950c6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1613 1 0 \"7d722da5_d4f3_4c45_ba9389c2a9dc9b5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Volume > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1614 1 0 \"ffeaa817_4b9f_41e3_9fd9e5e13635ba19\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_VolumesMeasured.SetAt(int_Channel-1, flt_Volume);\r\n// }} \"\"\r\n// {{ 1615 1 0 \"7d722da5_d4f3_4c45_ba9389c2a9dc9b5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1616 1 0 \"98f03a7b_50df_4ebc_abf24b16fd7e24f6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1617 1 0 \"b09bca09_6e86_4012_bbcddb8d9f32c557\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"0bf5181d_f091_459e_bc0a80fe7c169a7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Volumes detected\"), o_arr_VolumesMeasured);\r\n// }} \"\"\r\n// {{ 1619 1 0 \"6656d704_cffc_48a5_8c99df1ffb9b0257\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1621 1 0 \"6656d704_cffc_48a5_8c99df1ffb9b0257\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"LIQUID_LEVEL_ReturnVolumesFromLiquidLevel\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsToTravelLanes_5mL\" \"Begin\"\r\nfunction TRAVEL_LANES_MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"TRAVEL_LANES_MoveChannelsToTravelLanes_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2329 1 0 \"1c8e731f_ed6c_4d02_8231f4883d0440ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2330 1 0 \"c4613bbc_4081_4202_abf2d0b0034d0758\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2332 1 0 \"7517399c_e5da_42a7_a8330da301655d63\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2333 1 0 \"25e6c906_df83_4a00_911c57aad5cd4a3a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2334 1 0 \"16b67053_449a_42c2_b4decdd19d4bdebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2335 1 0 \"9c9b411c_ccba_4733_877ccd0935e6a7b5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2336 1 0 \"dee8e34b_a267_4af1_b67f5f2176581804\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2338 1 0 \"1c8e731f_ed6c_4d02_8231f4883d0440ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2339 1 0 \"dd1120aa_95ca_4c9a_b547a902506c654f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2340 1 0 \"5d72ba88_a305_4397_87ef4de30d18d072\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2341 1 0 \"38638aa3_173f_4344_a850d5a6673d0da8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveChannelsToTravelLanes_5mL(ML_STAR);\r\n// }} \"\"\r\n// {{ 2342 1 0 \"b1971a97_28f6_41d8_85d3a857e77d8be7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2344 1 0 \"b1971a97_28f6_41d8_85d3a857e77d8be7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsToTravelLanes_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL\" \"Begin\"\r\nfunction TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Origin;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable flt_NotUsed;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_LabID;\r\nprivate variable int_Count;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\nprivate variable flt_StartLocation;\r\n// {{ 5 \"TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2435 1 0 \"9905122d_99c1_446d_9555d07406841f84\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2436 1 0 \"ec87f470_b2d3_40ef_be897bea3a875f69\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2438 1 0 \"8cd1b679_3401_4aba_a74dcd4cdedf376e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2439 1 0 \"ffd59b8a_75b7_44d3_8b83d2fa71f771e4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2440 1 0 \"b4a728cc_24ad_4f4c_aec09a88cd7bdd9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2441 1 0 \"2fdea5c8_f1d9_472e_b3c4b5d6d6e8aba5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2442 1 0 \"4ff3d8b8_94d9_4e51_9644eec627a35a09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2444 1 0 \"9905122d_99c1_446d_9555d07406841f84\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2445 1 0 \"26d924f0_a37c_487f_9d70d384f916a72c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2446 1 0 \"85727115_88b5_449f_ac6be1b0ba31e1a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2447 1 0 \"a3b0ca0e_7f8c_4fd2_b2736a6bd820f5ba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2449 1 0 \"bda87633_a7a2_4979_b211dfe85ebcaa40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(ML_STAR, i_seq_TargetSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 2450 1 0 \"571b0649_4846_448e_88b38b07121018c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2451 1 0 \"7b216f99_31b2_4caf_8461fcf4a4642e4c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 2452 1 0 \"571b0649_4846_448e_88b38b07121018c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2453 1 0 \"85727115_88b5_449f_ac6be1b0ba31e1a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2454 1 0 \"146e542c_ac45_49f0_932761aa8ff7a220\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2455 1 0 \"73ff85cf_c297_4ed3_bae226a5583cf9e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveChannelsToTravelLanes_5mL(ML_STAR);\r\n// }} \"\"\r\n// {{ 2456 1 0 \"82a943b7_0178_419c_91550ef4da7540a1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2457 1 0 \"42052c9a_06f0_4335_93e710bb133dceaa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_LabID, flt_X_Origin, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 2458 1 0 \"48a43e0f_432c_4306_afd2e46a99850f01\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StartLocation = flt_X_Origin + i_flt_XOffsetFromOrigin;\r\n// }} \"\"\r\n// {{ 2459 1 0 \"9ae5fdd2_4548_4ff7_adea4c534f02c9c3\" \"ML_STAR:{55AA8CFA-FB6C-4691-8C8C-8D410E2123FD}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._55AA8CFA_FB6C_4691_8C8C_8D410E2123FD(\"9ae5fdd2_4548_4ff7_adea4c534f02c9c3\"); // XLMoveToPosition\r\n}\r\n// }} \"\"\r\n// {{ 2460 1 0 \"13ea8db0_fa95_4b82_8b41a2065be7bf9e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2461 1 0 \"c8dba057_71fc_4fa7_b061557a278aa4d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveChannelsToSequencePosition_5mL(ML_STAR, i_seq_TargetSequence);\r\n// }} \"\"\r\n// {{ 2462 1 0 \"cb02c00d_dd07_47d6_965b326a407f5a84\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2464 1 0 \"cb02c00d_dd07_47d6_965b326a407f5a84\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL\" \"Begin\"\r\nfunction TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL( device & ML_STAR, variable i_strStepReturn ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2482 1 0 \"1997dfed_338e_4835_be62e8df12d601c6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2483 1 0 \"c9f2d50a_7c05_46d6_a7c26cded779b080\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2485 1 0 \"55a3887f_f5cf_48e3_adce2126b073ea81\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2486 1 0 \"12b61462_102f_43d0_819b1dfa57a945a9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2487 1 0 \"076fd5bb_955c_4921_b710b0dc3598d6ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2488 1 0 \"ce89aaa2_1f27_40a5_a9857a033e85c453\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2489 1 0 \"ee4b7088_740f_403b_b7be623f5deb6661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2491 1 0 \"1997dfed_338e_4835_be62e8df12d601c6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2492 1 0 \"ea353674_7f93_41f1_86efcc100af8bea9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{{ 2493 1 0 \"5bec3981_8de0_41c8_bed0ec0b874d5d92\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveUsedChannel_5mL(ML_STAR, i_strStepReturn);\r\n// }} \"\"\r\n// {{ 2494 1 0 \"fb533517_b192_471c_aed38e1461e19086\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2496 1 0 \"fb533517_b192_471c_aed38e1461e19086\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetChannelPosition\" \"Begin\"\r\nfunction QUERY_GetChannelPosition( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable o_flt_Zcoord;\r\n// {{ 5 \"QUERY_GetChannelPosition\" \"InitLocals\"\r\no_flt_XCoord = 0;\r\no_flt_YCoord = 0;\r\no_flt_ZCoord = 0;\r\n// }} \"\"\r\n// {{ 2026 1 0 \"72722324_df01_4fbb_9a5e7339234ec121\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2027 1 0 \"0b965eb8_11a4_4c20_893fdf46498b8af7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2029 1 0 \"f5c61f92_e288_4116_8ee6d09170c0cbe4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2030 1 0 \"6a83cbd7_53dc_4f36_ae0f9c25c6b8a171\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2031 1 0 \"4880a01f_c88b_45b9_83e1813f90f3bd4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2032 1 0 \"17622dc7_c425_4d61_b6cf115767f1d68b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2033 1 0 \"d68915e2_5f30_4561_91c3a99d982f106c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2035 1 0 \"72722324_df01_4fbb_9a5e7339234ec121\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2036 1 0 \"9c406e26_ffe0_4139_94891bcb9ada6184\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2037 1 0 \"39743ecc_4198_4cd6_b1e1a4c277d4698e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 2038 1 0 \"db6dc089_6dd9_4a2d_b2985a4001fc42f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_1mL(ML_STAR, i_int_ChNumber, o_flt_XCoord, o_flt_YCoord, o_flt_ZCoord);\r\n// }} \"\"\r\n// {{ 2039 1 0 \"39743ecc_4198_4cd6_b1e1a4c277d4698e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 2040 1 0 \"e8f3d2d8_77e1_46ac_806cc1696e8e5cbb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position(ML_STAR, i_int_ChNumber, o_flt_XCoord, o_flt_YCoord, o_flt_Zcoord);\r\n// }} \"\"\r\n// {{ 2041 1 0 \"39743ecc_4198_4cd6_b1e1a4c277d4698e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2042 1 0 \"9b16f8f8_d8d4_46ef_850b157590032a00\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2044 1 0 \"9b16f8f8_d8d4_46ef_850b157590032a00\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetChannelPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetChannelPosition_5mL\" \"Begin\"\r\nfunction QUERY_GetChannelPosition_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"QUERY_GetChannelPosition_5mL\" \"InitLocals\"\r\no_flt_XCoord = 0;\r\no_flt_YCoord = 0;\r\no_flt_ZCoord = 0;\r\n// }} \"\"\r\n// {{ 2046 1 0 \"9d392352_ad2d_49d5_a32eca074e3c5bbe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2047 1 0 \"6601c893_583f_4d2c_a6ed455f740d4578\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2049 1 0 \"34fbc5df_b10b_409e_adb51397dce46d2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2050 1 0 \"3cd1c59d_93e9_4fcc_882398b4eb45b1a6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2051 1 0 \"a804ed53_86f5_4d56_8a9d2574891b5f41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2052 1 0 \"e397751f_950f_4261_9fb1bcc92b88ea01\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2053 1 0 \"78f88e58_aff6_443a_b8444f2adfc581ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2055 1 0 \"9d392352_ad2d_49d5_a32eca074e3c5bbe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2056 1 0 \"e42ee1ff_99ed_4602_8cb912728fc9458e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2057 1 0 \"2fca23b1_5599_4958_9b64c4c9688a55db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 2058 1 0 \"4be6a263_3ac2_4603_9a5ea322df818d22\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_5mL(ML_STAR, i_int_ChNumber, o_flt_XCoord, o_flt_YCoord, o_flt_ZCoord);\r\n// }} \"\"\r\n// {{ 2059 1 0 \"2fca23b1_5599_4958_9b64c4c9688a55db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 2060 1 0 \"d5b846ad_3bce_44a7_b4f594aecac73574\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_5mL(ML_STAR, i_int_ChNumber, o_flt_XCoord, o_flt_YCoord, o_flt_ZCoord);\r\n// }} \"\"\r\n// {{ 2061 1 0 \"2fca23b1_5599_4958_9b64c4c9688a55db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2062 1 0 \"50448636_540d_4bef_9cda906a0064e630\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2064 1 0 \"50448636_540d_4bef_9cda906a0064e630\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetChannelPosition_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetTipVolume\" \"Begin\"\r\nfunction QUERY_GetTipVolume( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"QUERY_GetTipVolume\" \"InitLocals\"\r\no_flt_MaxVolume = 0;\r\no_flt_CurrentChannelVolume = 0;\r\n// }} \"\"\r\n// {{ 2106 1 0 \"167f8bc4_aa65_47d9_a33ffc5d74d1bc6f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2107 1 0 \"82abed3e_d8be_41e6_9e31ee9f13366808\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2109 1 0 \"ea9354c1_880a_4aad_81decef55c0482d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2110 1 0 \"35675577_b9d1_43a4_86a75c1300262073\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2111 1 0 \"ce832223_d451_4f9d_876d78a508733246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2112 1 0 \"ad5f5f94_3458_4970_8d35c1c2b701603c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2113 1 0 \"0c974540_97c9_43f1_bf81536ceed66cbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2115 1 0 \"167f8bc4_aa65_47d9_a33ffc5d74d1bc6f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2116 1 0 \"5abc886b_3cc0_4b9e_b621985fbd5d8060\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2117 1 0 \"19b4a863_3ca9_43ff_b614c248949e5c97\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 2118 1 0 \"521be414_3797_4e9e_aa7f765da0005b1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Volume_1mL(ML_STAR, i_int_ChNumber, o_flt_MaxVolume, o_flt_CurrentChannelVolume);\r\n// }} \"\"\r\n// {{ 2119 1 0 \"19b4a863_3ca9_43ff_b614c248949e5c97\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 2120 1 0 \"ded09f28_1c06_489d_a2aadf24f98c71e0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Volume_1mL(ML_STAR, i_int_ChNumber, o_flt_MaxVolume, o_flt_CurrentChannelVolume);\r\n// }} \"\"\r\n// {{ 2121 1 0 \"19b4a863_3ca9_43ff_b614c248949e5c97\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2122 1 0 \"a83a3d7b_7531_4460_8d85a0741683bc78\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2124 1 0 \"a83a3d7b_7531_4460_8d85a0741683bc78\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetTipVolume\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetTipVolume_5mL\" \"Begin\"\r\nfunction QUERY_GetTipVolume_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"QUERY_GetTipVolume_5mL\" \"InitLocals\"\r\no_flt_MaxVolume = 0;\r\no_flt_CurrentChannelVolume = 0;\r\n// }} \"\"\r\n// {{ 2126 1 0 \"7c3933d3_8813_4c06_9c222e0bf4b56ca9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2127 1 0 \"d0d259b1_0e07_40a1_b1b6a17d828a740a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2129 1 0 \"9cf35723_3f7b_4321_a70ae43db4d261e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2130 1 0 \"e18bdcd2_90c1_499d_8a2bd34d185e3309\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2131 1 0 \"4c44995b_b38c_45de_951a4d3e42842da3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2132 1 0 \"6242026b_115d_47d8_8429709fcf63d316\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"b2249dad_81bc_4eae_a9a10603f549d4fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2135 1 0 \"7c3933d3_8813_4c06_9c222e0bf4b56ca9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2136 1 0 \"e28823ee_054e_4d64_91c089ee2861cff0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2137 1 0 \"cc306e8c_93b3_4fd4_aae27ea8dd3d59a1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 2138 1 0 \"85b4a486_d7c1_47c1_9f9100fab1a2ea4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Volume_5mL(ML_STAR, i_int_ChNumber, o_flt_MaxVolume, o_flt_CurrentChannelVolume);\r\n// }} \"\"\r\n// {{ 2139 1 0 \"cc306e8c_93b3_4fd4_aae27ea8dd3d59a1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"47645d5b_9349_4013_809523db83d991bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Volume_5mL(ML_STAR, i_int_ChNumber, o_flt_MaxVolume, o_flt_CurrentChannelVolume);\r\n// }} \"\"\r\n// {{ 2141 1 0 \"cc306e8c_93b3_4fd4_aae27ea8dd3d59a1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2142 1 0 \"dd62cd02_9b61_4e82_a9ed271918b2d709\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2144 1 0 \"dd62cd02_9b61_4e82_a9ed271918b2d709\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetTipVolume_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetTipPresentState\" \"Begin\"\r\nfunction QUERY_GetTipPresentState( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"QUERY_GetTipPresentState\" \"InitLocals\"\r\no_bln_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 2066 1 0 \"ff9e33bf_39d3_4598_b730452b6d07c356\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2067 1 0 \"0583602a_a0d5_4fb8_bb6b34ff0dd823f1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2069 1 0 \"abef674f_42d8_427d_8c41e7594334fa1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2070 1 0 \"8e15d31b_c925_48a2_8396d368b51499a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2071 1 0 \"5fcdc589_ea69_48a0_9275de70f65bb898\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2072 1 0 \"d018fdcc_bbc4_4db5_b2635eb886d551b1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2073 1 0 \"ba2f6192_ef79_4aac_8eb97cdd47565d2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2075 1 0 \"ff9e33bf_39d3_4598_b730452b6d07c356\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2076 1 0 \"94926528_e639_465a_a1ae149ab4ef6e7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2077 1 0 \"9ecf898c_4cae_461c_a5b9fe76a04c6386\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 2078 1 0 \"53d2ad4b_007d_4ffa_94ff968b0af18a3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, i_int_ChNumber, o_bln_TipPresent);\r\n// }} \"\"\r\n// {{ 2079 1 0 \"9ecf898c_4cae_461c_a5b9fe76a04c6386\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 2080 1 0 \"1a009cee_4e14_4779_aa70319c96c07857\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, i_int_ChNumber, o_bln_TipPresent);\r\n// }} \"\"\r\n// {{ 2081 1 0 \"9ecf898c_4cae_461c_a5b9fe76a04c6386\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2082 1 0 \"d31cced9_2755_4393_ae1f3fe391c351d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2084 1 0 \"d31cced9_2755_4393_ae1f3fe391c351d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetTipPresentState\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetTipPresentState_5mL\" \"Begin\"\r\nfunction QUERY_GetTipPresentState_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"QUERY_GetTipPresentState_5mL\" \"InitLocals\"\r\no_bln_TipPresent = 0;\r\n// }} \"\"\r\n// {{ 2086 1 0 \"5aaeea72_c66c_4521_81c54f3c24f9557b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2087 1 0 \"726cb224_3b62_4426_b3353fa676973475\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2089 1 0 \"b38fe88f_ee59_47d0_ae7c15fd490355a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2090 1 0 \"6f80ee81_0321_4d29_b47389b9ffd804cc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2091 1 0 \"f15087f3_a0bb_4438_8648a44235a97fe7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2092 1 0 \"ee3a6cd3_fdf7_4c2f_ab89d2b2f5da041b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2093 1 0 \"d8d509e4_aa2e_44f5_a812f44a6a71d524\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2095 1 0 \"5aaeea72_c66c_4521_81c54f3c24f9557b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2096 1 0 \"b9c5bfde_60b1_4d54_a990274421304bb1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2097 1 0 \"d01f9470_bd09_4471_b675eaab2085ff93\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 2098 1 0 \"2f88c98d_8497_4c32_8c559c9b35c656bf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_5mL(ML_STAR, i_int_ChNumber, o_bln_TipPresent);\r\n// }} \"\"\r\n// {{ 2099 1 0 \"d01f9470_bd09_4471_b675eaab2085ff93\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 2100 1 0 \"61b4e2ab_01c1_448e_a51800745ae8b00e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_5mL(ML_STAR, i_int_ChNumber, o_bln_TipPresent);\r\n// }} \"\"\r\n// {{ 2101 1 0 \"d01f9470_bd09_4471_b675eaab2085ff93\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2102 1 0 \"3e47cfd4_823d_4c65_8486595bfc94109c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2104 1 0 \"3e47cfd4_823d_4c65_8486595bfc94109c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"QUERY_GetTipPresentState_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_InitDispenseDrive\" \"Begin\"\r\nfunction MOVE_InitDispenseDrive( device & ML_STAR, variable i_int_ChNumber ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"MOVE_InitDispenseDrive\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1910 1 0 \"8442783a_6ff8_4a68_82caecc5258e13da\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1911 1 0 \"7afce8ff_cebb_4cb8_b85690e40cc610b7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1913 1 0 \"14d6bd6e_f5a8_42b9_b9db726248c00885\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1914 1 0 \"2449c0fc_6551_4729_bcf198b2c321999e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1915 1 0 \"f73fc0f3_ccd7_4687_992990225d0215e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1916 1 0 \"aeb9d229_2268_4e49_8cece5210cf66038\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1917 1 0 \"e6db9cba_5fe8_448b_a83c6b5c15e78b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1919 1 0 \"8442783a_6ff8_4a68_82caecc5258e13da\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1920 1 0 \"1fff5c50_a7a4_45df_be58f4e7b317c6ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1921 1 0 \"0b014b11_c777_420a_95ccf6f25e10eb99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1922 1 0 \"71b54651_31cc_4217_853ca69d71bcca71\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::InitializeDispenseDrive_1mL(ML_STAR, i_int_ChNumber);\r\n// }} \"\"\r\n// {{ 1923 1 0 \"0b014b11_c777_420a_95ccf6f25e10eb99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1924 1 0 \"d5c2858d_f903_46c2_ab48b5689876efe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::InitializeDispenseDrive_1mL(ML_STAR, i_int_ChNumber);\r\n// }} \"\"\r\n// {{ 1925 1 0 \"0b014b11_c777_420a_95ccf6f25e10eb99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1926 1 0 \"c4065a1f_4a90_415c_8a0a5ab462579bf6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1928 1 0 \"c4065a1f_4a90_415c_8a0a5ab462579bf6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_InitDispenseDrive\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_InitDispenseDrive_5mL\" \"Begin\"\r\nfunction MOVE_InitDispenseDrive_5mL( device & ML_STAR, variable i_int_ChNumber ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\n// {{ 5 \"MOVE_InitDispenseDrive_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1930 1 0 \"3a063988_5943_4537_bd2696022c61173d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1931 1 0 \"44b8134b_fc67_48e7_a1d37186f6e1e83c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1933 1 0 \"4fc7d04c_b70c_4e2f_9716911916acb3d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1934 1 0 \"ef27ae45_e951_487e_ba4139a3b7eb6b87\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1935 1 0 \"5546710b_1432_4953_be755a9d042c48ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1936 1 0 \"139b58fb_f23c_4264_b960db65afd927d2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1937 1 0 \"253636b2_1205_49fa_9d6e09209ee0eb2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1939 1 0 \"3a063988_5943_4537_bd2696022c61173d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1940 1 0 \"6a23f7e8_6a30_48d4_918f0094b1b4a8dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1941 1 0 \"50012eb3_7934_431c_9fe42213f00e4e4d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1942 1 0 \"d44f4c47_6df3_4aba_9520dc759ad3dbf1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::InitializeDispenseDrive_5mL(ML_STAR, i_int_ChNumber);\r\n// }} \"\"\r\n// {{ 1943 1 0 \"50012eb3_7934_431c_9fe42213f00e4e4d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1944 1 0 \"ef2a9dd3_6dea_471b_9b417cae0e1f6c4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::InitializeDispenseDrive_5mL(ML_STAR, i_int_ChNumber);\r\n// }} \"\"\r\n// {{ 1945 1 0 \"50012eb3_7934_431c_9fe42213f00e4e4d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1946 1 0 \"7c2ddbe4_1ebb_4c3b_b5e3fb8cfeb31bc6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1948 1 0 \"7c2ddbe4_1ebb_4c3b_b5e3fb8cfeb31bc6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_InitDispenseDrive_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_CheckPlateWithTwoChannels\" \"Begin\"\r\nfunction MOVE_CheckPlateWithTwoChannels( device & ML_STAR, variable i_int_FrontMostChannel, sequence i_seq_PlateToCheck, variable i_flt_TapWidth ) variable {\r\n// }} \"\"\r\nprivate variable ret_PlateExists;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable num_1mL_channels;\r\nprivate variable str_LabID;\r\nprivate variable int_BackChannel;\r\nprivate variable bln_TipPresentBack;\r\nprivate variable bln_TipPresentFront;\r\nprivate variable str_ReturnValue;\r\nprivate variable str_FWParameter;\r\nprivate variable flt_ZSpeed;\r\nprivate variable str_FWCommand;\r\nprivate variable flt_SearchSpeed;\r\nprivate variable flt_ZIncremenToMM;\r\nprivate variable int_ZSpeed;\r\nprivate variable str_ZV;\r\nprivate variable str_ZSpeed;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_RackClearance;\r\nprivate variable flt_RackHeight;\r\nprivate variable flt_MinimumSearchHeight;\r\nprivate variable flt_XCenter;\r\nprivate variable flt_YCenter;\r\nprivate variable bln_PlateFound;\r\nprivate variable arr_ChPattern[];\r\nprivate variable arr_YPosition[];\r\nprivate variable arr_ZPosition[];\r\nprivate variable int_ChIndex;\r\nprivate variable flt_BackChannel_X;\r\nprivate variable flt_BackChannel_Y;\r\nprivate variable flt_BackChannel_Z;\r\nprivate variable flt_FrontChannel_X;\r\nprivate variable flt_FrontChannel_Y;\r\nprivate variable flt_FrontChannel_Z;\r\nprivate variable str_ChPattern;\r\nprivate variable arr_XPosition[];\r\nprivate variable flt_FrontChannel_YCenter;\r\nprivate variable flt_BackChannel_YCenter;\r\nprivate variable bln_SimMode;\r\nprivate variable flt_YOffset;\r\n// {{ 5 \"MOVE_CheckPlateWithTwoChannels\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1735 1 0 \"f8128114_7776_45c6_a5b34d02922ce2ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_PlateExists = 0;\r\n// }} \"\"\r\n// {{ 1736 1 0 \"3c407e65_755c_44c4_baa793f614b76054\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1737 1 0 \"49a0d5f6_12cb_4960_b1141548956c41ae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1739 1 0 \"0f031814_6d1c_4ea7_bb4e38c57a85bf0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1740 1 0 \"77e77e3f_3868_480a_918e25f1c9aae386\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1741 1 0 \"15fc934b_228c_40e9_b868a60d393f309e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1742 1 0 \"6c1c7195_6b25_4114_a15a1074ed258d3e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1743 1 0 \"289c2da6_38f3_450f_834da9d24a465419\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1745 1 0 \"3c407e65_755c_44c4_baa793f614b76054\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1746 1 0 \"f789843d_0585_42d0_bf79bf0d50eeaed5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1747 1 0 \"174b16ab_b0a1_4454_950275c50c22a850\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 1748 1 0 \"77778bbe_57f2_4c3e_bfb8659e18910fc2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_TapWidth < 9.0)\r\n{\r\n// }} \"\"\r\n// {{ 1749 1 0 \"482e7814_e91d_4360_a764a81a1ab1faaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_flt_TapWidth = 9.0;\r\n// }} \"\"\r\n// {{ 1750 1 0 \"77778bbe_57f2_4c3e_bfb8659e18910fc2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1751 1 0 \"aab23d9c_4940_47c0_a01037bf4b72d1b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_TapWidth > 128.0)\r\n{\r\n// }} \"\"\r\n// {{ 1752 1 0 \"778211c4_3e84_47ae_bc59457ff9a64d28\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_flt_TapWidth = 128.0;\r\n// }} \"\"\r\n// {{ 1753 1 0 \"aab23d9c_4940_47c0_a01037bf4b72d1b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1754 1 0 \"11a4de8d_793c_4165_ad2f02126240a483\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZIncremenToMM = 0.01072765;\r\n// }} \"\"\r\n// {{ 1755 1 0 \"b6cb2e4b_d6fa_41b7_8c00e3b7b29e66d9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SearchSpeed = 45.0;\r\n// }} \"\"\r\n// {{ 1756 1 0 \"b3122941_5027_4aad_833c9f488e725116\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1757 1 0 \"cc6355e3_ab1f_46cb_bd40d0fa15cf79aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 1758 1 0 \"84ad6767_c59e_4a7e_bcdac9a760889cdb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_PlateToCheck);\r\n// }} \"\"\r\n// {{{ 1759 1 0 \"33ab6396_0e3c_4c9f_96658c3c8c3a5308\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_LabID);\r\n// }} \"\"\r\n// {{ 1760 1 0 \"5cfe5832_7859_489e_9356eba9b3f3bd99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_1mL_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1761 1 0 \"a905c17d_9773_41e6_baca14f4d5bd9688\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1762 1 0 \"d2d137ed_3f5f_4166_81b48e6d8990f2bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1763 1 0 \"5cfe5832_7859_489e_9356eba9b3f3bd99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1764 1 0 \"3e575a94_4051_4465_83a96c5cb6ebc2dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_FrontMostChannel < 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1765 1 0 \"f2846092_4dfe_41c9_b9b7d8b7560b68ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  Front channel is less than 2!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1766 1 0 \"54af4e57_7fb2_4835_b6467e7f12356a5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Front channel is less than 2!\"));\r\n// }} \"\"\r\n// {{ 1767 1 0 \"3e575a94_4051_4465_83a96c5cb6ebc2dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1768 1 0 \"eef9b580_55b8_4d04_bea05178b3e38901\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_FrontMostChannel > num_1mL_channels)\r\n{\r\n// }} \"\"\r\n// {{{ 1769 1 0 \"5e464b80_55ec_4611_80d7e741068f2654\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  Front channel is greater than the number of channels loaded!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1770 1 0 \"d2e6754b_80f7_4001_a0151332e591f649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Front channel is greater than the number of channels loaded!\"));\r\n// }} \"\"\r\n// {{ 1771 1 0 \"eef9b580_55b8_4d04_bea05178b3e38901\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1772 1 0 \"edcd67cc_bf7f_49e9_bf3f5a95cc4b8c99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1773 1 0 \"6fd5b7ec_4457_40f4_8d7e6a0f8106644e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  Sequence position does not have a labware!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1774 1 0 \"43599c05_8738_4379_a0ed5f8ef8c7fee5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Sequence position does not have a labware!\"));\r\n// }} \"\"\r\n// {{ 1775 1 0 \"edcd67cc_bf7f_49e9_bf3f5a95cc4b8c99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1776 1 0 \"10536c51_944e_4cc7_9051cb3fee6a9f52\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_BackChannel = i_int_FrontMostChannel - 1;\r\n// }} \"\"\r\n// {{ 1777 1 0 \"9a8df886_e468_4769_b17854fb5fcb7027\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1778 1 0 \"14157106_d897_4294_83f62c2d0b9a524d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1779 1 0 \"c9a47bbb_b55b_4ef0_b4436b0f1d629e12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, int_BackChannel, bln_TipPresentBack);\r\n// }} \"\"\r\n// {{{ 1780 1 0 \"199f2311_0ff5_4dfa_8cc47a09cc969e13\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, i_int_FrontMostChannel, bln_TipPresentFront);\r\n// }} \"\"\r\n// {{ 1781 1 0 \"14157106_d897_4294_83f62c2d0b9a524d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1782 1 0 \"03ad3d52_5c36_4257_806a8ab0bdefd3a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, int_BackChannel, bln_TipPresentBack);\r\n// }} \"\"\r\n// {{{ 1783 1 0 \"2525b4a3_29de_4559_99006aeb2f388488\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, i_int_FrontMostChannel, bln_TipPresentFront);\r\n// }} \"\"\r\n// {{ 1784 1 0 \"14157106_d897_4294_83f62c2d0b9a524d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1785 1 0 \"9a8df886_e468_4769_b17854fb5fcb7027\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1786 1 0 \"fb6e2c3e_2239_492c_a0c3b7f5cabbc313\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_TipPresentBack = 1;\r\n// }} \"\"\r\n// {{ 1787 1 0 \"69b82740_1826_4673_be6e4fb276e590e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_TipPresentFront = 1;\r\n// }} \"\"\r\n// {{ 1788 1 0 \"9a8df886_e468_4769_b17854fb5fcb7027\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Back channel present:  \",bln_TipPresentBack);\r\nTrace(\"Front channel present:  \",bln_TipPresentFront);\r\n// {{ 1790 1 0 \"9cdd36d1_d974_43b3_ac52f17c3242a349\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipPresentBack == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1791 1 0 \"f9385ae4_c948_4e56_a88b94b57e986b3b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  Channel does not have a tip or tool!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1792 1 0 \"3b9031ec_2753_4edc_8fa0aca20dc59948\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Channels do not have a tip or tool loaded!\"));\r\n// }} \"\"\r\n// {{ 1793 1 0 \"9cdd36d1_d974_43b3_ac52f17c3242a349\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1794 1 0 \"2a9621ff_4a5e_4df4_87b5066e60236ee8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipPresentFront == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1795 1 0 \"c3275a38_ce5f_4096_9c31b884be9a558f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  Channel does not have a tip or tool!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1796 1 0 \"b69b0a17_809e_497c_a81c5654c0f3ef38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"Channels do not have a tip or tool loaded!\"));\r\n// }} \"\"\r\n// {{ 1797 1 0 \"2a9621ff_4a5e_4df4_87b5066e60236ee8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1798 1 0 \"b3122941_5027_4aad_833c9f488e725116\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1799 1 0 \"be15a4fb_7237_440f_87e22544b58f42a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::LABWARE_GetLabwareOrigin(ML_STAR, i_seq_PlateToCheck, flt_NotUsed, flt_NotUsed, flt_ZBottom);\r\n// }} \"\"\r\n// {{{ 1800 1 0 \"de3b1c39_263b_49c5_92c0dd5d5381b938\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::LABWARE_GetRackHeight(ML_STAR, i_seq_PlateToCheck, 1, flt_RackHeight, flt_RackClearance);\r\n// }} \"\"\r\n// {{{ 1801 1 0 \"2896f3f2_b888_455a_a30417a30af1e98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::LABWARE_GetLabwareCenter(ML_STAR, i_seq_PlateToCheck, flt_XCenter, flt_YCenter);\r\n// }} \"\"\r\n// {{ 1802 1 0 \"7a5d5380_60f8_4fea_8c2ef6436458eb30\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumSearchHeight = flt_RackHeight - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1803 1 0 \"70757766_3bdc_40d9_94bd3de19988389e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumSearchHeight = flt_MinimumSearchHeight / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 1804 1 0 \"280b0f8b_0a79_4ed0_999c6f35b38711c5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumSearchHeight = flt_MinimumSearchHeight + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1805 1 0 \"135e6304_7c0e_44b9_b9b2dbd1f1d39def\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType > 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1806 1 0 \"19498956_820b_4c64_b819663cb4a38bf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_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);\r\n// }} \"\"\r\n// {{ 1807 1 0 \"450d97e0_084b_45f1_a6c6091bf2dbae25\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1809 1 0 \"450d97e0_084b_45f1_a6c6091bf2dbae25\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nif(bln_PlateFound == 1) ret_PlateExists = hslTrue;\r\nif(bln_PlateFound == 0) ret_PlateExists = hslFalse;\r\n// {{{ 1811 1 0 \"c30c2a8b_9013_4288_85d005853128f56f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_PlateExists);\r\n// }} \"\"\r\n// {{ 1812 1 0 \"135e6304_7c0e_44b9_b9b2dbd1f1d39def\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1813 1 0 \"a79175b7_8143_4d8f_b01f627d392d88fa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1814 1 0 \"fef91437_2d02_4a3f_ba873b35c770c8b8\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 1815 1 0 \"ff5764e4_5385_4cb4_8503da005c665523\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_XPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1816 1 0 \"3c0e72ef_b7f6_4a7f_830a9f78aec691af\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_YPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1817 1 0 \"4223c9a4_b2ff_4057_bf0f5681fc1b1bd2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ZPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1818 1 0 \"d20faef7_95b6_4e71_970d86321fa75207\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 1819 1 0 \"bee2ac36_ac85_4189_9f0085104e63c616\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 1820 1 0 \"89a47f34_8f54_4b53_bd3776a5f5ad2c5d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_XPosition.AddAsLast(flt_XCenter);\r\n// }} \"\"\r\n// {{ 1821 1 0 \"f62bda15_f8ec_4e31_92f971fd41d12a43\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1822 1 0 \"5918befe_42ca_4bba_bc0690f51f129b2a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ZPosition.AddAsLast(245.0);\r\n// }} \"\"\r\n// {{ 1823 1 0 \"d20faef7_95b6_4e71_970d86321fa75207\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1824 1 0 \"7d7878c3_0534_4714_90c01772bcc2ac6b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YOffset = i_flt_TapWidth / (2.0 * 1.0);\r\n// }} \"\"\r\n// {{ 1825 1 0 \"7603e11d_cbc3_41ea_8fc1444f887ef007\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YOffset = flt_YOffset + 4.5;\r\n// }} \"\"\r\n// {{ 1826 1 0 \"8279df88_a687_4978_b45d62e8c2973e4a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_FrontChannel_YCenter = flt_YCenter - flt_YOffset;\r\n// }} \"\"\r\n// {{ 1827 1 0 \"d87dc555_2345_4bf3_9208f361805ea745\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BackChannel_YCenter = flt_YCenter + flt_YOffset;\r\n// }} \"\"\r\n// {{ 1828 1 0 \"0a316aea_eb1e_45d2_a2b0c5a20f99d785\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.SetAt(i_int_FrontMostChannel-1, 1);\r\n// }} \"\"\r\n// {{ 1829 1 0 \"94ce9386_573c_4c39_88d5a626203999d0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.SetAt(int_BackChannel-1, 1);\r\n// }} \"\"\r\n// {{ 1830 1 0 \"b06be25e_38e3_4cd0_94255fdc7c4476ba\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.SetAt(i_int_FrontMostChannel-1, flt_FrontChannel_YCenter);\r\n// }} \"\"\r\n// {{ 1831 1 0 \"9abfceb4_136c_4621_b34d39e71b059da9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.SetAt(int_BackChannel-1, flt_BackChannel_YCenter);\r\n// }} \"\"\r\n// {{ 1832 1 0 \"f78f523c_c95f_4458_949581b76878fea3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1833 1 0 \"8e6805be_98d0_4715_9e2b4f6cd7d87864\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1834 1 0 \"5b428939_3b10_4008_ad0046b61432e0a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 1835 1 0 \"8e6805be_98d0_4715_9e2b4f6cd7d87864\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1836 1 0 \"c1999267_95e2_4d44_ae73ab9beac689c0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XPosition, arr_YPosition, arr_ZPosition);\r\n// }} \"\"\r\n// {{ 1837 1 0 \"a79175b7_8143_4d8f_b01f627d392d88fa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1838 1 0 \"a64f5d99_5871_47f2_a8fcc4a9f5bbecfe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1839 1 0 \"22449654_6170_4eef_ab9ba4910f9f1e12\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 1840 1 0 \"340f6ee9_11ae_40e1_a407a2dfe6c26dab\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_XPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1841 1 0 \"a8bd92b2_5731_40ef_8843e67c8bb903bc\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_YPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1842 1 0 \"acbea1e5_b7c1_4840_a54fdf16ee978b40\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ZPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1843 1 0 \"bfb735f0_cf4a_45ea_ad2a1133c26f5720\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 1844 1 0 \"7ab7e3c3_f3e5_4e4f_bfc6f3def078883b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 1845 1 0 \"44e4438d_8945_4241_b193a5a6d7f1c609\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_XPosition.AddAsLast(flt_XCenter);\r\n// }} \"\"\r\n// {{ 1846 1 0 \"d3fdc539_4c47_4ee0_829e1002ffb0b65b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1847 1 0 \"2bec60a3_bdd1_40b8_b3a67d4517af0d37\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ZPosition.AddAsLast(245.0);\r\n// }} \"\"\r\n// {{ 1848 1 0 \"bfb735f0_cf4a_45ea_ad2a1133c26f5720\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1849 1 0 \"0d860b4b_4db6_4d07_ba3c4fc949d9c92b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YOffset = i_flt_TapWidth / (2.0 * 1.0);\r\n// }} \"\"\r\n// {{ 1850 1 0 \"758c8e6c_3928_49e3_b41c8226c79fcd78\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_FrontChannel_YCenter = flt_YCenter - flt_YOffset;\r\n// }} \"\"\r\n// {{ 1851 1 0 \"900c7906_792e_4ed3_84fd31f47022c844\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BackChannel_YCenter = flt_YCenter + flt_YOffset;\r\n// }} \"\"\r\n// {{ 1852 1 0 \"619625e8_223b_4ab2_ae14ce0b42e4c9f8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.SetAt(i_int_FrontMostChannel-1, 1);\r\n// }} \"\"\r\n// {{ 1853 1 0 \"5a7ebbd8_4ce8_45d4_9bc55ea8c7be9318\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.SetAt(int_BackChannel-1, 1);\r\n// }} \"\"\r\n// {{ 1854 1 0 \"d24f6245_2a3b_48ce_aa7d0ef494243b75\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.SetAt(i_int_FrontMostChannel-1, flt_FrontChannel_YCenter);\r\n// }} \"\"\r\n// {{ 1855 1 0 \"aefb55a1_9fad_429c_a637e406b9650a05\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.SetAt(int_BackChannel-1, flt_BackChannel_YCenter);\r\n// }} \"\"\r\n// {{ 1856 1 0 \"821869f6_879a_4841_88a15c56bd462a18\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1857 1 0 \"0d6e8bc4_6ca4_4238_844a4bcd8be16110\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1858 1 0 \"25c11394_e6a6_4ea6_8c9466c16855151f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 1859 1 0 \"0d6e8bc4_6ca4_4238_844a4bcd8be16110\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1860 1 0 \"f1cfdd5a_524e_481e_a0b2c3dd9fe16844\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XPosition, arr_YPosition, arr_ZPosition);\r\n// }} \"\"\r\n// {{ 1861 1 0 \"a64f5d99_5871_47f2_a8fcc4a9f5bbecfe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1862 1 0 \"1b727554_531f_4e9f_b9f0ace25a28f9ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1863 1 0 \"381057a9_5831_4de4_868ae4d0a69a3fbf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Change Z speed and sensitivity\"));\r\n// }} \"\"\r\n// {{ 1864 1 0 \"73827788_e70c_415a_a4156def7f7cf82c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZSpeed = flt_SearchSpeed / (flt_ZIncremenToMM * 1.0);\r\n// }} \"\"\r\n// {{{ 1865 1 0 \"e15c54db_e986_4c4d_aca69ab8588d11a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ZSpeed = MthCeiling(flt_ZSpeed);\r\n// }} \"\"\r\n// {{{ 1866 1 0 \"7cabf264_edfe_46e3_9f8c2517507e2eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZSpeed = StrConcat2(int_ZSpeed, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1867 1 0 \"b6b8f20b_b2d9_4dbc_90559324e87dc7e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZSpeed = StrFillLeft(str_ZSpeed, Translate(\"0\"), 5);\r\n// }} \"\"\r\n// {{{ 1868 1 0 \"0433168d_463c_427e_a689a588645692d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ZV = StrConcat4(Translate(\"zv\"), str_ZSpeed, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1869 1 0 \"517ca6a3_f7c0_442f_894b6aae1e5e615b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FWCommand = Translate(\"PXAA\");\r\n// }} \"\"\r\n// {{{ 1870 1 0 \"680fb508_cfee_4a34_b3845b76c8f8f09f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FWParameter = StrConcat8(Translate(\"zr005zw1\"), str_ZV, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\nTrace(\"FW Command:  \",str_FWCommand,\" : \",str_FWParameter);\r\n// {{ 1872 1 0 \"ef3e7bb8_57d4_4430_afa6ed39d4d0c578\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"ef3e7bb8_57d4_4430_afa6ed39d4d0c578\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 1873 1 0 \"1b727554_531f_4e9f_b9f0ace25a28f9ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1874 1 0 \"be321fbc_c0c6_4033_ad37c7c7eb1cdb60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1875 1 0 \"1e3c7be9_6183_457b_9953ea61e9f07afc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_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);\r\n// }} \"\"\r\n// {{ 1876 1 0 \"be321fbc_c0c6_4033_ad37c7c7eb1cdb60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1877 1 0 \"fa35a50b_f227_44af_a7c54a8a8e50064b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1878 1 0 \"75168aa0_06d1_400e_ac2f1b41de131df6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Reset the speed back to normal\"));\r\n// }} \"\"\r\n// {{ 1879 1 0 \"2b2884b1_9684_4448_80cdb31c25dd30fb\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"2b2884b1_9684_4448_80cdb31c25dd30fb\"); // FirmwareCommand\r\n\tstr_ReturnValue = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 1880 1 0 \"fa35a50b_f227_44af_a7c54a8a8e50064b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1881 1 0 \"155bbd3f_33f9_43e5_aba49a4c2aa78e3e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1882 1 0 \"290a2aae_695c_4b08_a11682c45086aaa8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_1mL(ML_STAR, int_BackChannel, flt_BackChannel_X, flt_BackChannel_Y, flt_BackChannel_Z);\r\n// }} \"\"\r\n// {{{ 1883 1 0 \"83b8f0ee_ac0b_469e_b831f30d60c1188b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_1mL(ML_STAR, i_int_FrontMostChannel, flt_FrontChannel_X, flt_FrontChannel_Y, flt_FrontChannel_Z);\r\n// }} \"\"\r\n// {{ 1884 1 0 \"d2e73038_8a5e_48c0_9bc4cb208b498383\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 1885 1 0 \"24a58a8c_96aa_440e_b88c631e8bd575fb\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_XPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1886 1 0 \"d6a2a54a_769b_41de_990926359f5d67b0\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_YPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1887 1 0 \"ed10c26e_ef4b_4d50_a5addfb8312b0c8d\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ZPosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1888 1 0 \"87edf40d_590f_4a98_a6f1009aba7b0769\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 1889 1 0 \"fe1a2a24_d162_4cda_a3ce84af5842373e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 1890 1 0 \"14123640_c2cf_48b9_a1fad4ffb411127c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_XPosition.AddAsLast(flt_XCenter);\r\n// }} \"\"\r\n// {{ 1891 1 0 \"9c9cfb23_19c1_49a7_95dbdcf2c9eed248\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1892 1 0 \"7979331a_4448_4f7b_aaaf4dae9b06fc34\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ZPosition.AddAsLast(245.0);\r\n// }} \"\"\r\n// {{ 1893 1 0 \"87edf40d_590f_4a98_a6f1009aba7b0769\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1894 1 0 \"bce6ddc1_fbfc_4684_a6c1b1614581462e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.SetAt(i_int_FrontMostChannel-1, 1);\r\n// }} \"\"\r\n// {{ 1895 1 0 \"9907d217_8c8a_4359_abbc2d8f6c17ac71\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.SetAt(int_BackChannel-1, 1);\r\n// }} \"\"\r\n// {{ 1896 1 0 \"d001c647_e5bf_45d1_a65ba9323dc1228a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.SetAt(i_int_FrontMostChannel-1, flt_FrontChannel_Y);\r\n// }} \"\"\r\n// {{ 1897 1 0 \"9c34b7e7_062a_4699_9710a045057d0a67\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YPosition.SetAt(int_BackChannel-1, flt_BackChannel_Y);\r\n// }} \"\"\r\n// {{ 1898 1 0 \"8ab9fd08_ae4f_4f40_b8c3f341f9c2f52a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1899 1 0 \"7cf534d4_bf05_4e5a_aaf131d3e64a747c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1900 1 0 \"f13a0add_17e3_4e32_86428b91300f9e90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 1901 1 0 \"7cf534d4_bf05_4e5a_aaf131d3e64a747c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1902 1 0 \"18d50fd5_5a74_49ab_a602cbb96a14d991\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XPosition, arr_YPosition, arr_ZPosition);\r\n// }} \"\"\r\n// {{ 1903 1 0 \"155bbd3f_33f9_43e5_aba49a4c2aa78e3e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1904 1 0 \"7834c191_5d0c_4128_a27f59f7f6b43faa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1906 1 0 \"7834c191_5d0c_4128_a27f59f7f6b43faa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nif(bln_PlateFound == 1) ret_PlateExists = hslTrue;\r\nif(bln_PlateFound == 0) ret_PlateExists = hslFalse;\r\n// {{{ 1908 1 0 \"963aee20_df15_406c_a08adeac4fe315db\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_PlateExists);\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_CheckPlateWithTwoChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_ChannelsToSequencePosition\" \"Begin\"\r\nfunction MOVE_ChannelsToSequencePosition( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable num_1mL_channels;\r\nprivate variable arr_XCoord[];\r\nprivate variable arr_ChPattern[];\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_ZCoord[];\r\nprivate variable int_ChIndex;\r\nprivate variable str_Left;\r\nprivate variable str_Value;\r\nprivate variable flt_ZCoord;\r\nprivate variable flt_YCoord;\r\nprivate variable flt_XCoord;\r\nprivate variable str_LabID;\r\nprivate variable int_Value;\r\nprivate variable str_ChPattern;\r\n// {{ 5 \"MOVE_ChannelsToSequencePosition\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1623 1 0 \"31304d52_a026_4718_be61dcbcb7e70d8e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1624 1 0 \"88249d15_8ec9_47c4_b57608c0984b738a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1626 1 0 \"daac1dec_2efc_460c_9cb812ffcb62b563\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1627 1 0 \"c266a97f_2f5c_4f1f_8052e2c552a9a819\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"c2dedc14_3396_4230_884cd78a4b5fe075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1629 1 0 \"58071302_fdbe_4b8b_9fe11351c7b0d568\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1630 1 0 \"a9469aa2_eadb_4fae_bc93812995e6a5b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1632 1 0 \"31304d52_a026_4718_be61dcbcb7e70d8e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"6934bfa8_0b29_41d8_8a78c50ab71f7d28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1634 1 0 \"b5345ed4_41c5_4eaa_bfd301e29939428a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"57b47262_2c7c_4c6b_8ddcbe22be034d1e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{ 1636 1 0 \"de402e80_5ee1_4f8c_9e39fdd204ad8e23\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_1mL_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"9187c32b_293f_4c47_8cdf69a798defb4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1638 1 0 \"ad12c7c6_9344_48e3_bdbd35aa4ef37613\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1639 1 0 \"de402e80_5ee1_4f8c_9e39fdd204ad8e23\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1640 1 0 \"b5345ed4_41c5_4eaa_bfd301e29939428a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"eae85b05_567a_49f0_889a194dd593dde1\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 1642 1 0 \"6242f190_81a7_4232_8b746f19f76fa22f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_XCoord.SetSize(0);\r\n// }} \"\"\r\n// {{ 1643 1 0 \"17f28be2_753e_4284_8e0568ce79744c9e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_YCoord.SetSize(0);\r\n// }} \"\"\r\n// {{ 1644 1 0 \"d416ae74_b874_4d37_bceef17b61da4c04\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ZCoord.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"bf351f45_44dd_4acc_be528ca1be947002\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), num_1mL_channels);\r\n// }} \"\"\r\n// {{ 1646 1 0 \"aab491cc_c353_438f_82541921a5326622\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1647 1 0 \"adc1e872_5404_4c21_ab22d2c63e1686d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Left = StrLeft(i_str_ChPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 1648 1 0 \"ef3f330e_f76d_4d65_90318ff3f6ae6f00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrRight(str_Left, 1);\r\n// }} \"\"\r\n// {{{ 1649 1 0 \"6049adef_1af2_4c23_931643e81424254f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"d8cf5121_cd12_466c_87e2d8043c12730f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Positions);\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"7297fe0c_a66e_4ed1_bfeb472b8cc6837d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_LabID);\r\n// }} \"\"\r\n// {{ 1652 1 0 \"4b495ffa_9b9d_4d06_a0e1a890e2c22dca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1653 1 0 \"658712da_f3db_4aea_ac6a23815835aee2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::LABWARE_GetCurrentPosition(ML_STAR, i_seq_Positions, flt_XCoord, flt_YCoord, flt_ZCoord);\r\n// }} \"\"\r\n// {{ 1654 1 0 \"4b495ffa_9b9d_4d06_a0e1a890e2c22dca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1655 1 0 \"9670aa61_2ae5_400d_8389c9e828f0d0a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Value = 0;\r\n// }} \"\"\r\n// {{ 1656 1 0 \"0141b5c3_aa6c_4fc6_8da8232c8c8ece76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCoord = 0.0;\r\n// }} \"\"\r\n// {{ 1657 1 0 \"e716396e_d207_47da_8618e6c39f72bd9e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YCoord = 0.0;\r\n// }} \"\"\r\n// {{ 1658 1 0 \"bc2f7c24_ea24_4473_bb6ac932ab23e16e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZCoord = 0.0;\r\n// }} \"\"\r\n// {{ 1659 1 0 \"4b495ffa_9b9d_4d06_a0e1a890e2c22dca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"5dfa1a78_9027_4677_b5f4b9c69a83c5be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_Positions, 1);\r\n// }} \"\"\r\n// {{ 1661 1 0 \"63dba962_e9eb_4fdd_8ffa3dee42661402\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_Value);\r\n// }} \"\"\r\n// {{ 1662 1 0 \"c3b11d87_8c57_4249_9d4d287075074a15\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_XCoord.AddAsLast(flt_XCoord);\r\n// }} \"\"\r\n// {{ 1663 1 0 \"217d83e0_bf96_432e_a046862bd2810124\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YCoord.AddAsLast(flt_YCoord);\r\n// }} \"\"\r\n// {{ 1664 1 0 \"636b0004_da2e_4ceb_a1b669b450416f96\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ZCoord.AddAsLast(i_flt_ZHeight);\r\n// }} \"\"\r\n// {{ 1665 1 0 \"aab491cc_c353_438f_82541921a5326622\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1666 1 0 \"6943138f_8470_4169_a33ac0d707809f0f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1667 1 0 \"764ab6b0_bfd2_4b8e_80d755c000b3c624\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"610d91be_694d_4f30_8798673436589cd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 1669 1 0 \"764ab6b0_bfd2_4b8e_80d755c000b3c624\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1670 1 0 \"aebe89aa_a262_4407_99525d3f464e6963\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"ad02be1a_329a_4a34_97895a5e0588f054\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZCoord);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"aebe89aa_a262_4407_99525d3f464e6963\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1673 1 0 \"6c2121e1_abcc_4baf_9d8a94b72cee5564\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZCoord);\r\n// }} \"\"\r\n// {{ 1674 1 0 \"aebe89aa_a262_4407_99525d3f464e6963\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1675 1 0 \"f95272cf_c497_461e_899a6c752ab5546d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1677 1 0 \"f95272cf_c497_461e_899a6c752ab5546d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_ChannelsToSequencePosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_ChannelsToSequencePosition_5mL\" \"Begin\"\r\nfunction MOVE_ChannelsToSequencePosition_5mL( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void {\r\n// }} \"\"\r\nprivate variable str_Left;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable flt_ZCoord;\r\nprivate variable flt_YCoord;\r\nprivate variable strFunctionName;\r\nprivate variable flt_XCoord;\r\nprivate variable str_LabID;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable num_1mL_channels;\r\nprivate variable int_Count;\r\nprivate variable int_Value;\r\nprivate variable str_Value;\r\nprivate variable int_ChIndex;\r\nprivate variable str_ChPattern;\r\nprivate variable arr_ChPattern[];\r\nprivate variable arr_ZCoord[];\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_XCoord[];\r\n// {{ 5 \"MOVE_ChannelsToSequencePosition_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1679 1 0 \"8de78841_d47a_44e2_80da7eb4bc554659\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1680 1 0 \"e904eb74_811c_45f2_91435a76b5ee72cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1682 1 0 \"95622491_28c1_45cc_916150064ed83559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1683 1 0 \"1df0357c_08a8_49ab_9a17dd9fe7510d5b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1684 1 0 \"d2a6dcd3_8c97_4df7_83f84d0e1e159901\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1685 1 0 \"808f366e_a5a9_401c_9857753fc05f440c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1686 1 0 \"cb07a334_9c10_4760_b309fba1f0eb8068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 1688 1 0 \"8de78841_d47a_44e2_80da7eb4bc554659\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1689 1 0 \"c090efc2_d952_4e26_a6a92cb2c6dd74f9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1690 1 0 \"a817b917_3a35_4965_8c764ab10ae0f2bf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1691 1 0 \"291b88f5_bca3_4269_8fe8ca48586b8caa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnum_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{ 1692 1 0 \"f9efc355_ef27_4282_9fefebb386506b6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (num_1mL_channels == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1693 1 0 \"c430eef5_e60e_422f_8216d53348880909\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"****************************  There are no 1 mL channels installed!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1694 1 0 \"44256567_0cbc_4ce3_99f6e774bb94bbad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"No 1 mL channels installed!!\"));\r\n// }} \"\"\r\n// {{ 1695 1 0 \"f9efc355_ef27_4282_9fefebb386506b6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1696 1 0 \"a817b917_3a35_4965_8c764ab10ae0f2bf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1697 1 0 \"6f4d5ac2_a87a_469a_99bce261f2feb166\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 1698 1 0 \"27662369_ada4_46fa_a33bd194d7aa0acd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_XCoord.SetSize(0);\r\n// }} \"\"\r\n// {{ 1699 1 0 \"65d429be_ffcc_4241_912d3ac267ff38eb\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_YCoord.SetSize(0);\r\n// }} \"\"\r\n// {{ 1700 1 0 \"45421200_1eb4_4016_9e3eedaf5c21c4fb\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ZCoord.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1701 1 0 \"ea3284ae_3936_40a6_8e176652663d22df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), num_1mL_channels);\r\n// }} \"\"\r\n// {{ 1702 1 0 \"d17bab88_2fbd_4174_8f521f50eca01ed5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"bc6e9c12_4a3e_4678_88e2cd44f82a6be5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Left = StrLeft(i_str_ChPattern, int_ChIndex);\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"eb0ccc62_2102_43c2_b1d212aa56e87a85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrRight(str_Left, 1);\r\n// }} \"\"\r\n// {{{ 1705 1 0 \"5442ac48_8d5d_4872_82a8ef2beac010fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Value = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{{ 1706 1 0 \"cea0888b_e5c6_4a39_994614c19c896a1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Positions);\r\n// }} \"\"\r\n// {{{ 1707 1 0 \"48378fa0_4efc_470a_bfcf2e7a1dd5ada6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_LabID);\r\n// }} \"\"\r\n// {{ 1708 1 0 \"5271c792_0f90_4313_b9ee80baddccb754\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1709 1 0 \"da4a5b93_eaf8_4fd1_885a68a7e8ca18df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::LABWARE_GetCurrentPosition(ML_STAR, i_seq_Positions, flt_XCoord, flt_YCoord, flt_ZCoord);\r\n// }} \"\"\r\n// {{ 1710 1 0 \"5271c792_0f90_4313_b9ee80baddccb754\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1711 1 0 \"ba313086_4375_49f6_abd41ca13a4af42a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Value = 0;\r\n// }} \"\"\r\n// {{ 1712 1 0 \"36a94f41_c977_4f12_813350e7e8152da4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCoord = 0.0;\r\n// }} \"\"\r\n// {{ 1713 1 0 \"ffdb4130_6264_4f51_b1f4d27f68299dfd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YCoord = 0.0;\r\n// }} \"\"\r\n// {{ 1714 1 0 \"401d3a9e_2bb4_4fd6_bbea004914a9660a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZCoord = 0.0;\r\n// }} \"\"\r\n// {{ 1715 1 0 \"5271c792_0f90_4313_b9ee80baddccb754\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1716 1 0 \"49d6074f_a2ca_4d93_bda9e2f1c665dc62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_Positions, 1);\r\n// }} \"\"\r\n// {{ 1717 1 0 \"cb8b071e_65a4_4d25_be661f68221bff19\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChPattern.AddAsLast(int_Value);\r\n// }} \"\"\r\n// {{ 1718 1 0 \"21c9e01d_c8dc_4434_8f8a916f1dea22ca\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_XCoord.AddAsLast(flt_XCoord);\r\n// }} \"\"\r\n// {{ 1719 1 0 \"3c96631d_be07_4409_8aab142150f3a892\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_YCoord.AddAsLast(flt_YCoord);\r\n// }} \"\"\r\n// {{ 1720 1 0 \"f5754da9_aa9e_40dd_bfc66e9e4605195b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ZCoord.AddAsLast(i_flt_ZHeight);\r\n// }} \"\"\r\n// {{ 1721 1 0 \"d17bab88_2fbd_4174_8f521f50eca01ed5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1722 1 0 \"bc3248d4_fcfd_4839_9bc70ddc16074dc4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1723 1 0 \"fb480bf5_9422_41ad_bf580a332f7c3fb6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < num_1mL_channels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1724 1 0 \"0169852a_daf0_458d_89a0c96c106a84cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1));\r\n// }} \"\"\r\n// {{ 1725 1 0 \"fb480bf5_9422_41ad_bf580a332f7c3fb6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1726 1 0 \"cf763692_554d_4c78_b810860624d8ee94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 1727 1 0 \"d9a08ca2_ee99_4bc2_9f01f87d3bb051f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_5mL(ML_STAR, str_ChPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZCoord);\r\n// }} \"\"\r\n// {{ 1728 1 0 \"cf763692_554d_4c78_b810860624d8ee94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1729 1 0 \"20681df0_f77b_4b27_8c8e4dcb2ea02521\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_5mL(ML_STAR, str_ChPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZCoord);\r\n// }} \"\"\r\n// {{ 1730 1 0 \"cf763692_554d_4c78_b810860624d8ee94\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1731 1 0 \"757fcdca_aa6e_480d_94ef90166fff1412\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 1733 1 0 \"757fcdca_aa6e_480d_94ef90166fff1412\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_ChannelsToSequencePosition_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsToYPosition\" \"Begin\"\r\nfunction TRAVEL_LANES_MoveChannelsToYPosition( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable flt_X_Origin;\r\nprivate variable int_Length;\r\nprivate variable flt_NotUsed;\r\nprivate variable strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable flt_StartLocation;\r\n// {{ 5 \"TRAVEL_LANES_MoveChannelsToYPosition\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2346 1 0 \"fed39cb3_2a41_4b9a_a9e4e6c236680025\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2347 1 0 \"b1f8a408_3269_4d5e_ab2e97f0c8631e27\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2349 1 0 \"9e9ca11b_956a_4a40_8f3cf60fa60facc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2350 1 0 \"e5de5c58_7f02_41a1_95bf73ab49270ec0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2351 1 0 \"29bb0f72_2259_4145_9e9e81c4d62364fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2352 1 0 \"98492b2d_94a5_4319_a85b076ba025e9b4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2353 1 0 \"38a6d658_3421_4bad_94b2665b7d0f3a12\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2355 1 0 \"fed39cb3_2a41_4b9a_a9e4e6c236680025\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2356 1 0 \"082dcee1_295e_435d_ae5670db3d32ca3f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2357 1 0 \"8c839f90_9751_4b29_a5c35aadd4f765a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2358 1 0 \"452bdd5b_1c52_4e18_b39529d92cf19f45\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2360 1 0 \"59a00f0f_9c26_4e5d_aa90fa7299e9f2d7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(ML_STAR, i_seq_TargetSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 2361 1 0 \"ee831eec_df8e_49b2_a24e7498103a4cdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2362 1 0 \"d689f2b8_d714_4992_842e75ac343c35b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 2363 1 0 \"ee831eec_df8e_49b2_a24e7498103a4cdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2364 1 0 \"8c839f90_9751_4b29_a5c35aadd4f765a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2365 1 0 \"ae7dc69c_e9fa_443e_a7608eae4f204890\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2366 1 0 \"d27f7652_0254_4fc2_925d23508dc4ddd0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_LabID, flt_X_Origin, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 2367 1 0 \"fecd41a2_48a2_4964_9244b97a962667b7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StartLocation = flt_X_Origin + i_flt_XOffsetFromOrigin;\r\n// }} \"\"\r\n// {{ 2368 1 0 \"b41e5ae3_fb15_41f0_a047ee194710b0d1\" \"ML_STAR:{81DA4252-3BA9-11d4-AE21-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._81DA4252_3BA9_11d4_AE21_0004ACB1DCB2(\"b41e5ae3_fb15_41f0_a047ee194710b0d1\"); // MoveToPosition\r\n}\r\n// }} \"\"\r\n// {{ 2369 1 0 \"3e3a9091_3db7_434f_a9b75033462b69ba\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2370 1 0 \"4f585735_c1ef_44ba_b606135f63a37398\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveChannelsToSequencePosition(ML_STAR, i_seq_TargetSequence);\r\n// }} \"\"\r\n// {{ 2371 1 0 \"6bd02ad1_2a0e_4ff3_b566673bbdb21624\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2373 1 0 \"6bd02ad1_2a0e_4ff3_b566673bbdb21624\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsToYPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsToYPosition_5mL\" \"Begin\"\r\nfunction TRAVEL_LANES_MoveChannelsToYPosition_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Origin;\r\nprivate variable int_CutNum;\r\nprivate variable flt_NotUsed;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_LabID;\r\nprivate variable int_Count;\r\nprivate variable str_PosID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable flt_StartLocation;\r\n// {{ 5 \"TRAVEL_LANES_MoveChannelsToYPosition_5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2375 1 0 \"5cf16b95_c957_49c5_a203b15154150c58\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2376 1 0 \"4af1e2b6_ab86_4727_9955953029727dd0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2378 1 0 \"6af72947_dbf8_4317_934b8004839de63a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 2379 1 0 \"efb06cde_3389_412f_ab12ddfc678f9cc2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 2380 1 0 \"0caec0a7_b358_4257_b8ea85d7b4565979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 2381 1 0 \"972bb93e_be9d_467a_aba7bf5ceca3dc28\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 2382 1 0 \"23e57db2_66b0_480a_af3ca4bec5ac4a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 2384 1 0 \"5cf16b95_c957_49c5_a203b15154150c58\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2385 1 0 \"cf30c36f_5218_46f6_a7e6fbcb1ef8723c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 2386 1 0 \"2336afa9_3aa1_4221_b3d6f0f8f12e28da\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2387 1 0 \"2b415533_3ceb_4dd5_b6217cffbc680a2a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 2389 1 0 \"fc29c95e_8d4c_4eb2_b932a885a8f7777a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(ML_STAR, i_seq_TargetSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 2390 1 0 \"c5e32cea_9e14_4caf_a39f68efe4094027\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_SequenceValid == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2391 1 0 \"1e293959_f133_460b_96e9951c49f222c0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_FunctionError(strFunctionName, Translate(\"No more sequence positions!\"));\r\n// }} \"\"\r\n// {{ 2392 1 0 \"c5e32cea_9e14_4caf_a39f68efe4094027\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2393 1 0 \"2336afa9_3aa1_4221_b3d6f0f8f12e28da\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2394 1 0 \"e06fb03b_67e3_4615_b7ce2e6dcd94ce18\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2395 1 0 \"1b727ac6_3e26_4560_823be74692eec0a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_LabID, flt_X_Origin, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 2396 1 0 \"648ccba9_0abd_4813_a34e288bd7f688aa\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StartLocation = flt_X_Origin + i_flt_XOffsetFromOrigin;\r\n// }} \"\"\r\n// {{ 2397 1 0 \"c3ae49b3_b48a_4e9d_93689c8b7f76643a\" \"ML_STAR:{55AA8CFA-FB6C-4691-8C8C-8D410E2123FD}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._55AA8CFA_FB6C_4691_8C8C_8D410E2123FD(\"c3ae49b3_b48a_4e9d_93689c8b7f76643a\"); // XLMoveToPosition\r\n}\r\n// }} \"\"\r\n// {{ 2398 1 0 \"085d08f9_f5f0_47b4_b4aac0703ce04859\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2399 1 0 \"23766495_e37b_4719_adc8d795d912c3d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTRAVEL_LANES::MoveChannelsToSequencePosition_5mL(ML_STAR, i_seq_TargetSequence);\r\n// }} \"\"\r\n// {{ 2400 1 0 \"cacc1d98_f665_4c7d_a03f70d8db17d145\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 2402 1 0 \"cacc1d98_f665_4c7d_a03f70d8db17d145\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TRAVEL_LANES_MoveChannelsToYPosition_5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Abstract\" \"Begin\"\r\nprivate function Abstract(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"Abstract\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1 1 0 \"31e944e8_7392_4694_9fd14bcb4377f746\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Abstract\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2021-12-13 11:05$$checksum=4c2560a5$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR MPH96 Tools.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 9/28/2021 1:31:16 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_MPH96_TOOLS {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction MOVE_MPH96ToBack( device & ML_STAR ) void { }\r\nfunction TIP_OFFSET_CleanUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { }\r\nfunction TIP_OFFSET_CleanUpTips_Column2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { }\r\nfunction TIP_OFFSET_CleanUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { }\r\nfunction TIP_OFFSET_CleanUpTips_Rows2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction TOOL_ChangePickUpMode( device & ML_STAR, sequence i_seq_TipPositionToAdjust, variable i_int_PickUpMode ) void { }\r\nfunction TOOL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_ReturnValue3FromTipPickUp, variable i_str_ReturnValue3FromPipetting, variable & o_flt_LiquidLevelHeight ) void { }\r\nfunction TOOL_GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void { }\r\nfunction TOOL_PickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable {  return (0); }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2021-09-28 13:31$$checksum=3443695f$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR MPH96 Tools.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"STAR Tools\\\\STAR Tip Tools.hs_\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\TIP_OFFSET_GLOBAL.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"Labware Properties\\\\Labware_Property_Query.hs_\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"HSLExtensions\\\\Sequence.hsl\"\r\n#include \"HSLDeckVisualize.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSL_MethodHelper.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"Alpha Numeric Conversion\\\\Alpha Numeric Conversion.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\FW_HelperLibrary.hs_\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_MPH96_TOOLS {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ABSTRACT(  ) void ;\r\nfunction MOVE_MPH96ToBack( device & ML_STAR ) void ;\r\nfunction TIP_OFFSET_CleanUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void ;\r\nfunction TIP_OFFSET_CleanUpTips_Column2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void ;\r\nfunction TIP_OFFSET_CleanUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void ;\r\nfunction TIP_OFFSET_CleanUpTips_Rows2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction TOOL_ChangePickUpMode( device & ML_STAR, sequence i_seq_TipPositionToAdjust, variable i_int_PickUpMode ) void ;\r\nfunction TOOL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_ReturnValue3FromTipPickUp, variable i_str_ReturnValue3FromPipetting, variable & o_flt_LiquidLevelHeight ) void ;\r\nfunction TOOL_GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void ;\r\nfunction TOOL_PickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable ;\r\nprivate function _AddRemainderTipsToCurrentSequence( device & Instrument, sequence & io_seq_TargetSequence, sequence i_seq_RemainderSequence, sequence i_seq_ReturnPositionSequence ) void ;\r\nprivate function _AppendRemainderTipsToCurrentSequence( device & Instrument, sequence & io_seq_TargetSequence, sequence i_seq_RemainderSequence, sequence i_seq_ReturnPositionSequence ) void ;\r\nprivate function _ConvertToFloat( variable & io_Value ) void ;\r\nprivate function _ConvertToInteger( variable & io_Value ) void ;\r\nprivate function _ConvertToString( variable & io_Value ) void ;\r\nprivate function _GetConsecutiveSequencePositions( device & ML_STAR, sequence i_seq_SourcePositions, variable i_int_TotalPositionsNeeded, variable i_bool_RightToLeft, sequence & o_seq_ConsecutivePositions ) void ;\r\nprivate function _GetConsecutiveSequencePositions2( device & ML_STAR, sequence i_seq_SourcePositions, variable i_int_TotalPositionsNeeded, variable i_bool_BottomToFront, sequence & o_seq_ConsecutivePositions ) void ;\r\nprivate function _GetFullSequenceCopy( device & Instrument, sequence i_seq_SequenceToCopy, sequence & o_seq_CopiedSequence ) void ;\r\nprivate function _GetNextTipPickUpPosition( sequence io_seq_Source, sequence & o_seq_TipPickUpPosition ) void ;\r\nprivate function _GetNextTipPickUpPosition_Partial( device & Instrument, sequence i_seq_Source, sequence & o_seq_TipPickUpPosition, variable i_int_TipsNeeded ) void ;\r\nprivate function _GetNextTipPickUpPosition_Partial2( device & Instrument, sequence i_seq_Source, sequence & o_seq_TipPickUpPosition, variable i_int_TipsNeeded ) void ;\r\nprivate function _InitializeLibrary(  ) void ;\r\nprivate function _LocalPickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable ;\r\nprivate function _MoveTipsToOffset( device & ML_STAR ) void ;\r\nprivate function _PickUpTips( device & ML_STAR, variable i_int_TipsNeeded, variable i_bool_PickUpLeft, variable & o_str_ChPattern, variable & o_str_PickUpReturn ) void ;\r\nprivate function _PickUpTips2( device & ML_STAR, variable i_int_TipsNeeded, variable i_bool_PickUpTop, variable o_str_PickUpReturn ) void ;\r\nprivate function _RemoveSequencePositions( sequence & io_seq_SourceSequence, sequence i_seq_PositionsToRemove ) void ;\r\nprivate function _RemoveTruncatedSequencePositions( sequence & io_Sequence ) void ;\r\nprivate function _ReturnTipsToPickUp( device & ML_STAR, variable i_bool_PickUpLeft ) void ;\r\nprivate function _ReturnTipsToPickUp2( device & ML_STAR, variable i_bool_PickUpTop ) void ;\r\nprivate function _SetEmptyPositions( device & ML_STAR, sequence i_seq_SourceTips ) void ;\r\nprivate function _TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void ;\r\nprivate function _UpdateTipSequence( sequence & io_SourceTipSequence ) void ;\r\nprivate function __GetSortFilePath( variable & o_str_SortFilePath ) void ;\r\nprivate function __SortSequence( device & Instrument, sequence & io_SequenceToSort, variable i_bool_SortRightToLeft ) void ;\r\nprivate function __SortSequence2( device & Instrument, sequence & io_SequenceToSort, variable i_bool_SortBottomToFront ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nSTAR_TIP_TOOLS::_InitLibrary();\r\nLPQ::_InitLibrary();\r\nANC::_InitLibrary();\r\nFW_HELPERLIBRARY::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_TIP_TOOLS::_ExitLibrary();\r\nLPQ::_ExitLibrary();\r\nANC::_ExitLibrary();\r\nFW_HELPERLIBRARY::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"TIP_OFFSET_PickUpTips_Column\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable int_TipType;\r\nprivate variable int_TipsNeeded;\r\nprivate variable int_TipOffset_TipType;\r\nprivate variable int_PositionsSet;\r\nprivate variable str_TipLabID;\r\nprivate variable int_TotalEmpty;\r\nprivate variable int_TotalPositions;\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate sequence seq_EjectSequence;\r\nprivate variable o_str_ChannelPattern;\r\nprivate variable ret_str_TipPickUp;\r\nprivate variable bln_ValueFound;\r\nprivate variable str_TipOffsetLabID;\r\nprivate variable int_TotalLabwareSet;\r\nprivate sequence seq_Temp;\r\n// {{ 5 \"TIP_OFFSET_PickUpTips_Column\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 350 1 0 \"ce5c1c34_356a_41c0_b4b4806340f5ae0b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 351 1 0 \"e0c47921_12d6_4c68_a3b085c847a1fd98\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 353 1 0 \"abb03204_b5cb_40bf_aa5cf0d02c8c0560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 354 1 0 \"d4b15b63_59e0_4498_8f01dc14c5f29f13\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 355 1 0 \"07efca4c_e30d_4a9b_8e1f086f3923c9b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 356 1 0 \"0c73957f_1efb_42eb_92878dd65beae9f3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 357 1 0 \"dd7d0464_b8a9_4dfe_87dbbb88f3e90265\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 359 1 0 \"ce5c1c34_356a_41c0_b4b4806340f5ae0b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 360 1 0 \"6114a867_3a93_4c79_9664b5bebaf479f9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_str_TipPickUp = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 361 1 0 \"779bd566_c7d7_4d42_850d72269cdba75f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitializeLibrary();\r\n// }} \"\"\r\n// {{ 362 1 0 \"1eb62eb1_5cfb_49b0_99ce85922f72aaa5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 363 1 0 \"277d7bcd_ea44_4005_ab3420e2a4f7a2d3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(i_bln_UseLeftSide);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"35abe8af_0cb0_4153_a79719bcc1080ead\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToInteger(i_int_ColumnsNeeded);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"9d25b2df_c0af_4d3b_ab3182a58b237d67\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToString(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 366 1 0 \"ab700288_575f_423c_9fc8ba274cc3df14\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 367 1 0 \"b7a62f8f_31f0_464d_908847991f13f9fd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipType(ML_STAR, io_seq_SourceTips, int_TipType);\r\n// }} \"\"\r\n// {{ 368 1 0 \"1a4bbca4_4b6b_45a7_801b61e6b2d454fc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"51befcfc_a22f_469f_9ff44fd49b851065\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipsNeeded = i_int_ColumnsNeeded * 8;\r\n// }} \"\"\r\n// {{ 370 1 0 \"27261e16_e2d4_45f6_8d3d1dd2671bd8af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ColumnsNeeded == 12)\r\n{\r\n// }} \"\"\r\n// {{{ 371 1 0 \"db0a5b22_ce88_49b4_86b2e246039390ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nret_str_TipPickUp = _LocalPickUpNextMPH96Tips(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"075d20fa_3ec4_4e77_b55a638e0972d537\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 373 1 0 \"7250f54e_9b02_449c_b73543f64bfe37a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 375 1 0 \"7250f54e_9b02_449c_b73543f64bfe37a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 376 1 0 \"acace2f0_b332_416b_ab453fae3ee70baf\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{ 377 1 0 \"27261e16_e2d4_45f6_8d3d1dd2671bd8af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 378 1 0 \"41e38d1b_8588_40b3_8a5c67fd96bc2a3e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{ 379 1 0 \"97c1e183_3f51_49f0_84683b83832edd24\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 380 1 0 \"10422613_eb4a_4198_87752a7f3fce2603\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 381 1 0 \"05cf2591_0394_4411_a63c03a59ea63382\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp);\r\n// }} \"\"\r\n// {{{ 382 1 0 \"a78e6927_5dac_417a_b32416e2d27ee559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 383 1 0 \"d723fc8d_9fee_4252_953cb72d55e5919e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 384 1 0 \"fe91003c_278e_4f31_a13cf15ee9051495\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize();\r\n// }} \"\"\r\n// {{ 385 1 0 \"5fcd8d69_ea44_4159_9b5ca0c964fae329\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalLabwareSet > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 386 1 0 \"311111e0_e7bc_4548_950b4d6db7a0ac13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{ 387 1 0 \"4503a7ef_5939_4dc4_acfe15c9a2c43ecf\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1;\r\n// }} \"\"\r\n// {{ 388 1 0 \"cdbca996_3d27_4d18_b34e4671d669f7e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 389 1 0 \"e562bbae_b34f_4696_af2d8ef1cd9159a8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 390 1 0 \"bf8e8f9a_d900_4fee_9c48293fbb4eb385\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 391 1 0 \"4c82347c_885f_4e6f_88d54914edd10f02\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 392 1 0 \"f8e50885_acb0_47fe_81e2c6d5994f3422\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 393 1 0 \"362e9d62_4b21_4efc_a41d689f384aa2f2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 394 1 0 \"12375f7e_f552_44da_a4b9c023c798bf61\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 395 1 0 \"cdbca996_3d27_4d18_b34e4671d669f7e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 396 1 0 \"01e45b7a_e9b3_4cd6_87b8b6233c0308b3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 397 1 0 \"5de933e5_12ca_4829_861a4beb096eeb7f\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 398 1 0 \"211b468f_505b_4bf0_b3ac025897eafc12\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 399 1 0 \"cdbca996_3d27_4d18_b34e4671d669f7e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 400 1 0 \"5fcd8d69_ea44_4159_9b5ca0c964fae329\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 401 1 0 \"9dfc29db_8d3a_4a3a_a8e312a8dec82ffb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 402 1 0 \"396bf7c3_c77f_4dca_86ecd65c9629c033\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 403 1 0 \"418a0108_16a9_49d7_9db1c0cc202a65a6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 404 1 0 \"9f434972_9d81_4a6f_be229e6ca0ad7f96\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 405 1 0 \"39814575_02f3_4890_86e94015849d4547\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 406 1 0 \"6cedc4c2_5351_4e07_a3545a18e62423a4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 407 1 0 \"5fcd8d69_ea44_4159_9b5ca0c964fae329\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 408 1 0 \"e34277b5_855d_430e_81dc0001f5431723\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Labware               Count\"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 409 1 0 \"7b0b8cc4_08f2_4b6e_a421d427eed8bd4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Index:  \"), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"3dffa043_0418_4c45_976da07871ef54d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Labware:  \"), str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"1242426d_dcdb_4eec_87a50c5ba9dd07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Tip Count  \"), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 412 1 0 \"97c1e183_3f51_49f0_84683b83832edd24\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 413 1 0 \"30009288_d7db_47c2_86b5db408f2cf7f9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 414 1 0 \"0b28110c_f423_4530_bd9ea89b74d9b3cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded < 8)\r\n{\r\n// }} \"\"\r\nTrace(\"****************** Column request of \",i_int_ColumnsNeeded,\" is not achievable because it is less than 8 tips!\");\r\n// {{ 416 1 0 \"a250ac3d_5a60_416a_b72fb1c57a062857\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 418 1 0 \"a250ac3d_5a60_416a_b72fb1c57a062857\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 419 1 0 \"9b723ed5_2ea2_44de_98d58169a159f3da\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{ 420 1 0 \"0b28110c_f423_4530_bd9ea89b74d9b3cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 421 1 0 \"6022350b_a6fb_47a5_9afe4fa4f267a53f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded > 96)\r\n{\r\n// }} \"\"\r\nTrace(\"****************** Column request of \",i_int_ColumnsNeeded,\" is not achievable because it will exceed 96 tips!\");\r\n// {{ 423 1 0 \"ef271efa_b858_45be_a33f8305bff5de4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 425 1 0 \"ef271efa_b858_45be_a33f8305bff5de4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 426 1 0 \"9830c2a3_3651_408f_a7309b79c152a187\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{ 427 1 0 \"6022350b_a6fb_47a5_9afe4fa4f267a53f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 428 1 0 \"30009288_d7db_47c2_86b5db408f2cf7f9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 429 1 0 \"8a3c40c0_50f9_4b6a_927b132febbe7216\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ColumnsNeeded < 12)\r\n{\r\n// }} \"\"\r\n// {{ 430 1 0 \"e8ac6986_9552_451d_ad8899520f867601\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 431 1 0 \"c1a3d487_adeb_49f8_a15d6c169bb4918e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 432 1 0 \"3bf6f8c5_450a_45cf_b1ab4d9df5034e69\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 433 1 0 \"10a282e2_7302_43d6_9bff7bef3d4b7873\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipType(ML_STAR, i_seq_TipOffset, int_TipOffset_TipType);\r\n// }} \"\"\r\n// {{ 434 1 0 \"028f4319_362a_4ffb_a211faa6cd9dbca2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 435 1 0 \"aff33c97_6aef_474b_b6bafda5cd71620b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType != int_TipOffset_TipType)\r\n{\r\n// }} \"\"\r\n// {{ 436 1 0 \"5bb4c74c_23aa_4902_a6d13dba12b5364e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipOffset_TipType == -1)\r\n{\r\n// }} \"\"\r\n// {{ 437 1 0 \"c14f36f4_a1b9_4a75_82e11bfb28867df4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 438 1 0 \"e9b6002d_ea9b_4f44_a9832d3dd7667e68\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 439 1 0 \"a361be27_a635_4888_89b4bb734a22edfc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for partial rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 440 1 0 \"42e6c62f_81a5_4c10_83b856f98b6889c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 441 1 0 \"2673b4ac_df76_4a2a_998b48aea49f91d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{ 442 1 0 \"5b4f71cf_ac6b_45ac_9aa218139e17b2d8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 443 1 0 \"893d02dc_27d0_42f7_acb660f7851a2dec\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for full rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 444 1 0 \"8528ef26_80ba_44dc_96792899396458fc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"e99416c3_05e7_48cb_9b3eb92059a4fd2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\nTrace(\"Full rack check loaded:  \",int_PositionsSet);\r\n// {{ 447 1 0 \"5b4f71cf_ac6b_45ac_9aa218139e17b2d8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"Partial rack check loaded:  \",int_PositionsSet);\r\n// {{ 449 1 0 \"5b4f71cf_ac6b_45ac_9aa218139e17b2d8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 450 1 0 \"90b68604_e757_4d01_b499cae31f3eab91\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 451 1 0 \"1a6ce72f_6787_4f36_b37d41dab28630a3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nMore tips are needed\\n===========================================\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 452 1 0 \"af87957b_0cb0_4fbb_8a312dcb8dd017cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 453 1 0 \"02c48498_fd18_430c_8acf9cd07a764d9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 454 1 0 \"90b68604_e757_4d01_b499cae31f3eab91\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 455 1 0 \"cbfd2ff9_b652_4e04_980416bd41561fc5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet > 1)\r\n{\r\n// }} \"\"\r\n// {{ 456 1 0 \"432e5a5b_16d0_4405_bb6536f2ce5a6624\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 457 1 0 \"cbfd2ff9_b652_4e04_980416bd41561fc5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 458 1 0 \"e9b6002d_ea9b_4f44_a9832d3dd7667e68\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 459 1 0 \"2b8af687_a204_498b_aed87630e1edd19e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 460 1 0 \"d22ddf1f_11ec_4042_8e710ee598d92233\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 461 1 0 \"a90e1c57_8046_4f33_a1f1e0c0a4acb51a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_UpdateTipSequence(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 462 1 0 \"1acf219d_d41d_4978_a058d08dee1bab0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 463 1 0 \"a8fabe4b_f198_47eb_baeeabe9f6ffcf8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"70b997e3_2a36_438e_b4a429c7954d5af2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_MoveTipsToOffset(ML_STAR);\r\n// }} \"\"\r\n// {{ 465 1 0 \"c14f36f4_a1b9_4a75_82e11bfb28867df4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 466 1 0 \"5bb4c74c_23aa_4902_a6d13dba12b5364e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 467 1 0 \"a455ea1c_cc9a_4a94_847db4281a4abdc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{ 468 1 0 \"34e0ad8c_b7b1_4bd2_bf0b5e1119ad44a0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 469 1 0 \"aa5f39e3_3a69_4d71_bcd8f7c32ec76c86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_AddRemainderTipsToCurrentSequence(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 470 1 0 \"3d25a067_deed_4d34_928540e7e411af22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 471 1 0 \"67269557_e423_45f7_bc53a940714421c6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EjectSequence, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 472 1 0 \"8f2440ae_b0fb_48ce_99c4bedde412aaba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 473 1 0 \"1643e4fa_0e10_4982_8f310112c801524d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EjectSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"4538720b_ca11_4310_afe274fbc0dbd93b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetConsecutiveSequencePositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"24335787_e6f5_473c_916fbc68c2285e33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EjectSequence);\r\n// }} \"\"\r\n// {{ 476 1 0 \"7e6fc093_c8fd_4382_8a1055e1fdab2d5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 477 1 0 \"7fe6dc5c_56e1_487b_b16dde36cdaff68b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EjectSequence);\r\n// }} \"\"\r\n// {{ 478 1 0 \"7e6fc093_c8fd_4382_8a1055e1fdab2d5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 479 1 0 \"8f2440ae_b0fb_48ce_99c4bedde412aaba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 480 1 0 \"7747a710_81d4_428c_982173b7977da3c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EjectSequence);\r\n// }} \"\"\r\n// {{ 481 1 0 \"8f2440ae_b0fb_48ce_99c4bedde412aaba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"03ce5a15_ac81_42d4_b4684940b90bfa8d\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 483 1 0 \"2be63aa1_bdff_4f3c_a40605a9d65ed463\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{{ 484 1 0 \"34d0dd19_316e_4b9c_bf4ee02dc3490b3b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ReturnTipsToPickUp(ML_STAR, i_bln_UseLeftSide);\r\n// }} \"\"\r\n// {{ 485 1 0 \"a455ea1c_cc9a_4a94_847db4281a4abdc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 486 1 0 \"3cc42431_bf93_45cc_b2e20e71d8ad100c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 487 1 0 \"af2f9a61_b745_4ba0_baf24fefc883fb10\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 488 1 0 \"f0479fc8_2d80_4b55_b69572baa2268bce\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for partial rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 489 1 0 \"dd35cdd5_57b4_4d1e_8bc53c02ecef8eaf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 490 1 0 \"d22d1672_b5f6_46d3_ab404cbc131b73a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{ 491 1 0 \"2f493850_4a11_4552_9804fdfb9d87d72e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 492 1 0 \"fbf2a17e_deff_4978_ab6de7709a7a165a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for full rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 493 1 0 \"12b51a04_5692_4dba_953b63590cbf8aee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 494 1 0 \"94a4d4ba_9270_4039_a834d4fe2b766040\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\nTrace(\"Full rack check loaded:  \",int_PositionsSet);\r\n// {{ 496 1 0 \"2f493850_4a11_4552_9804fdfb9d87d72e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"Partial rack check loaded:  \",int_PositionsSet);\r\n// {{ 498 1 0 \"2f493850_4a11_4552_9804fdfb9d87d72e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 499 1 0 \"8f18c5ac_bc06_493a_888f0a47ebb97bfe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 500 1 0 \"47c7fbd0_296d_459c_a0f333cdfd3e088f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nMore tips are needed\\n===========================================\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 501 1 0 \"d283599d_cf68_4418_ba70b9114f6c9d74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 502 1 0 \"06fcda5d_5857_40c6_878e8e4c115b694c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 503 1 0 \"8f18c5ac_bc06_493a_888f0a47ebb97bfe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"607ef0f3_2293_458a_a5341a1fc1f632ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet > 1)\r\n{\r\n// }} \"\"\r\n// {{ 505 1 0 \"18a6fb97_69ac_4daa_beac9a5edace490b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 506 1 0 \"607ef0f3_2293_458a_a5341a1fc1f632ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 507 1 0 \"af2f9a61_b745_4ba0_baf24fefc883fb10\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 508 1 0 \"7c47b153_44c3_4258_af0dc17f761f458b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"f7c42a7c_2449_4d63_ab673482e48962fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"d04b074c_6899_460b_978a69b95eea3d10\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_UpdateTipSequence(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 511 1 0 \"b3b8bd7d_a34b_4997_b06d9df31a60a7fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 512 1 0 \"132177cb_89b7_4f7b_8cbe1e5a9f0cce23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 513 1 0 \"6ed70740_a923_451d_97dcaff4ead1c0e0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_MoveTipsToOffset(ML_STAR);\r\n// }} \"\"\r\n// {{ 514 1 0 \"3cc42431_bf93_45cc_b2e20e71d8ad100c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"5bb4c74c_23aa_4902_a6d13dba12b5364e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 516 1 0 \"aff33c97_6aef_474b_b6bafda5cd71620b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 517 1 0 \"028f4319_362a_4ffb_a211faa6cd9dbca2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 518 1 0 \"3bf6f8c5_450a_45cf_b1ab4d9df5034e69\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 519 1 0 \"49f3d3fb_f971_4fea_b183fc180f42b4f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetEmptyPositions(ML_STAR, io_seq_SourceTips);\r\n// }} \"\"\r\n// {{ 520 1 0 \"59d343a3_ed5a_42a8_80a7edac94e602d6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 521 1 0 \"87aea14d_330a_4fca_9ba6e5df02636974\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{ 522 1 0 \"171d0e37_e6da_4cd6_8b6ec2700588911f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED < int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 523 1 0 \"2b1a9911_c2b3_4e96_9af5ef94f4ffc132\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 524 1 0 \"70a0c737_13d1_4c9d_acfd5f50ddbb4728\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 525 1 0 \"fa17ca2f_4988_4c27_845a3fcbc62c6d5e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EjectSequence, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 526 1 0 \"a6961e31_ef33_4761_8ae8e5ec64feacb9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EjectSequence);\r\n// }} \"\"\r\n// {{ 527 1 0 \"ec79662b_fa45_438a_8b4ecd0811f94b8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 528 1 0 \"c6a0f427_7094_4f32_acecbdd283c1c7ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetConsecutiveSequencePositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence);\r\n// }} \"\"\r\n// {{{ 529 1 0 \"e2e4f511_bf9b_4190_9bf6ba655a590a22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EjectSequence);\r\n// }} \"\"\r\nTrace(\"Total Empty:  \",int_TotalEmpty);\r\n// {{ 531 1 0 \"9a67ade1_1343_474c_9743860bcb9d19f9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 532 1 0 \"ccf262e6_1156_4576_882443c685849c69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EjectSequence);\r\n// }} \"\"\r\n// {{ 533 1 0 \"9a67ade1_1343_474c_9743860bcb9d19f9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 534 1 0 \"ec79662b_fa45_438a_8b4ecd0811f94b8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 535 1 0 \"0b2eb27c_8605_4e83_b9a5024776207b6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EjectSequence);\r\n// }} \"\"\r\n// {{ 536 1 0 \"ec79662b_fa45_438a_8b4ecd0811f94b8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 537 1 0 \"f7caaf20_e278_4b03_ae3285ad5de0c048\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{ 538 1 0 \"064d3e56_4d55_40a5_9a37b82d614afb35\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 539 1 0 \"3a00ee56_dcf7_4928_8ef2cf790023019d\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 540 1 0 \"ee063318_ba1c_46ec_a4713c945395d2ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 541 1 0 \"b2683662_cb51_4d4e_aa7a929b1443d29b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 542 1 0 \"3fcf0bda_b319_486e_b8e37ce528c5a040\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_SourceTips, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 543 1 0 \"064d3e56_4d55_40a5_9a37b82d614afb35\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 544 1 0 \"9e9f324b_53e0_486c_b371405edb842234\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 545 1 0 \"e5974c41_222c_45b3_bf1784e8da042d6d\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_SourceTips.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"7ad37697_9926_4f49_844c904c5ad45711\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ReturnTipsToPickUp(ML_STAR, i_bln_UseLeftSide);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"9a14f0aa_fac3_47af_a77e2312b127f48a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, io_seq_SourceTips, 0);\r\n// }} \"\"\r\n// {{{ 548 1 0 \"4a5f2ab8_ff5b_4329_b2332881d6fe1c0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 549 1 0 \"f75c35da_a70b_404b_8efdcd06fe0f8133\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 550 1 0 \"171d0e37_e6da_4cd6_8b6ec2700588911f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 551 1 0 \"87aea14d_330a_4fca_9ba6e5df02636974\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 552 1 0 \"e57d2a4d_9de9_49d4_b3aef00b390ff27b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 553 1 0 \"35ca4568_aa7f_4f30_a7d7bbb1dfbfd59c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 554 1 0 \"59f1e435_bb8d_4b4a_95671070d7551b4b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for partial rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 555 1 0 \"486f779d_1127_4812_9c9c45d3d0148df6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"daa06dec_b347_4589_af413ae70caa6dcf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{ 557 1 0 \"9abd73d4_2420_445e_801eecef9d692539\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 558 1 0 \"6fbcbca0_7127_40c9_a48a1a3881e2346d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for full rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 559 1 0 \"dba846d3_50d6_4f70_be8b0ca01355f2df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 560 1 0 \"e1a898b1_7cf2_4023_85a58c693f7919ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\nTrace(\"Full rack check loaded:  \",int_PositionsSet);\r\n// {{ 562 1 0 \"9abd73d4_2420_445e_801eecef9d692539\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"Partial rack check loaded:  \",int_PositionsSet);\r\n// {{ 564 1 0 \"9abd73d4_2420_445e_801eecef9d692539\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 565 1 0 \"deda604d_09d4_41c3_bdfc1baf6c943366\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 566 1 0 \"a5aae345_2864_43e3_982276983eec44c3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nMore tips are needed\\n===========================================\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 567 1 0 \"adf4693c_8033_4202_beba1aaae44d2ed7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 568 1 0 \"50ceada0_46af_4d03_a171d42e742d56e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 569 1 0 \"526314bc_28b3_4b93_9dd5ffa7037f1028\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 570 1 0 \"deda604d_09d4_41c3_bdfc1baf6c943366\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 571 1 0 \"90e5ff2e_5479_4c3e_8d41a23665831978\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet > 0)\r\n{\r\n// }} \"\"\r\n// {{ 572 1 0 \"56a989bf_6d26_4172_917a8b136c9ba152\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 573 1 0 \"90e5ff2e_5479_4c3e_8d41a23665831978\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 574 1 0 \"35ca4568_aa7f_4f30_a7d7bbb1dfbfd59c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 575 1 0 \"61c50ab9_b1e1_47ff_84153f17acaa1956\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"8d73363c_bf4e_4031_a88cae1f08ae088f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"cd6d1bce_b534_4588_bda49965e8e3ce6b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_UpdateTipSequence(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"1f12bb93_3bfb_4bb3_abc24e6f0d4f58e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 579 1 0 \"2a8026c7_26b0_40ea_af55ff55908fdcb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 580 1 0 \"f4d558d0_4036_4c6a_9219057f1cb8846b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_MoveTipsToOffset(ML_STAR);\r\n// }} \"\"\r\n// {{ 581 1 0 \"e57d2a4d_9de9_49d4_b3aef00b390ff27b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 582 1 0 \"87aea14d_330a_4fca_9ba6e5df02636974\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 583 1 0 \"59d343a3_ed5a_42a8_80a7edac94e602d6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 584 1 0 \"2e3b5bae_5ae0_4aad_b23bc9287da862b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"Tips loaded:  \",TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// {{ 586 1 0 \"91dfa591_f32c_4ba9_a2c79c7d088092f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 587 1 0 \"a53b2772_0802_4817_86971e8216196dc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_PickUpTips(ML_STAR, int_TipsNeeded, i_bln_UseLeftSide, o_str_ChannelPattern, ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{ 588 1 0 \"d24729a4_866e_472f_9308cfafb6178358\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 589 1 0 \"91dfa591_f32c_4ba9_a2c79c7d088092f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 590 1 0 \"2e3b5bae_5ae0_4aad_b23bc9287da862b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 591 1 0 \"e8ac6986_9552_451d_ad8899520f867601\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"8a3c40c0_50f9_4b6a_927b132febbe7216\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 593 1 0 \"14fcae38_360c_4855_983a97b107c44902\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"====================================================================\\nPick up full rack of tips\\n====================================================================\"));\r\n// }} \"\"\r\n// {{ 594 1 0 \"91d362a7_39ba_4c73_9ac79926a0a0a4aa\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 595 1 0 \"0ea71de7_2843_4a6a_9948358b8c8f32e3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"a7427faf_ffe4_4803_94e7652d0b44523f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{ 597 1 0 \"fb59abdf_10b9_44b5_9931cd2a91371ca2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPositions != 96)\r\n{\r\n// }} \"\"\r\n// {{{ 598 1 0 \"de2c851d_458e_4b68_b9a8b7a358e9cd29\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 599 1 0 \"fb59abdf_10b9_44b5_9931cd2a91371ca2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 600 1 0 \"04d61552_7868_4f4e_bd3b1c5cbf907f53\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 601 1 0 \"fb59abdf_10b9_44b5_9931cd2a91371ca2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 602 1 0 \"91d362a7_39ba_4c73_9ac79926a0a0a4aa\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 603 1 0 \"fe66ae2d_9524_4eac_88ab280f7aad22fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChannelPattern = StrFillRight(o_str_ChannelPattern, Translate(\"1\"), 96);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"70eea0d0_42a5_43cf_a700d322fdc78a39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveSequencePositions(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{ 605 1 0 \"e3eaea72_9856_48fc_a05d8ad66c3c28b6\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"e3eaea72_9856_48fc_a05d8ad66c3c28b6\"); // Head96TipPickUp\r\n}\r\n// }} \"\"\r\n// {{ 606 1 0 \"8a3c40c0_50f9_4b6a_927b132febbe7216\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 607 1 0 \"5d55e608_6285_4bb3_88ea4bc471104553\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"f4619230_0cf4_422a_885f964ecd7f2c8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, io_seq_SourceTips, 0);\r\n// }} \"\"\r\n// {{{ 609 1 0 \"26923782_51aa_4b83_9885b1cf5af149ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 610 1 0 \"c6eb64a8_b815_41a3_877ba1335f2f6416\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 611 1 0 \"c4175a83_ea38_4cfa_b5d157359a270d92\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"cf0d8701_043b_4bad_99984d8aaa29e8de\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{ 613 1 0 \"c642eda8_5bb7_49ce_aebeff1531874a36\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"11684f8f_fb1c_451d_a712eb16bf1b3d39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 615 1 0 \"623b3308_f030_495c_93841a5c260b0af5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 617 1 0 \"623b3308_f030_495c_93841a5c260b0af5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 618 1 0 \"2bba4322_d98f_4170_b1a3e9a05de6284c\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_PickUpTips_Column\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInteger\" \"Begin\"\r\nprivate function _ConvertToInteger( variable & io_Value ) void {\r\n// }} \"\"\r\n// {{ 5 \"_ConvertToInteger\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"0f4e5b2c_07aa_4b83_a8490475e678bbe6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrConcat2(io_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"63683344_24b9_40e5_bb9211bc2ea69d36\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrIVal(io_Value);\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInteger\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToString\" \"Begin\"\r\nprivate function _ConvertToString( variable & io_Value ) void {\r\n// }} \"\"\r\n// {{ 5 \"_ConvertToString\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"3f07a3ae_c7de_4c01_9700cfc952861fed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrConcat2(io_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToFloat\" \"Begin\"\r\nprivate function _ConvertToFloat( variable & io_Value ) void {\r\n// }} \"\"\r\n// {{ 5 \"_ConvertToFloat\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"64f127f8_36ef_488e_84f8a2689ede1b34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrConcat2(io_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"29d525a6_c3fb_4c51_8dce385140f891a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrFVal(io_Value);\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToFloat\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_InitializeLibrary\" \"Begin\"\r\nprivate function _InitializeLibrary(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"_InitializeLibrary\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1334 1 0 \"5ca82ef0_a9fd_4130_b52b46bc6948da23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INIT::InitializeVariables();\r\n// }} \"\"\r\n// {{ 1335 1 0 \"866dec1f_b6ea_4c2e_8ba5f9e50492dd70\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::BOOL::LIBRARY_INITIALIZED == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1336 1 0 \"4903bd5a_b665_4b45_af569d7155a04a70\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"7c6a98fb_92c8_4361_909576062c764779\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"813398d8_4d95_4e3e_b843d4855651a8d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"c1f56ff1_5273_4e77_8e02747aa68b7700\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"d4c6dbd7_8307_4da3_ba0eee7d68c32ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"faa7c48c_33c3_4e4c_b8b1a404e98c618b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS);\r\n// }} \"\"\r\n// {{ 1342 1 0 \"3a0b33c0_f148_4ff2_9690e3a4c6dae444\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::BOOL::LIBRARY_INITIALIZED = 1;\r\n// }} \"\"\r\n// {{ 1343 1 0 \"99e0d552_cc82_44b8_896fad1bdac53ec5\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.SetSize(0);\r\n// }} \"\"\r\n// {{ 1344 1 0 \"ca6ae92c_5321_4ce0_8819c137a3632afa\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetSize(0);\r\n// }} \"\"\r\n// {{ 1345 1 0 \"ae157ecc_5322_4ce8_b2c66726c5959de7\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetSize(0);\r\n// }} \"\"\r\n// {{ 1346 1 0 \"c7bae597_086c_4ff0_8b1bbc16cfb5757f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.SetSize(0);\r\n// }} \"\"\r\n// {{ 1347 1 0 \"866dec1f_b6ea_4c2e_8ba5f9e50492dd70\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_InitializeLibrary\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_SetEmptyPositions\" \"Begin\"\r\nprivate function _SetEmptyPositions( device & ML_STAR, sequence i_seq_SourceTips ) void {\r\n// }} \"\"\r\nprivate variable int_PositionFound;\r\nprivate variable i;\r\nprivate variable int_LoopNum;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate sequence seq_Temp;\r\n// {{ 5 \"_SetEmptyPositions\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1612 1 0 \"bec39be5_e1ce_49ee_99a3b2e2fc79f35b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS);\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"373f8295_491c_4609_85a0e592fe4b9772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"b19e71b5_739f_433b_a9954594533aca26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetFullSequenceCopy(ML_STAR, i_seq_SourceTips, seq_Temp);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"7e72c16e_41bb_42f7_8cc2b10b97383b55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_LoopNum = SeqGetTotal(seq_Temp);\r\n// }} \"\"\r\n// {{ 1616 1 0 \"33ade1ee_f397_400e_a2c8e34238e04643\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_LoopNum;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1617 1 0 \"8eb5d13a_2b7a_4f9c_a70b9bcc5eb00f4f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"0e986024_f3fa_44ab_bff7e8539b65c60c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"d8cf47d0_a9af_4382_910cc1d7e73cdb2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"b059ff28_718d_40f0_b8eecbd102594217\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionFound = SeqLookupPosition(i_seq_SourceTips, str_LabID, str_PosID, 1, 1);\r\n// }} \"\"\r\n// {{ 1621 1 0 \"64a3e231_da5a_4150_92f057180b4e90c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionFound == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1622 1 0 \"3a5eb766_5ff6_4674_8dc481eff121de94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1623 1 0 \"64a3e231_da5a_4150_92f057180b4e90c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1624 1 0 \"33ade1ee_f397_400e_a2c8e34238e04643\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1625 1 0 \"0a8f1d42_5845_45de_88eb10ca42c17070\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"618413be_92fe_4890_a1d956157ba21890\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, 0);\r\n// }} \"\"\r\n// {{{ 5 \"_SetEmptyPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetFullSequenceCopy\" \"Begin\"\r\nprivate function _GetFullSequenceCopy( device & Instrument, sequence i_seq_SequenceToCopy, sequence & o_seq_CopiedSequence ) void {\r\n// }} \"\"\r\n// {{ 5 \"_GetFullSequenceCopy\" \"InitLocals\"\r\n{ sequence __temp; o_seq_CopiedSequence = __temp; }\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"76f24ba0_d9bb_44cb_907313946cfafbb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_CopiedSequence);\r\n// }} \"\"\r\n{\r\n   Instrument.CopyResetSequence(i_seq_SequenceToCopy.GetName(),o_seq_CopiedSequence);\r\n}\r\n// {{{ 5 \"_GetFullSequenceCopy\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"__SortSequence\" \"Begin\"\r\nprivate function __SortSequence( device & Instrument, sequence & io_SequenceToSort, variable i_bool_SortRightToLeft ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_Y_Coord;\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable str_Sort;\r\nprivate variable bool_FileExists;\r\nprivate variable str_PosID;\r\nprivate variable str_TempSortFile;\r\nprivate variable int_TotalPositions;\r\nprivate file SortFile;\r\n// {{ 5 \"__SortSequence\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1685 1 0 \"c7250728_500d_443b_99efe18f5cf6f7ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__GetSortFilePath(str_TempSortFile);\r\n// }} \"\"\r\n// {{{ 1686 1 0 \"07b21c06_fe73_47dd_811bc3c37037385f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortFile);\r\n// }} \"\"\r\n// {{ 1687 1 0 \"8080b267_14f4_416d_8f61a839ed8d59ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1688 1 0 \"7f844e27_7583_4360_8ec958cd4e3b71e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortFile);\r\n// }} \"\"\r\n// {{ 1689 1 0 \"8080b267_14f4_416d_8f61a839ed8d59ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1690 1 0 \"4709b717_6db6_4513_b824ba76105e8328\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_SequenceToSort);\r\n// }} \"\"\r\n// {{{ 1691 1 0 \"f897205d_781a_427c_b7deb67afcda2169\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(io_SequenceToSort);\r\n// }} \"\"\r\n// {{ 1692 1 0 \"ab16f8cb_27b7_46aa_bf65a2fc62404977\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\nSortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\nSortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\nSortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\nif( 0 == SortFile.Open(str_TempSortFile + \" \" + \"SORT_FILE\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1693 1 0 \"b3990bb1_1006_4f79_93bad835ceff159d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1694 1 0 \"d48fbe3e_d26f_4503_8e730a8b0839858a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_SequenceToSort.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"4e209772_49da_424c_af843e783e53d2e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(io_SequenceToSort);\r\n// }} \"\"\r\n// {{{ 1696 1 0 \"117b5c85_5a7b_4d39_b7a321b501a1ae32\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(io_SequenceToSort);\r\n// }} \"\"\r\n// {{{ 1697 1 0 \"77056d3d_c625_4860_89a2a893782d5b21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 1698 1 0 \"37c05529_b559_49fe_b7c73f1d6855751b\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1699 1 0 \"b3990bb1_1006_4f79_93bad835ceff159d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1700 1 0 \"28fc4f58_0a9e_4ae5_aefa86f1c347579f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 1701 1 0 \"f8105c71_4115_40de_88fcf56fd8193bab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_SortRightToLeft == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1702 1 0 \"790328eb_f1ba_499f_b172c6f59a2f3127\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Sort = StrConcat2(Translate(\"SELECT * FROM SORT_FILE ORDER BY LAB_ID ASC, X_COORD DESC, Y_COORD DESC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1703 1 0 \"f8105c71_4115_40de_88fcf56fd8193bab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"d19b186e_d6d3_4506_ae534daa78bc87c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Sort = StrConcat2(Translate(\"SELECT * FROM SORT_FILE ORDER BY LAB_ID ASC, X_COORD ASC, Y_COORD DESC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1705 1 0 \"f8105c71_4115_40de_88fcf56fd8193bab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1706 1 0 \"62c8b0c0_b700_4258_96828ccc79691886\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\nSortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\nSortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\nSortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\nif( 0 == SortFile.Open(str_TempSortFile + \" \" + \"SORT_FILE\", hslRead, str_Sort) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1707 1 0 \"d3557743_d66e_4d00_81e2ebbc3d425d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_SequenceToSort);\r\n// }} \"\"\r\n// {{ 1708 1 0 \"f58bd002_2a41_44bb_96263491416bc0e4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (SortFile.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 1709 1 0 \"37ee64fc_c25b_46c4_bed73e3caca58200\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1710 1 0 \"07a5419c_d9e4_46d1_9686df9c9841b994\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_SequenceToSort, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1711 1 0 \"f58bd002_2a41_44bb_96263491416bc0e4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1712 1 0 \"ec947c43_287b_42a9_a8d57153cd8c93a1\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 1713 1 0 \"69b8007e_4a36_43fc_8f7cc2ec813e5c2f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_SequenceToSort.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"__SortSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"__GetSortFilePath\" \"Begin\"\r\nprivate function __GetSortFilePath( variable & o_str_SortFilePath ) void {\r\n// }} \"\"\r\nprivate variable str_FilePath;\r\nprivate variable str_FileName;\r\n// {{ 5 \"__GetSortFilePath\" \"InitLocals\"\r\no_str_SortFilePath = 0;\r\n// }} \"\"\r\n// {{ 1675 1 0 \"f45c3f3d_a669_4d27_985a94c9c7223498\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_SortFilePath = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1676 1 0 \"21c8585e_456c_473d_9e3bd920ddc823a2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_FilePath = Translate(\"\");\r\n// }} \"\"\r\nstr_FilePath = GetFileName();\r\n// {{{ 1678 1 0 \"8c10f6d9_deef_41ac_8e1d4c76b9bb543d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FileName = HSLExtensions::File::GetFileName(str_FilePath);\r\n// }} \"\"\r\n// {{{ 1679 1 0 \"5328d9e7_a8fa_427c_971ba6d643bf1f71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_FilePath, str_FileName, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1680 1 0 \"ace2decf_01c0_4906_bacc924e4fedc14a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FilePath = StrConcat8(str_FilePath, Translate(\"\"), Translate(\"Resources\"), Translate(\"\\\\\"), Translate(\"TEMP_SORT_FILE\"), Translate(\".xls\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1681 1 0 \"c75a5479_3215_4507_a19182a600dacb22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_FilePath, Translate(\"\\\\\"), Translate(\"\\\\\\\\\"));\r\n// }} \"\"\r\n// {{ 1682 1 0 \"a1eeddc6_1066_41ac_ad57e73ef40fd73a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_SortFilePath = str_FilePath;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Sort File Path:  \",o_str_SortFilePath);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"__GetSortFilePath\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveTruncatedSequencePositions\" \"Begin\"\r\nprivate function _RemoveTruncatedSequencePositions( sequence & io_Sequence ) void {\r\n// }} \"\"\r\nprivate variable int_CurrentPosition;\r\nprivate variable i;\r\nprivate variable int_TotalSequencePositions;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate sequence seq_AdjustedSequence;\r\n// {{ 5 \"_RemoveTruncatedSequencePositions\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1488 1 0 \"f0576766_99ca_40f6_a70238ea7138a611\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = io_Sequence.GetCurrentPosition();\r\n// }} \"\"\r\n// {{{ 1489 1 0 \"15b8b90b_b1ec_46ed_a39717391260a3e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"84d97774_daee_4328_9fe936caa6c377cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_AdjustedSequence, io_Sequence);\r\n// }} \"\"\r\n// {{{ 1491 1 0 \"494b182e_7379_4f8b_a303322ad407fc66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalSequencePositions = SeqGetTotal(seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{{ 1492 1 0 \"d3bf6f04_8ce9_42a1_9aa68f6f8323edc5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_Sequence);\r\n// }} \"\"\r\n// {{ 1493 1 0 \"c497bd36_a602_4715_aaa7662bb925da21\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_AdjustedSequence.SetCurrentPosition(int_CurrentPosition);\r\n// }} \"\"\r\n// {{ 1494 1 0 \"429ef5df_b380_4aec_a24a87aa59c2f07f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalSequencePositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"ec6b4405_125d_4f25_b2429fdde70793c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{{ 1496 1 0 \"64043f13_1c2c_4233_97778b1480b3e1a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_AdjustedSequence);\r\n// }} \"\"\r\n// {{{ 1497 1 0 \"d0ee8035_5573_4bfc_aa85ab1bfaa03f1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(seq_AdjustedSequence, 1);\r\n// }} \"\"\r\n// {{ 1498 1 0 \"e0387ec0_27d7_4f9c_907cb5a4eb02c231\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1499 1 0 \"bbc135f3_8747_43dd_ad2eb82abde8708d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_PosID != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"cd96277e_fccd_4b2c_9a04da129ffc06ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_Sequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1501 1 0 \"bbc135f3_8747_43dd_ad2eb82abde8708d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1502 1 0 \"e0387ec0_27d7_4f9c_907cb5a4eb02c231\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1503 1 0 \"429ef5df_b380_4aec_a24a87aa59c2f07f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1504 1 0 \"2d7aafb2_8548_4cde_9aa8a49fa987515b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_Sequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveTruncatedSequencePositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetNextTipPickUpPosition\" \"Begin\"\r\nprivate function _GetNextTipPickUpPosition( sequence io_seq_Source, sequence & o_seq_TipPickUpPosition ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable str_LabID_ToRemove;\r\nprivate variable str_LabID;\r\nprivate variable int_TotalTipLabware;\r\nprivate variable a;\r\nprivate variable int_PositionCount;\r\nprivate variable str_PosID;\r\nprivate variable arr_LabIDs[];\r\n// {{ 5 \"_GetNextTipPickUpPosition\" \"InitLocals\"\r\n{ sequence __temp; o_seq_TipPickUpPosition = __temp; }\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"98ae9201_e8b4_4ccf_86d53afd9d52de9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{{ 1157 1 0 \"b1a658eb_abef_4659_ad15c4322dfb946a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_Source);\r\n// }} \"\"\r\n// {{{ 1158 1 0 \"e4b579a9_2a07_4dbf_8b39c8e7deade51d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(io_seq_Source, arr_LabIDs);\r\n// }} \"\"\r\n// {{ 1159 1 0 \"b2739bcf_c67a_4939_82265643dd596615\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalTipLabware=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 1160 1 0 \"9a0c2924_265d_4e20_bb571862e24a9889\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID_ToRemove = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1161 1 0 \"2f4965f0_e4a9_4cf6_a2d593993ee50d58\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalTipLabware;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1162 1 0 \"21a68115_fe85_40c3_9e3435a497816054\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=arr_LabIDs.GetAt(i-1);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"7d4090ba_e3a9_4408_88d3860d08fe0690\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionCount = SeqGetPositionCountForCurrLabware(io_seq_Source);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"90e85aad_cfcc_4db2_acf78bef40baf345\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionCount == 96)\r\n{\r\n// }} \"\"\r\n// {{ 1165 1 0 \"0a29c342_3e71_448f_a4be48b959874f0d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID_ToRemove = str_LabID;\r\n// }} \"\"\r\n// {{ 1166 1 0 \"b253177b_736c_490f_a7646c111d8e5bd9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(a = 0; a < 96;)\r\n{\r\na = a + 1;\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"7d94ecd2_5105_4cbb_a39ce789d6f1e5f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(io_seq_Source);\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"9d726b8a_1b1d_4552_a44460313021f9bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_TipPickUpPosition, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"7f1110a1_da96_45ff_acd2af09bf1195d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(io_seq_Source, 1);\r\n// }} \"\"\r\n// {{ 1170 1 0 \"b253177b_736c_490f_a7646c111d8e5bd9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1171 1 0 \"02f8f841_5ab9_4bf5_bd288ca001371733\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_TipPickUpPosition.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1172 1 0 \"aa6b20b0_42ff_403b_b36d3e08b6eb56c8\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1173 1 0 \"90e85aad_cfcc_4db2_acf78bef40baf345\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1174 1 0 \"d0657ace_e7cc_4c2e_a0cacca31f07ee1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(io_seq_Source, int_PositionCount);\r\n// }} \"\"\r\n// {{ 1175 1 0 \"90e85aad_cfcc_4db2_acf78bef40baf345\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1176 1 0 \"2f4965f0_e4a9_4cf6_a2d593993ee50d58\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetNextTipPickUpPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetNextTipPickUpPosition_Partial\" \"Begin\"\r\nprivate function _GetNextTipPickUpPosition_Partial( device & Instrument, sequence i_seq_Source, sequence & o_seq_TipPickUpPosition, variable i_int_TipsNeeded ) void {\r\n// }} \"\"\r\nprivate variable int_CurrentPosition;\r\nprivate variable int_Column;\r\nprivate variable int_Remainder;\r\nprivate variable bool_FullColumns;\r\nprivate variable i;\r\nprivate variable int_RowCount;\r\nprivate variable str_CurrentColumn;\r\nprivate variable str_LabID_ToRemove;\r\nprivate variable str_LabID;\r\nprivate variable int_Position;\r\nprivate variable int_TotalTipLabware;\r\nprivate variable a;\r\nprivate variable str_CurrentRow;\r\nprivate variable int_PositionCount;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalPositions;\r\nprivate variable str_Column;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_Temp2;\r\nprivate variable arr_LabIDs[];\r\nprivate variable int_Index;\r\n// {{ 5 \"_GetNextTipPickUpPosition_Partial\" \"InitLocals\"\r\n{ sequence __temp; o_seq_TipPickUpPosition = __temp; }\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"c2378780_b55e_498c_98b1dfae4dfaaa35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"5eb538b3_959c_48f1_83357513cfd6a66f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(i_seq_Source);\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"373632f7_ccb2_488e_b57691cd254aeb45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(i_seq_Source, arr_LabIDs);\r\n// }} \"\"\r\n// {{ 1181 1 0 \"93027012_ff52_45f1_b5f52f326b4778bc\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalTipLabware=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 1182 1 0 \"9a4f69db_d05d_4904_9388b632cdcdda6c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID_ToRemove = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1183 1 0 \"9279fc7b_82f8_4a82_821d234a77303054\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalTipLabware;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1184 1 0 \"ea655f70_c16a_4343_8f3ae06c27c7610a\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=arr_LabIDs.GetAt(i-1);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"5e12e920_4eed_4277_ac544aa75bddb4d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionCount = SeqGetPositionCountForCurrLabware(i_seq_Source);\r\n// }} \"\"\r\n// {{ 1186 1 0 \"7e7464f7_08a3_4a22_b6e477a461f15141\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = i_seq_Source.GetCurrentPosition();\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Source sequence position count:  \",int_PositionCount,\"  Current Position:  \",int_CurrentPosition,\"  LabID:  \",str_LabID);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1188 1 0 \"607457a9_a57e_4c6e_90633f4ce2ca07a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionCount >= i_int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 1189 1 0 \"2233b272_1be2_4e01_b5ed7d91be6a66e5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID_ToRemove = str_LabID;\r\n// }} \"\"\r\n// {{ 1190 1 0 \"4a55cd2f_63c7_49ee_894936ef28b1ea8b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(a = 0; a < int_PositionCount;)\r\n{\r\na = a + 1;\r\n// }} \"\"\r\n// {{{ 1191 1 0 \"2312b5b3_d285_42ad_86e80f1a1e902c48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_Source);\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"95c677de_1eee_409b_91544f7ee5c7a76b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_TipPickUpPosition, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"df24065f_f5b5_4d78_93e1e4275779f169\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_Source, 1);\r\n// }} \"\"\r\n// {{ 1194 1 0 \"4a55cd2f_63c7_49ee_894936ef28b1ea8b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1195 1 0 \"891e887e_05ce_4d7b_80bbd3baf0041e41\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_TipPickUpPosition.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1196 1 0 \"dd445157_f4ee_4c25_b7ed907fe94eba51\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"b0078c8a_b15a_48a7_909fdaef764c8763\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(Instrument, o_seq_TipPickUpPosition, 0);\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"8cc99e9a_df17_4000_8994e6cfa504a442\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{ 1199 1 0 \"3f49da44_8647_4849_91a1a338204de971\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CurrentRow = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1200 1 0 \"bf9029e2_dd7c_43cf_a8a254ce85f9a94a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CurrentColumn = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"d5be5c6f_033d_4009_a4fcc111c397f55a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"8f0e995a_eba4_419c_852b0de3985c02f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_Temp2);\r\n// }} \"\"\r\n// {{ 1203 1 0 \"edfd1991_acb4_4500_adfc90f139981c19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = 0;\r\n// }} \"\"\r\n// {{{ 1204 1 0 \"662baa77_ba3b_45dd_93cf5c09caf1c5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{ 1205 1 0 \"06d59268_90f1_40c9_99b8b34d6e13ecf8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_FullColumns = 1;\r\n// }} \"\"\r\n// {{ 1206 1 0 \"dbe94fcc_60c5_442f_8f1bc1b2cd847c69\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_TotalPositions;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 1207 1 0 \"d178aee2_5f4b_47f7_9992b42ad563222b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_TipPickUpPosition.SetCurrentPosition(int_Index);\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"ca908e21_1870_491a_8ff8e2d490fc5470\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"8afd885c_2db7_47dd_8a907e2f5bcb390e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StrIVal(str_PosID);\r\n// }} \"\"\r\n// {{ 1210 1 0 \"94a42ba0_7654_4d73_92407c9e98129206\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Column = int_Position / 8;\r\n// }} \"\"\r\n// {{ 1211 1 0 \"71a172d8_5f65_46ca_bcc311f0b9ec288e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remainder = int_Position % 8;\r\n// }} \"\"\r\n// {{ 1212 1 0 \"a38179c2_7f08_4267_bafcd12c42c0d216\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Remainder > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1213 1 0 \"7671e316_a7d7_4a15_b11f2940caea07b4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Column = int_Column + 1;\r\n// }} \"\"\r\n// {{ 1214 1 0 \"a38179c2_7f08_4267_bafcd12c42c0d216\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"e6c23a0f_32d0_44b7_8e4b4db8ec974077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Column = StrConcat2(int_Column, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1216 1 0 \"632bd101_d5fe_4fa6_a87b9e8079930e83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Column != str_CurrentColumn)\r\n{\r\n// }} \"\"\r\n// {{ 1217 1 0 \"6404ff21_78c8_4137_b80a2a8369773aed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RowCount > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1218 1 0 \"4db7c97c_98b7_4779_a8f90c11a31afd00\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RowCount == 8)\r\n{\r\n// }} \"\"\r\n// {{ 1219 1 0 \"cafaaa22_2b69_4e7a_85508938a8d1318f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1220 1 0 \"4db7c97c_98b7_4779_a8f90c11a31afd00\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1221 1 0 \"df68b0d8_543c_4e3b_9e8d9a5eaf87a2ab\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1222 1 0 \"cad462af_5ce5_44bb_9af97ac9493fd3f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_FullColumns = 0;\r\n// }} \"\"\r\n// {{{ 1223 1 0 \"fa0d2c25_1715_4142_b1e6d07455f1cc54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{ 1224 1 0 \"430698e3_1991_42f1_bb56775e710bd080\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1225 1 0 \"4db7c97c_98b7_4779_a8f90c11a31afd00\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1226 1 0 \"6404ff21_78c8_4137_b80a2a8369773aed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1227 1 0 \"68674af7_d197_4c63_af278b5be70e724f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = 0;\r\n// }} \"\"\r\n// {{ 1228 1 0 \"c2223076_a7d9_4bbb_a08aa4e538250871\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CurrentColumn = str_Column;\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"ba3d36a4_5abc_4d37_a51b4c4e5b7c582b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_Temp, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1230 1 0 \"98f7baa4_583c_4ca7_8ee484a170541019\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = int_RowCount + 1;\r\n// }} \"\"\r\n// {{ 1231 1 0 \"632bd101_d5fe_4fa6_a87b9e8079930e83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"a717ac9a_a885_4aa9_8b53ae94f85384c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_Temp, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1233 1 0 \"80e4ff87_84a3_4ba7_a51faeacdeeb1083\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = int_RowCount + 1;\r\n// }} \"\"\r\n// {{ 1234 1 0 \"632bd101_d5fe_4fa6_a87b9e8079930e83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Row Count:  \",int_RowCount,\"  Current Column:  \",str_Column,\"  Target Column:  \",str_CurrentColumn);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1236 1 0 \"d07958ca_280b_4bbd_836bb96dd3f50376\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == int_TotalPositions)\r\n{\r\n// }} \"\"\r\n// {{ 1237 1 0 \"d95f3783_8936_4fbc_830ae4eea06326c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RowCount == 8)\r\n{\r\n// }} \"\"\r\n// {{ 1238 1 0 \"d95f3783_8936_4fbc_830ae4eea06326c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1239 1 0 \"05632cf6_90be_4280_8efcfba7b58d3080\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1240 1 0 \"51f4ff29_b80c_4a03_964bdab213260880\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_FullColumns = 0;\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"99fbcfd0_382a_41ce_9594615de34b1a7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{ 1242 1 0 \"c54660c7_ea30_4aee_96d2e77662262242\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1243 1 0 \"d95f3783_8936_4fbc_830ae4eea06326c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1244 1 0 \"d07958ca_280b_4bbd_836bb96dd3f50376\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1245 1 0 \"dbe94fcc_60c5_442f_8f1bc1b2cd847c69\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Full Column:  \",bool_FullColumns);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1247 1 0 \"db3d8504_5490_45c8_84c62c53021488f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FullColumns == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1248 1 0 \"6739c50f_f178_45ef_bd21e5de645cf1b9\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"569acf15_ea9d_420c_93bc2c23ad859794\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(o_seq_TipPickUpPosition, seq_Temp);\r\n// }} \"\"\r\n// {{ 1250 1 0 \"010cf31e_d71c_4871_b6738641209406f7\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1251 1 0 \"db3d8504_5490_45c8_84c62c53021488f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1252 1 0 \"607457a9_a57e_4c6e_90633f4ce2ca07a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1253 1 0 \"10165eb8_2d6a_4364_846c2835528fa4a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_Source, int_PositionCount);\r\n// }} \"\"\r\n// {{ 1254 1 0 \"607457a9_a57e_4c6e_90633f4ce2ca07a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1255 1 0 \"9279fc7b_82f8_4a82_821d234a77303054\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetNextTipPickUpPosition_Partial\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_UpdateTipSequence\" \"Begin\"\r\nprivate function _UpdateTipSequence( sequence & io_SourceTipSequence ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable str_UsedLabware;\r\nprivate variable str_LabID;\r\nprivate variable int_TotalPosition;\r\nprivate variable str_PosID;\r\nprivate sequence seq_Temp;\r\n// {{ 5 \"_UpdateTipSequence\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"2a1d46a5_c213_40e4_9127cb5c695929be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_UsedLabware = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 1661 1 0 \"a91182af_1d74_4250_a566c30dea9db43e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_SourceTipSequence);\r\n// }} \"\"\r\n// {{{ 1662 1 0 \"c86f51a7_5529_479b_a54ddba18c782d77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_Temp, io_SourceTipSequence);\r\n// }} \"\"\r\n// {{{ 1663 1 0 \"4d9e20af_c03e_40f1_8171326d5df6fe8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPosition = SeqGetTotal(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1664 1 0 \"6f34e872_31c8_4235_b1ab2b48905186a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_SourceTipSequence);\r\n// }} \"\"\r\n// {{ 1665 1 0 \"4d017c97_330b_499f_844678c2cfdb9b7b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPosition;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1666 1 0 \"adbdc9e2_1e6d_42b7_87aa2b2c13f7d468\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 1667 1 0 \"386664e2_b1d5_4dad_bf2dd0f9f934fe28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"81069196_3873_417b_8781a5acc0f0cf1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{ 1669 1 0 \"40c18064_2738_4842_a1f71ccd6c23d388\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabID != str_UsedLabware)\r\n{\r\n// }} \"\"\r\n// {{{ 1670 1 0 \"29097b98_2cab_4b08_a78f26c55ab7b608\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_SourceTipSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1671 1 0 \"40c18064_2738_4842_a1f71ccd6c23d388\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1672 1 0 \"4d017c97_330b_499f_844678c2cfdb9b7b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1673 1 0 \"c3ba9515_d839_4815_a8b3ecaeced2781a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_SourceTipSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"_UpdateTipSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_MoveTipsToOffset\" \"Begin\"\r\nprivate function _MoveTipsToOffset( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable flt_NewContainerBaseOffset;\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable flt_SourceContainerBaseOffset;\r\nprivate variable str_NewContainer;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_ContainerFile;\r\nprivate variable str_TipOffsetLabID;\r\nprivate variable int_Count;\r\nprivate variable int_TipType;\r\nprivate variable str_Well;\r\nprivate variable int_Well;\r\nprivate variable str_TipSourceLabID;\r\nprivate variable int_TotalOnOffset;\r\n// {{ 5 \"_MoveTipsToOffset\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1368 1 0 \"f6d8309a_d27c_4179_b84634c25af5df03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1369 1 0 \"59be78cf_b66c_4c8b_ac669ff1852ba704\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1371 1 0 \"6cd52fe7_6614_44e2_bacd48e24c4cd474\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1372 1 0 \"9cffcf45_ba42_420a_b1b62e6d599c3f7c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"430f4b91_c35f_412d_be2a1a9936daaf23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1374 1 0 \"751e0525_be15_4461_baa97e938e071e59\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1375 1 0 \"74e25e8d_03e3_4cbd_92dfc6a497292088\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"*********************************\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\n\r\n// {{ 1377 1 0 \"f6d8309a_d27c_4179_b84634c25af5df03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1378 1 0 \"9da20223_be97_4f7a_919537a045ca43c3\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1379 1 0 \"ea58d0fb_712b_4cc5_b87b3e3c82995e34\" \"{B31F353C-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP.SetCount(96);\r\n// }} \"\"\r\n// {{ 1380 1 0 \"564edb87_fe29_46da_9be80dca51e6dfb8\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1381 1 0 \"4ad26ad6_4c5c_4b1e_90fbe57cdb9373eb\" \"{B31F353C-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT.SetCount(96);\r\n// }} \"\"\r\n// {{{ 1382 1 0 \"bdd1cc7a_1ee2_4055_89dc8c251f7846da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipType(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP, int_TipType);\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"c56ba754_150d_4bb6_966e6d1566c769d4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::LABWARE_GetContainerBaseOffset(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP, flt_SourceContainerBaseOffset);\r\n// }} \"\"\r\n// {{ 1384 1 0 \"7a157ee2_8434_4207_b97c6cf048653627\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewContainerBaseOffset = flt_SourceContainerBaseOffset + TIP_OFFSET_GLOBAL::FLT::CONTAINER_OFFSET;\r\n// }} \"\"\r\n// {{{ 1385 1 0 \"d011eafd_5be0_44f9_97cd107d659283cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::CONT_GetConfigFile(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP, str_ContainerFile);\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"dd596df6_b0cc_4362_b304c887a5211001\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_NewContainer = HSLExtensions::File::GetFileNameWithoutExtension(str_ContainerFile);\r\n// }} \"\"\r\n// {{{ 1387 1 0 \"df526a6f_d78c_4e74_8265002eaa305f3b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"2514e3eb_b786_48b6_9d566aa1b4c4c7bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarTipRack\"), int_TipType);\r\n// }} \"\"\r\n// {{{ 1389 1 0 \"68917d9c_ab49_4d10_ac7e0a8e7c489de6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarCore96TipRack\"), int_TipType);\r\n// }} \"\"\r\nTrace(\"Tip Offset LabID:  \",str_TipOffsetLabID);\r\nTrace(\"Tip Container File:  \",str_NewContainer);\r\nTrace(\"Tip Container Base Offset:  \",flt_NewContainerBaseOffset);\r\nTrace(\"Tip Type:  \",int_TipType);\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1391 1 0 \"28d91123_83c3_4803_90832fe87ed05690\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Well = 0; int_Well < 96;)\r\n{\r\nint_Well = int_Well + 1;\r\n// }} \"\"\r\n// {{ 1392 1 0 \"9b329a04_1614_4f3a_9f502651ee9d14c0\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT.SetCurrentPosition(int_Well);\r\n// }} \"\"\r\n// {{{ 1393 1 0 \"0b2e5eae_04a8_4198_ac3b890599eeddd2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Well = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 1394 1 0 \"6951477e_6df8_4d97_b51811fdc461bc91\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddContainerToRack(ML_STAR, str_TipOffsetLabID, str_Well, str_ContainerFile, 0.0, 0.0, flt_NewContainerBaseOffset);\r\n// }} \"\"\r\n// {{ 1395 1 0 \"28d91123_83c3_4803_90832fe87ed05690\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1396 1 0 \"6430dacb_bdab_4cec_9c2c5dcfc279a45a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1397 1 0 \"9218972d_eaaf_4df4_9bc15abcdbc444dc\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"9218972d_eaaf_4df4_9bc15abcdbc444dc\"); // Head96TipPickUp\r\n}\r\n// }} \"\"\r\n// {{ 1398 1 0 \"e92a3d7f_1b30_48ec_84ea84f6c849efa8\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"e92a3d7f_1b30_48ec_84ea84f6c849efa8\"); // Head96TipEject\r\n}\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"bed6db37_d9a3_4284_9bbf580c9a31aedf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"399bd4d1_101b_4580_855235f76efdeb54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalOnOffset = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"7e3804df_cb89_4b98_9081220839b18d29\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"f44dadbc_ad4c_4626_b6d669efb899baa7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipSourceLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"5940c2cb_df59_4966_8f48acae2a8fd29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"da361bb2_3b0c_4558_b421ee97fb5bae58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT = HSLExtensions::Sequence::ReplaceLabwareIdentifier(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, str_TipSourceLabID, str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 1405 1 0 \"f647bdb7_5e1c_4d27_90151571939dd78c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = int_TotalOnOffset;\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"82652520_cb52_4de4_a2f49463cb3dcd7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 0, Translate(\"Highlight the tips on offset\"));\r\n// }} \"\"\r\n// {{ 1407 1 0 \"baffd0cb_e786_421f_b8afbcd6d74851d3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"*********************************\");\r\n// {{ 1409 1 0 \"baffd0cb_e786_421f_b8afbcd6d74851d3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"_MoveTipsToOffset\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ReturnTipsToPickUp\" \"Begin\"\r\nprivate function _ReturnTipsToPickUp( device & ML_STAR, variable i_bool_PickUpLeft ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_ChPattern;\r\nprivate variable int_TotalLabwareSet;\r\nprivate variable bln_ValueFound;\r\nprivate variable str_TipOffsetLabID;\r\nprivate sequence seq_Temp;\r\nprivate variable int_Index;\r\n// {{ 5 \"_ReturnTipsToPickUp\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1506 1 0 \"1a812dcd_0a83_4683_8ae9634cfa23d871\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1507 1 0 \"77c5207c_0a1f_44c3_9c5020bac650d8b0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1509 1 0 \"f2df2078_4a0b_41f1_9675f8155f3529de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1510 1 0 \"0a3a83e8_8cfb_449b_b1b182f95e2dcb26\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1511 1 0 \"51c8cd0a_da63_4bba_9a47b59ed5618c11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1512 1 0 \"7501b126_a7a2_4f2e_acfb939cbc7bad62\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1513 1 0 \"bbcfd2b1_b5f4_46a9_9359e45653e47e73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"*********************************\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\n\r\n// {{ 1515 1 0 \"1a812dcd_0a83_4683_8ae9634cfa23d871\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1516 1 0 \"bda454c6_9747_4a85_b6556dfdcefac3f8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"5ed15479_b250_421d_8d12432fe0d60c5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillLeft(str_ChPattern, Translate(\"1\"), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 1518 1 0 \"0d0434af_9b15_4966_a848b0716bb016e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_PickUpLeft == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1519 1 0 \"7da0e116_c19b_4397_a36615892e5e6cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillRight(str_ChPattern, Translate(\"0\"), 96);\r\n// }} \"\"\r\n// {{{ 1520 1 0 \"cf7e30f3_c7a2_47ae_928bfe8fe259423e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 1);\r\n// }} \"\"\r\n// {{{ 1521 1 0 \"96849dc5_7ada_4c07_8a6b5a751ad6ce90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{ 1522 1 0 \"0d0434af_9b15_4966_a848b0716bb016e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1523 1 0 \"16c0f335_c377_4377_86a94c5dadf3887d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillLeft(str_ChPattern, Translate(\"0\"), 96);\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"8baccbb5_cb19_4ab4_b91a4eb8b35431a5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 0);\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"54cf519d_04d1_43d4_936f05885617e10b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{ 1526 1 0 \"0d0434af_9b15_4966_a848b0716bb016e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",str_ChPattern);\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1528 1 0 \"8519ab97_77c5_40a6_8fcafada083ad3d5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetRelativePosition(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0.0, 0.0, 2.0, 0.0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1529 1 0 \"b5efcc44_31ab_4efb_bfffa5c506d888e9\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"b5efcc44_31ab_4efb_bfffa5c506d888e9\"); // Head96TipPickUp\r\n}\r\n// }} \"\"\r\n// {{ 1530 1 0 \"9c5ebe5c_5d82_428b_884ddb9985b8e5ec\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"9c5ebe5c_5d82_428b_884ddb9985b8e5ec\"); // Head96TipEject\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1531 1 0 \"17a01c5b_dac2_4414_91b2221063a38091\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetRelativePosition(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0.0, 0.0, -2.0, 0.0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1532 1 0 \"83e502b7_31b8_40e9_95da79988a9a4053\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 1533 1 0 \"55a94d20_6fa7_40a0_82f1885ac482cd6a\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize();\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"60946b3b_854b_4f41_a9997c532bed1c56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 1535 1 0 \"75cecf1c_3371_4567_82c22dfd62224abb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 1536 1 0 \"ad422e3e_3cf0_49b8_ba4889ff5633f1db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalLabwareSet > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"092f5ce2_0a27_4c68_9f0d349841dbe62f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, int_Index);\r\n// }} \"\"\r\n// {{ 1538 1 0 \"54d6a78d_ca83_4145_bd44dc9cbd8c56d3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 1539 1 0 \"c387a32a_6c0a_4732_bbcd8cea776a2c06\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1540 1 0 \"dbeafe4b_d63a_42ae_92226e5f6c010035\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.SetAt(int_Index-1, str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 1541 1 0 \"a1f50258_a853_48fa_b4fce9b8e246740e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(int_Index-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 1542 1 0 \"f0271828_ed79_47c1_8cf98c6f00596b02\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetAt(int_Index-1, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 1543 1 0 \"c387a32a_6c0a_4732_bbcd8cea776a2c06\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1544 1 0 \"ad422e3e_3cf0_49b8_ba4889ff5633f1db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1545 1 0 \"436cacf2_f4af_4cdc_a6af32d72fe0cdd7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 1546 1 0 \"5364a29b_618d_4a35_af45153cbb54955e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 1547 1 0 \"82c081ae_5de9_4144_89bc2c61a432b17c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 1548 1 0 \"ca91df62_1765_4e9a_bf3ab73dff0b6c8f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 1549 1 0 \"4a2fb782_8e83_454a_a81c25ff427d559d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 1550 1 0 \"ad422e3e_3cf0_49b8_ba4889ff5633f1db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1551 1 0 \"d7ddcf68_1f8b_44f3_90e0e872603b0662\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"*********************************\");\r\n// {{ 1553 1 0 \"d7ddcf68_1f8b_44f3_90e0e872603b0662\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"_ReturnTipsToPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_AppendRemainderTipsToCurrentSequence\" \"Begin\"\r\nprivate function _AppendRemainderTipsToCurrentSequence( device & Instrument, sequence & io_seq_TargetSequence, sequence i_seq_RemainderSequence, sequence i_seq_ReturnPositionSequence ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable str_TargetLabID;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalInSequence;\r\n// {{ 5 \"_AppendRemainderTipsToCurrentSequence\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 988 1 0 \"7fb2c6c4_05c5_448e_aaa83bcb689eeed7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(i_seq_RemainderSequence);\r\n// }} \"\"\r\n// {{{ 989 1 0 \"b07875bf_1ec0_4be1_96ec35d586147427\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_TargetSequence);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"de90ec2f_e8eb_4c61_9a437ba76b65ad62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TargetLabID = SeqGetLabwareId(i_seq_ReturnPositionSequence);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"d4fa84a5_fc1d_481e_a04b57c4d69b3a65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalInSequence = SeqGetTotal(i_seq_RemainderSequence);\r\n// }} \"\"\r\n// {{ 992 1 0 \"c25398c4_39e0_431c_8a33ca7b12d62e20\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalInSequence;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 993 1 0 \"dadb478d_a2e7_462b_abd115f180cce166\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_ReturnPositionSequence.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"ac0b72da_0bb6_430e_b860657542645f6c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_ReturnPositionSequence);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"fac4967d_d524_4cee_8408986d95cede85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_ReturnPositionSequence);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"b5c03681_c767_4457_af994da33e2c2db3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_TargetSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 997 1 0 \"c25398c4_39e0_431c_8a33ca7b12d62e20\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 998 1 0 \"21fe98e0_19dd_4c65_92cf53054c17d9c7\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_TargetSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"8c819698_ffb1_4de5_b52a0dc920664865\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(Instrument, io_seq_TargetSequence, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_AppendRemainderTipsToCurrentSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_AddRemainderTipsToCurrentSequence\" \"Begin\"\r\nprivate function _AddRemainderTipsToCurrentSequence( device & Instrument, sequence & io_seq_TargetSequence, sequence i_seq_RemainderSequence, sequence i_seq_ReturnPositionSequence ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable str_TargetLabID;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalInSequence;\r\n// {{ 5 \"_AddRemainderTipsToCurrentSequence\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 974 1 0 \"de8c9545_c2e0_440f_8609144b506dd055\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(i_seq_RemainderSequence);\r\n// }} \"\"\r\n// {{{ 975 1 0 \"4b72e60e_c126_4b79_b91b813f81a4fe47\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(i_seq_ReturnPositionSequence);\r\n// }} \"\"\r\n// {{{ 976 1 0 \"e669f0dd_659b_4a03_ba39b2802417efd5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_TargetSequence);\r\n// }} \"\"\r\n// {{{ 977 1 0 \"676a98d2_9609_432b_82bfde305f80b4cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TargetLabID = SeqGetLabwareId(i_seq_ReturnPositionSequence);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"019e5fa0_91c0_402f_85c45df2c6ce96d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalInSequence = SeqGetTotal(i_seq_RemainderSequence);\r\n// }} \"\"\r\n// {{ 979 1 0 \"1eb9efbc_83c7_4854_ae626ca49522739c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalInSequence;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 980 1 0 \"9fd7053f_79b8_47b5_99b8d498b4c01503\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_RemainderSequence.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"31208896_9b1b_4ab7_9db15bae582b4391\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_RemainderSequence);\r\n// }} \"\"\r\nTrace(\"Lab ID:  \",str_TargetLabID,\"  Pos ID:  \",str_PosID);\r\n// {{{ 983 1 0 \"65f8858a_9067_4365_8d2862f44338a1f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_TargetSequence, str_TargetLabID, str_PosID);\r\n// }} \"\"\r\n// {{ 984 1 0 \"1eb9efbc_83c7_4854_ae626ca49522739c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 985 1 0 \"17eed9fa_a5f4_4f56_a439af86d978577b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_TargetSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 986 1 0 \"89502117_9b7d_4036_a14c1f09d97f1161\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(Instrument, io_seq_TargetSequence, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_AddRemainderTipsToCurrentSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_PickUpTips\" \"Begin\"\r\nprivate function _PickUpTips( device & ML_STAR, variable i_int_TipsNeeded, variable i_bool_PickUpLeft, variable & o_str_ChPattern, variable & o_str_PickUpReturn ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_ChPattern;\r\n// {{ 5 \"_PickUpTips\" \"InitLocals\"\r\no_str_ChPattern = 0;\r\no_str_PickUpReturn = 0;\r\n// }} \"\"\r\n// {{ 1411 1 0 \"8d08cd80_981e_434f_900d1b2975a4a32b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1412 1 0 \"0a9f5b7d_30ac_4171_82cb4737fa48de75\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1414 1 0 \"24f35c68_7654_43cf_9db76460aadc07f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1415 1 0 \"c4ec3fbd_e39b_4994_a921da6f9430b94b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"81ff2a66_55ae_44ab_9ed80397c8b6f9af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1417 1 0 \"c2cbf17f_a7f1_40be_b8be92c3aa5572ae\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"3180cf5b_6ecc_4489_84f01fc9309b6e7f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"*********************************\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\n\r\n// {{ 1420 1 0 \"8d08cd80_981e_434f_900d1b2975a4a32b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1421 1 0 \"ed487eee_7c9d_4be9_be6ff26335f33565\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1422 1 0 \"319a1420_7242_49c0_b251f6934cfc8add\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_PickUpReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1423 1 0 \"3cf0424a_d3ac_411d_90ce31c627310dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillLeft(str_ChPattern, Translate(\"1\"), i_int_TipsNeeded);\r\n// }} \"\"\r\n// {{ 1424 1 0 \"538f8c9a_078d_4428_841c5ae8bc3f31e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_PickUpLeft == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"c0bbcc55_9bcb_4ca5_b4e2cc712bc3fd9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillRight(str_ChPattern, Translate(\"0\"), 96);\r\n// }} \"\"\r\n// {{ 1426 1 0 \"538f8c9a_078d_4428_841c5ae8bc3f31e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"b61396ae_df91_4218_bc92c67c7f90265b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrFillLeft(str_ChPattern, Translate(\"0\"), 96);\r\n// }} \"\"\r\n// {{ 1428 1 0 \"538f8c9a_078d_4428_841c5ae8bc3f31e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",str_ChPattern);\r\n// {{{ 1430 1 0 \"b21a6124_d973_4749_95681cb270a611bf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, i_bool_PickUpLeft);\r\n// }} \"\"\r\n// {{ 1431 1 0 \"13519ba7_e3ef_4794_8e749ee67908b019\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"13519ba7_e3ef_4794_8e749ee67908b019\"); // Head96TipPickUp\r\n\to_str_PickUpReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 1432 1 0 \"9da60233_2f50_4871_8278f6f2568971ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, i_int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"19ce126d_6584_4916_b4ac0124deda59d5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"1f761394_1a33_42fb_a8368c7066ee4867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{ 1435 1 0 \"3cf34de9_3659_4bd4_a50861e64888cc67\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChPattern = str_ChPattern;\r\n// }} \"\"\r\n// {{ 1436 1 0 \"1483e7fb_35e0_44d4_ad963d0d059d52fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"*********************************\");\r\n// {{ 1438 1 0 \"1483e7fb_35e0_44d4_ad963d0d059d52fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"_PickUpTips\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveSequencePositions\" \"Begin\"\r\nprivate function _RemoveSequencePositions( sequence & io_seq_SourceSequence, sequence i_seq_PositionsToRemove ) void {\r\n// }} \"\"\r\nprivate sequence seq_Temp;\r\nprivate variable int_TotalPositions;\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable int_PositionFound;\r\n// {{ 5 \"_RemoveSequencePositions\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"99d90879_9bb7_4913_abe1bcf8080c96ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceSequence);\r\n// }} \"\"\r\n// {{{ 1474 1 0 \"de9d2a38_2f41_412b_940b5f1c5aca4735\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(io_seq_SourceSequence);\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"8a917201_33bc_4d23_992198cc03e3a6a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_Temp, io_seq_SourceSequence);\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"a9f0033b_2bd4_4c6e_ab4686e9fea3d40c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_seq_SourceSequence);\r\n// }} \"\"\r\n// {{ 1477 1 0 \"602a5bbe_2a7a_4a9b_88743024eb2dfdef\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"3363d666_73ff_4542_80b248145dcb470e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"a1266ad0_c893_4a0d_81e9dd81eb0a0eed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"bba77c1d_98eb_4c9f_9babaeb3023fcc09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(seq_Temp, 1);\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"f2551e25_1b3f_491f_8a0b8a07aa55cab3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionFound = SeqLookupPosition(i_seq_PositionsToRemove, str_LabID, str_PosID, 1, 1);\r\n// }} \"\"\r\n// {{ 1482 1 0 \"d8ebb259_8c97_4ef4_bd2c3bd8bbd2b0fb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionFound == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"3b008676_2196_4230_97cada5591337ed6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_SourceSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1484 1 0 \"d8ebb259_8c97_4ef4_bd2c3bd8bbd2b0fb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1485 1 0 \"602a5bbe_2a7a_4a9b_88743024eb2dfdef\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1486 1 0 \"cfaf7aa8_2710_48aa_94d36dae4c27d35d\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_SourceSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveSequencePositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_CleanUpTips_Column\" \"Begin\"\r\nfunction TIP_OFFSET_CleanUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_TipOffsetLabID;\r\nprivate sequence seq_EjectSequence;\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalLabwareSet;\r\nprivate variable bln_ValueFound;\r\nprivate sequence seq_Temp;\r\nprivate variable int_TotalEmpty;\r\nprivate sequence seq_EmptyPosition;\r\n// {{ 5 \"TIP_OFFSET_CleanUpTips_Column\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 10 1 0 \"9c977fce_4ce8_4bcd_bf0677d01ef8c4db\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 11 1 0 \"4c88c288_2411_4bc2_8fb49335e4195e08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 13 1 0 \"4e2ff1df_abb8_40a1_b1428985767f1536\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 14 1 0 \"db5ceb45_1535_4c00_bf505b5fc7d4fd63\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 15 1 0 \"089dce6d_aefc_4497_aa0ff3d1d60f4563\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 16 1 0 \"c9c9957a_6f22_4865_b13319e09d0446ee\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 17 1 0 \"abc3851b_2e11_4e7a_a174e99611ae6403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 19 1 0 \"9c977fce_4ce8_4bcd_bf0677d01ef8c4db\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 20 1 0 \"13031173_b1e1_4da0_bcb37a1afa9e490d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 21 1 0 \"72903d07_7f6d_4fe6_98a0fc32a0219dac\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 22 1 0 \"973e69f4_cc5a_4e7d_aa95eb1b56321c0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp);\r\n// }} \"\"\r\n// {{{ 23 1 0 \"9de27161_3a27_44e7_baa5fad03917f24f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 24 1 0 \"f80e0db7_737f_467f_af0d0b03fed6539f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 25 1 0 \"d8f14485_5af2_4536_bfc8aee34d981a8a\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize();\r\n// }} \"\"\r\n// {{ 26 1 0 \"8160b2dd_7f14_4ff2_890843047c2b6c8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalLabwareSet > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 27 1 0 \"c0800483_2768_4d78_a6ba2e182474aac7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{ 28 1 0 \"f47875f7_7ed0_4c22_bc117184b10bf679\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1;\r\n// }} \"\"\r\n// {{ 29 1 0 \"6c5263dd_0d65_4780_82a7a5b120e4daeb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 30 1 0 \"79fe33aa_f8a7_44a6_9abf9233e1fd8f68\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 31 1 0 \"0c757a45_93d1_4d7a_811282b5b3265a00\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 32 1 0 \"3bbcb1ea_6bbf_4cac_ab35cae30c7add29\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 33 1 0 \"42f515ef_8fd5_44b5_9618182e02cf0907\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 34 1 0 \"4553098b_9dab_4c53_bb57580b9c25fd56\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 35 1 0 \"6c5263dd_0d65_4780_82a7a5b120e4daeb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 36 1 0 \"8a946914_9883_4cd6_a5989813bbcd6318\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 37 1 0 \"ff9420a9_bdb3_4f4f_9dde8937f5faaf7d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 38 1 0 \"6fcc982e_bb1f_4933_9574b3993db199a2\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 39 1 0 \"6c5263dd_0d65_4780_82a7a5b120e4daeb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 40 1 0 \"8160b2dd_7f14_4ff2_890843047c2b6c8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 41 1 0 \"5b9993e0_0699_4a4c_a152b832d3e9a22a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 42 1 0 \"73bad431_afe6_4792_a150db44252d2277\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 43 1 0 \"8d671348_7725_4f18_a35b6da4a0e8c6a5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 44 1 0 \"ecab34cf_84fd_4826_98d8d8297f1ef3fc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 45 1 0 \"2f386c44_23d6_4560_8bb4978c71ceb7c2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 46 1 0 \"4525ea89_1ceb_4513_a4dc14a6c445415c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 47 1 0 \"8160b2dd_7f14_4ff2_890843047c2b6c8a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 48 1 0 \"7708bfd1_14c2_4ad8_bdbb879a69de10c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Labware               Count\"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 49 1 0 \"0b20b846_8659_462d_af766c2b252880a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Index:  \"), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{{ 50 1 0 \"a6313c24_d5e0_4b9a_9c5f37873d0fb084\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Labware:  \"), str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{{ 51 1 0 \"8f626e7a_23fe_4fc2_83d9d9a4b8ff87fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Tip Count  \"), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 52 1 0 \"13031173_b1e1_4da0_bcb37a1afa9e490d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 53 1 0 \"bebe07e9_2e2a_4853_9a668bd705a362a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 54 1 0 \"989d5d31_d36f_41ec_964e40dacdd39304\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitializeLibrary();\r\n// }} \"\"\r\n// {{ 55 1 0 \"126dcfac_007c_4873_92226e3e0604b44e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 56 1 0 \"b2f49f6d_9523_4637_bc61abc1bac18cd6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToString(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 57 1 0 \"c2e9e942_df77_42f4_8b1f1c072c38e48f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 58 1 0 \"17a6d022_d77f_4d69_9c8ec14562b8a746\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"91277d31_59db_47f6_935b00ae5a44b52c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetEmptyPositions(ML_STAR, io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"6b8342c0_0d50_4b6f_b6dad5de0f21c58e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 61 1 0 \"2c8fd748_1b91_4d73_b7ea246cc56a5972\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetConsecutiveSequencePositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 62 1 0 \"afe3992a_f985_40b5_973850a500a54b07\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 63 1 0 \"71edf0dc_0e20_4203_a2d3f0420d3d6c0a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 64 1 0 \"ca0876c0_6a6a_46e4_a531e50d6bef54bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 65 1 0 \"5baf06a7_1f38_4899_9f5a9917f318367c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 66 1 0 \"ca0876c0_6a6a_46e4_a531e50d6bef54bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 67 1 0 \"24ce36de_4426_4620_a5a6e420ecf73fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{ 68 1 0 \"4d8bd23d_4c09_4d47_8ef2d2975370d3e3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 69 1 0 \"39c15c23_517e_4f1d_bc788cbadcc0903b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"ca316ec2_7407_4751_8baf979e03a865ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"7ba2ce21_5215_4bb1_917ada2a30f86182\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"e6e2b33c_1d40_4ebd_a89e4758f8adffd4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_SourceTips, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 73 1 0 \"4d8bd23d_4c09_4d47_8ef2d2975370d3e3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 74 1 0 \"f17c3be1_a5fa_4682_bcdcfe87f330155f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 75 1 0 \"252683b7_168c_4641_896b4e9321fcd155\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_SourceTips.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"86cd9873_6723_4728_923acbc54ca0aa34\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{{ 77 1 0 \"c8700c95_9c63_4c21_abcf7001d897045a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ReturnTipsToPickUp(ML_STAR, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 78 1 0 \"98f7cf9e_1dd1_4dd5_9774a5ec5557061c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"7379c716_e918_4776_bf3a677a6d7c618e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarTipRack\"), -1);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"5490931a_a31c_45a6_abb21987654ed8e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarCore96TipRack\"), -1);\r\n// }} \"\"\r\n// {{{ 81 1 0 \"f8a9f969_d65a_48ec_a16ba26f1ad42a00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 82 1 0 \"1f4ccd71_e044_4a7c_8420bf765c65b7a5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, io_seq_SourceTips, 0);\r\n// }} \"\"\r\n// {{{ 83 1 0 \"473ac956_a72d_4ec5_94d114fb5dc8cd16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 84 1 0 \"6057d0b0_3efe_447c_b2b0a5d21ab39b5f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"70fa1886_7440_410b_9dcb3b7ae75eda9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 86 1 0 \"bebe07e9_2e2a_4853_9a668bd705a362a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 87 1 0 \"f76f5d60_3214_4dab_9287dd527e8b70e6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"====================================================================\\nNo tips to clean up\\n====================================================================\"));\r\n// }} \"\"\r\n// {{ 88 1 0 \"bebe07e9_2e2a_4853_9a668bd705a362a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 89 1 0 \"35ecc0f7_cb84_4aee_81d4b5b633d42cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 90 1 0 \"80809c32_7cee_49c5_afd282413a42b67d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 92 1 0 \"80809c32_7cee_49c5_afd282413a42b67d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_CleanUpTips_Column\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetConsecutiveSequencePositions\" \"Begin\"\r\nprivate function _GetConsecutiveSequencePositions( device & ML_STAR, sequence i_seq_SourcePositions, variable i_int_TotalPositionsNeeded, variable i_bool_RightToLeft, sequence & o_seq_ConsecutivePositions ) void {\r\n// }} \"\"\r\nprivate variable int_TotalPositions;\r\nprivate variable i;\r\nprivate variable str_CurrentLabID;\r\nprivate sequence seq_FullSequence;\r\nprivate variable str_CurrentPosID;\r\nprivate variable int_CurrentColumn;\r\nprivate variable int_Position;\r\nprivate variable int_Column;\r\nprivate variable int_Remainder;\r\nprivate variable int_ColumnCheck;\r\nprivate variable int_RowCount;\r\nprivate variable int_PositionsAdded;\r\nprivate variable str_LabID;\r\n// {{ 5 \"_GetConsecutiveSequencePositions\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1009 1 0 \"45f61a40_5813_445d_a1b25caa5ddb4322\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{{ 1010 1 0 \"624facd2_7d8d_4709_8640ca722ed523c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, seq_FullSequence, i_bool_RightToLeft);\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"895b7379_4dc1_40b9_b3673dd0e5350756\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_SourcePositions);\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"20516072_1030_45ab_a3b6653ed3f9f013\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, i_seq_SourcePositions, i_bool_RightToLeft);\r\n// }} \"\"\r\n// {{ 1013 1 0 \"42c24216_9814_450d_9354f0bf3354b587\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentColumn = 0;\r\n// }} \"\"\r\n// {{ 1014 1 0 \"697137fa_76e2_4d7c_96b2c75ef89e4bd3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = 0;\r\n// }} \"\"\r\n// {{ 1015 1 0 \"45bb8043_4010_46ae_b08c6336efc30b89\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = 0;\r\n// }} \"\"\r\n// {{ 1016 1 0 \"d5f17626_ba7d_4665_94a36d4663bb3cc8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1017 1 0 \"7d1872b9_d14d_4c21_af948a925517dfdb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1018 1 0 \"8ed35f32_d6ce_405e_b9ba98078b613662\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_SourcePositions.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"8e50cdaa_499f_4058_b49583924f70deff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentLabID = SeqGetLabwareId(i_seq_SourcePositions);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"9f608509_5ffc_43e6_ad41f5153e6f9cc3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentPosID = SeqGetPositionId(i_seq_SourcePositions);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Current Lab:  \",str_CurrentLabID,\"  Current Pos ID:  \",str_CurrentPosID,\"  Current Column:  \",int_CurrentColumn,\"  Column:  \",int_Column);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1022 1 0 \"faac5995_741b_4b99_884b123c438fb849\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StrIVal(str_CurrentPosID);\r\n// }} \"\"\r\n// {{ 1023 1 0 \"2f0e30ea_dc16_40f3_906cc39df93d62bd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Column = int_Position / 8;\r\n// }} \"\"\r\n// {{ 1024 1 0 \"be2a4cd5_39ed_453d_bdb713fe01b91d33\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remainder = int_Position % 8;\r\n// }} \"\"\r\n// {{ 1025 1 0 \"cc8462b0_fefe_4770_89743f112f793252\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Remainder > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1026 1 0 \"d2ae610c_f0cd_4725_b43449d0927d1181\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Column = int_Column + 1;\r\n// }} \"\"\r\n// {{ 1027 1 0 \"cc8462b0_fefe_4770_89743f112f793252\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1028 1 0 \"ef9e9c41_abc4_42c0_a1c722917060084c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_CurrentLabID != str_LabID)\r\n{\r\n// }} \"\"\r\n// {{ 1029 1 0 \"c50395ce_5140_4dc1_9f85da9e76833f28\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"5786d3a7_fca2_41d9_812986d62fddcd3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1031 1 0 \"f5082b25_207e_417c_b5d1f2ea7e9be29d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = 0;\r\n// }} \"\"\r\n// {{ 1032 1 0 \"fe3e5f8a_6d76_40cd_80f0afd0ade4fcff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentColumn = int_Column;\r\n// }} \"\"\r\n// {{ 1033 1 0 \"8c53421e_accc_48ab_be357fbdefeb43eb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = 0;\r\n// }} \"\"\r\n// {{ 1034 1 0 \"17d13438_a1e8_42ca_8cb8cb137a5ad4af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID = str_CurrentLabID;\r\n// }} \"\"\r\n// {{ 1035 1 0 \"ef9e9c41_abc4_42c0_a1c722917060084c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1036 1 0 \"d0f4493e_f484_4996_9f5440bd98207a2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Column != int_CurrentColumn)\r\n{\r\n// }} \"\"\r\n// {{ 1037 1 0 \"be1ce2fb_14f5_4819_8220782bb5f8af71\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_RightToLeft == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1038 1 0 \"d8605043_d4bc_40d2_af4b65a182fd23a5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCheck = int_CurrentColumn - int_Column;\r\n// }} \"\"\r\n// {{ 1039 1 0 \"be1ce2fb_14f5_4819_8220782bb5f8af71\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1040 1 0 \"7e485116_185d_44b6_b08019114c26c751\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCheck = int_Column - int_CurrentColumn;\r\n// }} \"\"\r\n// {{ 1041 1 0 \"be1ce2fb_14f5_4819_8220782bb5f8af71\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Column Check:  \",int_ColumnCheck);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1043 1 0 \"44d13b99_3351_474f_9f3a62edf3b74415\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RowCount != 8)\r\n{\r\n// }} \"\"\r\n// {{ 1044 1 0 \"023a5894_2e10_4d92_84f2cedaa5416445\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"816f5f29_09d2_43e8_acc44f8b7a163fac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1046 1 0 \"651c1915_1b09_4bef_96cb634f476cf22c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = 0;\r\n// }} \"\"\r\n// {{ 1047 1 0 \"a68cc52d_e4cc_48b6_ad635b0f343c5076\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentColumn = int_Column;\r\n// }} \"\"\r\n// {{ 1048 1 0 \"1631a58f_7907_4c3e_9c24d65244d338f8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = 0;\r\n// }} \"\"\r\n// {{ 1049 1 0 \"44d13b99_3351_474f_9f3a62edf3b74415\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1050 1 0 \"8aa75262_51a2_4aa2_bfca3c88c4a8f54c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ColumnCheck != 1)\r\n{\r\n// }} \"\"\r\n// {{ 1051 1 0 \"718d65eb_0f7b_40f2_886fdf4ae1e0dfbf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"63fd6f69_2a44_4647_be1ebff446f1588a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1053 1 0 \"d0ebbe5d_2854_4191_a5552d45c341eff9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = 0;\r\n// }} \"\"\r\n// {{ 1054 1 0 \"db4162a3_2fdb_46ab_b31116f822b03802\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentColumn = int_Column;\r\n// }} \"\"\r\n// {{ 1055 1 0 \"7bbd9a28_a4f5_4b7e_8c53fa24e82bbb4f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = 0;\r\n// }} \"\"\r\n// {{ 1056 1 0 \"8aa75262_51a2_4aa2_bfca3c88c4a8f54c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1057 1 0 \"c25301a5_f020_4807_9d2eb6e4628b12c6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = 0;\r\n// }} \"\"\r\n// {{ 1058 1 0 \"9519636f_0911_4964_99129511b658b254\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_RightToLeft == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1059 1 0 \"261a6c5b_c4c9_432a_a078bb44e5e49349\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentColumn = int_CurrentColumn - 1;\r\n// }} \"\"\r\n// {{ 1060 1 0 \"9519636f_0911_4964_99129511b658b254\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1061 1 0 \"17881d98_da34_41c2_99d102b37e87413d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentColumn = int_CurrentColumn + 1;\r\n// }} \"\"\r\n// {{ 1062 1 0 \"9519636f_0911_4964_99129511b658b254\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1063 1 0 \"8aa75262_51a2_4aa2_bfca3c88c4a8f54c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1064 1 0 \"44d13b99_3351_474f_9f3a62edf3b74415\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1065 1 0 \"d0f4493e_f484_4996_9f5440bd98207a2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1066 1 0 \"edd54921_4b60_490e_911918856bea4d2d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCount = int_RowCount + 1;\r\n// }} \"\"\r\n// {{ 1067 1 0 \"8d4353b1_da39_4912_b8503fe3fa6d0874\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = int_PositionsAdded + 1;\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"dec7c412_5544_4d1f_94ac15c15945aa31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_ConsecutivePositions, str_CurrentLabID, str_CurrentPosID);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Current Row count:  \",int_RowCount,\"  Positions added:  \",int_PositionsAdded);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1070 1 0 \"dfeda4b2_68e9_4330_84f9535ad6322b51\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsAdded == i_int_TotalPositionsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 1071 1 0 \"00e95285_757f_423a_b49eaf8646fdc5d8\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1072 1 0 \"dfeda4b2_68e9_4330_84f9535ad6322b51\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1073 1 0 \"7d1872b9_d14d_4c21_af948a925517dfdb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1074 1 0 \"cc57a3c5_c0d8_4314_b04ff304b0f43e88\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_ConsecutivePositions.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"7ba1b522_9f36_4295_921dde974d73efaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1076 1 0 \"e5ffc43b_6ed4_4433_ba917cd9910d1904\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPositions < i_int_TotalPositionsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 1077 1 0 \"a0baa724_65cf_4853_9f2ee0c9cff8c0e2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"c8c70182_32ca_423b_b453c363f1ed7020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1079 1 0 \"e5ffc43b_6ed4_4433_ba917cd9910d1904\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetConsecutiveSequencePositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"__SortSequence2\" \"Begin\"\r\nprivate function __SortSequence2( device & Instrument, sequence & io_SequenceToSort, variable i_bool_SortBottomToFront ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_Y_Coord;\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable str_Sort;\r\nprivate variable bool_FileExists;\r\nprivate variable str_PosID;\r\nprivate variable str_TempSortFile;\r\nprivate variable int_TotalPositions;\r\nprivate file SortFile;\r\n// {{ 5 \"__SortSequence2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1715 1 0 \"d8c19210_d0c0_46b0_8064624178867ede\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__GetSortFilePath(str_TempSortFile);\r\n// }} \"\"\r\n// {{{ 1716 1 0 \"281e1aa3_4502_44d7_91e0b73485220c84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortFile);\r\n// }} \"\"\r\n// {{ 1717 1 0 \"80dfa7b6_3e7c_4ccd_8166a60de630f7c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1718 1 0 \"f13dada9_78e8_4566_add9569f819f8385\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortFile);\r\n// }} \"\"\r\n// {{ 1719 1 0 \"80dfa7b6_3e7c_4ccd_8166a60de630f7c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1720 1 0 \"079b7915_167b_4834_bc0f98fb63b329c5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_SequenceToSort);\r\n// }} \"\"\r\n// {{{ 1721 1 0 \"58f71307_375d_405b_9505485f7f9ad019\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(io_SequenceToSort);\r\n// }} \"\"\r\n// {{ 1722 1 0 \"406cf51d_1a46_47f4_afdf832f94195f51\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\nSortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\nSortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\nSortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\nif( 0 == SortFile.Open(str_TempSortFile + \" \" + \"SORT_FILE\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1723 1 0 \"939182db_db95_4016_b264964b78628150\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1724 1 0 \"3a307212_7a62_410e_9af39672653e648e\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_SequenceToSort.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 1725 1 0 \"a9c3d161_f529_4033_8e099253fe4b562f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(io_SequenceToSort);\r\n// }} \"\"\r\n// {{{ 1726 1 0 \"f9fe6bb8_45d8_428a_990789dab96ebd7f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(io_SequenceToSort);\r\n// }} \"\"\r\n// {{{ 1727 1 0 \"afdc00b2_1b32_4030_8ee4bb06d978911c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 1728 1 0 \"2485bd3b_7ee5_453c_b606235c9e2ea4a1\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1729 1 0 \"939182db_db95_4016_b264964b78628150\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1730 1 0 \"3520ba6d_e894_4dd4_9b026dc95d0ce171\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 1731 1 0 \"754e2367_768a_40ab_b65c6571e3d47b76\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_SortBottomToFront == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1732 1 0 \"d1b78f06_d9c2_4980_be6e5b61c670ca4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Sort = StrConcat2(Translate(\"SELECT * FROM SORT_FILE ORDER BY LAB_ID ASC, Y_COORD ASC, X_COORD ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1733 1 0 \"754e2367_768a_40ab_b65c6571e3d47b76\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1734 1 0 \"09fc4a26_d15b_4c75_9aee08c0383ec967\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Sort = StrConcat2(Translate(\"SELECT * FROM SORT_FILE ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1735 1 0 \"754e2367_768a_40ab_b65c6571e3d47b76\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1736 1 0 \"a027b655_eb98_475c_87ff5b9e27123531\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nSortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\nSortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\nSortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\nSortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\nif( 0 == SortFile.Open(str_TempSortFile + \" \" + \"SORT_FILE\", hslRead, str_Sort) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1737 1 0 \"667a43dc_f14d_4044_b740ba4b7a7148b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_SequenceToSort);\r\n// }} \"\"\r\n// {{ 1738 1 0 \"1bd5266f_8497_45dd_b575d0d28197ba15\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (SortFile.Eof() == 0)\r\n)\r\n{\r\n// }} \"\"\r\n// {{ 1739 1 0 \"e10def12_36c5_49d7_9e9a5cf4c9c3294d\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == SortFile.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1740 1 0 \"1d7d00f3_cdbb_4a18_b37f3c5bcbf453b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_SequenceToSort, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1741 1 0 \"1bd5266f_8497_45dd_b575d0d28197ba15\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1742 1 0 \"4a28d788_1dbb_4173_982b57a488949def\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != SortFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nSortFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 1743 1 0 \"a9e34a1f_014e_408f_8cee1f8d34c3541a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_SequenceToSort.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"__SortSequence2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ReturnTipsToPickUp2\" \"Begin\"\r\nprivate function _ReturnTipsToPickUp2( device & ML_STAR, variable i_bool_PickUpTop ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable i;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_ChPatternTemp;\r\nprivate variable int_TotalRows;\r\nprivate variable str_ChPattern;\r\nprivate variable int_TotalLabwareSet;\r\nprivate variable bln_ValueFound;\r\nprivate variable str_TipOffsetLabID;\r\nprivate sequence seq_Temp;\r\nprivate variable int_Index;\r\n// {{ 5 \"_ReturnTipsToPickUp2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1555 1 0 \"5e7b9665_89cc_420c_927d759e49c95ace\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1556 1 0 \"c0b8195c_5500_43d5_bbae46b129445f4d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1558 1 0 \"ceb660a4_1e09_495a_af9d437ab9a5a99d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1559 1 0 \"52067d96_ab00_4020_97a598500b667a23\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"916c2639_28ba_4900_9a2895e3291bf591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1561 1 0 \"646c7aa8_9dd6_4439_b7504a95ee9d3c01\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"49c255c6_86df_4c7b_80215ff52479d5d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"*********************************\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\n\r\n// {{ 1564 1 0 \"5e7b9665_89cc_420c_927d759e49c95ace\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1565 1 0 \"72bb38cd_027c_4832_8312ffe1c3594af5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1566 1 0 \"90f01e5f_01f3_4a05_a86e0c5bd41f862b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPatternTemp = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1567 1 0 \"ee561b68_5b00_44cf_a9aff06d0de4e234\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalRows = TIP_OFFSET_GLOBAL::INT::TIPS_LOADED / 12;\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"1aedee24_286e_4109_8daa5ea5437e23a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPatternTemp = StrFillLeft(str_ChPatternTemp, Translate(\"1\"), int_TotalRows);\r\n// }} \"\"\r\n// {{ 1569 1 0 \"c074e2db_9e7a_4f31_a480ca10d1880403\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_PickUpTop == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"0572eff4_fc20_41e5_8001191d7aa263e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPatternTemp = StrFillRight(str_ChPatternTemp, Translate(\"0\"), 8);\r\n// }} \"\"\r\n// {{ 1571 1 0 \"c074e2db_9e7a_4f31_a480ca10d1880403\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1572 1 0 \"39029307_ce3f_44fd_a7e50fa77f398c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPatternTemp = StrFillLeft(str_ChPatternTemp, Translate(\"0\"), 8);\r\n// }} \"\"\r\n// {{ 1573 1 0 \"c074e2db_9e7a_4f31_a480ca10d1880403\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1574 1 0 \"9946f923_9d7d_46ba_98536441e82fef0d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < 12;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"53b87832_9585_4a67_a3bd361d9d500c33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, str_ChPatternTemp);\r\n// }} \"\"\r\n// {{ 1576 1 0 \"9946f923_9d7d_46ba_98536441e82fef0d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",str_ChPattern);\r\n// {{ 1578 1 0 \"cf95699e_2130_4713_a703c513a2833919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_PickUpTop == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1579 1 0 \"1c0f1249_261c_4d73_842a7a3683906746\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 1);\r\n// }} \"\"\r\n// {{{ 1580 1 0 \"1f84deff_8b65_411c_b3c892a03f0159d8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0);\r\n// }} \"\"\r\n// {{ 1581 1 0 \"cf95699e_2130_4713_a703c513a2833919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1582 1 0 \"428e1167_853c_49c1_9dc8216948775837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 0);\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"96341af2_98a9_47a6_bc2e93f438a91b38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{ 1584 1 0 \"cf95699e_2130_4713_a703c513a2833919\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1585 1 0 \"168eeb82_4bc8_4bfc_97c8ee6989c0255a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetRelativePosition(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0.0, 0.0, 2.0, 0.0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1586 1 0 \"b0061d06_0aac_470a_a8d3b39f550fe89a\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"b0061d06_0aac_470a_a8d3b39f550fe89a\"); // Head96TipPickUp\r\n}\r\n// }} \"\"\r\n// {{ 1587 1 0 \"4ac4e0ca_92f5_433d_b3b2fa5c50142366\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"4ac4e0ca_92f5_433d_b3b2fa5c50142366\"); // Head96TipEject\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1588 1 0 \"545bfcce_2a28_4daa_b46ce4f1c0b45aa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetRelativePosition(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0.0, 0.0, -2.0, 0.0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1589 1 0 \"da979805_5c1d_44bf_a9274461d9e6bd04\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 1590 1 0 \"5a719109_effb_4add_a92fd2e96ccdc6c9\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize();\r\n// }} \"\"\r\n// {{{ 1591 1 0 \"fb626070_4e01_4a0d_940779388601f709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"1337c81f_1b62_4732_af6b0a7b1f50f25c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 1593 1 0 \"94dc6917_dc50_4d0d_9d95c4be38a73b84\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalLabwareSet > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1594 1 0 \"abad11c3_7e1a_4427_83c6441e98320a8f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, int_Index);\r\n// }} \"\"\r\n// {{ 1595 1 0 \"fca5a990_a121_4b98_b9d37e41816f5697\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 1596 1 0 \"6178c13c_2e72_4d99_a1f0642c5d6171d3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1597 1 0 \"20ca52c0_6205_47e0_84812b7ce71a5b37\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.SetAt(int_Index-1, str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 1598 1 0 \"8c5493ea_54c6_4065_8ac58793f645cfa0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(int_Index-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 1599 1 0 \"2775ad44_3e72_401a_bded6d8cca933000\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetAt(int_Index-1, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 1600 1 0 \"6178c13c_2e72_4d99_a1f0642c5d6171d3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1601 1 0 \"94dc6917_dc50_4d0d_9d95c4be38a73b84\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1602 1 0 \"d1cc4e56_eb6b_416c_8ef27270b720562e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 1603 1 0 \"0bf442e5_06a6_4d90_82007779eefb5692\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 1604 1 0 \"d1e4eadd_80e2_47e2_a2360516db308b8e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 1605 1 0 \"75e628a1_4048_4afe_b50198804e3deab1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 1606 1 0 \"630de213_e2ac_4c50_b7f0aa3d91888e3e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 1607 1 0 \"94dc6917_dc50_4d0d_9d95c4be38a73b84\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1608 1 0 \"c9b29730_ed18_41f8_bd1b048669683c56\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"*********************************\");\r\n// {{ 1610 1 0 \"c9b29730_ed18_41f8_bd1b048669683c56\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"_ReturnTipsToPickUp2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_PickUpTips2\" \"Begin\"\r\nprivate function _PickUpTips2( device & ML_STAR, variable i_int_TipsNeeded, variable i_bool_PickUpTop, variable o_str_PickUpReturn ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable i;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable str_ChPatternTemp;\r\nprivate variable int_TotalRows;\r\nprivate variable str_ChPattern;\r\n// {{ 5 \"_PickUpTips2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1440 1 0 \"cf26c423_bf0c_47d3_b87ed90cf8773359\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1441 1 0 \"cd256d14_237b_4a66_b655a9a50d22c66d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 1443 1 0 \"c7cc2b1e_881d_4048_81d7b992372a275b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 1444 1 0 \"cc99fa59_3632_468d_8bbaaed182c1e18c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 1445 1 0 \"f1bce90a_27dc_4e86_a7d1ec8c82e48997\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 1446 1 0 \"ad1b6110_fcce_4a59_9b69c06c29dc5cfd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"536a62cd_5e40_4aec_a3bc07d026e55f0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"*********************************\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\n\r\n// {{ 1449 1 0 \"cf26c423_bf0c_47d3_b87ed90cf8773359\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1450 1 0 \"0a53f549_dd05_4b34_ba335dcb824d707c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1451 1 0 \"bfff7eb7_8be2_47b7_957a8a7f3b5612cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_PickUpReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1452 1 0 \"ccaeb071_e63b_418f_aa1862d86686ba31\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPatternTemp = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1453 1 0 \"79b745a3_a86c_4466_8c173bc31bdd23ae\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalRows = i_int_TipsNeeded / 12;\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"1b8ee93b_cf1b_4c29_ad63308f22d814d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPatternTemp = StrFillLeft(str_ChPatternTemp, Translate(\"1\"), int_TotalRows);\r\n// }} \"\"\r\n// {{ 1455 1 0 \"5fd54fac_9d02_46f2_a06097c100fd8a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_PickUpTop == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"277ff593_2c58_42a5_8d77bede67cab8fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPatternTemp = StrFillRight(str_ChPatternTemp, Translate(\"0\"), 8);\r\n// }} \"\"\r\n// {{ 1457 1 0 \"5fd54fac_9d02_46f2_a06097c100fd8a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"a2e7474c_10d5_41ca_ac39c2f120bc56e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPatternTemp = StrFillLeft(str_ChPatternTemp, Translate(\"0\"), 8);\r\n// }} \"\"\r\n// {{ 1459 1 0 \"5fd54fac_9d02_46f2_a06097c100fd8a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1460 1 0 \"c027254b_9923_4483_859c459ffc1c8f62\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < 12;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"57b44a36_931f_4c77_aae6d198ff294d3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, str_ChPatternTemp);\r\n// }} \"\"\r\n// {{ 1462 1 0 \"c027254b_9923_4483_859c459ffc1c8f62\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"Channel Pattern:  \",str_ChPattern);\r\n// {{{ 1464 1 0 \"0fbd4717_f507_4d02_9ef2c35e4f5e5eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, i_bool_PickUpTop);\r\n// }} \"\"\r\n// {{ 1465 1 0 \"fbc26394_d289_44a3_b1f8ded9a070bb07\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"fbc26394_d289_44a3_b1f8ded9a070bb07\"); // Head96TipPickUp\r\n\to_str_PickUpReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"2fcd3c63_0a49_4c8d_a0b9fbd10c740187\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, i_int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"a488ce9f_9a77_47b7_9cada75be459a1ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 1468 1 0 \"218cd90e_6287_4d58_8724554f0affc4eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{ 1469 1 0 \"cf9ebaa6_4f38_422d_89e60901bc30718b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"*********************************\");\r\n// {{ 1471 1 0 \"cf9ebaa6_4f38_422d_89e60901bc30718b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"_PickUpTips2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetNextTipPickUpPosition_Partial2\" \"Begin\"\r\nprivate function _GetNextTipPickUpPosition_Partial2( device & Instrument, sequence i_seq_Source, sequence & o_seq_TipPickUpPosition, variable i_int_TipsNeeded ) void {\r\n// }} \"\"\r\nprivate variable int_Remainder;\r\nprivate variable int_CurrentPosition;\r\nprivate variable i;\r\nprivate variable str_Row;\r\nprivate variable str_LabID_ToRemove;\r\nprivate variable int_Row;\r\nprivate variable str_LabID;\r\nprivate variable int_Position;\r\nprivate variable int_TotalTipLabware;\r\nprivate variable int_ColumnCount;\r\nprivate variable str_CurrentRow;\r\nprivate variable a;\r\nprivate variable int_PositionCount;\r\nprivate variable bool_FullRows;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalPositions;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_Temp2;\r\nprivate variable arr_LabIDs[];\r\nprivate variable str_PosID_AN;\r\nprivate variable int_Index;\r\n// {{ 5 \"_GetNextTipPickUpPosition_Partial2\" \"InitLocals\"\r\n{ sequence __temp; o_seq_TipPickUpPosition = __temp; }\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"ec49e911_0114_462d_bc3b3ea411038c76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"ed6887b5_8112_4302_8e4c1fb33d9369e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(i_seq_Source);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"c7928306_8c1e_4a26_a46cc4541c9ac001\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(i_seq_Source, arr_LabIDs);\r\n// }} \"\"\r\n// {{ 1260 1 0 \"f0555ad5_a565_4418_b0726701ccd106ee\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalTipLabware=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 1261 1 0 \"d7550f95_d35a_4a3b_bc43380a38397235\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID_ToRemove = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1262 1 0 \"88114e42_197e_4cc3_adb23ca0f1f47c6a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalTipLabware;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1263 1 0 \"3468ac8a_fc52_48f1_b56d5e6fa258f188\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=arr_LabIDs.GetAt(i-1);\r\n// }} \"\"\r\n// {{{ 1264 1 0 \"6041c4a5_1e78_4730_b5d1ae70bb3b5a64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionCount = SeqGetPositionCountForCurrLabware(i_seq_Source);\r\n// }} \"\"\r\n// {{ 1265 1 0 \"ef9c605b_8911_460e_ae26f60623822575\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = i_seq_Source.GetCurrentPosition();\r\n// }} \"\"\r\n// {{ 1266 1 0 \"123b8921_7f54_4fe7_845bca1f8c7066d0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionCount >= i_int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 1267 1 0 \"758180bc_b700_4f05_9b7167bcf64f0f01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID_ToRemove = str_LabID;\r\n// }} \"\"\r\n// {{ 1268 1 0 \"5dfa1d30_e54b_479f_84201c34f5da3c18\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(a = 0; a < int_PositionCount;)\r\n{\r\na = a + 1;\r\n// }} \"\"\r\n// {{{ 1269 1 0 \"80101af6_c585_45e7_94cfe9a126e17942\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_Source);\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"aed3745b_e2bd_400b_b8ba56e5dd64e540\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_TipPickUpPosition, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{{ 1271 1 0 \"9853e992_e8d1_4b5c_8e1ead86d036db37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_Source, 1);\r\n// }} \"\"\r\n// {{ 1272 1 0 \"5dfa1d30_e54b_479f_84201c34f5da3c18\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1273 1 0 \"d5fbfd6f_c796_4ac5_8f1b6154fd90366a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_TipPickUpPosition.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1274 1 0 \"7fa969a8_8b1d_4671_a0bf03abfa150dd8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"Check to make sure the sequence contains full rows\"));\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"10863247_9d70_4b61_a23daa5d95386e3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(Instrument, o_seq_TipPickUpPosition, 0);\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"1fa5c074_32da_4811_a07b7c7e0f0b571b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{ 1277 1 0 \"1e3fae55_9769_43f7_b77d1a50b45998e2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CurrentRow = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"316f6833_ed87_43a2_95f307e2f633da0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"350c3450_1a0e_48ce_a9a67e5f58cadb99\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_Temp2);\r\n// }} \"\"\r\n// {{ 1280 1 0 \"48284ecc_0be5_4f60_9d17f04d3eb1f7c9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = 0;\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"60cee4e6_24b3_4ed4_946cdb5bbddfe714\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{ 1282 1 0 \"7f436bc8_e327_4601_9258f82ab8669573\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_FullRows = 1;\r\n// }} \"\"\r\n// {{ 1283 1 0 \"24dad927_e0d9_43a4_b81e39162e845a5a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_TotalPositions;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 1284 1 0 \"7d7e7c6a_ed6d_4806_be20c817e37bfe02\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_TipPickUpPosition.SetCurrentPosition(int_Index);\r\n// }} \"\"\r\n// {{{ 1285 1 0 \"b1ed9436_7674_4131_96aa90fa54cded23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{{ 1286 1 0 \"c1c9c043_ec96_43c6_9956065b0d51e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StrIVal(str_PosID);\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"89d24bfe_dee3_418e_9efb6caa2bdbc031\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nANC::Convert_Numbers_to_Alpha_Numeric(1, int_Position, 8, 12, str_PosID_AN);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"359a5ec3_2cb4_4bcc_b91c28ddb3a15a03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Row = StrLeft(str_PosID_AN, 1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1289 1 0 \"3a601155_1c1e_4ff6_acffdf9d6c95dc26\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Row = int_Position / 12;\r\n// }} \"\"\r\n// {{ 1290 1 0 \"c7f29158_519e_4d19_9e9d3a6d3daf6805\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remainder = int_Position % 12;\r\n// }} \"\"\r\n// {{ 1291 1 0 \"e689ccf3_b636_409a_b41977a231fef52d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Remainder > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1292 1 0 \"4468848d_e225_48e4_8db761b1507fd568\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Row = int_Row + 1;\r\n// }} \"\"\r\n// {{ 1293 1 0 \"e689ccf3_b636_409a_b41977a231fef52d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1294 1 0 \"553d1226_ee88_47f8_81e75627769517d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Row = StrConcat2(int_Row, Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1295 1 0 \"9b31452f_96f9_4074_bf42c9d8d69d1d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_Row != str_CurrentRow)\r\n{\r\n// }} \"\"\r\n// {{ 1296 1 0 \"0957065f_43c1_491c_b7fd714be509ebec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ColumnCount > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1297 1 0 \"524f969e_45bf_4c5d_80cf4384457ccf42\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ColumnCount == 12)\r\n{\r\n// }} \"\"\r\n// {{ 1298 1 0 \"6b94eedf_1355_4e64_93f92676a7f16175\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1299 1 0 \"524f969e_45bf_4c5d_80cf4384457ccf42\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1300 1 0 \"a5c9a11d_b909_4216_b9e07c5076f742e0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1301 1 0 \"7f50af4b_bb79_4fc7_867e30e27ba2cbd5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_FullRows = 0;\r\n// }} \"\"\r\n// {{{ 1302 1 0 \"b1ae8e24_9a11_433e_becb766ffacd1c14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{ 1303 1 0 \"ca314fb7_0ac2_49e5_b996f0fa98cf7bbb\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1304 1 0 \"524f969e_45bf_4c5d_80cf4384457ccf42\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1305 1 0 \"0957065f_43c1_491c_b7fd714be509ebec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1306 1 0 \"01f344ef_0edf_4199_a9001f31efba9035\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = 0;\r\n// }} \"\"\r\n// {{ 1307 1 0 \"8ea849b5_cada_4a5f_9935eb23dfe45b65\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CurrentRow = str_Row;\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"841e04bc_596a_4622_94fb1ece02b154d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_Temp, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1309 1 0 \"05f4c48e_3ca3_45e7_94cc083989da7669\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = int_ColumnCount + 1;\r\n// }} \"\"\r\n// {{ 1310 1 0 \"9b31452f_96f9_4074_bf42c9d8d69d1d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"f5b75ac7_6975_494e_b06d850e55407977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_Temp, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1312 1 0 \"a157c1c9_eb05_4834_b7dfc5f065cc29ad\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = int_ColumnCount + 1;\r\n// }} \"\"\r\n// {{ 1313 1 0 \"9b31452f_96f9_4074_bf42c9d8d69d1d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1314 1 0 \"9dbc4c6c_ed0b_4548_8fa4919f79f984e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == int_TotalPositions)\r\n{\r\n// }} \"\"\r\n// {{ 1315 1 0 \"ed17d90b_76cd_4959_b9788d007fd73d45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ColumnCount == 12)\r\n{\r\n// }} \"\"\r\n// {{ 1316 1 0 \"ed17d90b_76cd_4959_b9788d007fd73d45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1317 1 0 \"e6d00d68_873c_408c_94b0e29af30ad496\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1318 1 0 \"8f92e77e_ebf1_4c4c_a3fd3f9e5179863b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_FullRows = 0;\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"c4e6f2fa_ed73_4e61_97e8dd4efedeadb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TipPickUpPosition);\r\n// }} \"\"\r\n// {{ 1320 1 0 \"587bc09f_a1e1_4a1c_810acbc414c15107\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1321 1 0 \"ed17d90b_76cd_4959_b9788d007fd73d45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1322 1 0 \"9dbc4c6c_ed0b_4548_8fa4919f79f984e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1323 1 0 \"24dad927_e0d9_43a4_b81e39162e845a5a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1324 1 0 \"57c12ed5_7b1b_4a51_baf981867ee31486\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FullRows == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1325 1 0 \"342758fa_5408_43c1_867c3763ce017b71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(o_seq_TipPickUpPosition, seq_Temp);\r\n// }} \"\"\r\n// {{ 1326 1 0 \"77ba68c1_21e6_48a0_83b347f7e3524a58\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_TipPickUpPosition.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1327 1 0 \"b711d5e5_9bfa_4f14_83dc34749c3e1c1c\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1328 1 0 \"57c12ed5_7b1b_4a51_baf981867ee31486\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1329 1 0 \"123b8921_7f54_4fe7_845bca1f8c7066d0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"b5809850_1032_4e10_837a60f170ca86d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_Source, int_PositionCount);\r\n// }} \"\"\r\n// {{ 1331 1 0 \"123b8921_7f54_4fe7_845bca1f8c7066d0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1332 1 0 \"88114e42_197e_4cc3_adb23ca0f1f47c6a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetNextTipPickUpPosition_Partial2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_PickUpTips_Rows\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable str_SequenceName;\r\nprivate variable int_Length;\r\nprivate variable int_TotalEmpty;\r\nprivate variable strFunctionName;\r\nprivate variable int_PositionsSet;\r\nprivate variable int_SourceTip_TipType;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_TotalRows;\r\nprivate variable int_Count;\r\nprivate variable int_TipOffset_TipType;\r\nprivate variable int_TipsNeeded;\r\nprivate variable str_TipLabID;\r\nprivate sequence seq_EmptyPosition;\r\nprivate variable ret_str_TipPickUp;\r\nprivate variable int_TotalLabwareSet;\r\nprivate variable bln_ValueFound;\r\nprivate variable str_TipOffsetLabID;\r\nprivate sequence seq_Temp;\r\n// {{ 5 \"TIP_OFFSET_PickUpTips_Rows\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 620 1 0 \"a3425028_9e99_47e8_8ae43b8b53947f58\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 621 1 0 \"604336ae_b855_4b74_af933da80e46d64f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 623 1 0 \"ede8e63c_2604_48a8_a24a0959933b72e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 624 1 0 \"594e48b4_0ba4_424d_bfcdfb779f376581\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 625 1 0 \"13d7e1bf_bcdd_4008_b5bd5ea9fc92d263\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 626 1 0 \"f4a8bd2f_1361_468a_bfbf46720b8e36e6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 627 1 0 \"12908eae_16d0_4acd_a196d8401b4dc3d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 629 1 0 \"a3425028_9e99_47e8_8ae43b8b53947f58\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 630 1 0 \"bb819cdd_54a9_4d15_932cdf7dc6c2b594\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_str_TipPickUp = Translate(\"\");\r\n// }} \"\"\r\n// {{ 631 1 0 \"cb5fce90_a82a_464d_944367bf3aed7e50\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 632 1 0 \"d07efbc9_7bc6_4d77_9e783b3eb74f6bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TotalRows = StrConcat2(i_int_RowsNeeded, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 633 1 0 \"6032d1df_87e6_4eb6_ab740cab6b52f709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_int_RowsNeeded = StrIVal(str_TotalRows);\r\n// }} \"\"\r\n// {{{ 634 1 0 \"e1e2fbc4_3e1e_4326_ac1f35b204936063\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitializeLibrary();\r\n// }} \"\"\r\n// {{ 635 1 0 \"fcd12b22_4983_4539_b86d28db456d63cc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 636 1 0 \"e4644fe6_ac4e_4346_a203ed087abeb069\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipType(ML_STAR, io_seq_SourceTips, int_SourceTip_TipType);\r\n// }} \"\"\r\n// {{ 637 1 0 \"d84786fb_8dcb_4737_97e7ce490e7b84ac\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 638 1 0 \"27b03201_df40_4250_93bb4727f141bb01\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipsNeeded = i_int_RowsNeeded * 12;\r\n// }} \"\"\r\n// {{ 639 1 0 \"adf5d747_fd7e_45f0_9d4972910238e45f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_RowsNeeded == 8)\r\n{\r\n// }} \"\"\r\n// {{{ 640 1 0 \"41a56ecd_4884_47c7_a97af2c80729c5be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nret_str_TipPickUp = _LocalPickUpNextMPH96Tips(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 641 1 0 \"cd37b52e_35ee_454e_a0c6648174eb4fa8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 642 1 0 \"0556b89f_623c_4db8_ba2040d8c55e5042\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 644 1 0 \"0556b89f_623c_4db8_ba2040d8c55e5042\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 645 1 0 \"f65f9f58_1001_4038_b6301ba2bb09c2f5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{ 646 1 0 \"adf5d747_fd7e_45f0_9d4972910238e45f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 647 1 0 \"0fd2eaec_e4e8_473d_ae08e3582dbc8e60\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{ 648 1 0 \"aeca59ab_2547_47a5_b0cde8f7b9ff0033\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 649 1 0 \"081f8f13_e07c_47af_931159de68efe14b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 650 1 0 \"bb87e489_dc38_4217_88cb567f1cffe1e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"021d8eeb_bf42_49b1_8ae97a1d4134f273\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"21efa13b_f4f9_481a_b33073045005ea30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 653 1 0 \"6f5c9355_749e_4b0c_9f330db910d0aeb4\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize();\r\n// }} \"\"\r\n// {{ 654 1 0 \"d55fdca7_80b2_43c0_87f3252e0e1367e3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalLabwareSet > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 655 1 0 \"af64c833_c9f4_49f7_82bc32008330cafa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{ 656 1 0 \"abc9e6e0_de7f_4190_a6ae109d87d298ea\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1;\r\n// }} \"\"\r\n// {{ 657 1 0 \"d0c372b0_624a_4684_b5128c67f13f5b5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 658 1 0 \"da308556_074f_4e49_88f2ddfb12285514\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 659 1 0 \"97d3ce64_de46_41dc_847d3cf67fcf9566\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 660 1 0 \"2e489b29_ba50_4c7a_9ef51dc3c2bc5173\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 661 1 0 \"eb4d77c8_4837_498d_9def206f548aa724\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 662 1 0 \"63bbd247_bfc2_4057_a5b6b49f55d7526a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 663 1 0 \"3e6e8d60_3f96_424b_bac47917227831ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 664 1 0 \"d0c372b0_624a_4684_b5128c67f13f5b5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 665 1 0 \"af6ceb9a_0cfe_4b34_82d765f741c1703a\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 666 1 0 \"04da90c2_96ff_43a5_967208f413b76e25\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 667 1 0 \"4f90f3da_854c_4b3c_8eb0d95105afa345\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 668 1 0 \"d0c372b0_624a_4684_b5128c67f13f5b5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 669 1 0 \"d55fdca7_80b2_43c0_87f3252e0e1367e3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 670 1 0 \"fc616318_7b95_4098_bb4cd9694fb29d7d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 671 1 0 \"25159f68_53ec_4204_86505dae142e6ca1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 672 1 0 \"8b9881ee_d810_4713_bce33ad1a11e68dc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 673 1 0 \"f11368e7_b8d5_491a_8f32f31522a6fa58\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 674 1 0 \"af3f9aa1_ec3f_4ada_b04d69932580f51c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 675 1 0 \"20c02025_3bfa_41b5_bc3a8ba898e7022b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 676 1 0 \"d55fdca7_80b2_43c0_87f3252e0e1367e3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 677 1 0 \"2d00674c_05bb_4a8a_aa0946be3ee8910b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Labware               Count\"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"86b93906_dea8_42b5_837a3478e9bbd07a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Index:  \"), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"12a65b82_4f36_4f57_bd902b5234e82acb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Labware:  \"), str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"4a21a063_5839_4990_9d1a6a2f91e2f016\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Tip Count  \"), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 681 1 0 \"aeca59ab_2547_47a5_b0cde8f7b9ff0033\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 682 1 0 \"2ac591fd_3b31_4a5e_8bab74a26e302e7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded < 12)\r\n{\r\n// }} \"\"\r\nTrace(\"****************** Column request of \",i_int_RowsNeeded,\" is not achievable because it is less than 12 tips!\");\r\n// {{ 684 1 0 \"63f580af_2dee_4eba_a00bb3138b93ade4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 686 1 0 \"63f580af_2dee_4eba_a00bb3138b93ade4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 687 1 0 \"4d1d235a_d6f6_4ed4_bef8313520e7aecc\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{ 688 1 0 \"2ac591fd_3b31_4a5e_8bab74a26e302e7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 689 1 0 \"c03be649_41c9_4874_bb2659de8843d540\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded > 96)\r\n{\r\n// }} \"\"\r\nTrace(\"****************** Column request of \",i_int_RowsNeeded,\" is not achievable because it will exceed 96 tips!\");\r\n// {{ 691 1 0 \"0260f1a2_6ab9_4ecd_aadc16577cb8a672\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 693 1 0 \"0260f1a2_6ab9_4ecd_aadc16577cb8a672\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 694 1 0 \"415b3c7a_08f9_4b5e_846ea60f41d7bb54\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{ 695 1 0 \"c03be649_41c9_4874_bb2659de8843d540\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 696 1 0 \"1592b6f6_7836_4b3f_b1a660aca2b422d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SequenceName = SeqGetName(io_seq_SourceTips);\r\n// }} \"\"\r\nTrace(\"Sequence Name:  \",str_SequenceName);\r\nTrace(\"Tips loaded:  \",TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// {{{ 698 1 0 \"66595d96_1ece_47ba_834b990ae32c8407\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 699 1 0 \"bcde8b83_1518_424b_9fc5103449001a6e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 700 1 0 \"0d99959c_47d9_4b63_891ef77ac2ec0e1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetEmptyPositions(ML_STAR, io_seq_SourceTips);\r\n// }} \"\"\r\n// {{ 701 1 0 \"ddcaa649_8664_4d17_bcc01407a230ceb3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 702 1 0 \"cc0810ec_ecb5_4899_9750f879d8870f3c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 703 1 0 \"4b6235cc_3dc3_4899_84e86d1b24ed816c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipType(ML_STAR, i_seq_TipOffset, int_TipOffset_TipType);\r\n// }} \"\"\r\n// {{ 704 1 0 \"28bb7faa_ba7c_4d71_b9303c9526704130\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 705 1 0 \"397d5627_841c_4d7c_ace4d48d78bbf296\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SourceTip_TipType != int_TipOffset_TipType)\r\n{\r\n// }} \"\"\r\n// {{ 706 1 0 \"71d08c5e_432b_4c44_951baa0fec26f60b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipOffset_TipType == -1)\r\n{\r\n// }} \"\"\r\n// {{ 707 1 0 \"01c7291f_b044_4f16_8eb65bf5b1404174\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 708 1 0 \"e493723b_8a62_461d_b2e96295d8f42b58\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 709 1 0 \"601f9a2b_b6fe_4318_825d82e14e166902\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for partial rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 710 1 0 \"d42fba26_fc51_465f_85c5388d7e8d9991\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial2(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"0f065ece_eb88_4295_925393e369f56464\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{ 712 1 0 \"0391850c_4ace_42c6_936f4354ad8e0c10\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 713 1 0 \"8a8169b8_aa7a_4fef_ba3cca2804369adf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for full rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 714 1 0 \"201e23ba_77dc_4a47_82c9548fe30419bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 715 1 0 \"f9838801_8648_46f9_9e964aedd6e51399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\nTrace(\"Full rack check loaded:  \",int_PositionsSet);\r\n// {{ 717 1 0 \"0391850c_4ace_42c6_936f4354ad8e0c10\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"Partial rack check loaded:  \",int_PositionsSet);\r\n// {{ 719 1 0 \"0391850c_4ace_42c6_936f4354ad8e0c10\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 720 1 0 \"2f879caa_810d_423d_a3356abdf667a15e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 721 1 0 \"8cab3fc2_dd7c_4d64_a90aeb07b70c6927\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nMore tips are needed\\n===========================================\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 722 1 0 \"68240f9e_cd9a_4775_b0e495c4fc278e14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 723 1 0 \"20589d29_ed95_4a08_a7a74cb47aecd2d6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 724 1 0 \"2f879caa_810d_423d_a3356abdf667a15e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 725 1 0 \"751961ab_868a_403c_91c57fc339e482fa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet > 1)\r\n{\r\n// }} \"\"\r\n// {{ 726 1 0 \"8dff9023_6869_4665_aeb2b3f715b3cfa2\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 727 1 0 \"751961ab_868a_403c_91c57fc339e482fa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 728 1 0 \"e493723b_8a62_461d_b2e96295d8f42b58\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 729 1 0 \"06abf195_7eb8_47d8_bc704e099973dcd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"9446c301_0e97_43fe_985790593fb7ca76\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"bc3900f3_3387_476f_95508bc44a9cdf4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_UpdateTipSequence(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"7a9fdf9e_037c_4e4c_be5b0cbc4d15042f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"bd5f56c2_14c9_4ee6_82558d0168908ad7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 734 1 0 \"9b31a3cc_2713_4470_b1eff58f1b98b3ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_MoveTipsToOffset(ML_STAR);\r\n// }} \"\"\r\n// {{ 735 1 0 \"01c7291f_b044_4f16_8eb65bf5b1404174\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 736 1 0 \"71d08c5e_432b_4c44_951baa0fec26f60b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 737 1 0 \"35f80d54_3f6d_4932_abbd3c225bd3a969\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{ 738 1 0 \"8d36b34d_2698_4672_b9977e74a1547057\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 739 1 0 \"fcc45eff_81a1_4c1d_897a1a0027a0632f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ReturnTipsToPickUp2(ML_STAR, i_bool_UseTop);\r\n// }} \"\"\r\n// {{ 740 1 0 \"35f80d54_3f6d_4932_abbd3c225bd3a969\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 741 1 0 \"1fbbf6d7_0652_401b_aba665d607f24cd7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 742 1 0 \"e58742c7_5fb5_4bea_82d9e82dc1c5abde\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 743 1 0 \"76d8b6fb_ff2d_4f5e_aedcbfcea73ba2df\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for partial rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 744 1 0 \"1540208e_4a75_414b_9c872e40464687bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial2(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"f70aa2a8_2cd4_40e8_ae075a25fcb44101\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{ 746 1 0 \"da8dff5d_7c00_40b1_a6b0d8087f9bc7b4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 747 1 0 \"2f7fd220_ee82_41dd_906db1af3a8631ab\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for full rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 748 1 0 \"95e69f17_b9a9_46f4_99fe8dd2a8759233\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"1eb6a19f_050f_4616_b64d710d530fc9ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\nTrace(\"Full rack check loaded:  \",int_PositionsSet);\r\n// {{ 751 1 0 \"da8dff5d_7c00_40b1_a6b0d8087f9bc7b4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"Partial rack check loaded:  \",int_PositionsSet);\r\n// {{ 753 1 0 \"da8dff5d_7c00_40b1_a6b0d8087f9bc7b4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 754 1 0 \"9366efcb_cbee_435a_b796d02b2a37e473\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 755 1 0 \"5d40711a_4c70_45b7_aa5dec23b055a375\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nMore tips are needed\\n===========================================\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 756 1 0 \"ae0e9535_3fcc_478f_b35238be31a185a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 757 1 0 \"cf0b1ac2_5d1e_4464_8d421a77a39bce40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 758 1 0 \"9366efcb_cbee_435a_b796d02b2a37e473\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 759 1 0 \"a08515f6_dd2e_44ed_9a8f46356cf76c57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet > 1)\r\n{\r\n// }} \"\"\r\n// {{ 760 1 0 \"5dd46ded_8453_4491_80f826e05cfb8b7b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 761 1 0 \"a08515f6_dd2e_44ed_9a8f46356cf76c57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 762 1 0 \"e58742c7_5fb5_4bea_82d9e82dc1c5abde\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 763 1 0 \"56acffba_0bdc_4789_a91684215ee04205\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 764 1 0 \"835f3f33_afb0_41ee_8b3297a1cd38d50b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"38f91902_677e_432b_aa3382774da6b8a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_UpdateTipSequence(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"aa96df94_0c3d_4246_89eb892c4c82c55e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"b14b4530_626e_48f3_aa39f968a9e2573e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 768 1 0 \"e6aab532_43c8_471d_85bed50a4ea3f86e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_MoveTipsToOffset(ML_STAR);\r\n// }} \"\"\r\n// {{ 769 1 0 \"1fbbf6d7_0652_401b_aba665d607f24cd7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 770 1 0 \"71d08c5e_432b_4c44_951baa0fec26f60b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 771 1 0 \"397d5627_841c_4d7c_ace4d48d78bbf296\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 772 1 0 \"ddcaa649_8664_4d17_bcc01407a230ceb3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 773 1 0 \"7242b8d6_9ed4_4ba8_8dccb54db985c6e3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 774 1 0 \"3203298d_4e2b_416c_9090d649d2b4dbf1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{ 775 1 0 \"9076bb0c_e290_48c8_9177327e9454a218\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED < int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 776 1 0 \"85cf5004_ac60_4915_a763bb025461f874\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 777 1 0 \"735cd9e5_ac5c_4eeb_90133e34e9594c10\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 778 1 0 \"3c527d75_1f69_4e2b_908602c9ee94ca3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 779 1 0 \"e2ca2f6e_1597_4213_bb4aca8eaa0297b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 780 1 0 \"4af207b2_6bfe_4a61_a3cc9099a0c8e801\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition);\r\n// }} \"\"\r\n// {{{ 781 1 0 \"ab6aeb08_3103_4a30_97ba982563783630\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_AppendRemainderTipsToCurrentSequence(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 782 1 0 \"e2ca2f6e_1597_4213_bb4aca8eaa0297b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 783 1 0 \"1a6b2682_2cd4_497e_bcb3f58d08020da8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 784 1 0 \"cc5776f9_360d_49b1_bdc729603a9b0f23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_AddRemainderTipsToCurrentSequence(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 785 1 0 \"e2ca2f6e_1597_4213_bb4aca8eaa0297b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 786 1 0 \"ba720558_b31d_4132_97079eb2100a586d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ReturnTipsToPickUp2(ML_STAR, i_bool_UseTop);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"e57fc5e2_7591_4d41_897e0f5724e5b1ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, io_seq_SourceTips, 0);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"ef55e7ee_292e_4a55_8bf6876ece0dd339\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"fd329e8e_5f82_43ae_9b44a2a28451a4e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 790 1 0 \"9076bb0c_e290_48c8_9177327e9454a218\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"3203298d_4e2b_416c_9090d649d2b4dbf1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 792 1 0 \"69b70ad4_7bec_4eef_8ee3f9d0221dda20\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"2ca62988_b6b9_435b_8bcc559ec1a90669\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 794 1 0 \"d54fade6_086a_4c76_b7a562b178193563\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for partial rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 795 1 0 \"4fc5acc5_4a3b_41e5_bb9b19f2c2fd1c68\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial2(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"9b0438fc_628c_4b69_b6f6e20a396d7305\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{ 797 1 0 \"fe993fdb_692e_4ac4_bde7067a4db829cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 798 1 0 \"7c47dd82_e21b_4a96_9a2afa115b8c36c3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nCheck for full rack of tips\\n===========================================\"));\r\n// }} \"\"\r\n// {{{ 799 1 0 \"b5e731ee_3aec_4460_bb4571b8d3dc0e4c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"7e1dbddd_adf7_4187_9341a132a718e01e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\nTrace(\"Full rack check loaded:  \",int_PositionsSet);\r\n// {{ 802 1 0 \"fe993fdb_692e_4ac4_bde7067a4db829cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\nTrace(\"Partial rack check loaded:  \",int_PositionsSet);\r\n// {{ 804 1 0 \"fe993fdb_692e_4ac4_bde7067a4db829cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 805 1 0 \"6ba51876_b94b_41a7_b3f8451d855022fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet == 0)\r\n{\r\n// }} \"\"\r\n// {{ 806 1 0 \"b6c58cf1_8c4c_4efb_b780f203bb6e533a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"===========================================\\nMore tips are needed\\n===========================================\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 807 1 0 \"b7eb279c_cc8a_4b8f_808157b18bad8bb2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 808 1 0 \"43ecb04a_14b6_44fd_835ad4788985b017\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 809 1 0 \"6ba51876_b94b_41a7_b3f8451d855022fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 810 1 0 \"ead7ff2f_b7da_4b47_9f56bea29a64011a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsSet > 1)\r\n{\r\n// }} \"\"\r\n// {{ 811 1 0 \"7b2b1278_7e72_473d_9702679b32cc8c5b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 812 1 0 \"ead7ff2f_b7da_4b47_9f56bea29a64011a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 813 1 0 \"2ca62988_b6b9_435b_8bcc559ec1a90669\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 814 1 0 \"d1c54d54_3194_444a_a62192d0ae532d0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"fab0a8c7_f307_4a07_bb20172a8e8a5300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"76449e37_f04e_4e24_ad5d7505e56a28ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_UpdateTipSequence(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 817 1 0 \"a574eff8_5968_4981_9bdb668fa4e340b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"4a37c6c2_6446_4f92_a6f9cda72336d7d3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 819 1 0 \"6be47314_9646_47b8_b27c03e55fa66753\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_MoveTipsToOffset(ML_STAR);\r\n// }} \"\"\r\n// {{ 820 1 0 \"69b70ad4_7bec_4eef_8ee3f9d0221dda20\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 821 1 0 \"3203298d_4e2b_416c_9090d649d2b4dbf1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 822 1 0 \"7242b8d6_9ed4_4ba8_8dccb54db985c6e3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 823 1 0 \"c5ae35bd_49d8_4cad_bf133eb089547348\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"Tips loaded:  \",TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// {{ 825 1 0 \"84c8c737_700c_40d7_b9a4685d43ca996d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 826 1 0 \"32fc0a1a_9e93_453e_99c8de254cd4390b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_PickUpTips2(ML_STAR, int_TipsNeeded, i_bool_UseTop, ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{ 827 1 0 \"c89afed1_541f_4989_b230d9db3aa0e659\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 828 1 0 \"84c8c737_700c_40d7_b9a4685d43ca996d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 829 1 0 \"c5ae35bd_49d8_4cad_bf133eb089547348\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 830 1 0 \"bcde8b83_1518_424b_9fc5103449001a6e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 831 1 0 \"7ae1f186_cbcc_44a1_bf50aaf2f033eb50\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"3a38656f_8dd8_463c_a01ffaebf3121e92\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, io_seq_SourceTips, 0);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"eff36819_6174_4964_832430b492ee76b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 834 1 0 \"f02ba8c6_250a_4f11_a16865b0f1f67fe6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 835 1 0 \"25a52351_e800_43fa_a457071610343dbf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"af62b477_fdbf_4e34_b65e5cb1e23cbc04\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{ 837 1 0 \"f9fb26ce_8d77_461f_9c9641f04c75580e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 838 1 0 \"c4f5152f_1de6_4d65_90be5312aeb86e0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 839 1 0 \"48858ccb_6e2f_419b_8fe91b3124912400\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 841 1 0 \"48858ccb_6e2f_419b_8fe91b3124912400\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 842 1 0 \"fe900986_e488_4f3d_9e92c84e11c21b04\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_TipPickUp);\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_PickUpTips_Rows\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_CleanUpTips_Rows\" \"Begin\"\r\nfunction TIP_OFFSET_CleanUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable i;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_LabID;\r\nprivate variable str_TipOffsetLabID;\r\nprivate variable int_Count;\r\nprivate variable str_PosID;\r\nprivate sequence seq_EjectSequence;\r\nprivate variable int_TotalLabwareSet;\r\nprivate variable bln_ValueFound;\r\nprivate sequence seq_Temp;\r\nprivate variable str_LabIDReturn;\r\nprivate variable int_TotalEmpty;\r\nprivate sequence seq_EmptyPosition;\r\n// {{ 5 \"TIP_OFFSET_CleanUpTips_Rows\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 178 1 0 \"4cbdd5b4_fc6a_41c1_a5878688d445f0d3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 179 1 0 \"7b49a36b_dde1_4176_9bd58708961b0c14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 181 1 0 \"dc904e82_7458_40cc_8d8be30047cfa2ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 182 1 0 \"64431090_e432_4e6a_8471f406a56a7471\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 183 1 0 \"e4deb70e_185d_4e69_92dd72ee378af201\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 184 1 0 \"0f29d452_626a_4d14_9220a9d4ad1f5227\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 185 1 0 \"6c429a8d_dfac_498b_94be663ebef1aeb6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 187 1 0 \"4cbdd5b4_fc6a_41c1_a5878688d445f0d3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 188 1 0 \"b0bf791b_ee3d_46db_a2ebf8d71abb78af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{ 189 1 0 \"d1f4e495_bfa3_40df_9cecb7b4361ddf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 190 1 0 \"da97ca07_c8a8_4c46_bda17b439c0bb454\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 191 1 0 \"0d58ab6b_b10d_4685_a8b3f3fe0a80b4ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d75eacb2_470a_4b68_a1319cbc21b86552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"5c339f72_8ee3_470b_8fe1726e490e9a3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 194 1 0 \"cde254bc_dbf3_47a4_88de8afbbe49b357\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize();\r\n// }} \"\"\r\n// {{ 195 1 0 \"efe94757_93d3_4b8a_a1a9d46796be5bcd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalLabwareSet > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 196 1 0 \"59a0dfaa_dd0b_4090_8e9872aaa67f01a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{ 197 1 0 \"7eee9678_d785_48a5_a6ea888a71e7a50f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1;\r\n// }} \"\"\r\n// {{ 198 1 0 \"402ab25f_63f3_4bef_9b995477cb3a7587\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 199 1 0 \"9e933c62_7601_407c_8518dcd3169c649f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 200 1 0 \"69537310_c6ee_43aa_a3229237a807b133\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 201 1 0 \"719ea875_53b9_4261_9498fab5261c1b25\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 202 1 0 \"53fba099_d541_4603_9c6df499858e827d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 203 1 0 \"30894db1_bf05_4b29_8e61686405065ea3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 204 1 0 \"402ab25f_63f3_4bef_9b995477cb3a7587\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 205 1 0 \"b1223e48_55f7_4e2a_b185c15206222002\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 206 1 0 \"b73de609_596c_4088_ab407912ed9871f6\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 207 1 0 \"c82eb353_8dec_415f_a028e687f0fed912\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 208 1 0 \"402ab25f_63f3_4bef_9b995477cb3a7587\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 209 1 0 \"efe94757_93d3_4b8a_a1a9d46796be5bcd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 210 1 0 \"875bffa9_70f5_4056_bd3389472ae6433f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 211 1 0 \"a2d0a841_7a18_4b0f_9ca59a626f02c0a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 212 1 0 \"46186312_3b63_4445_947e5b238fffe489\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 213 1 0 \"4d253717_00a5_48e4_8f6b67eb655a503f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 214 1 0 \"58369d8d_a6ab_43cc_8bf0b2e60e662003\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 215 1 0 \"316f2f63_7a28_46f9_83686c5c3c4e8c53\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 216 1 0 \"efe94757_93d3_4b8a_a1a9d46796be5bcd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 217 1 0 \"ac9bbb9f_9059_4019_b8353d5a24ade9c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Labware               Count\"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"45904a18_0a2f_43c4_837fb8000a3d7e7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDReturn = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 219 1 0 \"a5e6eaea_b5eb_428e_9dcd4cfb16b8253c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Index:  \"), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"33e4d42c_a23e_4cf0_bfd741432b11df55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Return Labware:  \"), str_LabIDReturn);\r\n// }} \"\"\r\n// {{{ 221 1 0 \"381f19b3_d676_4e2f_aa01bd4508cc7e0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Tip Count  \"), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 222 1 0 \"d1f4e495_bfa3_40df_9cecb7b4361ddf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 223 1 0 \"1f54937b_142e_437f_b4d21e9cb3d3a816\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 224 1 0 \"8dd98a6e_1aa0_4d94_b32849114e5faff9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitializeLibrary();\r\n// }} \"\"\r\n// {{ 225 1 0 \"b4eebc6c_68cf_4c50_bd87f85848fda873\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 226 1 0 \"249154e0_ff7f_4b38_b53f4357694523dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToString(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 227 1 0 \"b25cd423_ee3f_4de8_b36a3c5b62903ba8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 228 1 0 \"6918f949_50c9_4eff_a1e182457289632d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"0cbbb13b_c6c1_475b_9aced1ac4546ea05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetEmptyPositions(ML_STAR, io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"a39d9cd8_7805_45d4_bf039dcfc13d2b8d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"2ba95c80_92c6_4299_863c5d2f3b10fc53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"847fe205_294b_46cd_88b05fe938f248fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 233 1 0 \"1e1f8fa5_9d74_44ed_8f5f8e7660ded1a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 234 1 0 \"a19f5d46_d509_44f7_bbef0e4e9fe30440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 235 1 0 \"1e1f8fa5_9d74_44ed_8f5f8e7660ded1a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 236 1 0 \"96b1f879_a816_427e_80759d5bc220357f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetConsecutiveSequencePositions2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 237 1 0 \"2a6dec9f_9fb4_4c6c_ba3217c9ec7103d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0);\r\n// }} \"\"\r\n// {{ 238 1 0 \"0bbac20e_484d_440f_b95c05b5862357f3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 239 1 0 \"dd5a46de_0b73_4f3c_83c8425ea141a60c\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"5ca32bd1_f516_4b0a_a79e297c4b959d48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"d8953d40_1362_45a3_8e69f55f911d3198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"e91ccd6e_0e6d_40b7_b7734d3804d697cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_SourceTips, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 243 1 0 \"0bbac20e_484d_440f_b95c05b5862357f3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 244 1 0 \"96e87713_7679_485a_a92f2400a5eac24d\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 245 1 0 \"492a107b_9c68_46e9_99b12523df0416fe\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_SourceTips.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"bebe34c0_b88f_4672_9e771211ab4ab680\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"ce712fe9_b1b6_41db_9ba266dbef042b07\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ReturnTipsToPickUp2(ML_STAR, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"530fed3f_a425_4c7f_a0faf3cab238d3b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"2f0a36aa_6913_4c4d_a3bef90da165855b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarTipRack\"), -1);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"cf139b00_8f91_470e_a6fe68d630b3e5ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarCore96TipRack\"), -1);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"8317281d_945f_449d_a6d8640b7a927f3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 252 1 0 \"d3a99e27_8d25_42da_9fa4e7de72be915f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, io_seq_SourceTips, 0);\r\n// }} \"\"\r\n// {{{ 253 1 0 \"27bf8f38_4027_45d1_a3daf8dccb41388d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 254 1 0 \"19ee0f92_37e7_40e7_a1015ee99dda07f6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 255 1 0 \"a5bbaf3d_920b_4b70_85c8ab4400c5aa64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 256 1 0 \"1f54937b_142e_437f_b4d21e9cb3d3a816\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 257 1 0 \"38d65c74_7e76_4a6d_97cca650e546eb37\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"====================================================================\\nNo tips to clean up\\n====================================================================\"));\r\n// }} \"\"\r\n// {{ 258 1 0 \"1f54937b_142e_437f_b4d21e9cb3d3a816\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 259 1 0 \"183f0796_7ad8_49a6_93107882c5036f0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 260 1 0 \"cde193eb_27c7_48e1_86ac0577f9174960\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 262 1 0 \"cde193eb_27c7_48e1_86ac0577f9174960\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_CleanUpTips_Rows\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_GetLiquidLevelHeight\" \"Begin\"\r\nfunction TOOL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_ReturnValue3FromTipPickUp, variable i_str_ReturnValue3FromPipetting, variable & o_flt_LiquidLevelHeight ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable z_LLD_height;\r\nprivate variable strFW_return;\r\nprivate variable steps_to_mm;\r\nprivate variable strFW_digits;\r\nprivate variable str_LabIDTipPickUp;\r\nprivate variable str_LabIDTipPipetting;\r\nprivate sequence seq_TempTipPickUp;\r\nprivate sequence seq_TempPipetting;\r\nprivate variable int_TipType;\r\nprivate variable flt_TipLength;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZBottom;\r\nprivate variable bln_SimMode;\r\n// {{ 5 \"TOOL_GetLiquidLevelHeight\" \"InitLocals\"\r\no_flt_LiquidLevelHeight = 0;\r\n// }} \"\"\r\n// {{ 867 1 0 \"2a0a39f1_f080_4622_a530f18072dbd9d8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 868 1 0 \"39175f98_c05f_4a17_ad4ccec56b381ada\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 870 1 0 \"3167b785_316b_4ce8_a402943cb85faad0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 871 1 0 \"b55935f7_7384_46aa_a666b89c7ba7ace8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 872 1 0 \"769ca445_f618_4f96_a65b1f0f85fbc3dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 873 1 0 \"12495c15_3663_4af4_a1868c130b20bf9f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 874 1 0 \"f0a24637_9e92_4916_951a7f998f5fb2d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 876 1 0 \"2a0a39f1_f080_4622_a530f18072dbd9d8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 877 1 0 \"ffad8800_39ae_4f5f_baaf23c31270bba8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"c925b744_c6fd_41d2_88468ab59af1b2f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 879 1 0 \"d9bdfa2a_cf5f_486a_ac441141a7079438\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDTipPickUp = StepReturn::GetLabwareId(1, i_str_ReturnValue3FromTipPickUp);\r\n// }} \"\"\r\n// {{{ 880 1 0 \"0b322cfd_1d8b_49d6_b263ed1c4850bc75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDTipPipetting = StepReturn::GetLabwareId(1, i_str_ReturnValue3FromPipetting);\r\n// }} \"\"\r\n// {{{ 881 1 0 \"b6ab12de_765f_4156_89ea520d5577bafe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_LabIDTipPickUp, 1, seq_TempTipPickUp);\r\n// }} \"\"\r\n// {{{ 882 1 0 \"cee4545e_3716_4e4b_a2218bab13d0a94e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::SEQ_GetDefaultSequence(ML_STAR, str_LabIDTipPipetting, 1, seq_TempPipetting);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"12d1cfa8_fded_4036_9c1572707f38fcc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::LABWARE_GetCurrentPosition(ML_STAR, seq_TempPipetting, flt_NotUsed, flt_NotUsed, flt_ZBottom);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"d3cbd4c2_f47e_4727_8fc730368f52667f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipType(ML_STAR, seq_TempTipPickUp, int_TipType);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"d7e1bed4_c88b_499c_b4bfabbf3aa94ea2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipTypeLength_Get(int_TipType, flt_TipLength);\r\n// }} \"\"\r\n// {{ 886 1 0 \"7f13d5ff_d84c_4d46_96a5b50c2ba02064\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 887 1 0 \"b7f35b0f_5b90_48d7_ba5af658c3026cac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{ 888 1 0 \"08b040ab_ab6e_4470_99ca330a92143a37\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"08b040ab_ab6e_4470_99ca330a92143a37\"); // FirmwareCommand\r\n\tstrFW_return = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 889 1 0 \"3324a760_bec6_4742_bf18d76dbc77ba89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrRight(strFW_return, 5);\r\n// }} \"\"\r\n// {{{ 890 1 0 \"8142bbe8_4338_4bec_a53a9d37f947e725\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrIVal(strFW_digits);\r\n// }} \"\"\r\n// {{ 891 1 0 \"4806f821_820f_4f0b_98200a094472a0bd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nsteps_to_mm = 0.005 * strFW_digits;\r\n// }} \"\"\r\n// {{ 892 1 0 \"0df431c7_1352_47ec_8c7b046957f876bd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nz_LLD_height = steps_to_mm - flt_TipLength;\r\n// }} \"\"\r\n// {{ 893 1 0 \"b7f35b0f_5b90_48d7_ba5af658c3026cac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 894 1 0 \"61b9323c_b1a2_4612_9fa16f62da954a8a\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"61b9323c_b1a2_4612_9fa16f62da954a8a\"); // FirmwareCommand\r\n\tstrFW_return = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 895 1 0 \"ebef1d88_b752_47f6_bbe55403755bc8a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrRight(strFW_return, 5);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"1e245f3d_398f_4b9e_b00d7e14ac300407\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrIVal(strFW_digits);\r\n// }} \"\"\r\n// {{ 897 1 0 \"b6b074f9_ba23_4333_bfad776017e1cdf4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nsteps_to_mm = 0.005 * strFW_digits;\r\n// }} \"\"\r\n// {{ 898 1 0 \"172d29f5_27ed_4737_ab901c7767b18410\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nz_LLD_height = steps_to_mm - flt_TipLength;\r\n// }} \"\"\r\n// {{ 899 1 0 \"b7f35b0f_5b90_48d7_ba5af658c3026cac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 900 1 0 \"7f13d5ff_d84c_4d46_96a5b50c2ba02064\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 901 1 0 \"cc6f15fc_f291_4828_aadc565ad22dd46b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nz_LLD_height = flt_ZBottom + 10.0;\r\n// }} \"\"\r\n// {{ 902 1 0 \"7f13d5ff_d84c_4d46_96a5b50c2ba02064\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 903 1 0 \"461edcfc_ec11_4654_bd9dcd30dee70b25\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LiquidLevelHeight = z_LLD_height - flt_ZBottom;\r\n// }} \"\"\r\n// {{{ 904 1 0 \"de00fd7a_350d_4550_98fceeaaf395b680\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"     ----- Pipetting Lab ID:  \"), str_LabIDTipPipetting);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"f50c49fb_0158_4b3f_b3c9a1a60eaa7cfb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"     ----- Tip Pick Up Lab ID:  \"), str_LabIDTipPickUp);\r\n// }} \"\"\r\n// {{{ 906 1 0 \"45a56213_a034_4074_92926c9bbfe56318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"     ----- Tip Length:  \"), flt_TipLength);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"4002a28f_4665_4640_bb3f9aa38926537b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"     ----- Liquid Level Height Measured:  \"), o_flt_LiquidLevelHeight);\r\n// }} \"\"\r\n// {{ 908 1 0 \"b19c2715_028c_4a15_9c8dfcd33bf90070\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 910 1 0 \"b19c2715_028c_4a15_9c8dfcd33bf90070\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_GetLiquidLevelHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_MPH96ToBack\" \"Begin\"\r\nfunction MOVE_MPH96ToBack( device & ML_STAR ) void {\r\n// }} \"\"\r\nprivate variable bol_MPH96_Available;\r\n// {{ 5 \"MOVE_MPH96ToBack\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 3 1 0 \"c1dd53ce_3c8c_45c4_a9a3d37260367049\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 4 1 0 \"a9b00ab5_5328_451a_a5efed19a90be6c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbol_MPH96_Available = DevGetCfgValueWithKey(ML_STAR, 24);\r\n// }} \"\"\r\n// {{ 5 1 0 \"def1eb48_6833_4f3f_91532499aa4d3e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bol_MPH96_Available == 1)\r\n{\r\n// }} \"\"\r\n// {{ 6 1 0 \"8adafca5_46b1_4fe3_87bb53d164414e5b\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"8adafca5_46b1_4fe3_87bb53d164414e5b\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{ 7 1 0 \"c87237e1_006f_42eb_ad968b2e0c8f3c8f\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c87237e1_006f_42eb_ad968b2e0c8f3c8f\"); // FirmwareCommand\r\n}\r\n// }} \"\"\r\n// {{ 8 1 0 \"def1eb48_6833_4f3f_91532499aa4d3e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MOVE_MPH96ToBack\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetConsecutiveSequencePositions2\" \"Begin\"\r\nprivate function _GetConsecutiveSequencePositions2( device & ML_STAR, sequence i_seq_SourcePositions, variable i_int_TotalPositionsNeeded, variable i_bool_BottomToFront, sequence & o_seq_ConsecutivePositions ) void {\r\n// }} \"\"\r\nprivate variable int_Remainder;\r\nprivate variable int_Column;\r\nprivate variable i;\r\nprivate variable int_RowCount;\r\nprivate variable int_CurrentColumn;\r\nprivate variable str_CurrentPosID;\r\nprivate variable str_LabID;\r\nprivate variable int_Position;\r\nprivate variable int_PositionsAdded;\r\nprivate variable str_CurrentLabID;\r\nprivate variable int_TotalPositions;\r\nprivate sequence seq_FullSequence;\r\nprivate variable int_ColumnCount;\r\nprivate variable int_Row;\r\nprivate variable int_CurrentRow;\r\nprivate variable int_RowCheck;\r\n// {{ 5 \"_GetConsecutiveSequencePositions2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1081 1 0 \"b98af491_a34e_4af7_89d61e30bd3b7ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"d164d53a_4f91_4640_baa86fe4bbae5e64\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, seq_FullSequence, i_bool_BottomToFront);\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"7f824a07_1321_49b4_b4b523a7f3f71124\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_SourcePositions);\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"be6b1508_a4b4_4364_93d60ae854ead5b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, i_seq_SourcePositions, i_bool_BottomToFront);\r\n// }} \"\"\r\n// {{ 1085 1 0 \"456801a2_aaa4_4fd3_ae1f01beb08b3407\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentRow = 0;\r\n// }} \"\"\r\n// {{ 1086 1 0 \"5b141dbc_a42e_41d3_bf995fbb5ea5afd0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = 0;\r\n// }} \"\"\r\n// {{ 1087 1 0 \"912563f0_b258_4daa_89e3dec065c4d4c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = 0;\r\n// }} \"\"\r\n// {{ 1088 1 0 \"ad525435_4531_4820_b3b92bc420884475\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1089 1 0 \"6864512a_e41b_4a0b_b4b9cd10938781dd\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1090 1 0 \"209da240_5152_4ed4_b46fd1b0ad9e3cf5\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_SourcePositions.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"e6892e3a_893f_46e6_97458606a8e469bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentLabID = SeqGetLabwareId(i_seq_SourcePositions);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"4834f5c6_cefd_4b8a_ae22b966f8192a00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentPosID = SeqGetPositionId(i_seq_SourcePositions);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"70c45dda_5def_4def_a40d544b9997d52c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StrIVal(str_CurrentPosID);\r\n// }} \"\"\r\n// {{ 1094 1 0 \"00e4b5eb_692a_4c6e_a6f146c61e820dec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Row = int_Position / 12;\r\n// }} \"\"\r\n// {{ 1095 1 0 \"584cc271_c007_4669_a4ea49b2c749ebf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remainder = int_Position % 12;\r\n// }} \"\"\r\n// {{ 1096 1 0 \"a46b0b8d_39aa_4945_a2a2d0ec996d19ad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Remainder > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1097 1 0 \"dc014a1e_f8f6_4aea_b337329e06086e20\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Row = int_Row + 1;\r\n// }} \"\"\r\n// {{ 1098 1 0 \"a46b0b8d_39aa_4945_a2a2d0ec996d19ad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1099 1 0 \"f4d5b9b8_812f_4921_88cb8de855e5ccde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_CurrentLabID != str_LabID)\r\n{\r\n// }} \"\"\r\n// {{ 1100 1 0 \"6e5c995a_dc31_4a8d_88dfc71f7883bb82\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"e4aab149_b414_4a6d_ac279988b91d3e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1102 1 0 \"f519f095_e625_4c4a_9ea01cbed73e40bb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = 0;\r\n// }} \"\"\r\n// {{ 1103 1 0 \"6e33a8ef_5a55_4d60_8e0a5141017fbe66\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentRow = int_Row;\r\n// }} \"\"\r\n// {{ 1104 1 0 \"7c627dc6_fe79_474c_87109e5c8d82c190\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = 0;\r\n// }} \"\"\r\n// {{ 1105 1 0 \"678d8fd2_2217_457d_ba268e0e3b52c3c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID = str_CurrentLabID;\r\n// }} \"\"\r\n// {{ 1106 1 0 \"f4d5b9b8_812f_4921_88cb8de855e5ccde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1107 1 0 \"c8f4286b_d575_4d49_9c305715056b274a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Column != int_CurrentColumn)\r\n{\r\n// }} \"\"\r\n// {{ 1108 1 0 \"3a7c5204_9d40_467c_9a6697e5b95c5886\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_BottomToFront == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1109 1 0 \"b63abcf2_79a3_4c63_87c8547885651699\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCheck = int_CurrentRow - int_Row;\r\n// }} \"\"\r\n// {{ 1110 1 0 \"3a7c5204_9d40_467c_9a6697e5b95c5886\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1111 1 0 \"dc9ff278_c730_44aa_8a040765338816d6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RowCheck = int_Row - int_CurrentRow;\r\n// }} \"\"\r\n// {{ 1112 1 0 \"3a7c5204_9d40_467c_9a6697e5b95c5886\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1113 1 0 \"32cdb415_e4a5_462c_b7d62dcc17b9e0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RowCheck != 12)\r\n{\r\n// }} \"\"\r\n// {{ 1114 1 0 \"92c0bc41_271c_4362_a405ffaceaaca4df\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"a6dc0894_8d4e_48c4_9bf8399e417ac113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1116 1 0 \"0abf4a02_5115_4008_a3ffbe5b45529a2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = 0;\r\n// }} \"\"\r\n// {{ 1117 1 0 \"8de55f0c_ed85_42b5_a653fda580fa50f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentRow = int_Row;\r\n// }} \"\"\r\n// {{ 1118 1 0 \"bc2053ac_33ce_46a7_abf5ac3a56e6b246\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = 0;\r\n// }} \"\"\r\n// {{ 1119 1 0 \"e852b18b_2c84_4fe7_b6203fc139e80b8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID = str_CurrentLabID;\r\n// }} \"\"\r\n// {{ 1120 1 0 \"32cdb415_e4a5_462c_b7d62dcc17b9e0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1121 1 0 \"61742f2a_94dd_4c14_9942c12800a15de6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RowCheck != 1)\r\n{\r\n// }} \"\"\r\n// {{ 1122 1 0 \"d2835bb1_7d35_4975_aa6efe0d7333708b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"ef4f19ed_6e39_4bba_b65fe7e2ad923fae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1124 1 0 \"38ce2dd3_bf0d_4a1e_8f889551bf974d01\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = 0;\r\n// }} \"\"\r\n// {{ 1125 1 0 \"6747f308_ed90_4cb0_b41e540d80710baf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentRow = int_Row;\r\n// }} \"\"\r\n// {{ 1126 1 0 \"09c7c736_b550_4d0c_8f945f66fcfa34e1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = 0;\r\n// }} \"\"\r\n// {{ 1127 1 0 \"730d9b5d_127d_4aff_96bc85ea0fa1d526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_LabID = str_CurrentLabID;\r\n// }} \"\"\r\n// {{ 1128 1 0 \"61742f2a_94dd_4c14_9942c12800a15de6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1129 1 0 \"d2fcc7d8_eee7_4f9a_8da5787e9ff238ec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = 0;\r\n// }} \"\"\r\n// {{ 1130 1 0 \"48154240_358d_4a0d_927d48adbeb17b64\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bool_BottomToFront == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1131 1 0 \"13666e51_97fb_491c_a2d61f3caf91e4f5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentRow = int_CurrentRow - 1;\r\n// }} \"\"\r\n// {{ 1132 1 0 \"48154240_358d_4a0d_927d48adbeb17b64\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1133 1 0 \"77e6187b_a748_47a7_9475274a9ce7d5ae\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentRow = int_CurrentRow + 1;\r\n// }} \"\"\r\n// {{ 1134 1 0 \"48154240_358d_4a0d_927d48adbeb17b64\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1135 1 0 \"61742f2a_94dd_4c14_9942c12800a15de6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1136 1 0 \"32cdb415_e4a5_462c_b7d62dcc17b9e0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1137 1 0 \"c8f4286b_d575_4d49_9c305715056b274a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1138 1 0 \"00b1a6ae_b7b9_467b_bdb60f78725bd7e4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ColumnCount = int_ColumnCount + 1;\r\n// }} \"\"\r\n// {{ 1139 1 0 \"61be8602_9cbf_4a16_92fac8c1da893bd9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsAdded = int_PositionsAdded + 1;\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"0941aa99_2093_4075_aa17d7b811331f20\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_ConsecutivePositions, str_CurrentLabID, str_CurrentPosID);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Current Row count:  \",int_RowCount,\"  Positions added:  \",int_PositionsAdded);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1142 1 0 \"a6522c99_ab4b_49f0_a4898a7eb631d0a5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsAdded == i_int_TotalPositionsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 1143 1 0 \"e48e0973_8d40_42d6_a2ec7a2cfb0f60f3\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1144 1 0 \"a6522c99_ab4b_49f0_a4898a7eb631d0a5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1145 1 0 \"6864512a_e41b_4a0b_b4b9cd10938781dd\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1146 1 0 \"cffa2c4e_c1f2_46e4_a0b9f4a9572332a7\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_ConsecutivePositions.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"f5967b76_a289_4034_b8cc8493098d329a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1148 1 0 \"f83ef526_f420_4f73_95d221364ba809ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPositions < i_int_TotalPositionsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 1149 1 0 \"b96618d2_5381_4f16_af8589f0114463cd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"ded80413_9083_4d91_a47d7a40a2a2a2da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_ConsecutivePositions);\r\n// }} \"\"\r\n// {{ 1151 1 0 \"f83ef526_f420_4f73_95d221364ba809ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetConsecutiveSequencePositions2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_ChangePickUpMode\" \"Begin\"\r\nfunction TOOL_ChangePickUpMode( device & ML_STAR, sequence i_seq_TipPositionToAdjust, variable i_int_PickUpMode ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable int_PickUpMode;\r\nprivate variable str_Parameter;\r\n// {{ 5 \"TOOL_ChangePickUpMode\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 844 1 0 \"cba45b61_f72c_473b_b636eca802e8b700\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 845 1 0 \"8d071aa5_e70d_4a98_af3a25f5ac8b4f92\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 847 1 0 \"cc17befd_7fea_4e37_8c06087f96822cbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 848 1 0 \"432ab5b0_a2f2_4c23_a7745571230480f9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 849 1 0 \"b13ffdf0_878c_4194_a68365e683fbf1df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 850 1 0 \"5c344687_de8c_4dbc_9dba6c80c2de5253\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 851 1 0 \"70343bd4_5d7d_4878_9a5044e03b4dc072\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 853 1 0 \"cba45b61_f72c_473b_b636eca802e8b700\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 854 1 0 \"ac7fd8be_cbc6_421a_88ddcdb24a5dccc6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Parameter = Translate(\"MlStarIsCoreHeadSpecialTipPickup\");\r\n// }} \"\"\r\n// {{ 855 1 0 \"215ac6c5_05f0_4670_9e845c96168856da\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PickUpMode = 0;\r\n// }} \"\"\r\n// {{ 856 1 0 \"71525942_16bc_459c_a7517c882a10b362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_PickUpMode == 1)\r\n{\r\n// }} \"\"\r\n// {{ 857 1 0 \"3e79ebff_dbdc_417b_9ca7821e8b3f110c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PickUpMode = 1;\r\n// }} \"\"\r\n// {{ 858 1 0 \"71525942_16bc_459c_a7517c882a10b362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 859 1 0 \"f3e132a9_26ad_4473_ad6679452dd91356\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_PickUpMode == 2)\r\n{\r\n// }} \"\"\r\n// {{ 860 1 0 \"456f2fad_da65_47a4_9ed49e8b399a2674\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PickUpMode = 2;\r\n// }} \"\"\r\n// {{ 861 1 0 \"f3e132a9_26ad_4473_ad6679452dd91356\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 862 1 0 \"8f861c57_4828_41c2_af2d10216d1ecf01\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetProperties(ML_STAR, i_seq_TipPositionToAdjust, str_Parameter, int_PickUpMode);\r\n// }} \"\"\r\n// {{ 863 1 0 \"e91db0dc_64e2_46fc_9bf66a7187005c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 865 1 0 \"e91db0dc_64e2_46fc_9bf66a7187005c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_ChangePickUpMode\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_PickUpNextMPH96Tips\" \"Begin\"\r\nfunction TOOL_PickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable int_TotalPositions;\r\nprivate variable ret_str_ReturnValue;\r\n// {{ 5 \"TOOL_PickUpNextMPH96Tips\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 942 1 0 \"c0008cc2_e827_41bb_a2adc607fffaccc8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 943 1 0 \"05677134_0f94_4f9b_abab358e7ed60fed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 945 1 0 \"aebbe0b8_29b1_453b_bcbef0779c9f7eb1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 946 1 0 \"7bd0a87d_515a_4eed_955671c9d4d63998\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 947 1 0 \"8d82dc1c_1210_498d_878c6192ba79c6ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 948 1 0 \"f4f91156_96b7_4d15_971579dc8c389152\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 949 1 0 \"5fde70e0_dcf1_4d65_984f7513cbe74259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 951 1 0 \"c0008cc2_e827_41bb_a2adc607fffaccc8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 952 1 0 \"bbc8984b_c26c_4b79_81d6211ed302e52a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_str_ReturnValue = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 953 1 0 \"0a5a8236_7e25_426b_97a20f93852a717a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitializeLibrary();\r\n// }} \"\"\r\n// {{ 954 1 0 \"7c540229_f49b_4877_9bd80ca258d3b5f1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 955 1 0 \"fffb8a12_14d3_4534_8813d7f838229f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToString(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 956 1 0 \"71957da5_1e30_4a26_878bdcaa1e633b16\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"====================================================================\\nPick up full rack of tips\\n====================================================================\"));\r\n// }} \"\"\r\n// {{ 957 1 0 \"feb098ff_0fb6_422a_a43f8296f6fd5108\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 958 1 0 \"1001ce62_7e56_4083_b074a9758f710e07\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 959 1 0 \"fc204175_697d_468d_bd0eee833da04140\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{ 960 1 0 \"1e5ffd09_fbda_4a07_862dd7dccdec2939\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPositions != 96)\r\n{\r\n// }} \"\"\r\n// {{{ 961 1 0 \"0cff8f4b_141b_423c_85454043765001b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 962 1 0 \"1e5ffd09_fbda_4a07_862dd7dccdec2939\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 963 1 0 \"65aa888a_bad6_4b5d_a23e8a33a18eda8e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 964 1 0 \"1e5ffd09_fbda_4a07_862dd7dccdec2939\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 965 1 0 \"feb098ff_0fb6_422a_a43f8296f6fd5108\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 966 1 0 \"80ab2029_47ea_41a9_83ca4f0a00d3621b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveSequencePositions(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{ 967 1 0 \"f487218d_05ba_45bc_83752eae9d492cc8\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"f487218d_05ba_45bc_83752eae9d492cc8\"); // Head96TipPickUp\r\n\tret_str_ReturnValue = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 968 1 0 \"4a3a52e1_5c04_47fb_beb10fecbf58513c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 969 1 0 \"23de525b_396a_4ca4_91a8fa92d6693b05\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 971 1 0 \"23de525b_396a_4ca4_91a8fa92d6693b05\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 972 1 0 \"e7d38aec_2eda_4ed0_847fb7a0b672bbe9\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_ReturnValue);\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_PickUpNextMPH96Tips\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_GetTipPresence\" \"Begin\"\r\nfunction TOOL_GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable int_Count;\r\nprivate variable strFW_return;\r\nprivate variable strFW_digits;\r\n// {{ 5 \"TOOL_GetTipPresence\" \"InitLocals\"\r\no_bln_TipLoaded = 0;\r\n// }} \"\"\r\n// {{ 912 1 0 \"ec320042_3cb7_4264_a87af936a0535b18\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 913 1 0 \"a61badc0_255e_41b0_b24ebcc0a247539b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 915 1 0 \"4061f72a_a542_4440_9628be8e5af18bc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 916 1 0 \"de317b11_89fd_4d43_99c8c5037b97e001\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 917 1 0 \"4ffe78ac_3901_4a1e_aabae21f890d2f06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 918 1 0 \"ec7fe23c_c969_4760_a561c4717ca9e9ba\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 919 1 0 \"4fad253d_31c0_4138_b000065ab8220c36\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 921 1 0 \"ec320042_3cb7_4264_a87af936a0535b18\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 922 1 0 \"532f8ebd_aa54_4022_ba999c1a1b7c1a3b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 923 1 0 \"44ad0ded_06a1_4c03_827c87ba17e0a7a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{ 924 1 0 \"b5e6a594_657c_4ccb_8cdcb340c6199715\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bln_TipLoaded = 0;\r\n// }} \"\"\r\n// {{ 925 1 0 \"74d48d21_73d2_4190_bf104a5e5e0b6287\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"74d48d21_73d2_4190_bf104a5e5e0b6287\"); // FirmwareCommand\r\n\tstrFW_return = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 926 1 0 \"632de6af_5d8d_43b7_ba2cb06013e6cb26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrRight(strFW_return, 1);\r\n// }} \"\"\r\n// {{{ 927 1 0 \"03c87d72_54b6_43db_bccc38b829b9e427\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrIVal(strFW_digits);\r\n// }} \"\"\r\n// {{ 928 1 0 \"0bb0e339_9fda_496d_925316ce703b05e1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bln_TipLoaded = strFW_digits;\r\n// }} \"\"\r\n// {{ 929 1 0 \"44ad0ded_06a1_4c03_827c87ba17e0a7a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 930 1 0 \"9e66e511_67f5_40bc_a3e8a1ef88843c9d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bln_TipLoaded = 0;\r\n// }} \"\"\r\n// {{ 931 1 0 \"94cafe14_6bad_4067_93af11bcb430dbfe\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"94cafe14_6bad_4067_93af11bcb430dbfe\"); // FirmwareCommand\r\n\tstrFW_return = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{{ 932 1 0 \"2927012c_faff_4508_b39dbe0ba1e75280\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrRight(strFW_return, 1);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"378b40ea_8e6f_47d8_8d5ad5f67e83f44b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFW_digits = StrIVal(strFW_digits);\r\n// }} \"\"\r\n// {{ 934 1 0 \"83efe3ce_a188_4be7_8f210780df215dd7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_bln_TipLoaded = strFW_digits;\r\n// }} \"\"\r\n// {{ 935 1 0 \"44ad0ded_06a1_4c03_827c87ba17e0a7a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nif(o_bln_TipLoaded == 1)o_bln_TipLoaded = hslTrue;\r\nif(o_bln_TipLoaded == 0)o_bln_TipLoaded = hslFalse;\r\n// {{{ 937 1 0 \"3ea02f98_99a9_4f46_bf6a4e662a20ff56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"     MPH96 Tip Loaded:  \"), o_bln_TipLoaded);\r\n// }} \"\"\r\n// {{ 938 1 0 \"8164181e_7286_448a_9196aa8af6e1871b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 940 1 0 \"8164181e_7286_448a_9196aa8af6e1871b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_GetTipPresence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_LocalPickUpNextMPH96Tips\" \"Begin\"\r\nprivate function _LocalPickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable {\r\n// }} \"\"\r\nprivate variable ret_str_ReturnValue;\r\nprivate variable int_TotalPositions;\r\n// {{ 5 \"_LocalPickUpNextMPH96Tips\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1349 1 0 \"7376e2ae_9a41_43f8_95d37cd018de968d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_str_ReturnValue = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1350 1 0 \"19fa9c2a_c799_4c54_9f5ebc09fa6b70ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitializeLibrary();\r\n// }} \"\"\r\n// {{ 1351 1 0 \"bea68433_c44c_485b_a01e5084771a8fff\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1352 1 0 \"94a9d812_5fbb_45a7_96549e7290d5b193\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToString(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 1353 1 0 \"798be98c_d929_4a90_aaabad0febaad003\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"====================================================================\\nPick up full rack of tips\\n====================================================================\"));\r\n// }} \"\"\r\n// {{ 1354 1 0 \"2be40e96_5c2a_4ae9_8eb2100865f1ffe0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"d6f044e1_6dda_41ee_9d04c694ad13d0c0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"34cdeaeb_cbea_4d4d_b7c0098a9fbd0018\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{ 1357 1 0 \"d6800b87_1a3c_4a0a_8a2385a98b380a32\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPositions != 96)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1358 1 0 \"12c045d7_9f8e_4d17_b14cb59990998d65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1359 1 0 \"20e4c105_6fa2_4268_b8d3ce7d9c43f53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 1360 1 0 \"d6800b87_1a3c_4a0a_8a2385a98b380a32\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1361 1 0 \"452e9b55_ef4b_45f0_87bd8102d6c60a59\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1362 1 0 \"d6800b87_1a3c_4a0a_8a2385a98b380a32\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1363 1 0 \"2be40e96_5c2a_4ae9_8eb2100865f1ffe0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"42dbc789_ef76_4af5_83b99da8e55a3817\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveSequencePositions(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP);\r\n// }} \"\"\r\n// {{ 1365 1 0 \"482416d3_b9dd_4acd_8044029eb7136076\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"482416d3_b9dd_4acd_8044029eb7136076\"); // Head96TipPickUp\r\n\tret_str_ReturnValue = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"9d7ca387_8c6b_451a_83899b980d35e230\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_str_ReturnValue);\r\n// }} \"\"\r\n// {{{ 5 \"_LocalPickUpNextMPH96Tips\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_CleanUpTips_Rows2\" \"Begin\"\r\nfunction TIP_OFFSET_CleanUpTips_Rows2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable i;\r\nprivate variable int_TotalEmpty;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_LabID;\r\nprivate variable str_LabIDReturn;\r\nprivate variable int_TotalLabwareSet;\r\nprivate variable bln_ValueFound;\r\nprivate variable int_Count;\r\nprivate variable str_TipOffsetLabID;\r\nprivate variable str_PosID;\r\nprivate sequence seq_EjectSequence;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_EmptyPosition;\r\n// {{ 5 \"TIP_OFFSET_CleanUpTips_Rows2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 264 1 0 \"48d9c42e_e9e7_40f2_a76b036117caecad\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 265 1 0 \"9ebfe0bb_017e_4a3e_9d76528508ae70fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 267 1 0 \"19d842e6_9879_4bb4_b9a0dee080e420c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 268 1 0 \"ce3032ad_61a5_4e3e_b5c1c940d028d5ae\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 269 1 0 \"03e2abdc_5b82_4523_bed58c78068083a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 270 1 0 \"46d2ded4_ccc2_4357_a7623647e69c3631\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 271 1 0 \"7af005e9_a0a1_49fa_aa8c5229f6284d7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 273 1 0 \"48d9c42e_e9e7_40f2_a76b036117caecad\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 274 1 0 \"a1a6701c_2504_479c_960cc96eaaf1e762\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{ 275 1 0 \"5ffb0d9c_c32a_4758_bc5aa33170877bcb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"ae7222a1_3b2e_424a_a733e4ce047d6352\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 277 1 0 \"ba42c936_4a66_4178_b602b66d0f6f37f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp);\r\n// }} \"\"\r\n// {{{ 278 1 0 \"0bc41678_b89b_48e2_b714a0000dd3f0e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 279 1 0 \"0ee68fe1_31f9_45f7_91290452b7c3d3a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 280 1 0 \"24f96121_1ca6_4a9c_9c7a1c9b42b166b1\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize();\r\n// }} \"\"\r\n// {{ 281 1 0 \"e5e80bca_8a7a_455b_9404162ea41a3f11\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalLabwareSet > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 282 1 0 \"085838f7_e033_433f_a0c7088bb0e05acc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{ 283 1 0 \"b9c1a60a_b595_45b8_843e862f072a75e9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1;\r\n// }} \"\"\r\n// {{ 284 1 0 \"d0170f59_d9b1_47cb_b5fba8458f05d8f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 285 1 0 \"4681a4a7_9350_4f20_88f5531bd9314440\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 286 1 0 \"7e1f8e48_e5dd_40bb_9625b6b8b8e1bf5b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 287 1 0 \"b495a88c_9138_43db_8498404eeaf3a93c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 288 1 0 \"7f79c741_a217_41fa_af51c059e0b08db7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 289 1 0 \"c81575bd_da48_4f12_884c017fd2ee43dd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 290 1 0 \"d0170f59_d9b1_47cb_b5fba8458f05d8f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 291 1 0 \"43a9fb17_d96a_4419_a8255aaeedde55fc\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 292 1 0 \"3501e22f_3271_4ce3_9d8e0187ffbbee56\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 293 1 0 \"1a804c65_b4d6_4abb_837647c692d2e30d\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 294 1 0 \"d0170f59_d9b1_47cb_b5fba8458f05d8f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"e5e80bca_8a7a_455b_9404162ea41a3f11\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 296 1 0 \"9f3aedc9_b7dc_4bee_b989ca206d54821c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 297 1 0 \"62823ccc_1f10_4c14_918b35dd86fdb8e5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 298 1 0 \"ea7aa92c_1787_4017_bd377c8543cd4f04\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 299 1 0 \"a9750982_b9ca_44e3_bb50d576515ca997\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 300 1 0 \"a2fa7f03_5785_4743_bc5a131f7b1ee95e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 301 1 0 \"39aaf7ff_a89b_4a3b_a285047a8d81f407\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 302 1 0 \"e5e80bca_8a7a_455b_9404162ea41a3f11\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 303 1 0 \"b2a2f993_7763_4955_9d14158098e960f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Labware               Count\"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"954b2bb9_b729_4fc5_858a5072a1892f9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDReturn = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"7a7dde42_bed4_40fa_92066eedc95a2844\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Index:  \"), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"edc0c453_5596_4543_a3aa21e6175c65b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Return Labware:  \"), str_LabIDReturn);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"39b7fe4b_afec_4546_858a15c68b61da57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Tip Count  \"), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 308 1 0 \"5ffb0d9c_c32a_4758_bc5aa33170877bcb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 309 1 0 \"39c426ca_0bcf_4d74_93e504ef3576efca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 310 1 0 \"971fccc9_6a7a_4842_8f63006483dcc07b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitializeLibrary();\r\n// }} \"\"\r\n// {{ 311 1 0 \"ccd2e619_b1e4_4a5a_9c7bfaf627a7deab\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 312 1 0 \"99f72003_5bab_487d_9ac69fae8d560557\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToString(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 313 1 0 \"b2db97ad_62f2_47c9_884aeb7490c68298\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 314 1 0 \"863ae491_f87c_41bc_86a23275bd9a2071\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"45cca6b2_4dd7_4f53_8c4891954dc6f617\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetEmptyPositions(ML_STAR, io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 316 1 0 \"6d014637_4b9b_429d_8529847c65a614ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n// {{{ 317 1 0 \"c78b03ec_f4e0_42ae_a1e0035f2d779322\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 318 1 0 \"5cdc3d29_c8b5_4d7a_9f497175c5493cc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 319 1 0 \"ac673e0d_4817_4df5_900e5fb9ebb58b3a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 320 1 0 \"880d95f8_398d_4efe_bcfedfff7344d3dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 321 1 0 \"ac673e0d_4817_4df5_900e5fb9ebb58b3a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 322 1 0 \"be624ea6_d83f_4f05_b8310456ed2a4b0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetConsecutiveSequencePositions2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 323 1 0 \"42cd6888_5eae_40a7_a6fe7f5ed3a0f9fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{ 324 1 0 \"d8e87189_0060_4670_a5034c0051adf669\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 325 1 0 \"555e3a94_dbd4_4c84_bb0af842dd2cd453\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 326 1 0 \"5c130de6_99ca_48fb_aa463696e68dd12d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 327 1 0 \"5290f101_b758_470a_a250a7f71a0e377f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 328 1 0 \"5bfa993e_3c2c_4c42_9b0a88f90e96206a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_SourceTips, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 329 1 0 \"d8e87189_0060_4670_a5034c0051adf669\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 330 1 0 \"637900d5_4639_4c49_94be26bb5f777156\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 331 1 0 \"5de41b5d_71d2_4ff5_9eeba3ecfd5a279d\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_SourceTips.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"9b1282ff_159d_44a0_906c927ff867a824\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"50248d20_fede_4f7b_ad1c6266839d4ddc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ReturnTipsToPickUp2(ML_STAR, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"6646ac8a_62ac_40b6_931f824cf1eb5dd6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 335 1 0 \"c3ccbcb7_613d_41c0_afa4ad9043895271\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarTipRack\"), -1);\r\n// }} \"\"\r\n// {{{ 336 1 0 \"7f2480a5_bc94_4a24_9eb08a84239f15ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarCore96TipRack\"), -1);\r\n// }} \"\"\r\n// {{{ 337 1 0 \"2926a22f_4d00_4a0b_bf88154e1761f858\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 338 1 0 \"91252972_749f_4f1b_86ccb9786ca05012\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, io_seq_SourceTips, 0);\r\n// }} \"\"\r\n// {{{ 339 1 0 \"485d007f_8ff6_4760_9520b358d102e604\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 340 1 0 \"b0b2f82a_362c_4672_84623563f1bef09b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"9c1d93aa_b3d1_4425_bbdf3e7f8f83b452\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 342 1 0 \"39c426ca_0bcf_4d74_93e504ef3576efca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 343 1 0 \"23179b82_cf61_4959_a1660abaede0d323\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"====================================================================\\nNo tips to clean up\\n====================================================================\"));\r\n// }} \"\"\r\n// {{ 344 1 0 \"39c426ca_0bcf_4d74_93e504ef3576efca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 345 1 0 \"d239036b_8836_4f67_a6ab4b6f1e7b62b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 346 1 0 \"d88b99d1_3215_41d7_8cf580bc1bb2ac2e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 348 1 0 \"d88b99d1_3215_41d7_8cf580bc1bb2ac2e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_CleanUpTips_Rows2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_CleanUpTips_Column2\" \"Begin\"\r\nfunction TIP_OFFSET_CleanUpTips_Column2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate variable int_CutNum;\r\nprivate variable int_Length;\r\nprivate variable i;\r\nprivate variable int_TotalEmpty;\r\nprivate variable strFunctionName;\r\nprivate variable strFunctionName_Cut;\r\nprivate variable str_LabID;\r\nprivate variable int_TotalLabwareSet;\r\nprivate variable bln_ValueFound;\r\nprivate variable int_Count;\r\nprivate variable str_TipOffsetLabID;\r\nprivate variable str_PosID;\r\nprivate sequence seq_EjectSequence;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_EmptyPosition;\r\n// {{ 5 \"TIP_OFFSET_CleanUpTips_Column2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 94 1 0 \"63dc34d7_ca55_4d41_a7422d7f3ad27916\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 95 1 0 \"17a3fe18_be26_4c48_944f318bcfa613de\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrFunctionName = Translate(\"\");\r\n// }} \"\"\r\nstrFunctionName = GetFunctionName();\r\n// {{{ 97 1 0 \"eebbdf4b_216b_4c06_a6e19c486e700da9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Count = StrReverseFind(strFunctionName, Translate(\":\"));\r\n// }} \"\"\r\n// {{ 98 1 0 \"bd19fadf_244f_4443_ba39e8ec3f2292b1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Count = int_Count + 1;\r\n// }} \"\"\r\n// {{{ 99 1 0 \"812874c4_7b85_455b_93f33caa6e5f3deb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(strFunctionName);\r\n// }} \"\"\r\n// {{ 100 1 0 \"badfecea_f6eb_4518_b61ddef156206c79\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CutNum = int_Length - int_Count;\r\n// }} \"\"\r\n// {{{ 101 1 0 \"4024dd02_b534_45ed_bc3e9ed8fdf2da52\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum);\r\n// }} \"\"\r\nTrace(\"===========================================================================\");\r\nTrace(strFunctionName_Cut,\" - START\");\r\nTrace(\"\");\r\n// {{ 103 1 0 \"63dc34d7_ca55_4d41_a7422d7f3ad27916\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 104 1 0 \"8998d4ac_e8ab_4ffc_b9b3248efed7feda\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 105 1 0 \"bfdc4703_7160_431a_b16018362a0a0a5b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 106 1 0 \"d50ecee0_428e_4908_9d74ba7ae0ac89c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"4f6fe351_53a3_4d9f_a3658815eed4b071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"fbfea5a4_aab5_4029_8b09638d6e612b76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 109 1 0 \"99fa200b_f3eb_4de5_86ad7de231dfa107\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize();\r\n// }} \"\"\r\n// {{ 110 1 0 \"82c80d37_d891_4be1_82084e3ba6a3c998\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalLabwareSet > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 111 1 0 \"b6297169_1b70_4e7a_9f58688351431955\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{ 112 1 0 \"abce3337_572b_42ec_85a9001ffd875fe9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1;\r\n// }} \"\"\r\n// {{ 113 1 0 \"2b22cb00_9ef5_48c5_89bc1ce45a1a2222\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 114 1 0 \"58bc1604_da51_4bef_8a89574b21ce7719\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 115 1 0 \"4cc76c50_2121_44b3_86adac42c21fe8cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 116 1 0 \"9a9f9b6f_5e0d_4634_87424d8ba6c45a41\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 117 1 0 \"f2e39304_9b92_4fcf_985274c6c7a0b214\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 118 1 0 \"19a169eb_a32d_44c6_9dfb4edd0f7ea707\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 119 1 0 \"2b22cb00_9ef5_48c5_89bc1ce45a1a2222\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 120 1 0 \"6fd2fcac_619f_4962_b1c0e76921ab5671\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 121 1 0 \"b77f9851_cc63_48fa_8bf0ef60d594deaa\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 122 1 0 \"e694bff3_32db_40bc_bd38d45cb548cc69\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nTIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1);\r\n// }} \"\"\r\n// {{ 123 1 0 \"2b22cb00_9ef5_48c5_89bc1ce45a1a2222\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 124 1 0 \"82c80d37_d891_4be1_82084e3ba6a3c998\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 125 1 0 \"82dd9292_7de0_4876_b46499f0f2793f46\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1;\r\n// }} \"\"\r\n// {{ 126 1 0 \"bd86f1b4_fab8_470c_b6f5968096d1931c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0;\r\n// }} \"\"\r\n// {{ 127 1 0 \"ea28475f_98db_4663_8ac08e26c448792a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{ 128 1 0 \"224fcefe_1276_4812_a489c3200a07396f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 129 1 0 \"9be9ee7f_4f67_4e44_b6a26158541aa2e7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{ 130 1 0 \"d53b2f9d_f15d_4f95_a7ab99ee039fc37f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp);\r\n// }} \"\"\r\n// {{ 131 1 0 \"82c80d37_d891_4be1_82084e3ba6a3c998\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 132 1 0 \"f51c3cdb_a3bb_4771_a5f008e85fc6d129\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Labware               Count\"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 133 1 0 \"25d685ff_5cfd_461d_b40e9a0b6dd91a20\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Index:  \"), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX);\r\n// }} \"\"\r\n// {{{ 134 1 0 \"fc9437d8_8141_45d1_96eb9d51badb3b10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Labware:  \"), str_TipOffsetLabID);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"c6601d50_e2c7_4c04_b7670d1bc72c4130\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Current Tip Count  \"), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{ 136 1 0 \"8998d4ac_e8ab_4ffc_b9b3248efed7feda\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 137 1 0 \"cf0ce7c8_e3ec_40a4_a498e404a3b58421\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 138 1 0 \"4151d6ee_1b08_4b6e_ab6ee7fe8d3a6bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitializeLibrary();\r\n// }} \"\"\r\n// {{ 139 1 0 \"fed14df0_d8ce_4a1b_b2cc86844d0efb97\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 140 1 0 \"0588cce9_b7d0_43a8_bd05af5eaa03d21f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ConvertToString(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 141 1 0 \"08e9768e_9b25_4339_a28536e77b876a16\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 142 1 0 \"9f3d61d9_dd0f_4191_892610723087f43f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 143 1 0 \"2133fa36_7972_4128_927786b768a2173f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetEmptyPositions(ML_STAR, io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 144 1 0 \"be1952a8_0c3b_4ae4_ac96a389278dfef5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 145 1 0 \"036c6fea_e9f7_4484_909d4fff279d494b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetConsecutiveSequencePositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 146 1 0 \"2d21c5b1_e3c1_4be8_ba8aa70784c14ed7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition_Partial(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"142d3181_bbc2_43c3_bd5f64cc007dd5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalEmpty = SeqGetTotal(seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 148 1 0 \"ca0405b7_0990_453b_9de622bfdabaee4f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalEmpty > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 149 1 0 \"6ae98fea_1bb7_445b_acc151c9e4a7bedf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition);\r\n// }} \"\"\r\n// {{ 150 1 0 \"ca0405b7_0990_453b_9de622bfdabaee4f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 151 1 0 \"cf33f0c6_8eff_4188_a0b84a094a1a51b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1);\r\n// }} \"\"\r\n// {{ 152 1 0 \"3c80eacd_98ed_49ad_8a3256aace552c1c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 153 1 0 \"ffea83dd_0201_4ed1_938f30e7e7838cc2\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"4034dc5f_4b60_49d4_84473e095918e46c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 155 1 0 \"dfb83c3a_8334_4c93_a087e8d0fc915010\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP);\r\n// }} \"\"\r\n// {{{ 156 1 0 \"ba20b8a6_5222_477c_bf1866d56c025781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(io_seq_SourceTips, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 157 1 0 \"3c80eacd_98ed_49ad_8a3256aace552c1c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"4483b260_2fef_4a66_853c664506e66c64\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nTIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 159 1 0 \"087eb752_639d_47ee_a3ed5ca62fd72e83\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_SourceTips.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 160 1 0 \"99c1480c_4827_4618_b64065e3df2ace24\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"59d3264a_f7d5_4c0f_b18db13132e922b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ReturnTipsToPickUp(ML_STAR, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"ea20e001_eafa_40c2_a5368a9675f06ac1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipOffsetLabID = SeqGetLabwareId(i_seq_TipOffset);\r\n// }} \"\"\r\n// {{{ 163 1 0 \"2ae074da_006f_4a6e_8f9ba528a1ebc224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarTipRack\"), -1);\r\n// }} \"\"\r\n// {{{ 164 1 0 \"b3a25d6b_e0c0_4dc7_94089a41cb2faf42\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate(\"MlStarCore96TipRack\"), -1);\r\n// }} \"\"\r\n// {{{ 165 1 0 \"ccd357cb_d0de_4546_a5d1a33ee1e15705\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveTruncatedSequencePositions(io_seq_SourceTips);\r\n// }} \"\"\r\n// {{{ 166 1 0 \"ba33fa71_c2ab_4a34_a1751d39551e6d7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__SortSequence(ML_STAR, io_seq_SourceTips, 0);\r\n// }} \"\"\r\n// {{{ 167 1 0 \"4258bd1a_a208_4fba_9c262743dcfc5ee1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 168 1 0 \"18babf92_5cf9_418b_bab710570e98557d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED);\r\n// }} \"\"\r\n// {{{ 169 1 0 \"24ffd9c8_6f63_49d5_863be1a0a7a93b35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 170 1 0 \"cf0ce7c8_e3ec_40a4_a498e404a3b58421\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 171 1 0 \"18985f11_52e3_4616_89370f7bf215ba70\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"====================================================================\\nNo tips to clean up\\n====================================================================\"));\r\n// }} \"\"\r\n// {{ 172 1 0 \"cf0ce7c8_e3ec_40a4_a498e404a3b58421\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 173 1 0 \"996cc2b5_3be5_4085_9d794bfe0fa8e69b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 174 1 0 \"1b3872f0_ba57_42cd_86535adb75e20f87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\nTrace(\"\");\r\nTrace(strFunctionName_Cut,\" - FINISH\");\r\nTrace(\"===========================================================================\");\r\n// {{ 176 1 0 \"1b3872f0_ba57_42cd_86535adb75e20f87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TIP_OFFSET_CleanUpTips_Column2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_TipCheckMPH96\" \"Begin\"\r\nprivate function _TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate dialog customDialogCABC9EF299A843979B1ED6F5189DE8FB;\r\nprivate variable int_CurrentPosition;\r\nprivate variable flt_TipCapacity;\r\nprivate variable str_TipMessage;\r\nprivate variable int_EndPosition;\r\nprivate variable int_PositionsRemaining;\r\nprivate variable int_TipsNeeded;\r\nprivate variable str_TipName;\r\nprivate sequence seq_PickUpPosition;\r\n// {{ 5 \"_TipCheckMPH96\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1628 1 0 \"b2340643_cd08_4492_bad43f2bc6118b01\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========  Check tip sequence\"));\r\n// }} \"\"\r\n// {{{ 1629 1 0 \"78cd6a37_5af4_40eb_80e8b84b2018a4d5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCapacityCheck(Instrument, io_seq_Tips, flt_TipCapacity);\r\n// }} \"\"\r\n// {{ 1630 1 0 \"925c2856_f4e0_44bb_af0370b07607f3d6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_TipCapacity == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1631 1 0 \"20c24675_7204_4137_b4eb1ecd1bb894bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 1632 1 0 \"925c2856_f4e0_44bb_af0370b07607f3d6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"eb37cac1_d725_4be3_a5a9649e50b16e8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"9c76a9ce_791d_4157_8580e6c9dfc76bc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1635 1 0 \"79ae2900_b55f_4bc6_82dc289283b35630\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipsNeeded = 96;\r\n// }} \"\"\r\n// {{ 1636 1 0 \"2bf567ae_2378_467d_974c050b810a352f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"5cf8be50_6bd0_4cfc_bd6417df0642ee92\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextTipPickUpPosition(io_seq_Tips, seq_PickUpPosition);\r\n// }} \"\"\r\n// {{ 1638 1 0 \"daa8d86a_35cd_4413_bc2c43824797800d\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = seq_PickUpPosition.GetCurrentPosition();\r\n// }} \"\"\r\n// {{ 1639 1 0 \"9660fb98_ecfd_495e_ac6c67d2bca04948\" \"{B31F353D-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_EndPosition = seq_PickUpPosition.GetCount();\r\n// }} \"\"\r\n// {{ 1640 1 0 \"444156cf_9a4b_48a7_b3da5b894e046a33\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_CurrentPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1641 1 0 \"7463cfa0_7b41_46f4_932191aba96d2e50\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = int_EndPosition + 1;\r\n// }} \"\"\r\n// {{ 1642 1 0 \"444156cf_9a4b_48a7_b3da5b894e046a33\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1643 1 0 \"f8647ab9_2e25_4101_9ce3a95db3107879\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_EndPosition - int_CurrentPosition;\r\n// }} \"\"\r\n// {{ 1644 1 0 \"ef08c527_5eb8_49f6_94503af0fbd59bf9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_PositionsRemaining + 1;\r\n// }} \"\"\r\n// {{ 1645 1 0 \"526a0209_d134_429b_bd297f1518916405\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsRemaining > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1646 1 0 \"e0e2d928_a1b8_4a12_97d40e39400b2490\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsRemaining = SeqGetPositionCountForCurrLabware(seq_PickUpPosition);\r\n// }} \"\"\r\n// {{ 1647 1 0 \"526a0209_d134_429b_bd297f1518916405\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Positions Remaining:  \",int_PositionsRemaining,\"  Tips Needed:  \",int_TipsNeeded);\r\n// {{ 1649 1 0 \"15b17a9f_68c7_4ec8_b4c4216a7f1b5c9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsRemaining >= int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 1650 1 0 \"084b5a96_8fd9_49e9_b32815c603507221\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Sufficient tips found\"));\r\n// }} \"\"\r\n// {{ 1651 1 0 \"8977e10f_89f3_4296_b59ca87ddfd02bc5\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1652 1 0 \"15b17a9f_68c7_4ec8_b4c4216a7f1b5c9e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1653 1 0 \"2eac090a_d0cf_4c90_bff695fce43c55fa\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{ 1654 1 0 \"055b2c42_1e9b_45b0_ac7c2293b289ed19\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialogCABC9EF299A843979B1ED6F5189DE8FB.InitCustomDialog( \"055b2c42_1e9b_45b0_ac7c2293b289ed19\" );\r\ncustomDialogCABC9EF299A843979B1ED6F5189DE8FB.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialogCABC9EF299A843979B1ED6F5189DE8FB.ShowCustomDialog();\r\n// }} \"\"\r\n// {{ 1655 1 0 \"42b5ab54_ea37_4f82_956bc51506e469ad\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1656 1 0 \"0c3fd0d9_f008_4ab0_965df7f45246a02f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::ResetInputSequence(Instrument, io_seq_Tips);\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"9a3bbd59_f3ea_425b_b186a7e3e916dc7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Edit(Instrument, io_seq_Tips, i_str_TipCounter, 99999);\r\n// }} \"\"\r\n// {{ 1658 1 0 \"2bf567ae_2378_467d_974c050b810a352f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_TipCheckMPH96\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ABSTRACT\" \"Begin\"\r\nprivate function ABSTRACT(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"ABSTRACT\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1 1 0 \"031cb140_1b32_48b7_bd54a1b83a10b0e6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ABSTRACT\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2021-09-28 13:31$$checksum=164e45c8$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR Pipetting Tools.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 12/9/2021 11:07:24 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace SPT {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction PIP_BuildChannelPatternFromSequence( device & ML_STAR, sequence i_seq_ControllingSequence, variable & o_str_ChPattern ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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); }\r\nfunction PIP_PhaseAspirationParseReturnValue( variable i_strReturnFromPhaseAspiration, variable & o_arrAspirationReturns[], variable & o_arrDispenseReturns[] ) void { }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction 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 { }\r\nfunction PIP_ProgressSequenceFromChannelPattern( variable i_str_ChPattern, variable i_bln_ProgressByUsedChannels, sequence & io_seq_SequenceToProgress ) void { }\r\nfunction TOOL_BuildArrayForChannels( device & ML_STAR, variable i_flt_ValueToSet, variable & o_arr_Values[] ) void { }\r\nfunction TOOL_CalculateHeightForVolume( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_VolumeInLabware, variable & o_flt_HeightOfVolume ) void { }\r\nfunction TOOL_CalculateVolumeForHeight( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_HeightOfVolume, variable & o_flt_Volume ) void { }\r\nfunction TOOL_OffsetArrayForChannels( device & ML_STAR, variable i_flt_ValueToOffset, variable & io_arr_Values[] ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2021-12-09 11:07$$checksum=6e910ad1$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR Pipetting Tools.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\Firmware Pipetting Commands.hs_\"\r\n#include \"HSL_MethodHelper.hsl\"\r\n#include \"HSLDeckVisualize.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSLMthLib.hsl\"\r\n#include \"SMT\\\\MLSTARLiquidClassLib.hsl\"\r\n#include \"HSLStatistics.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\Liquid Level Check.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\FW_HelperLibrary.hs_\"\r\n#include \"HSLLabwareStateLib.hsl\"\r\n#include \"HSLExtensions\\\\String.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\STAR Channel Movement Tools.hs_\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\VANTAGE Channel Movement Tools.hs_\"\r\n#include \"HSLVectorDbTracking.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace SPT {\r\n// }} \"\"\r\nvariable T_PIP_TOOLS_LIQUID_CLASS_INIT;\r\nvariable T_PIP_TOOLS_LIQUID_CLASS;\r\nvariable T_PIP_TOOLS_ASP_CLOT_RETRACT;\r\nvariable T_PIP_TOOLS_ASP_AIR_TRANSPORT;\r\nvariable T_PIP_TOOLS_DISP_SETTLING;\r\nvariable T_PIP_TOOLS_DISP_AIR_TRANSPORT;\r\nvariable T_PIP_TOOLS_DISP_STOP_FLOW;\r\nvariable T_PIP_TOOLS_ASP_BLOWOUT;\r\nvariable T_PIP_TOOLS_DISP_BLOWOUT;\r\nvariable T_PIP_TOOLS_DISP_SWAP;\r\nvariable T_PIP_TOOLS_ASP_MIX_FLOW_RATE;\r\nvariable T_PIP_TOOLS_ASP_FLOW_RATE;\r\nvariable T_PIP_TOOLS_DISP_MIX_FLOW_RATE;\r\nvariable T_PIP_TOOLS_ASP_OVERASPIRATE;\r\nvariable T_PIP_TOOLS_DISP_STOP_BACK;\r\nvariable T_PIP_TOOLS_ASP_SWAP;\r\nvariable T_PIP_TOOLS_DISP_FLOW_RATE;\r\nvariable T_PIP_TOOLS_ASP_SETTLING;\r\nvariable T_PIP_TOOLS_MAX_VOLUME;\r\nvariable T_PIP_TOOLS_ARR_CORRECTION_X[];\r\nvariable T_PIP_TOOLS_ARR_CORRECTION_Y[];\r\nvariable T_PIP_TOOLS_DISPENSE_MODE;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction PIP_BuildChannelPatternFromSequence( device & ML_STAR, sequence i_seq_ControllingSequence, variable & o_str_ChPattern ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction PIP_PhaseAspirationParseReturnValue( variable i_strReturnFromPhaseAspiration, variable & o_arrAspirationReturns[], variable & o_arrDispenseReturns[] ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction PIP_ProgressSequenceFromChannelPattern( variable i_str_ChPattern, variable i_bln_ProgressByUsedChannels, sequence & io_seq_SequenceToProgress ) void ;\r\nfunction TOOL_BuildArrayForChannels( device & ML_STAR, variable i_flt_ValueToSet, variable & o_arr_Values[] ) void ;\r\nfunction TOOL_CalculateHeightForVolume( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_VolumeInLabware, variable & o_flt_HeightOfVolume ) void ;\r\nfunction TOOL_CalculateVolumeForHeight( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_HeightOfVolume, variable & o_flt_Volume ) void ;\r\nfunction TOOL_OffsetArrayForChannels( device & ML_STAR, variable i_flt_ValueToOffset, variable & io_arr_Values[] ) void ;\r\nprivate function _ApplyOffsetToArrayofValues( variable & i_arr_Values[], variable i_flt_Offset, variable & o_arr_AdjustedValues[] ) void ;\r\nprivate 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 ;\r\nprivate 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 ;\r\nprivate 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 ;\r\nprivate function _DetermineStartZHeightMPH96( device & ML_STAR, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_ZMinimumCoord, variable & o_flt_StartZHeight ) variable ;\r\nprivate function _EnsureTipsAreLoaded( device & ML_STAR, variable i_str_ChannelPattern ) variable ;\r\nprivate function _GetChannelPatternValue( variable i_str_ChannelPattern, variable i_int_ChannelNumber, variable & o_int_Value ) void ;\r\nprivate function _GetCorrectedValueForVolume( variable i_flt_VolumeToConvert, variable & i_arr_CorrectionX[], variable & i_arr_CorrectionY[], variable & o_flt_CorrectedVolume ) void ;\r\nprivate function _GetHeightBasedOnVolume( variable i_str_ContainerFilePath, variable i_flt_VolumeToCalculate, variable & o_flt_HeightWithVolume ) void ;\r\nprivate function _GetHeightInfoFromLabware( device & ML_STAR, variable i_blnUpperHeights, sequence i_seqPositions, variable & o_arrHeights[] ) void ;\r\nprivate 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 ;\r\nprivate 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 ;\r\nprivate 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 ;\r\nprivate 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 ;\r\nprivate 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 ;\r\nprivate 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 ;\r\nprivate function _GetNextSequenceSet( sequence i_seq_Source, variable i_str_ChannelPattern, sequence & o_seq_TempSequence ) void ;\r\nprivate function _GetPartialChannelPatternForRepeatingPositions( device & ML_STAR, variable i_strChPattern, sequence i_seqPositions, variable & o_intLoopNumber, variable & o_arrChannelPatterns[] ) void ;\r\nprivate function _GetVolumeBasedOnHeight( variable i_str_ContainerFilePath, variable i_flt_HeightToCalculate, variable & o_flt_VolumeFromHeight ) void ;\r\nprivate function _GetVolumesInPositions( device & ML_STAR, sequence i_seqPositionsToGetVolume, variable & o_arrCurrentVolumes[] ) void ;\r\nprivate function _InitLiquidClassStorage(  ) void ;\r\nprivate function _ProbabilityCheck( device & ML_STAR, sequence i_seq_PositionsToCheck, variable i_str_ChannelPatternToCheck ) variable ;\r\nprivate function _ProbabilityCheckMPH96( device & ML_STAR, sequence i_seq_PositionsToCheck, variable i_str_ChannelPatternToCheck ) variable ;\r\nprivate function _SetHeightInfoToLabware( device & ML_STAR, variable i_blnUpperHeights, sequence i_seqPositions, variable & i_arrHeights[] ) void ;\r\nprivate function _SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void ;\r\nprivate function __GetVolumeForSegmentHeight( variable i_int_ShapeNumber, variable i_flt_DiameterTop, variable i_flt_DiameterBottom, variable i_flt_Height, variable & o_flt_CurrentVolume ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nFIRMWARE_PIPETTING_COMMANDS::_InitLibrary();\r\nHELPERLIBRARY::_InitLibrary();\r\nLIQUID_LEVEL_CHECK::_InitLibrary();\r\nFW_HELPERLIBRARY::_InitLibrary();\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::_InitLibrary();\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nFIRMWARE_PIPETTING_COMMANDS::_ExitLibrary();\r\nHELPERLIBRARY::_ExitLibrary();\r\nLIQUID_LEVEL_CHECK::_ExitLibrary();\r\nFW_HELPERLIBRARY::_ExitLibrary();\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary();\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"PIP_FindLiquidLevel\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate sequence seq_Temp;\r\nprivate variable int_TotalChannels;\r\nprivate variable _strFunctionName;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_XCoord[];\r\nprivate variable bln_TipsLoaded;\r\nprivate variable int_ChannelIndex;\r\nprivate variable flt_AdjustedCoordinates;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable flt_ZCoord;\r\nprivate variable flt_NotUsed;\r\nprivate variable bln_SimulationMode;\r\nprivate variable bln_LabwareValid;\r\nprivate variable flt_ZBottom;\r\nprivate variable bln_ChannelsAtCoordinates;\r\nprivate variable flt_ZStartHeight;\r\nprivate variable flt_MovementEndHeight;\r\n// {{ 5 \"PIP_FindLiquidLevel\" \"InitLocals\"\r\no_arr_LiquidHeightsFound.SetSize( 0);\r\n// }} \"\"\r\n// {{ 369 1 0 \"a739dfee_f808_4351_a442935755750613\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 370 1 0 \"036f5374_1705_4d72_a31b03fbba8ddd94\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 372 1 0 \"0ea174da_7b55_4a23_8fce76905392fcf3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 373 1 0 \"a739dfee_f808_4351_a442935755750613\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 374 1 0 \"1b271011_88d8_4307_912569d514cf0719\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 375 1 0 \"818b4640_b2d5_4fae_966ac8a02f23f51b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"3a690260_f1ad_486c_84d93bd1008960f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrConcat2(i_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 377 1 0 \"87df24d4_9609_4e4c_b8442564045a3033\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"483ef603_19b4_4c46_8f00ec120605deda\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_PositionsToCheck, i_str_ChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"8af1f303_7d1a_459a_bd89719f9243f063\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 380 1 0 \"ca418a92_b890_41b7_a91dbaf0dcd29261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 381 1 0 \"3d44a18d_3129_433e_81cc18019601d0e9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 382 1 0 \"43d9c3d9_7954_4888_b721b0c1425ada3a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 383 1 0 \"048acf36_a560_4df5_b59935955c04559a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 384 1 0 \"43d9c3d9_7954_4888_b721b0c1425ada3a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 385 1 0 \"c93ea96d_e8e2_471d_b0f22673c193dda1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 386 1 0 \"ca418a92_b890_41b7_a91dbaf0dcd29261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 387 1 0 \"efc5564c_e456_4a58_a54a8aa8e8d6a998\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 388 1 0 \"4496d173_1a95_4900_8f9091730b321099\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 389 1 0 \"8341ea2a_5236_4782_8f48e12c41698073\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!\"));\r\n// }} \"\"\r\n// {{ 390 1 0 \"22e1a45d_1cd7_4a56_92bb708b98ab7f8c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 391 1 0 \"91d41e91_a82b_4992_881466d6f41ceb41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 392 1 0 \"22e1a45d_1cd7_4a56_92bb708b98ab7f8c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 393 1 0 \"b5d2936f_c903_4da6_b43f720142211ca3\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 394 1 0 \"4496d173_1a95_4900_8f9091730b321099\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 395 1 0 \"d19e9b9d_45f8_4e6d_ad11cf702c9b30a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{ 396 1 0 \"f473788a_bd81_4ff7_9662128e7a8a96b4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_LiquidHeightsFound.SetSize(0);\r\n// }} \"\"\r\n// {{{ 397 1 0 \"8ea6c2f5_11f1_4e13_a76dec2026e4b747\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 6, Translate(\"Processing\"));\r\n// }} \"\"\r\n// {{ 398 1 0 \"a58ad773_bc06_4f50_bfdf88886b943225\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 399 1 0 \"7577037f_adab_4099_a9cb28daaf07ba4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"4acbb120_0d60_4ced_9cf7836727d60610\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ChannelsAtCoordinates = _DetermineStartZHeight(ML_STAR, i_str_ChPattern, str_LabID, arr_XCoord, arr_YCoord, flt_ZMinimumHeight, flt_ZClearanceHeight, flt_ZStartHeight);\r\n// }} \"\"\r\n// {{ 401 1 0 \"6487f642_cb30_42dc_abc6c0d5e1511177\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = 245.0;\r\n// }} \"\"\r\n// {{ 402 1 0 \"a306b602_145a_4ce8_a7ce72f4acce7888\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 1)\r\n{\r\n// }} \"\"\r\n// {{ 403 1 0 \"09bfbd77_9426_42f0_9642bd8928f0bb20\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZClearanceHeight;\r\n// }} \"\"\r\n// {{ 404 1 0 \"a306b602_145a_4ce8_a7ce72f4acce7888\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 405 1 0 \"2ede3fe7_73b3_4882_b5fcec9994d4962e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 2)\r\n{\r\n// }} \"\"\r\n// {{ 406 1 0 \"58618bbb_870f_4e9d_84d1b291edf14914\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMaximumHeight;\r\n// }} \"\"\r\n// {{ 407 1 0 \"2ede3fe7_73b3_4882_b5fcec9994d4962e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 408 1 0 \"900b2d47_9fc9_4252_b1c9b9237517450a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{ 409 1 0 \"1bbf6840_7111_4275_b87367fb46a1957d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 410 1 0 \"e29eaded_7e49_4110_97229d81836d0eab\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(int_ChannelIndex);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"673a388d_bd6e_483c_bf4bd61ed2ed26c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"d86c13d4_af21_49f0_984652f2c56a9c59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"8d68da56_a0a0_473d_a2d2ba2d7eaa1bfd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID);\r\n// }} \"\"\r\n// {{ 414 1 0 \"799a0897_0756_442c_ba731e0c3ab8deb6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_LabwareValid == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 415 1 0 \"9698eac9_8da0_44fd_a1deb7205b2506a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZCoord, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 416 1 0 \"799a0897_0756_442c_ba731e0c3ab8deb6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 417 1 0 \"9a71e809_b905_40e2_aff5322348e4fa85\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZCoord = 0.0;\r\n// }} \"\"\r\n// {{ 418 1 0 \"799a0897_0756_442c_ba731e0c3ab8deb6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 419 1 0 \"6ccd02ca_66e4_4e54_97110ef55925b53d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AdjustedCoordinates = o_arr_LiquidHeightsFound.ElementAt( int_ChannelIndex -1) - flt_ZCoord;\r\n// }} \"\"\r\n// {{ 420 1 0 \"5155b8c4_6988_4cc9_b170381ffe3b7cd2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_AdjustedCoordinates < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 421 1 0 \"0c0870fb_6c6b_4257_82fd71e99a283e59\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AdjustedCoordinates = 0.0;\r\n// }} \"\"\r\n// {{ 422 1 0 \"5155b8c4_6988_4cc9_b170381ffe3b7cd2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 423 1 0 \"4b2faad6_3235_40c6_b0d0728b65a72b21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 424 1 0 \"6a060f03_e094_4c3f_b02022f7dcd32b21\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AdjustedCoordinates = 20.0;\r\n// }} \"\"\r\n// {{ 425 1 0 \"4b2faad6_3235_40c6_b0d0728b65a72b21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 426 1 0 \"40466f0f_806d_4131_9c0fbeeca049ed09\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_LiquidHeightsFound.SetAt(int_ChannelIndex-1, flt_AdjustedCoordinates);\r\n// }} \"\"\r\n// {{ 427 1 0 \"1bbf6840_7111_4275_b87367fb46a1957d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 428 1 0 \"50f7728c_9cd0_4e3d_9e9d27d484c6ade3\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 429 1 0 \"f53f5630_a97b_42fe_a36553a669b47339\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"Processed\"));\r\n// }} \"\"\r\n// {{{ 430 1 0 \"622fde7c_6c7b_4341_92cb317a42683a63\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Liquid Level Heights\"), o_arr_LiquidHeightsFound);\r\n// }} \"\"\r\n// {{ 431 1 0 \"07f9cf38_e7aa_4709_ae600d905e4ee1dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 432 1 0 \"f12669ab_2a27_4a3e_8b8c9f590fc207e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 433 1 0 \"07f9cf38_e7aa_4709_ae600d905e4ee1dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PIP_FindLiquidLevel\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ProbabilityCheck\" \"Begin\"\r\nprivate function _ProbabilityCheck( device & ML_STAR, sequence i_seq_PositionsToCheck, variable i_str_ChannelPatternToCheck ) variable {\r\n// }} \"\"\r\nprivate variable int_TotalChannels;\r\nprivate variable int_TotalPositionsInSeq;\r\nprivate variable int_ChannelIndex;\r\nprivate variable int_ChannelValue;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZCoord;\r\nprivate variable flt_YCoord;\r\nprivate variable flt_XCoord;\r\nprivate variable bln_ProbabilityPass;\r\nprivate variable bln_FirstPositionFound;\r\nprivate variable flt_CurrentX;\r\nprivate variable flt_CurrentY;\r\nprivate variable flt_ChannelRaster;\r\nprivate variable int_Position;\r\n// {{ 5 \"_ProbabilityCheck\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2598 1 0 \"caf324e7_7452_4e1f_8f6ccdc15584d3b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelRaster1mL(ML_STAR, flt_ChannelRaster);\r\n// }} \"\"\r\n// {{{ 2599 1 0 \"f3e7de5e_c742_4168_826185f16355a516\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = StrGetLength(i_str_ChannelPatternToCheck);\r\n// }} \"\"\r\n// {{{ 2600 1 0 \"75b9cf98_d7b4_421d_8de16e1bd7a2e508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositionsInSeq = SeqGetTotal(i_seq_PositionsToCheck);\r\n// }} \"\"\r\n// {{ 2601 1 0 \"20abd9d9_e4b3_49f3_8b43bf7b965dc1fa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_FirstPositionFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 2602 1 0 \"431e5e65_bd6d_4765_80f833365db36c90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 2603 1 0 \"fe5c2b6a_a2a2_4817_933e0875831d792f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = 0.0;\r\n// }} \"\"\r\n// {{ 2604 1 0 \"dd27b53f_fe18_460d_bb314a583b2b9a2e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = 0.0;\r\n// }} \"\"\r\n// {{ 2605 1 0 \"73e46771_76a2_4bd4_81c5039e29631666\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Position = 1;\r\n// }} \"\"\r\n// {{ 2606 1 0 \"3c63e098_58fb_4737_b4e755d47bc95063\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 2607 1 0 \"8f9f79de_d112_4265_a42b39a6d5e97897\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelIndex > int_TotalPositionsInSeq)\r\n{\r\n// }} \"\"\r\n// {{ 2608 1 0 \"c4403ba9_1933_4ec9_98bae64c79d86eac\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2609 1 0 \"8f9f79de_d112_4265_a42b39a6d5e97897\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2610 1 0 \"6b6db874_8977_4271_bee471d6bffe6143\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_PositionsToCheck.SetCurrentPosition(int_ChannelIndex);\r\n// }} \"\"\r\n// {{{ 2611 1 0 \"c8077b4e_8210_4575_93396f32f61519a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_PositionsToCheck);\r\n// }} \"\"\r\n// {{{ 2612 1 0 \"844b74d6_3f80_43ed_b34a1c96614c2929\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_PositionsToCheck);\r\n// }} \"\"\r\n// {{{ 2613 1 0 \"a27088e1_720f_4de6_b7346d1c20d57fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChannelPatternToCheck, int_ChannelIndex, int_ChannelValue);\r\n// }} \"\"\r\n// {{ 2614 1 0 \"48434cc0_37f6_42ca_a5696e1e1deba6f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelValue == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 2615 1 0 \"90205c1b_eadc_4743_bfc9705f38033856\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_XCoord, flt_YCoord, flt_ZCoord, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 2616 1 0 \"510457a6_8dd0_4095_a46d5ed71c7f68b3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCoord > G_ARR_FW_PIP_COM_YMax.ElementAt( int_ChannelIndex -1))\r\n{\r\n// }} \"\"\r\n// {{ 2617 1 0 \"fefb299e_e0f4_44ba_8eb837291c53d008\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{{ 2618 1 0 \"cacd0cf1_b803_4cc2_af9ea3d529897bcc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::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(\"\"));\r\n// }} \"\"\r\n// {{ 2619 1 0 \"510457a6_8dd0_4095_a46d5ed71c7f68b3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2620 1 0 \"6a038c97_fc02_46f7_8e9d87d35e1a4fb6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCoord < G_ARR_FW_PIP_COM_YMin.ElementAt( int_ChannelIndex -1))\r\n{\r\n// }} \"\"\r\n// {{ 2621 1 0 \"52afadd5_2e48_4b6a_b6c5a46d39bcc002\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{{ 2622 1 0 \"221552c4_13b0_47ab_a67b37b780ee1bdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::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(\"\"));\r\n// }} \"\"\r\n// {{ 2623 1 0 \"6a038c97_fc02_46f7_8e9d87d35e1a4fb6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2624 1 0 \"9f9ca49e_159f_4715_9a1147838f18d768\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_FirstPositionFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 2625 1 0 \"7a270091_fb97_431f_8ef84fd6210048d5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = flt_XCoord;\r\n// }} \"\"\r\n// {{ 2626 1 0 \"96c12526_754c_4268_b611f75f0bbd0790\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_YCoord;\r\n// }} \"\"\r\n// {{ 2627 1 0 \"03dd8c81_9e5b_4afd_a9446f8ce1d04a67\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_FirstPositionFound = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 2628 1 0 \"9f9ca49e_159f_4715_9a1147838f18d768\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2629 1 0 \"d69231ce_af8c_47e7_b210a263f9d97b05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_XCoord != flt_CurrentX)\r\n{\r\n// }} \"\"\r\n// {{ 2630 1 0 \"39e92b23_3435_42c7_a3ae6586c3eac072\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{{ 2631 1 0 \"d04849b2_351f_4a01_88812141d8cceea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::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.\"));\r\n// }} \"\"\r\n// {{ 2632 1 0 \"d69231ce_af8c_47e7_b210a263f9d97b05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2633 1 0 \"bcb4edc6_3ca2_494a_ae3b8ef007108954\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_CurrentY - flt_ChannelRaster;\r\n// }} \"\"\r\n// {{ 2634 1 0 \"411fd131_623f_4892_a2020daad2590327\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCoord > flt_CurrentY)\r\n{\r\n// }} \"\"\r\n// {{ 2635 1 0 \"4f313860_67fd_48b4_991f83d06300f2d0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{{ 2636 1 0 \"1c2c9ebe_5c4e_41d0_8d517856799875f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::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.\"));\r\n// }} \"\"\r\n// {{ 2637 1 0 \"411fd131_623f_4892_a2020daad2590327\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2638 1 0 \"abd7daff_c523_420f_a3feb365c3f5195c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_YCoord;\r\n// }} \"\"\r\n// {{ 2639 1 0 \"411fd131_623f_4892_a2020daad2590327\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2640 1 0 \"9f9ca49e_159f_4715_9a1147838f18d768\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2641 1 0 \"5b4204b6_0eaa_4d8a_ba183abba42527ff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Position = int_Position + 1;\r\n// }} \"\"\r\n// {{ 2642 1 0 \"48434cc0_37f6_42ca_a5696e1e1deba6f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2643 1 0 \"f94f4663_1e79_43f8_858d8800e3ccf494\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_CurrentY - flt_ChannelRaster;\r\n// }} \"\"\r\n// {{ 2644 1 0 \"48434cc0_37f6_42ca_a5696e1e1deba6f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2645 1 0 \"3c63e098_58fb_4737_b4e755d47bc95063\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2646 1 0 \"659f0870_3604_4925_994d212f27c935ce\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bln_ProbabilityPass);\r\n// }} \"\"\r\n// {{{ 5 \"_ProbabilityCheck\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetChannelPatternValue\" \"Begin\"\r\nprivate function _GetChannelPatternValue( variable i_str_ChannelPattern, variable i_int_ChannelNumber, variable & o_int_Value ) void {\r\n// }} \"\"\r\nprivate variable str_Value;\r\n// {{ 5 \"_GetChannelPatternValue\" \"InitLocals\"\r\no_int_Value = 0;\r\n// }} \"\"\r\n// {{{ 1940 1 0 \"e3bc5a75_7d39_4415_8c4748cacd774f23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrLeft(i_str_ChannelPattern, i_int_ChannelNumber);\r\n// }} \"\"\r\n// {{{ 1941 1 0 \"68c17ea4_84cf_4cbd_8f0a2a2791be06de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrRight(str_Value, 1);\r\n// }} \"\"\r\n// {{{ 1942 1 0 \"9e69d224_31dd_4e5b_bb7e4950a03aa06e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_int_Value = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{{ 5 \"_GetChannelPatternValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetNextSequenceSet\" \"Begin\"\r\nprivate function _GetNextSequenceSet( sequence i_seq_Source, variable i_str_ChannelPattern, sequence & o_seq_TempSequence ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable int_Length;\r\nprivate variable int_TotalPositions;\r\nprivate variable int_Value;\r\n// {{ 5 \"_GetNextSequenceSet\" \"InitLocals\"\r\n{ sequence __temp; o_seq_TempSequence = __temp; }\r\n// }} \"\"\r\n// {{{ 2350 1 0 \"f5f7bc86_e91f_4957_bcfa6cc702697e59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_TempSequence);\r\n// }} \"\"\r\n// {{{ 2351 1 0 \"eb875c27_a5d4_4a92_ab6c555400fc825f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 2352 1 0 \"164219c0_d628_4e5d_ba00c6f79139e7ac\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 2353 1 0 \"7d85a41d_002f_418c_b6526a5d02229a27\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Source);\r\n// }} \"\"\r\n// {{{ 2354 1 0 \"43e704f3_e30d_4edc_9eff3fac4eaa96b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_Source);\r\n// }} \"\"\r\n// {{{ 2355 1 0 \"2a0bbbd1_769f_4226_b7362ce089193723\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(str_LabID);\r\n// }} \"\"\r\n// {{ 2356 1 0 \"8923552e_fa31_429d_8e93414c90266b2d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Length == 0)\r\n{\r\n// }} \"\"\r\n// {{ 2357 1 0 \"624b6621_fa84_46c6_86bac6eee190e2cf\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2358 1 0 \"8923552e_fa31_429d_8e93414c90266b2d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2359 1 0 \"463c0e50_c9ef_420b_9db300f60958c9f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChannelPattern, i, int_Value);\r\n// }} \"\"\r\n// {{ 2360 1 0 \"83934884_716b_4e0a_a70b6dbf4179e004\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 2361 1 0 \"80e6c5bd_f3ac_41dc_917043bbb651a970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_TempSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 2362 1 0 \"83934884_716b_4e0a_a70b6dbf4179e004\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 2363 1 0 \"92bf6225_d2fa_46f6_b9649c6827f68ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_TempSequence, str_LabID, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2364 1 0 \"83934884_716b_4e0a_a70b6dbf4179e004\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2365 1 0 \"6eeb0a12_a84d_4a3b_bd4a59bfc410df8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seq_Source, 1);\r\n// }} \"\"\r\n// {{ 2366 1 0 \"164219c0_d628_4e5d_ba00c6f79139e7ac\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2367 1 0 \"ff788d8e_f81f_45da_9fec38648d8cdfa1\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_TempSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"_GetNextSequenceSet\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLabwareCoordinates\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable int_TotalChannels;\r\nprivate variable int_ChannelIndex;\r\nprivate variable str_LabID;\r\nprivate variable int_TotalPositions;\r\nprivate variable str_PosID;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZCoord;\r\nprivate variable flt_YCoord;\r\nprivate variable flt_XCoord;\r\nprivate variable str_ContainerConfig;\r\nprivate variable bln_ValueExists;\r\nprivate variable str_Value;\r\nprivate variable flt_MinimumPipHeight;\r\nprivate variable int_Value;\r\nprivate variable flt_ContainerClearance;\r\nprivate variable flt_ContainerDepth;\r\n// {{ 5 \"_GetLabwareCoordinates\" \"InitLocals\"\r\no_arr_XCoord.SetSize( 0);\r\no_arr_YCoord.SetSize( 0);\r\no_flt_ZBottom = 0;\r\no_flt_ZMinimumHeight = 0;\r\no_flt_ZMaximumHeight = 0;\r\no_flt_ZClearanceHeight = 0;\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"86430f4f_36ee_47bf_a87cba43186d51c7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{ 2141 1 0 \"4a9c0df2_f1c2_4450_85d478b96f428e69\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_XCoord.SetSize(0);\r\n// }} \"\"\r\n// {{ 2142 1 0 \"20579137_8997_4b0b_a5a877a4184fb05b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_YCoord.SetSize(0);\r\n// }} \"\"\r\n// {{ 2143 1 0 \"2539a83c_ab73_45ee_bd58278d54c866ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZClearanceHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2144 1 0 \"107aac4d_db9e_4588_a9d257846fd49b56\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZMaximumHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2145 1 0 \"ef4115eb_6a74_4f19_928886e4dd23b0c9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZMinimumHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2146 1 0 \"e150286a_b695_498b_bac6bb565f6496ea\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 2147 1 0 \"067ba1e6_8cb7_47ab_accea69c351241e2\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_XCoord.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 2148 1 0 \"a661142f_1d3f_42ea_96b9208fffaa3033\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_YCoord.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 2149 1 0 \"e150286a_b695_498b_bac6bb565f6496ea\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2150 1 0 \"3a5cde33_1722_4159_b39156efa5053ffc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_Positions);\r\n// }} \"\"\r\n// {{ 2151 1 0 \"9ab671b3_b41e_46e1_a1966b1f7635f3ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPositions == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"ea9e9a84_43cd_483b_8c2ed68431c3e993\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 2153 1 0 \"9ab671b3_b41e_46e1_a1966b1f7635f3ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2154 1 0 \"1ce8af5b_b734_4608_9349eb1db89010f5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 2155 1 0 \"bd008cad_17c6_418a_a4f50dac7fd397eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChannelIndex, int_Value);\r\n// }} \"\"\r\n// {{ 2156 1 0 \"a9839cdd_c032_4d99_9e4c8e2d4e693e62\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2157 1 0 \"f4834be5_c095_4de2_b15653c5fcc1f53f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_Positions.SetCurrentPosition(int_ChannelIndex);\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"2d4a9242_492a_49f4_932221946f9be9b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Positions);\r\n// }} \"\"\r\n// {{{ 2159 1 0 \"30057330_8454_43e9_a555dd2425108c8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_Positions);\r\n// }} \"\"\r\n// {{ 2160 1 0 \"70472c85_2427_4581_aff2a6c3dc49e03a\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2161 1 0 \"a9839cdd_c032_4d99_9e4c8e2d4e693e62\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2162 1 0 \"1ce8af5b_b734_4608_9349eb1db89010f5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"20a38eb6_4a55_4153_b4aacf27895c12ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZCoord, flt_NotUsed);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 2164 1 0 \"e5b070a4_0636_42e2_af275b3b462a5130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_LabID, o_flt_ZMaximumHeight, o_flt_ZClearanceHeight);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 2165 1 0 \"64d5b956_d14d_4290_9579de94195b93d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerDepth(ML_STAR, str_LabID, str_PosID, flt_ContainerDepth, flt_ContainerClearance);\r\n// }} \"\"\r\n// {{ 2166 1 0 \"3b47e17f_58ef_471d_a85ba90e6d4e67c0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZMaximumHeight = flt_ContainerDepth + flt_ZCoord;\r\n// }} \"\"\r\n// {{ 2167 1 0 \"7bfab045_05ea_4fc4_82c3aa3d6a7f03da\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZClearanceHeight = flt_ContainerClearance + flt_ZCoord;\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"8dd1a030_400d_44ac_95aabb0b956e7a6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ContainerConfig);\r\n// }} \"\"\r\n// {{{ 2169 1 0 \"8a88b0b3_5daa_4cb4_bd6a279c7cdd1243\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueExists = HELPERLIBRARY::GetDefinitionFileValue(str_ContainerConfig, Translate(\"MaxDepth\"), str_Value);\r\n// }} \"\"\r\n// {{ 2170 1 0 \"438aa1ad_fa7d_4a13_964f18c9fabbbcb0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumPipHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2171 1 0 \"421acc9d_9f78_4b85_a805cecc555bc1a2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueExists == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2172 1 0 \"ae211c13_0c7a_4d6b_867450e0377105f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_MinimumPipHeight = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2173 1 0 \"421acc9d_9f78_4b85_a805cecc555bc1a2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2174 1 0 \"da3ac80c_4b20_46e3_9e1c98c714a6950b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZMinimumHeight = flt_ZCoord + flt_MinimumPipHeight;\r\n// }} \"\"\r\n// {{ 2175 1 0 \"c0518d5f_8acf_4a73_beb0c9577d720129\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZBottom = flt_ZCoord;\r\n// }} \"\"\r\n// {{ 2176 1 0 \"6e79b8e1_927b_4cfb_a391585766dc1288\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 2177 1 0 \"ceb6877f_fbe7_460f_b5d9baf86122de23\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XCoord = 0.0;\r\n// }} \"\"\r\n// {{ 2178 1 0 \"5df64a14_93a2_4061_a87308bf31a4a8e0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YCoord = 0.0;\r\n// }} \"\"\r\n// {{ 2179 1 0 \"7ad83427_4694_4ddc_94f00ef994f15fd4\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_Positions.SetCurrentPosition(int_ChannelIndex);\r\n// }} \"\"\r\n// {{ 2180 1 0 \"71b4ef52_cb27_4bba_a9037b46f67f154e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelIndex > int_TotalPositions)\r\n{\r\n// }} \"\"\r\n// {{ 2181 1 0 \"98fc0e09_f286_492f_8736861837435dee\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2182 1 0 \"71b4ef52_cb27_4bba_a9037b46f67f154e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2183 1 0 \"c95a9a73_da17_4622_b91f1ec80cc2b64d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChannelIndex, int_Value);\r\n// }} \"\"\r\n// {{ 2184 1 0 \"85b438d6_7613_4709_a25ca87a637ff3c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 2185 1 0 \"c6f03390_f951_4b11_a8c464dd84e6a0c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_Positions);\r\n// }} \"\"\r\n// {{{ 2186 1 0 \"d250755b_a399_40df_bbc085b5d6f8437d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_XCoord, flt_YCoord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{{ 2187 1 0 \"8306cea9_e125_4757_87768869f23e972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_XCoord = MthRound(flt_XCoord, 1);\r\n// }} \"\"\r\n// {{{ 2188 1 0 \"81f022a3_eba0_47b3_8dc92490bf04b23c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YCoord = MthRound(flt_YCoord, 1);\r\n// }} \"\"\r\n// {{ 2189 1 0 \"85b438d6_7613_4709_a25ca87a637ff3c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2190 1 0 \"ac7b74b5_077d_4045_a5cc145454d96b4f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_XCoord.SetAt(int_ChannelIndex-1, flt_XCoord);\r\n// }} \"\"\r\n// {{ 2191 1 0 \"4840fb14_48ca_43a3_ae90b6a28ac9ea1b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_YCoord.SetAt(int_ChannelIndex-1, flt_YCoord);\r\n// }} \"\"\r\n// {{ 2192 1 0 \"6e79b8e1_927b_4cfb_a391585766dc1288\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2193 1 0 \"a735c0cd_778b_475f_a3df24d31e0a2b4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Clearance Height:  \"), o_flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{{ 2194 1 0 \"e87ab05e_78a2_4cae_88126db7f4de4743\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Top Of Plate Height:  \"), o_flt_ZMaximumHeight);\r\n// }} \"\"\r\n// {{{ 2195 1 0 \"1ffec940_b92c_4511_bf3c4323b32690e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Minimum Height:  \"), o_flt_ZMinimumHeight);\r\n// }} \"\"\r\n// {{{ 2196 1 0 \"f9abd9f1_431a_4ed0_b84f29e9d4cd0223\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Z Bottom:  \"), o_flt_ZBottom);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 2197 1 0 \"c215a1bd_840f_42e7_a44c5af5ccf77a09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"X Coordinates                       Y Coordinates\"), o_arr_XCoord, o_arr_YCoord);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"_GetLabwareCoordinates\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_EnsureTipsAreLoaded\" \"Begin\"\r\nprivate function _EnsureTipsAreLoaded( device & ML_STAR, variable i_str_ChannelPattern ) variable {\r\n// }} \"\"\r\nprivate variable bln_TipsMatch;\r\nprivate variable int_TotalToCheck;\r\nprivate variable int_ChannelIndex;\r\nprivate variable int_ChanValueNeeded;\r\nprivate variable str_TipsLoadedPattern;\r\nprivate variable bln_SimulationMode;\r\nprivate variable int_ChanValueLoaded;\r\n// {{ 5 \"_EnsureTipsAreLoaded\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1919 1 0 \"0a14b71a_7c0a_48e2_8829c7760a745120\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 1920 1 0 \"d9dcb2f0_91e2_400c_98b659e0ed033164\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_TipsMatch = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{{ 1921 1 0 \"5d584506_c604_494d_8c062f17db1a2c5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalToCheck = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{{ 1922 1 0 \"c102eb7f_9ee9_4436_86061f20ee342291\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelPatternWithTips(ML_STAR, BOOLEON::TRUE, str_TipsLoadedPattern);\r\n// }} \"\"\r\n// {{ 1923 1 0 \"53d5a8d3_3aff_44eb_83a4fab6f7fa0211\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1924 1 0 \"25ab2d2f_e83e_4bea_b0f4c237e3a5ef5d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TipsLoadedPattern = i_str_ChannelPattern;\r\n// }} \"\"\r\n// {{ 1925 1 0 \"53d5a8d3_3aff_44eb_83a4fab6f7fa0211\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1926 1 0 \"11932b8e_d428_440c_8f33bb759d905247\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalToCheck;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 1927 1 0 \"35ac512f_8dae_4be5_9b9726be0050d2f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChannelPattern, int_ChannelIndex, int_ChanValueNeeded);\r\n// }} \"\"\r\n// {{ 1928 1 0 \"9bc1410a_2cca_4e45_b0a06c9668e9863e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChanValueNeeded == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1929 1 0 \"bea82a9d_4566_4385_aa990f04e64ba375\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(str_TipsLoadedPattern, int_ChannelIndex, int_ChanValueLoaded);\r\n// }} \"\"\r\n// {{ 1930 1 0 \"2baa889d_630b_4888_9645ff08739ef96d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChanValueLoaded == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1931 1 0 \"1e066d07_ce4f_407e_893604fda57a7920\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_TipsMatch = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 1932 1 0 \"2baa889d_630b_4888_9645ff08739ef96d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1933 1 0 \"9bc1410a_2cca_4e45_b0a06c9668e9863e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1934 1 0 \"11932b8e_d428_440c_8f33bb759d905247\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1935 1 0 \"4c6ceaba_008b_4705_b5d6c8757b7b3082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Channel Pattern:  \"), i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{{ 1936 1 0 \"e75359b9_17cd_4765_a1153e38497cf470\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Tips Loaded:  \"), str_TipsLoadedPattern);\r\n// }} \"\"\r\n// {{{ 1937 1 0 \"f7be2880_18b4_4dd1_9ffcf2e46e613c72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Necessary Tips On Channels:  \"), bln_TipsMatch);\r\n// }} \"\"\r\n// {{{ 1938 1 0 \"aef61dfa_18c6_4c00_b2bc55354d8c6079\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bln_TipsMatch);\r\n// }} \"\"\r\n// {{{ 5 \"_EnsureTipsAreLoaded\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_BuildArrayForChannels\" \"Begin\"\r\nfunction TOOL_BuildArrayForChannels( device & ML_STAR, variable i_flt_ValueToSet, variable & o_arr_Values[] ) void {\r\n// }} \"\"\r\nprivate variable i;\r\n// {{ 5 \"TOOL_BuildArrayForChannels\" \"InitLocals\"\r\no_arr_Values.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 1623 1 0 \"32bfcd82_62ca_47c8_8355a19a55aa47b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1624 1 0 \"debf5b32_b074_4ca0_aba52f412d41b898\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_Values.SetSize(0);\r\n// }} \"\"\r\n// {{ 1625 1 0 \"6d692328_cc96_475c_a0307e8e35d1c7c8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < G_FW_PIP_COM_TotalChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1626 1 0 \"8962fa3d_1fb4_4789_87443af347c60718\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_Values.AddAsLast(i_flt_ValueToSet);\r\n// }} \"\"\r\n// {{ 1627 1 0 \"6d692328_cc96_475c_a0307e8e35d1c7c8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_BuildArrayForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_AspirateFromFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable bln_SimulationMode;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable int_TotalChannels;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate sequence seq_Temp;\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_XCoord[];\r\nprivate variable flt_ZStartHeight;\r\nprivate variable arr_LiquidFollowingDistance[];\r\nprivate variable arr_AspirationHeights[];\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_AspirationVolume;\r\nprivate variable flt_MovementStartHeight;\r\nprivate variable flt_MovementEndHeight;\r\nprivate variable bln_ChannelsAtCoordinates;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ContainerDepth;\r\nprivate variable flt_DispenseHeight;\r\nprivate variable str_LabID;\r\n// {{ 5 \"PIP_AspirateFromFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 171 1 0 \"33014310_06fd_401f_9b45b43e6afb26d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 172 1 0 \"3bd91dde_b6a5_427a_9337e00ea2f78214\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 174 1 0 \"ac3db5d2_3ebe_4f58_87edbd11433d26f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 175 1 0 \"33014310_06fd_401f_9b45b43e6afb26d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 176 1 0 \"d1f841d3_021d_4e31_b2a7ca36aa49017e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 177 1 0 \"bdd0db0f_069d_4abf_8d8dbc7f714b7c3f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 178 1 0 \"7520a536_39e9_4498_8c5f05ae9e436f4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 179 1 0 \"6e5b2366_a4ed_4f54_b4836a0ddac50005\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_SimulationMode = G_FW_PIP_COM_SimulationMode;\r\n// }} \"\"\r\n// {{ 180 1 0 \"dad5e84a_9fc8_4b49_94ee832d25274671\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalChannels = G_FW_PIP_COM_TotalChannels;\r\n// }} \"\"\r\n// {{ 181 1 0 \"c5452b49_7b50_4f8e_8f937ba3e7bf9356\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 182 1 0 \"0f404ffd_8421_40a0_b2cc67b55297afe4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrConcat2(i_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 183 1 0 \"a81cc233_8f7f_4198_a5609e79e1a0eedf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 184 1 0 \"ce7e9e28_c879_428f_b7766d603c11e44b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 185 1 0 \"e0e385a0_02d5_48dc_b9ea27575a43460b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_AspirationPositions, i_str_ChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 186 1 0 \"ffb739bb_51a0_4303_b245fd500370e118\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"aa659cd4_480e_4eb8_9be1b81047651991\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 188 1 0 \"3579e91d_54ad_40f9_83cada3d123f90a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 189 1 0 \"e7f0ba70_01e5_47bd_b45bfd04f56d0045\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 190 1 0 \"56be25ee_0101_461b_9c0319f7f7423ccb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 191 1 0 \"f013c31b_8bd1_40b2_82e6570bfd7ce519\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 192 1 0 \"56be25ee_0101_461b_9c0319f7f7423ccb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 193 1 0 \"dfdec4c0_75cf_4306_828cc50c858b63ae\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 194 1 0 \"3579e91d_54ad_40f9_83cada3d123f90a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 195 1 0 \"046cf5cc_44b3_4f92_9ae1b33f59e3f937\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 196 1 0 \"18b55239_60dc_4743_8c7c4cc4aadd8b12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 197 1 0 \"a1115008_8f38_4096_99bc087717625aea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 198 1 0 \"74ec2245_15ee_427b_883a8b4879cbcc7b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!\"));\r\n// }} \"\"\r\n// {{ 199 1 0 \"9eb854b1_4426_48d4_9f0135458647b1e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 200 1 0 \"9b7cfacf_34e9_4942_8a80f3e48d7c9057\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 201 1 0 \"9eb854b1_4426_48d4_9f0135458647b1e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 202 1 0 \"8add20f5_fa5e_49b5_8b161205314ceac5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 203 1 0 \"a1115008_8f38_4096_99bc087717625aea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 204 1 0 \"c3bad33e_937c_401c_bd4013d606d00f4e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 205 1 0 \"35b22d06_79c6_4558_b2269a2ba5830c68\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{ 206 1 0 \"0edbbfbd_fb8f_4be3_b3d7099aadb1e906\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 207 1 0 \"f5a693cf_9feb_4b7c_97e20f80e7218768\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 208 1 0 \"d72a11ce_42ff_492d_90daaea777e7c5c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"6f5559fb_e589_407e_8da20f63657a7d72\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ChannelsAtCoordinates = _DetermineStartZHeight(ML_STAR, i_str_ChPattern, str_LabID, arr_XCoord, arr_YCoord, flt_ZMinimumHeight, flt_ZClearanceHeight, flt_ZStartHeight);\r\n// }} \"\"\r\n// {{ 210 1 0 \"164318e0_e1e9_4754_9e999a0c8694ad05\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 211 1 0 \"3f50954c_c081_4446_9534e2de918810de\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ApplyOffsetToArrayofValues(i_arr_FixedHeights, flt_ZBottom, arr_AspirationHeights);\r\n// }} \"\"\r\n// {{ 212 1 0 \"5ee74dfc_c671_4a42_aa1ea37529250097\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 213 1 0 \"4e345eb7_b22a_477d_a731c5a1a8060c31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"d20026c1_3b35_4e78_84acc9a9c379e89d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{ 215 1 0 \"21b8b393_9d3c_44b7_8d0f6915ff320e43\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 216 1 0 \"3c67050f_1537_4c5c_9a7786086ec9e4c9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(i_flt_AspirationVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_AspirationVolume);\r\n// }} \"\"\r\n// {{{ 217 1 0 \"6b7e117a_730a_415c_8e087714e91fa8f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Aspiration Volume:  \"), i_flt_AspirationVolume, Translate(\"  Corrected Volume for Liquid Class:  \"), flt_AspirationVolume);\r\n// }} \"\"\r\n// {{ 218 1 0 \"20f60280_c411_44b3_b3a772c51cb6f6b3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 219 1 0 \"857eb19b_0b7a_473a_972988ca1340ff98\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLiquidFollowingForAllChannels(ML_STAR, i_arr_FixedHeights, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::TRUE, flt_AspirationVolume, i_str_ChPattern, arr_LiquidFollowingDistance);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"ec5df3c9_777b_4974_aa84e230ab9f6e97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate(\"Processing\"));\r\n// }} \"\"\r\n// {{ 221 1 0 \"9e5361b4_2c4f_4b1f_9c7bfe5f8dae63ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementStartHeight = flt_ZStartHeight;\r\n// }} \"\"\r\n// {{ 222 1 0 \"d348e866_dc49_49bd_b390a08821212df2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = 245.0;\r\n// }} \"\"\r\n// {{ 223 1 0 \"76d61a02_73ae_4c56_aa49485013599d30\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 1)\r\n{\r\n// }} \"\"\r\n// {{ 224 1 0 \"7c8c12f2_611f_4220_b5501da49ad0eab7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZClearanceHeight;\r\n// }} \"\"\r\n// {{ 225 1 0 \"76d61a02_73ae_4c56_aa49485013599d30\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 226 1 0 \"8f530f0e_5dd8_49dd_98745a961a30cc4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 2)\r\n{\r\n// }} \"\"\r\n// {{ 227 1 0 \"d36bcbde_9759_4232_8fc08462d65cb394\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMaximumHeight;\r\n// }} \"\"\r\n// {{ 228 1 0 \"8f530f0e_5dd8_49dd_98745a961a30cc4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 229 1 0 \"5a7653a8_4361_489b_881a4c372bb59469\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 3)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 230 1 0 \"fa431fb6_7515_4d0c_88d907364ff3c684\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMinimumHeight;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 231 1 0 \"f939ec8f_f22a_4bb4_b429c3574d9a7f0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_DispenseHeight = HSLStatisitics::Stat_Max(i_arr_FixedHeights);\r\n// }} \"\"\r\n// {{ 232 1 0 \"db059d9d_652c_4c5b_8130b98c178a4ab7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_DispenseHeight + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 233 1 0 \"e4d5c98a_2ecc_49b1_bdbd8324cd431427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_MovementEndHeight < flt_ZMinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 234 1 0 \"cb0362a7_5609_4207_9561ee4896813569\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 235 1 0 \"e4d5c98a_2ecc_49b1_bdbd8324cd431427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 236 1 0 \"5a7653a8_4361_489b_881a4c372bb59469\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 237 1 0 \"bc3135fd_77bf_4415_b47c0405c580a8d7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 238 1 0 \"7fc1fa08_b056_42d4_a50f6cf91faaa721\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{{ 239 1 0 \"095befe8_f758_4758_80a0e54fd42694cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"Processed\"));\r\n// }} \"\"\r\n// {{ 240 1 0 \"df0088d9_34b2_47b9_89dcf28aec1a5f9a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 241 1 0 \"2b666c20_3b85_4e3b_9d0257b9f58b729e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 242 1 0 \"df0088d9_34b2_47b9_89dcf28aec1a5f9a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PIP_AspirateFromFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_DetermineStartZHeight\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable int_TotalCoords;\r\nprivate variable bln_ChannelsAtCoordinate;\r\nprivate variable flt_CurrentXCoord;\r\nprivate variable arr_CurrentYCoord[];\r\nprivate variable i;\r\nprivate variable bln_SimulationMode;\r\nprivate variable int_Value;\r\nprivate variable flt_YMaxNeeded;\r\nprivate variable flt_XMinNeeded;\r\nprivate variable flt_YMin;\r\nprivate variable flt_YMax;\r\nprivate variable flt_XMin;\r\nprivate variable flt_XMax;\r\nprivate variable flt_YMinNeeded;\r\nprivate variable flt_XMaxNeeded;\r\nprivate variable int_TotalX;\r\nprivate variable int_TotalY;\r\nprivate variable arr_AdjustedX[];\r\nprivate variable arr_AdjustedY[];\r\nprivate variable flt_YMinCurrent;\r\nprivate variable flt_YMaxCurrent;\r\nprivate variable arr_RelevantCurrentY[];\r\nprivate variable str_Coord1;\r\nprivate variable str_Coord2;\r\nprivate variable int_Coord1;\r\nprivate variable int_Coord2;\r\nprivate variable flt_Coord1;\r\nprivate variable flt_Coord2;\r\n// {{ 5 \"_DetermineStartZHeight\" \"InitLocals\"\r\no_flt_StartZHeight = 0;\r\n// }} \"\"\r\n// {{{ 1780 1 0 \"899e1ca1_3ffa_4197_a07e6d0321d1d47a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 1781 1 0 \"2def5b0d_163a_4da1_829c500389804025\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StartZHeight = 0.0;\r\n// }} \"\"\r\n// {{ 1782 1 0 \"5bd01ee5_318b_4f7c_ab96801375aaaa71\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ChannelsAtCoordinate = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{{ 1783 1 0 \"7dcd898b_40e3_40b6_b555076b2e9312d3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelXCoordinate(ML_STAR, flt_CurrentXCoord);\r\n// }} \"\"\r\n// {{{ 1784 1 0 \"40cc254d_b2c6_429d_b6d2d8fb6cc59af6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelYCoordinates(ML_STAR, BOOLEON::TRUE, arr_CurrentYCoord);\r\n// }} \"\"\r\n// {{ 1785 1 0 \"0ee60df0_497d_4c2c_855cabcf3f5610bf\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AdjustedX.SetSize(0);\r\n// }} \"\"\r\n// {{ 1786 1 0 \"8e808a07_9b7c_4bbc_9de80afa204c64e9\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AdjustedY.SetSize(0);\r\n// }} \"\"\r\n// {{ 1787 1 0 \"1a59871b_be1a_4f44_b0f7a4050b107daf\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_RelevantCurrentY.SetSize(0);\r\n// }} \"\"\r\n// {{ 1788 1 0 \"642b8294_96cd_4b44_aad8b858fe54af68\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalX=i_arr_XCoords.GetSize();\r\n// }} \"\"\r\n// {{ 1789 1 0 \"f2ef9f19_69f6_4d22_9b4685916e8168e3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalX;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1790 1 0 \"9a5b4d8b_b3da_47e2_b03a9a61f375c29c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_arr_XCoords.ElementAt( i -1) > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1791 1 0 \"a46b3d8e_1db5_43e3_b593d3b66afea9d9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AdjustedX.AddAsLast(i_arr_XCoords.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1792 1 0 \"9a5b4d8b_b3da_47e2_b03a9a61f375c29c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1793 1 0 \"f2ef9f19_69f6_4d22_9b4685916e8168e3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1794 1 0 \"3f52e4d5_a22e_4457_a7fe1cdfb829f74d\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalY=i_arr_YCoords.GetSize();\r\n// }} \"\"\r\n// {{ 1795 1 0 \"6cc1d50e_7f0d_4d39_953a2c111bb6cfa6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalY;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1796 1 0 \"a6998405_4250_49ef_981a0b54a9ed0fe4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_arr_YCoords.ElementAt( i -1) > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1797 1 0 \"99dfcf76_42a8_41de_a1b7f8c29d12c280\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AdjustedY.AddAsLast(i_arr_YCoords.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1798 1 0 \"c0c3831a_d795_4a39_9a8d2ac5846c4ad1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_RelevantCurrentY.AddAsLast(arr_CurrentYCoord.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1799 1 0 \"a6998405_4250_49ef_981a0b54a9ed0fe4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1800 1 0 \"6cc1d50e_7f0d_4d39_953a2c111bb6cfa6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1801 1 0 \"62ef1ecc_4f79_4542_a88c2d672cfe6b1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Current Y Coords\"), arr_CurrentYCoord);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1802 1 0 \"43222455_17be_478c_8c8cc7bc11b689e9\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalCoords=i_arr_XCoords.GetSize();\r\n// }} \"\"\r\n// {{ 1803 1 0 \"1ee55112_1b24_4600_8bafaff8d28fdfc1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalCoords;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1804 1 0 \"7257b88e_840c_4d3d_a7edcd549d2bbbce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, i, int_Value);\r\n// }} \"\"\r\n// {{ 1805 1 0 \"ffde5fa6_7d64_45cf_b890da1eb0210e7a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1806 1 0 \"4de80988_8c8b_4a53_976d0debe61348d0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Coord1 = i_arr_XCoords.ElementAt( i -1) * 10;\r\n// }} \"\"\r\n// {{{ 1807 1 0 \"66724b81_2589_4479_83934714a90774af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Coord1 = StrConcat2(flt_Coord1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1808 1 0 \"49b47750_bb23_4626_b400c3629a433442\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Coord1 = StrIVal(str_Coord1);\r\n// }} \"\"\r\n// {{ 1809 1 0 \"f295ac5e_8760_46e8_9a1fddf29a47d8dc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Coord2 = flt_CurrentXCoord * 10;\r\n// }} \"\"\r\n// {{{ 1810 1 0 \"65efc66d_252b_4c4f_8e40a7cad40c9f42\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Coord2 = StrConcat2(flt_Coord2, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1811 1 0 \"cf4f919e_87f5_48e9_9cb5d705f1f346c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Coord2 = StrIVal(str_Coord2);\r\n// }} \"\"\r\n// {{ 1812 1 0 \"ca5d0460_5ebd_4e75_8526a3610ac29e45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Coord1 != int_Coord2)\r\n{\r\n// }} \"\"\r\n// {{ 1813 1 0 \"e37f47c1_e7cf_4f64_bedd37528de61e24\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ChannelsAtCoordinate = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 1814 1 0 \"ca5d0460_5ebd_4e75_8526a3610ac29e45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1815 1 0 \"9a714829_1cee_42e2_b10c6464903918da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(Translate(\"Needed X:  \"), i_arr_XCoords.ElementAt( i -1), Translate(\"   Current X:  \"), flt_CurrentXCoord, Translate(\"  Valid:  \"), bln_ChannelsAtCoordinate, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1816 1 0 \"ffde5fa6_7d64_45cf_b890da1eb0210e7a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1817 1 0 \"1ee55112_1b24_4600_8bafaff8d28fdfc1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1818 1 0 \"75688711_397d_4e35_9bc28ad93c922fd0\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalCoords=i_arr_YCoords.GetSize();\r\n// }} \"\"\r\n// {{ 1819 1 0 \"a51a6489_44be_4e62_b268fcbacdfe4df9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalCoords;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1820 1 0 \"6b16fb39_d8fe_493e_a44b750cc06c552c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, i, int_Value);\r\n// }} \"\"\r\n// {{ 1821 1 0 \"4a80e9e3_0598_4817_9e513b39678f64d7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1822 1 0 \"85d7b774_b168_44ab_98881618f9ac003e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Coord1 = i_arr_YCoords.ElementAt( i -1) * 10;\r\n// }} \"\"\r\n// {{{ 1823 1 0 \"df904206_09f8_421b_a0b72a85e91a9924\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Coord1 = StrConcat2(flt_Coord1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1824 1 0 \"ee8f1708_97bb_463f_84c5ea5083d21d3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Coord1 = StrIVal(str_Coord1);\r\n// }} \"\"\r\n// {{ 1825 1 0 \"5918f407_8bed_464f_83c589eef6e5009a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Coord2 = arr_CurrentYCoord.ElementAt( i -1) * 10;\r\n// }} \"\"\r\n// {{{ 1826 1 0 \"ca55b6b0_b2ff_408d_89aebbc6bcee9e3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Coord2 = StrConcat2(flt_Coord2, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1827 1 0 \"cae4f24c_125b_4e4e_bc05a4424086c5cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Coord2 = StrIVal(str_Coord2);\r\n// }} \"\"\r\n// {{ 1828 1 0 \"6eb4aa91_1d52_45f4_b7b515f243c60204\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Coord1 != int_Coord2)\r\n{\r\n// }} \"\"\r\n// {{ 1829 1 0 \"3225323c_d024_46df_893dff168f31f319\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ChannelsAtCoordinate = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 1830 1 0 \"6eb4aa91_1d52_45f4_b7b515f243c60204\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1831 1 0 \"8c907b47_a917_4d50_b41cdcb12caee380\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(Translate(\"Needed Y:  \"), str_Coord1, Translate(\"   Current Y:  \"), str_Coord2, Translate(\"  Valid:  \"), bln_ChannelsAtCoordinate, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1832 1 0 \"4a80e9e3_0598_4817_9e513b39678f64d7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1833 1 0 \"a51a6489_44be_4e62_b268fcbacdfe4df9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1834 1 0 \"65b51c2b_87fd_4ed9_af677a80fdb3a5f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1835 1 0 \"dfeaed28_1d2a_4d77_85a5a651ad23ac97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ChannelsAtCoordinate = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 1836 1 0 \"65b51c2b_87fd_4ed9_af677a80fdb3a5f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1837 1 0 \"7a403be2_dda6_4363_8cf59a0c05ebcf3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ChannelsAtCoordinate == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1838 1 0 \"0db73d34_c19b_4a0d_8e824b366549c9b5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StartZHeight = i_flt_ZMinimumCoord;\r\n// }} \"\"\r\n// {{ 1839 1 0 \"7a403be2_dda6_4363_8cf59a0c05ebcf3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1840 1 0 \"934a4dd0_e292_453f_9f4cd9a309dd262a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareLimits(ML_STAR, i_str_LabID, flt_XMin, flt_XMax, flt_YMin, flt_YMax);\r\n// }} \"\"\r\n// {{{ 1841 1 0 \"e886a50e_d347_438d_91e31e4c6899ea55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_XMaxNeeded = HSLStatisitics::Stat_Max(arr_AdjustedX);\r\n// }} \"\"\r\n// {{{ 1842 1 0 \"3655910a_058c_4423_853466bc177d659d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_XMinNeeded = HSLStatisitics::Stat_Min(arr_AdjustedX);\r\n// }} \"\"\r\n// {{{ 1843 1 0 \"00c277bb_b1c7_4dc5_91c635321aa63f79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YMaxNeeded = HSLStatisitics::Stat_Max(arr_AdjustedY);\r\n// }} \"\"\r\n// {{{ 1844 1 0 \"01a6ec1e_b58d_4a7e_8bd28f127e5ae5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YMinNeeded = HSLStatisitics::Stat_Min(arr_AdjustedY);\r\n// }} \"\"\r\n// {{{ 1845 1 0 \"0f8a3e0e_11fd_4b6a_853f940430892591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YMaxCurrent = HSLStatisitics::Stat_Max(arr_RelevantCurrentY);\r\n// }} \"\"\r\n// {{{ 1846 1 0 \"df40c4e9_b43d_4fba_8e62439a137eb2f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YMinCurrent = HSLStatisitics::Stat_Min(arr_RelevantCurrentY);\r\n// }} \"\"\r\n// {{ 1847 1 0 \"a79ce81f_cbf7_4b0d_867d764bd151a18f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StartZHeight = 245.0;\r\n// }} \"\"\r\n// {{ 1848 1 0 \"cd9184c8_c92d_4627_883513d7ee00b491\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < 1;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1849 1 0 \"41e1724d_7cbd_4679_9bef32090b6f9183\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentXCoord > flt_XMax)\r\n{\r\n// }} \"\"\r\n// {{ 1850 1 0 \"a1c43692_20e3_4395_93696257c0eff0ca\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1851 1 0 \"41e1724d_7cbd_4679_9bef32090b6f9183\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1852 1 0 \"ea779269_2d7f_40b6_a7f50c82feada529\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentXCoord < flt_XMin)\r\n{\r\n// }} \"\"\r\n// {{ 1853 1 0 \"da1fb434_5cb3_4304_bde3dc56bdead128\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1854 1 0 \"ea779269_2d7f_40b6_a7f50c82feada529\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1855 1 0 \"123dbe31_064d_441a_af6508724b198703\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YMaxCurrent > flt_YMax)\r\n{\r\n// }} \"\"\r\n// {{ 1856 1 0 \"a8aa8ac5_2bac_467a_81068f190d4a3331\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1857 1 0 \"123dbe31_064d_441a_af6508724b198703\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1858 1 0 \"8de6fb87_1824_48cc_ae64af6e359bf7fb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YMinCurrent < flt_YMin)\r\n{\r\n// }} \"\"\r\n// {{ 1859 1 0 \"dad77d8b_b448_43d3_8abd1f17669eea03\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1860 1 0 \"8de6fb87_1824_48cc_ae64af6e359bf7fb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1861 1 0 \"45a3ae75_b135_4501_883b0ef0b0da918d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"X Max Needed: \"), flt_XMaxNeeded, Translate(\"   X Max Limit: \"), flt_XMax);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1862 1 0 \"0f97ffc0_0872_4695_816fafc104667066\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_XMaxNeeded <= flt_XMax)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1863 1 0 \"87e177b7_8b74_4b55_bbd9b1a95313f7f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"X Min Needed: \"), flt_XMinNeeded, Translate(\"   X Min Limit: \"), flt_XMin);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1864 1 0 \"e2adc4f5_7170_4bbc_80fd0db885595867\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_XMinNeeded >= flt_XMin)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1865 1 0 \"355d78cc_0e47_4466_a8875b25e9b29e74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Y Max Needed: \"), flt_YMaxNeeded, Translate(\"   Y Max Limit: \"), flt_YMax);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1866 1 0 \"f47c3ed0_694d_472c_b8a6ed647fc8c944\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YMaxNeeded <= flt_YMax)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1867 1 0 \"3ee84421_1694_4502_8cd6b70eb2bcf637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Y Min Needed: \"), flt_YMinNeeded, Translate(\"   Y Min Limit: \"), flt_YMin);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1868 1 0 \"b8da1a23_c2fa_4584_80c67cc12fa74f21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YMinNeeded >= flt_YMin)\r\n{\r\n// }} \"\"\r\n// {{ 1869 1 0 \"03040b67_89fb_47f5_8942bc014976ac70\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StartZHeight = i_flt_ZClearanceHeight;\r\n// }} \"\"\r\n// {{ 1870 1 0 \"b8da1a23_c2fa_4584_80c67cc12fa74f21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1871 1 0 \"f47c3ed0_694d_472c_b8a6ed647fc8c944\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1872 1 0 \"e2adc4f5_7170_4bbc_80fd0db885595867\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1873 1 0 \"0f97ffc0_0872_4695_816fafc104667066\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1874 1 0 \"cd9184c8_c92d_4627_883513d7ee00b491\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1875 1 0 \"7a403be2_dda6_4363_8cf59a0c05ebcf3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1876 1 0 \"c06aef10_7fb7_46f5_91416e12adf8b41e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Z Start Height:  \"), o_flt_StartZHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1877 1 0 \"33d6606e_6745_41a6_b2ba92beeaecbb62\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bln_ChannelsAtCoordinate);\r\n// }} \"\"\r\n// {{{ 5 \"_DetermineStartZHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"__GetVolumeForSegmentHeight\" \"Begin\"\r\nprivate function __GetVolumeForSegmentHeight( variable i_int_ShapeNumber, variable i_flt_DiameterTop, variable i_flt_DiameterBottom, variable i_flt_Height, variable & o_flt_CurrentVolume ) void {\r\n// }} \"\"\r\nprivate variable w;\r\nprivate variable l;\r\nprivate variable m;\r\nprivate variable n;\r\nprivate variable flt_Pi;\r\nprivate variable r;\r\nprivate variable R;\r\n// {{ 5 \"__GetVolumeForSegmentHeight\" \"InitLocals\"\r\no_flt_CurrentVolume = 0;\r\n// }} \"\"\r\n// {{ 2706 1 0 \"2962f39d_652f_4b84_b56fe00ca2a7957c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Pi = 3.14159265359;\r\n// }} \"\"\r\n// {{ 2707 1 0 \"bc317783_091f_48c3_8123ffc8c75d440b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2708 1 0 \"f18bf410_1c23_4985_beea6104966d5224\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nm = 0;\r\n// }} \"\"\r\n// {{ 2709 1 0 \"5804c468_fb56_4c50_9a4f885850a50248\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = 0;\r\n// }} \"\"\r\n// {{ 2710 1 0 \"3d6942b4_cf96_4ed0_8ca4e0b206bd8bb7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nr = 0;\r\n// }} \"\"\r\n// {{ 2711 1 0 \"e3f575b1_9e68_4890_87bffbc9a2cf27d4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nR = 0;\r\n// }} \"\"\r\n// {{ 2712 1 0 \"8f6978c3_8415_40f7_ab56ed2dbb508ea3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nl = 0;\r\n// }} \"\"\r\n// {{ 2713 1 0 \"fe9906be_4756_4a1b_89b030d069b91b6c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nw = 0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Shape number:  \",i_int_ShapeNumber,\"  Top Diameter:  \",i_flt_DiameterTop,\"  Bottom Diameter:  \",i_flt_DiameterBottom,\"  Height:  \",i_flt_Height);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 2715 1 0 \"d688156f_be69_4736_bf9a303d653dfa82\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ShapeNumber == 0)\r\n{\r\n// }} \"\"\r\n// {{ 2716 1 0 \"e53f7b44_243f_490a_918eb6aa86584d58\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2717 1 0 \"8c61585e_a525_4783_a33ee8c9f867f89d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nr = i_flt_DiameterTop / (2 * 1.0);\r\n// }} \"\"\r\nm = r * r * flt_Pi;\r\n// {{ 2719 1 0 \"d1c6b5b4_20fa_4184_afd2bfe637990c0b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolume = m * i_flt_Height;\r\n// }} \"\"\r\n// {{{ 2720 1 0 \"ae7d37b5_35bd_4a5a_9c66b70a85f63cdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1);\r\n// }} \"\"\r\n// {{ 2721 1 0 \"d688156f_be69_4736_bf9a303d653dfa82\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2722 1 0 \"710e1284_bd28_4ad3_bf948544d316d2b4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ShapeNumber == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2723 1 0 \"e30a4264_2716_4d7a_bd8876cc71b7b1d2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2724 1 0 \"a42c0cf1_eb65_4c37_9991f06b4be7e2fa\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nm = i_flt_DiameterTop * i_flt_DiameterBottom;\r\n// }} \"\"\r\n// {{ 2725 1 0 \"463477b5_8ee9_44e7_a8aa5a676279e9ee\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolume = m * i_flt_Height;\r\n// }} \"\"\r\n// {{{ 2726 1 0 \"a2df9707_493d_4ea7_82f0458d32b90d9a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1);\r\n// }} \"\"\r\n// {{ 2727 1 0 \"710e1284_bd28_4ad3_bf948544d316d2b4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2728 1 0 \"dfd3e006_0b28_492d_b22fe9ada4a3c218\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ShapeNumber == 2)\r\n{\r\n// }} \"\"\r\n// {{ 2729 1 0 \"2521ce24_0563_4892_9787715d62aae493\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2730 1 0 \"4982ba4e_8f6f_44bd_95d0857f5abc860e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nr = i_flt_DiameterBottom / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 2731 1 0 \"3faaeafa_9dc6_4716_b4703a22b7d454f8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nR = i_flt_DiameterTop / (2 * 1.0);\r\n// }} \"\"\r\nm  = (flt_Pi/3) * (R*R + r*r + R*r);\r\n// {{ 2733 1 0 \"c5897afd_f9bd_4b85_99bd0285d2f274c2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolume = m * i_flt_Height;\r\n// }} \"\"\r\n// {{{ 2734 1 0 \"227f442f_0cde_4dce_a5bf9113cc600f52\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1);\r\n// }} \"\"\r\n// {{ 2735 1 0 \"dfd3e006_0b28_492d_b22fe9ada4a3c218\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2736 1 0 \"262aa4d3_2f11_4c5e_8628f6b5bd09490e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ShapeNumber == 3)\r\n{\r\n// }} \"\"\r\n// {{ 2737 1 0 \"82782dfb_a831_4acf_b942e17317dd9372\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2738 1 0 \"65bbd063_44c0_4e08_b8224295adbaac98\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nR = i_flt_DiameterTop / (2 * 1.0);\r\n// }} \"\"\r\n// {{ 2739 1 0 \"6385a5e0_0064_4b6e_abae5ed3259215e1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nr = i_flt_DiameterBottom / (2 * 1.0);\r\n// }} \"\"\r\nm  = (flt_Pi/3) * (R*R + r*r + R*r);\r\n// {{ 2741 1 0 \"ec6e7361_59f6_4d52_958732f0c83c5c40\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolume = m * i_flt_Height;\r\n// }} \"\"\r\n// {{{ 2742 1 0 \"47b1e2ef_a5fb_4d4f_b430e2f59999f91b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 4);\r\n// }} \"\"\r\n// {{ 2743 1 0 \"262aa4d3_2f11_4c5e_8628f6b5bd09490e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2744 1 0 \"556c6da7_acb1_406e_bfc186a67c248cd4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ShapeNumber == 4)\r\n{\r\n// }} \"\"\r\n// {{ 2745 1 0 \"6df034c5_c48d_457e_8b767f36ea901614\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2746 1 0 \"7090477e_7903_4364_be2d82e6667c0ca0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nr = i_flt_DiameterTop;\r\n// }} \"\"\r\nm = (flt_Pi*r)/2;\r\nn = (flt_Pi/3);\r\no_flt_CurrentVolume = i_flt_Height * i_flt_Height * m - n * i_flt_Height;\r\n// {{{ 2748 1 0 \"32c8a8d8_aecc_41d4_8efe7059369aca16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1);\r\n// }} \"\"\r\n// {{ 2749 1 0 \"556c6da7_acb1_406e_bfc186a67c248cd4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2750 1 0 \"905367cc_eefc_4603_bea1afc98bf6da1c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_ShapeNumber == 5)\r\n{\r\n// }} \"\"\r\n// {{ 2751 1 0 \"dec5c24e_4f7c_4e77_acc6d2a8c5d2394c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2752 1 0 \"09fd4e04_0bc1_4edb_86059a1caa2d8436\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nr = i_flt_DiameterTop / (2 * 1.0);\r\n// }} \"\"\r\nm = (flt_Pi * r * r) / 3;\r\n// {{ 2754 1 0 \"eeb365a1_55c3_4a89_8640c2dc1ec8c71b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CurrentVolume = m * i_flt_Height;\r\n// }} \"\"\r\n// {{{ 2755 1 0 \"680faad8_5fb0_4c4d_b472c586af53b9c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1);\r\n// }} \"\"\r\n// {{ 2756 1 0 \"905367cc_eefc_4603_bea1afc98bf6da1c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2757 1 0 \"0d018350_f0ad_4f72_b42e275cf640b485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1);\r\n// }} \"\"\r\n// {{{ 5 \"__GetVolumeForSegmentHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetHeightBasedOnVolume\" \"Begin\"\r\nprivate function _GetHeightBasedOnVolume( variable i_str_ContainerFilePath, variable i_flt_VolumeToCalculate, variable & o_flt_HeightWithVolume ) void {\r\n// }} \"\"\r\nprivate variable str_SearchValueMax;\r\nprivate variable flt_CurrentVolume;\r\nprivate variable flt_CheckHeight;\r\nprivate variable str_SearchValueShape;\r\nprivate variable i;\r\nprivate variable flt_Dx;\r\nprivate variable flt_Dy;\r\nprivate variable flt_MinimumVolume;\r\nprivate variable flt_TopDiameter;\r\nprivate variable flt_Dz;\r\nprivate variable int_SegmentNumber;\r\nprivate variable flt_BottomDiameter;\r\nprivate variable str_SearchValue1;\r\nprivate variable int_TotalSegments;\r\nprivate variable str_SearchValue2;\r\nprivate variable flt_CurrentMax;\r\nprivate variable str_SearchValue3;\r\nprivate variable bln_ValueFound;\r\nprivate variable a;\r\nprivate variable flt_CurrentHeight;\r\nprivate variable flt_Volume;\r\nprivate variable flt_Min;\r\nprivate variable flt_Max;\r\nprivate variable str_SearchValueMin;\r\nprivate variable str_Value;\r\nprivate variable int_Shape;\r\nprivate variable arr_BottomDiameter[];\r\nprivate variable arr_MinHeight[];\r\nprivate variable arr_TopDiameter[];\r\nprivate variable arr_MaxHeight[];\r\nprivate variable arr_Shape[];\r\n// {{ 5 \"_GetHeightBasedOnVolume\" \"InitLocals\"\r\no_flt_HeightWithVolume = 0;\r\n// }} \"\"\r\n// {{ 2004 1 0 \"3b7f07fa_aecb_41e3_bfc42a5886b77c7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_HeightWithVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2005 1 0 \"433165f0_f811_4bfb_89f3eb38cad508f9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalSegments = 0;\r\n// }} \"\"\r\n// {{ 2006 1 0 \"13695eb2_d39b_40ef_8f9ada6805580a7d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Value = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2007 1 0 \"fc8e66c1_3259_4c8e_a53134bec9575ce8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, Translate(\"Segments\"), str_Value);\r\n// }} \"\"\r\n// {{ 2008 1 0 \"d86ab83b_ea84_4447_a05551b75aa2d94c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2009 1 0 \"5afd8918_07ab_4861_89ce6afeb6350751\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalSegments = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 2010 1 0 \"d86ab83b_ea84_4447_a05551b75aa2d94c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2011 1 0 \"1b6b6a83_a311_44cd_9c943319934ffe63\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TopDiameter.SetSize(0);\r\n// }} \"\"\r\n// {{ 2012 1 0 \"eb6e5f3b_30a5_44a2_bf76189b1f793190\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_BottomDiameter.SetSize(0);\r\n// }} \"\"\r\n// {{ 2013 1 0 \"0b7f03c5_7142_474b_b53e659d96fb38f3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Shape.SetSize(0);\r\n// }} \"\"\r\n// {{ 2014 1 0 \"9d225040_a15b_49cd_89bfbb8cd5ba7f5a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_MinHeight.SetSize(0);\r\n// }} \"\"\r\n// {{ 2015 1 0 \"042478c5_86f5_4a62_a831921ac59e6c0b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_MaxHeight.SetSize(0);\r\n// }} \"\"\r\n// {{ 2016 1 0 \"9f6967a5_789b_42f8_aaf23da223360f17\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni = int_TotalSegments;\r\n// }} \"\"\r\n// {{ 2017 1 0 \"040c577c_b585_459e_b915a6ac6e54cbdc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(a = 0; a < int_TotalSegments;)\r\n{\r\na = a + 1;\r\n// }} \"\"\r\n// {{ 2018 1 0 \"410af040_7c49_4577_9c6fd762677e421d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Shape = -1;\r\n// }} \"\"\r\n// {{ 2019 1 0 \"c6688bd9_763c_40fa_ab1d6733e0b9e204\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Min = 0.0;\r\n// }} \"\"\r\n// {{ 2020 1 0 \"0e99cdd8_1272_4601_9bd3d9d4ee135107\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Max = 0.0;\r\n// }} \"\"\r\n// {{ 2021 1 0 \"a6ca21a2_59f0_40b3_abc25cf75b6cc9d3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Dx = 0.0;\r\n// }} \"\"\r\n// {{ 2022 1 0 \"b5bf2f6b_e3d6_44da_b8061d2f68910df0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Dy = 0.0;\r\n// }} \"\"\r\n// {{ 2023 1 0 \"059c9c6f_5160_4d79_89d654cb4f28ae5c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Dz = 0.0;\r\n// }} \"\"\r\n// {{ 2024 1 0 \"375fcabd_ff72_4596_bd3355f296e74ea4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = 0.0;\r\n// }} \"\"\r\n// {{ 2025 1 0 \"0dce5836_6b3f_4596_aa67ad22a4bfb868\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomDiameter = 0.0;\r\n// }} \"\"\r\n// {{{ 2026 1 0 \"e9b634b4_0797_454a_a54ac52c0151fbeb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValueShape = StrConcat2(i, Translate(\".Shape\"));\r\n// }} \"\"\r\n// {{{ 2027 1 0 \"5bb977ae_6c87_46e3_b2e747a6d12e6332\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValueMin = StrConcat2(i, Translate(\".Min\"));\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"772bfbfe_c38a_4b49_b7ba211ae1aca7b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValueMax = StrConcat2(i, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 2029 1 0 \"2f29d0a1_f2e6_4c29_bd6b40f3dbce8583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue1 = StrConcat2(i, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 2030 1 0 \"a4bbda0c_9663_485b_a4c0fa828693dc41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue2 = StrConcat2(i, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 2031 1 0 \"881ef103_cc64_4454_be98c39413ad7de6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue3 = StrConcat2(i, Translate(\".DZ\"));\r\n// }} \"\"\r\n// {{ 2032 1 0 \"ea8bdf65_91b1_4936_b07341a2d42e23b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2033 1 0 \"d80710f8_68d6_4f81_827b52e0aaaf1a55\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueShape, str_Value);\r\n// }} \"\"\r\n// {{ 2034 1 0 \"a8e48435_4e36_4c63_9a4788735835b6af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2035 1 0 \"ee2713c1_ed07_4067_90267e0791dd80a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Shape = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 2036 1 0 \"a8e48435_4e36_4c63_9a4788735835b6af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2037 1 0 \"b3b6d1b4_4a21_4079_952953769bea0a12\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape >= 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2038 1 0 \"5143facf_157a_4f8c_8d4fef6d1506aba6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueMin, str_Value);\r\n// }} \"\"\r\n// {{ 2039 1 0 \"dd214668_777e_41cb_aa7889bae6a9c766\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2040 1 0 \"792b433e_9838_4eef_abe0b0c12fc81488\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Min = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2041 1 0 \"dd214668_777e_41cb_aa7889bae6a9c766\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2042 1 0 \"804467c3_e372_493e_a7bd601b6a204bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueMax, str_Value);\r\n// }} \"\"\r\n// {{ 2043 1 0 \"93f59648_73ee_4de6_b74afbb9e743036c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2044 1 0 \"c8f84e3b_aa17_467a_b69006b18e5db976\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Max = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2045 1 0 \"93f59648_73ee_4de6_b74afbb9e743036c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2046 1 0 \"ea154c5c_18dc_485e_9af7228dedf785ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue1, str_Value);\r\n// }} \"\"\r\n// {{ 2047 1 0 \"e0e16b60_df10_41aa_a58aa4e89c49390b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2048 1 0 \"e0d0a99d_0eac_40ef_9b86bd2d638555ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Dx = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2049 1 0 \"e0e16b60_df10_41aa_a58aa4e89c49390b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2050 1 0 \"31103819_3077_4035_83da7d217c12fa7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue2, str_Value);\r\n// }} \"\"\r\n// {{ 2051 1 0 \"06e58e16_70db_4fe6_b9d4849063714590\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2052 1 0 \"4b20bdf8_5ee3_472f_94261b21a614ee3e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Dy = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2053 1 0 \"06e58e16_70db_4fe6_b9d4849063714590\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2054 1 0 \"cc7f3270_8c1c_479d_b2490d2e0469a794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue3, str_Value);\r\n// }} \"\"\r\n// {{ 2055 1 0 \"2406334c_5e18_4c6c_9a6836673087e72b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2056 1 0 \"19401050_e3d1_4745_a29abdbc8143fc1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Dz = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2057 1 0 \"2406334c_5e18_4c6c_9a6836673087e72b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2058 1 0 \"b3b6d1b4_4a21_4079_952953769bea0a12\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2059 1 0 \"ea8bdf65_91b1_4936_b07341a2d42e23b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2060 1 0 \"9a8ab989_65e8_4700_a01f3950bb4f48b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 0)\r\n{\r\n// }} \"\"\r\n// {{ 2061 1 0 \"0d40dd32_6e28_4e01_8a292e0489a0be91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dz;\r\n// }} \"\"\r\n// {{ 2062 1 0 \"9a8ab989_65e8_4700_a01f3950bb4f48b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2063 1 0 \"21421675_bad7_48ec_845e795d97cb2d58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2064 1 0 \"89678cef_4b97_4602_aac87b09d61e4d1a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dx;\r\n// }} \"\"\r\n// {{ 2065 1 0 \"2d66bdc5_8a1c_4f65_be96cd9fd1ff7c62\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomDiameter = flt_Dy;\r\n// }} \"\"\r\n// {{ 2066 1 0 \"21421675_bad7_48ec_845e795d97cb2d58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2067 1 0 \"58ea1f66_9d76_4816_83a6b7b990c1be20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 2)\r\n{\r\n// }} \"\"\r\n// {{ 2068 1 0 \"1bb37925_9bd6_4d29_9f6371f80d1b6009\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dx;\r\n// }} \"\"\r\n// {{ 2069 1 0 \"6faa45c4_70f1_422a_a64b7d888c82f293\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomDiameter = flt_Dy;\r\n// }} \"\"\r\n// {{ 2070 1 0 \"58ea1f66_9d76_4816_83a6b7b990c1be20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2071 1 0 \"0d0e396a_d69c_4690_a14b544507efef98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 3)\r\n{\r\n// }} \"\"\r\n// {{ 2072 1 0 \"53f7b3e5_9aa0_4ccc_adf1c5e5b7c806bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dx;\r\n// }} \"\"\r\n// {{ 2073 1 0 \"9fb79bf9_d1b7_4e8e_b26b3baa2fb0b60f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomDiameter = flt_Dy;\r\n// }} \"\"\r\n// {{ 2074 1 0 \"0d0e396a_d69c_4690_a14b544507efef98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2075 1 0 \"d6085439_daee_4cc4_9e4229cf1ea73357\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 4)\r\n{\r\n// }} \"\"\r\n// {{ 2076 1 0 \"6572cc4b_de12_4cbd_903365dc76a94e32\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dz;\r\n// }} \"\"\r\n// {{ 2077 1 0 \"d6085439_daee_4cc4_9e4229cf1ea73357\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2078 1 0 \"80c42f24_61ff_4781_a99ccc5703d52e15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 5)\r\n{\r\n// }} \"\"\r\n// {{ 2079 1 0 \"4c6a08b5_eac0_49f0_abfda615b2a3564c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dz;\r\n// }} \"\"\r\n// {{ 2080 1 0 \"80c42f24_61ff_4781_a99ccc5703d52e15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2081 1 0 \"f3ad7bfe_71cd_4ec3_930ec09725529657\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Shape.AddAsLast(int_Shape);\r\n// }} \"\"\r\n// {{ 2082 1 0 \"9fc92ea1_9f5d_484e_b64a6d4a74181a59\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MinHeight.AddAsLast(flt_Min);\r\n// }} \"\"\r\n// {{ 2083 1 0 \"2869dafd_faa1_4fdb_adc41d79c806040d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MaxHeight.AddAsLast(flt_Max);\r\n// }} \"\"\r\n// {{ 2084 1 0 \"98919c76_9b96_4c18_8e2158856e65a147\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TopDiameter.AddAsLast(flt_TopDiameter);\r\n// }} \"\"\r\n// {{ 2085 1 0 \"0e0768c4_4784_4624_be3c9b2d2859a2ee\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_BottomDiameter.AddAsLast(flt_BottomDiameter);\r\n// }} \"\"\r\n// {{ 2086 1 0 \"0e7c85bb_a298_42cc_97ae1cd863f9e6e0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni = i - 1;\r\n// }} \"\"\r\n// {{ 2087 1 0 \"040c577c_b585_459e_b915a6ac6e54cbdc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2088 1 0 \"f07e39b3_85b7_420d_849192894e7e4b1f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2089 1 0 \"abf9c185_47b3_4f72_8473c91841ddaa74\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2090 1 0 \"8bdd1bc0_86e3_46cb_8537a0c97514766b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2091 1 0 \"0b780a70_1a6b_4ad2_b52079959dab43d5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SegmentNumber = 0;\r\n// }} \"\"\r\n// {{ 2092 1 0 \"79adef7e_f0a3_4686_ba47b55767e07ee6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentMax = 0.0;\r\n// }} \"\"\r\n// {{ 2093 1 0 \"458e99be_543b_4b32_951fcdec636cdcc4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (BOOLEON::TRUE == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 2094 1 0 \"7fc71712_5e4f_4ed1_a1234027fc5bb9e8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentVolume >= i_flt_VolumeToCalculate)\r\n{\r\n// }} \"\"\r\n// {{ 2095 1 0 \"7da8d9ea_1bc9_4257_b6b73f9b27b9617c\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2096 1 0 \"7fc71712_5e4f_4ed1_a1234027fc5bb9e8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2097 1 0 \"0643bab3_9336_4954_b2260bce382515ee\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = flt_CurrentHeight + 0.1;\r\n// }} \"\"\r\n// {{ 2098 1 0 \"5afc4395_5f14_4ced_bae3ec0f547efad9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentHeight > flt_CurrentMax)\r\n{\r\n// }} \"\"\r\n// {{ 2099 1 0 \"2e1d9f37_c932_458d_989acde272a1ab68\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SegmentNumber = int_SegmentNumber + 1;\r\n// }} \"\"\r\n// {{ 2100 1 0 \"baecae3a_03f5_4056_965895546e28350b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumVolume = flt_CurrentVolume;\r\n// }} \"\"\r\n// {{ 2101 1 0 \"685c5cab_0a27_41c1_babdd0d969ae51ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SegmentNumber > int_TotalSegments)\r\n{\r\n// }} \"\"\r\n// {{ 2102 1 0 \"7aabc365_fbea_4d3e_a10fc88df75f425a\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2103 1 0 \"685c5cab_0a27_41c1_babdd0d969ae51ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2104 1 0 \"5afc4395_5f14_4ced_bae3ec0f547efad9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2105 1 0 \"08112fd1_4478_496d_b952f7423ab2eeab\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentMax=arr_MaxHeight.GetAt(int_SegmentNumber-1);\r\n// }} \"\"\r\n// {{ 2106 1 0 \"c34558be_4878_4808_bed2359dd342ff17\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CheckHeight = flt_CurrentHeight - arr_MinHeight.ElementAt( int_SegmentNumber -1);\r\n// }} \"\"\r\n// {{{ 2107 1 0 \"d4dae74f_3360_4d89_a79f21444f15867b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__GetVolumeForSegmentHeight(arr_Shape.ElementAt( int_SegmentNumber -1), arr_TopDiameter.ElementAt( int_SegmentNumber -1), arr_BottomDiameter.ElementAt( int_SegmentNumber -1), flt_CheckHeight, flt_Volume);\r\n// }} \"\"\r\n// {{ 2108 1 0 \"615c958a_bde3_47b5_97a2a5bf76338a7c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentVolume = flt_MinimumVolume + flt_Volume;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Current Height:  \",flt_CurrentHeight,\"  Current Volume:  \",flt_CurrentVolume);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 2110 1 0 \"458e99be_543b_4b32_951fcdec636cdcc4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2111 1 0 \"c90bcfb4_40de_4125_a42c989f5f38b12e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_HeightWithVolume = flt_CurrentHeight;\r\n// }} \"\"\r\n// {{{ 2112 1 0 \"8b41bb0f_4f13_454b_8ecc31c7fd9d2115\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_HeightWithVolume = MthRound(o_flt_HeightWithVolume, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_GetHeightBasedOnVolume\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_CalculateLiquidFollowDistance\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable flt_StartVolume;\r\nprivate variable flt_VolumeRemaining;\r\nprivate variable flt_EndHeight;\r\nprivate variable str_ConfigFile;\r\n// {{ 5 \"_CalculateLiquidFollowDistance\" \"InitLocals\"\r\no_flt_FollowDistance = 0;\r\n// }} \"\"\r\n// {{{ 1674 1 0 \"cee8dade_30c2_4bcf_8ac390a962aec585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, i_str_LabID, i_str_PosID, str_ConfigFile);\r\n// }} \"\"\r\n// {{ 1675 1 0 \"8257cf5e_fc7d_4dbd_9096f898f0f34ac3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_FollowDistance = 0.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1676 1 0 \"d885204d_46d4_46d3_a4055a1d615d3a9d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StartVolume = flt_StartVolume * 1000.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1677 1 0 \"1a667183_45cd_4cbc_afb5855418e55d58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_AspirateMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1678 1 0 \"e0f1306a_8287_4bb2_b2e6af2110a06412\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_StartVolume = DevComputeContainerVolume(ML_STAR, i_str_LabID, i_str_PosID, i_flt_StartHeight, BOOLEON::FALSE);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1679 1 0 \"9f02fb65_2b86_4b12_b4d39a8c29169ec3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ConfigFile, i_flt_StartHeight, flt_StartVolume);\r\n// }} \"\"\r\n// {{ 1680 1 0 \"270c4e98_1419_40d7_979cc404f038da5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_VolumeToRemove > flt_StartVolume)\r\n{\r\n// }} \"\"\r\n// {{ 1681 1 0 \"2e6e4ab7_92bb_459c_9ee515cf0e01de68\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_FollowDistance = i_flt_StartHeight;\r\n// }} \"\"\r\n// {{{ 1682 1 0 \"47925c34_d875_4d12_9dac8ba9b03f983d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 1683 1 0 \"270c4e98_1419_40d7_979cc404f038da5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1684 1 0 \"d8e8e9d3_e0ab_4cff_acf3c4257785c060\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeRemaining = flt_StartVolume + i_flt_VolumeToRemove;\r\n// }} \"\"\r\n// {{{ 1685 1 0 \"2169d61c_8b57_4cd5_a55fb1e39c44d498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightBasedOnVolume(str_ConfigFile, flt_VolumeRemaining, flt_EndHeight);\r\n// }} \"\"\r\n// {{ 1686 1 0 \"c06c73cf_3eb5_47e4_99576fdc065edfc4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_FollowDistance = i_flt_StartHeight - flt_EndHeight;\r\n// }} \"\"\r\n// {{ 1687 1 0 \"1a667183_45cd_4cbc_afb5855418e55d58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1688 1 0 \"5883c907_31c1_4678_92c9671529754960\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_StartVolume = DevComputeContainerVolume(ML_STAR, i_str_LabID, i_str_PosID, i_flt_StartHeight, BOOLEON::FALSE);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1689 1 0 \"82f80289_1645_4b99_80577db03febba19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ConfigFile, i_flt_StartHeight, flt_StartVolume);\r\n// }} \"\"\r\n// {{ 1690 1 0 \"4a16f55f_b185_470f_9230a45c9e35a166\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeRemaining = flt_StartVolume + i_flt_VolumeToRemove;\r\n// }} \"\"\r\n// {{{ 1691 1 0 \"80af49a1_a6a0_4c6b_87e2780a16395de4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightBasedOnVolume(str_ConfigFile, flt_VolumeRemaining, flt_EndHeight);\r\n// }} \"\"\r\n// {{ 1692 1 0 \"4691eb21_b7f6_403d_9db2a63e4d7dfe60\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_FollowDistance = flt_EndHeight - i_flt_StartHeight;\r\n// }} \"\"\r\n// {{ 1693 1 0 \"1a667183_45cd_4cbc_afb5855418e55d58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1694 1 0 \"01cccdf8_b767_4295_8558bd2b30383d13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Start Volume:  \"), flt_StartVolume, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"2e493943_add7_433c_aac78d75181aaf22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Start Height:  \"), i_flt_StartHeight, Translate(\" mm\"));\r\n// }} \"\"\r\n// {{{ 1696 1 0 \"da5fe0a8_0444_4d0d_b5999618d8af7f6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"End Volume:  \"), flt_VolumeRemaining, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{{ 1697 1 0 \"826a0fec_b0fe_4dfc_97a511e19bf3a2ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"End Height:  \"), flt_EndHeight, Translate(\" mm\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1698 1 0 \"01e5fea5_8cae_437b_a24bf618878519d4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_flt_FollowDistance < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1699 1 0 \"f992bc1a_3ff4_48db_9422a41352c7a5aa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_FollowDistance = 0.0;\r\n// }} \"\"\r\n// {{ 1700 1 0 \"01e5fea5_8cae_437b_a24bf618878519d4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1701 1 0 \"5371ad89_5bfd_4a12_8d7e682819414475\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Follow distance:  \"), o_flt_FollowDistance, Translate(\" mm\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"_CalculateLiquidFollowDistance\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetVolumeBasedOnHeight\" \"Begin\"\r\nprivate function _GetVolumeBasedOnHeight( variable i_str_ContainerFilePath, variable i_flt_HeightToCalculate, variable & o_flt_VolumeFromHeight ) void {\r\n// }} \"\"\r\nprivate variable str_SearchValueMax;\r\nprivate variable flt_CurrentVolume;\r\nprivate variable flt_CheckHeight;\r\nprivate variable str_SearchValueShape;\r\nprivate variable flt_Dx;\r\nprivate variable i;\r\nprivate variable flt_Dy;\r\nprivate variable flt_TopDiameter;\r\nprivate variable flt_MinimumVolume;\r\nprivate variable flt_Dz;\r\nprivate variable flt_BottomDiameter;\r\nprivate variable int_SegmentNumber;\r\nprivate variable str_SearchValue1;\r\nprivate variable int_TotalSegments;\r\nprivate variable str_SearchValue2;\r\nprivate variable flt_CurrentMax;\r\nprivate variable str_SearchValue3;\r\nprivate variable a;\r\nprivate variable bln_ValueFound;\r\nprivate variable flt_CurrentHeight;\r\nprivate variable flt_Volume;\r\nprivate variable flt_Min;\r\nprivate variable str_SearchValueMin;\r\nprivate variable flt_Max;\r\nprivate variable int_Shape;\r\nprivate variable str_Value;\r\nprivate variable arr_BottomDiameter[];\r\nprivate variable arr_MinHeight[];\r\nprivate variable arr_TopDiameter[];\r\nprivate variable arr_MaxHeight[];\r\nprivate variable arr_Shape[];\r\n// {{ 5 \"_GetVolumeBasedOnHeight\" \"InitLocals\"\r\no_flt_VolumeFromHeight = 0;\r\n// }} \"\"\r\n// {{ 2434 1 0 \"310877a0_a056_42a4_a03f31cfc1a2bfd5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_VolumeFromHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2435 1 0 \"ca0a636c_8697_4abd_ade6693c74cf11e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalSegments = 0;\r\n// }} \"\"\r\n// {{ 2436 1 0 \"3dc577bc_61c3_46bb_88f3ebc5bb23d996\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Value = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2437 1 0 \"d4031cac_0cce_45e5_99d61b535382c413\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, Translate(\"Segments\"), str_Value);\r\n// }} \"\"\r\n// {{ 2438 1 0 \"d68df31a_4c69_4364_a2a82100b9759a28\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2439 1 0 \"70a535cc_b6f9_44ee_b6fc6abc22be7453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalSegments = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 2440 1 0 \"d68df31a_4c69_4364_a2a82100b9759a28\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2441 1 0 \"eaf29d03_394f_4448_8643ed400315a948\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TopDiameter.SetSize(0);\r\n// }} \"\"\r\n// {{ 2442 1 0 \"e8037ae1_a025_4df3_b2ca9b7abbab6324\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_BottomDiameter.SetSize(0);\r\n// }} \"\"\r\n// {{ 2443 1 0 \"f74fa1d3_209b_42ee_8541e13050d79b28\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Shape.SetSize(0);\r\n// }} \"\"\r\n// {{ 2444 1 0 \"5080a430_ef59_4bf2_95f1a164de8e05df\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_MinHeight.SetSize(0);\r\n// }} \"\"\r\n// {{ 2445 1 0 \"4100f791_f1e7_4c82_8533a770cf83137d\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_MaxHeight.SetSize(0);\r\n// }} \"\"\r\n// {{ 2446 1 0 \"83895b5e_0a37_40a9_b7f1169b44ef62bd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ni = int_TotalSegments;\r\n// }} \"\"\r\n// {{ 2447 1 0 \"3ba77a87_98b6_4b48_a132ab4db2a20f20\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(a = 0; a < int_TotalSegments;)\r\n{\r\na = a + 1;\r\n// }} \"\"\r\n// {{ 2448 1 0 \"a6e8fb4c_c9a8_4d00_a46e31a4f299ce6d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Shape = -1;\r\n// }} \"\"\r\n// {{ 2449 1 0 \"6304dc2c_0cd3_430b_a0ed04f2594576c7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Min = 0.0;\r\n// }} \"\"\r\n// {{ 2450 1 0 \"a7e456cc_f749_4ec6_bec9c46c73bdd581\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Max = 0.0;\r\n// }} \"\"\r\n// {{ 2451 1 0 \"5dd6fbf6_3fcd_4ee8_900dfba5ac5f3f28\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Dx = 0.0;\r\n// }} \"\"\r\n// {{ 2452 1 0 \"4be7a2a8_5673_455f_adede9ab672b8e23\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Dy = 0.0;\r\n// }} \"\"\r\n// {{ 2453 1 0 \"1ebf424c_4e98_4410_b8931381c601d649\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Dz = 0.0;\r\n// }} \"\"\r\n// {{ 2454 1 0 \"c41f4fba_30fb_4f0f_a8460a7dfdd9ecba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = 0.0;\r\n// }} \"\"\r\n// {{ 2455 1 0 \"514bd6ac_cc03_4957_ba1ce8980a5f445c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomDiameter = 0.0;\r\n// }} \"\"\r\n// {{{ 2456 1 0 \"8e72dc8b_9c15_422a_a5876dfbeda3219d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValueShape = StrConcat2(i, Translate(\".Shape\"));\r\n// }} \"\"\r\n// {{{ 2457 1 0 \"68e469b2_d452_4ce2_81cbac993d092eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValueMin = StrConcat2(i, Translate(\".Min\"));\r\n// }} \"\"\r\n// {{{ 2458 1 0 \"cdfa6d68_311e_48ec_8619f376268a9989\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValueMax = StrConcat2(i, Translate(\".Max\"));\r\n// }} \"\"\r\n// {{{ 2459 1 0 \"d03c6375_8f2a_4269_b08339e694e08d1e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue1 = StrConcat2(i, Translate(\".DX\"));\r\n// }} \"\"\r\n// {{{ 2460 1 0 \"a0c9c464_2526_4582_b14ccddbe25f4463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue2 = StrConcat2(i, Translate(\".DY\"));\r\n// }} \"\"\r\n// {{{ 2461 1 0 \"157d6ccc_2c92_460c_b4ad8226cedb3f38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SearchValue3 = StrConcat2(i, Translate(\".DZ\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Search Values:  \",str_SearchValue1,\"   \",str_SearchValue2,\"   \",str_SearchValue3);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 2463 1 0 \"6c126f74_b332_4772_88b1cec590cb5c4d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2464 1 0 \"3196b0f4_62b0_4947_b6e2f5eba826ceff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueShape, str_Value);\r\n// }} \"\"\r\n// {{ 2465 1 0 \"6e0b8b53_d60d_44be_aa8dbf322b1c4bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2466 1 0 \"02b7659f_b446_4a9b_aceaa7b2136fe538\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Shape = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 2467 1 0 \"6e0b8b53_d60d_44be_aa8dbf322b1c4bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2468 1 0 \"67579271_f747_4379_b0f551034fc25d90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape >= 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2469 1 0 \"31c6b2a1_19c9_4894_908ad3633fcda125\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueMin, str_Value);\r\n// }} \"\"\r\n// {{ 2470 1 0 \"33bc8d7a_4aec_4330_93b3b814b9e46aa0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2471 1 0 \"b1da4824_0c40_4728_b611701336936fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Min = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2472 1 0 \"33bc8d7a_4aec_4330_93b3b814b9e46aa0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2473 1 0 \"d7ed71b8_f18f_4877_8bae144ca3654d27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueMax, str_Value);\r\n// }} \"\"\r\n// {{ 2474 1 0 \"e33babe2_d295_48df_a9d69a9968414c88\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2475 1 0 \"f8ed1c12_d844_43f2_89a74ffc62b21258\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Max = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2476 1 0 \"e33babe2_d295_48df_a9d69a9968414c88\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2477 1 0 \"32f25600_08d2_4a3f_9891b8ed5080033e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue1, str_Value);\r\n// }} \"\"\r\n// {{ 2478 1 0 \"524b252c_a76d_4edc_8e2e64c31868bd14\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2479 1 0 \"c6a7a030_624f_4ca8_adb920dec8964e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Dx = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2480 1 0 \"524b252c_a76d_4edc_8e2e64c31868bd14\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2481 1 0 \"9a7d2a8f_a00e_4778_a589cf5e0d15ad3e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue2, str_Value);\r\n// }} \"\"\r\n// {{ 2482 1 0 \"1f235323_da72_4c85_9562057e560fe30c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2483 1 0 \"85bd18d6_c28a_49e6_a4f3b5ae7cf6b92e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Dy = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2484 1 0 \"1f235323_da72_4c85_9562057e560fe30c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2485 1 0 \"9518eded_a356_4b5b_9bb57b3a197949c9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue3, str_Value);\r\n// }} \"\"\r\n// {{ 2486 1 0 \"b01502d1_1e2c_4aaa_89700648f88b9045\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2487 1 0 \"5deffef5_df91_4a69_bb7c0eb17ce36f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Dz = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2488 1 0 \"b01502d1_1e2c_4aaa_89700648f88b9045\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2489 1 0 \"67579271_f747_4379_b0f551034fc25d90\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2490 1 0 \"6c126f74_b332_4772_88b1cec590cb5c4d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2491 1 0 \"6d1d91ce_d097_4867_9c7f821ad2d3b113\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 0)\r\n{\r\n// }} \"\"\r\n// {{ 2492 1 0 \"beabb169_44e3_4d54_906357e570bb5561\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dz;\r\n// }} \"\"\r\n// {{ 2493 1 0 \"6d1d91ce_d097_4867_9c7f821ad2d3b113\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2494 1 0 \"dcf574fd_314e_4d0e_94d133f822f4f958\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2495 1 0 \"7d00510c_f2ca_448c_ac0d03d033b929f2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dx;\r\n// }} \"\"\r\n// {{ 2496 1 0 \"a7aa9122_030e_4dd0_9dcd91bc1a1d899d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomDiameter = flt_Dy;\r\n// }} \"\"\r\n// {{ 2497 1 0 \"dcf574fd_314e_4d0e_94d133f822f4f958\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2498 1 0 \"96fc0c13_af61_406e_bb0c9eaf81f826f0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 2)\r\n{\r\n// }} \"\"\r\n// {{ 2499 1 0 \"b077ed05_f713_4cee_a227287b5999dc21\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dx;\r\n// }} \"\"\r\n// {{ 2500 1 0 \"3cf6f45a_1403_4a3f_87977560506ea4e5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomDiameter = flt_Dy;\r\n// }} \"\"\r\n// {{ 2501 1 0 \"96fc0c13_af61_406e_bb0c9eaf81f826f0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2502 1 0 \"3170b54d_f0ab_4afe_86e5c6c91d6232cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 3)\r\n{\r\n// }} \"\"\r\n// {{ 2503 1 0 \"9a04824e_f8c1_4531_adf88586b6ad8cdc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dx;\r\n// }} \"\"\r\n// {{ 2504 1 0 \"e15550f2_c94d_4c18_9e79ea06baccb122\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomDiameter = flt_Dy;\r\n// }} \"\"\r\n// {{ 2505 1 0 \"3170b54d_f0ab_4afe_86e5c6c91d6232cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2506 1 0 \"9672a3b3_d367_45b9_beee7751f1e26213\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 4)\r\n{\r\n// }} \"\"\r\n// {{ 2507 1 0 \"b3d17f48_6521_4723_8c85329bde1b8bac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dz;\r\n// }} \"\"\r\n// {{ 2508 1 0 \"9672a3b3_d367_45b9_beee7751f1e26213\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2509 1 0 \"05f8fe9d_511b_4130_a5001384a915303e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Shape == 5)\r\n{\r\n// }} \"\"\r\n// {{ 2510 1 0 \"93d84481_c231_4235_96b33454598ba0a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopDiameter = flt_Dz;\r\n// }} \"\"\r\n// {{ 2511 1 0 \"05f8fe9d_511b_4130_a5001384a915303e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2512 1 0 \"ca71c6d0_0762_42f3_b43f2e726a98903e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Shape.AddAsLast(int_Shape);\r\n// }} \"\"\r\n// {{ 2513 1 0 \"455d3478_c0f3_4800_8d9853b80b122ba8\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MinHeight.AddAsLast(flt_Min);\r\n// }} \"\"\r\n// {{ 2514 1 0 \"21eaec6f_638b_425f_8823d6fe85f09385\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MaxHeight.AddAsLast(flt_Max);\r\n// }} \"\"\r\n// {{ 2515 1 0 \"3f80e9cf_f2ec_4cc3_ace175b5bf1e3574\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TopDiameter.AddAsLast(flt_TopDiameter);\r\n// }} \"\"\r\n// {{ 2516 1 0 \"e0e49af4_ece2_4849_966f7b4f836b7aeb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_BottomDiameter.AddAsLast(flt_BottomDiameter);\r\n// }} \"\"\r\n// {{ 2517 1 0 \"7e179a9a_2bc2_41d8_84ef0c885540da70\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni = i - 1;\r\n// }} \"\"\r\n// {{ 2518 1 0 \"3ba77a87_98b6_4b48_a132ab4db2a20f20\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2519 1 0 \"550dd227_b2f5_412d_b2faaad16bb31c04\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2520 1 0 \"0819498f_bbb9_4f50_9bd9174a477f7e31\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2521 1 0 \"a64310f1_6901_4281_ac1b96c9d8fcc7e6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2522 1 0 \"0f532515_145d_4b84_a37b440ee80ddd2b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SegmentNumber = 0;\r\n// }} \"\"\r\n// {{ 2523 1 0 \"48105dc0_0f21_4089_99b58f53010260c0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentMax = 0.0;\r\n// }} \"\"\r\n// {{ 2524 1 0 \"efd67301_d17b_47ee_94956e69a49fc9a7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (BOOLEON::TRUE == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 2525 1 0 \"97dc4464_6e0d_4a23_b26369cf3771f795\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentHeight >= i_flt_HeightToCalculate)\r\n{\r\n// }} \"\"\r\n// {{ 2526 1 0 \"b6dab12c_7038_4538_acc880baec3da876\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2527 1 0 \"97dc4464_6e0d_4a23_b26369cf3771f795\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2528 1 0 \"f0edea11_e722_4a58_a5fc58fb4c16f82a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = flt_CurrentHeight + 0.1;\r\n// }} \"\"\r\n// {{ 2529 1 0 \"06a2aba7_5e7e_43c5_b9f725def4f81a59\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentHeight > flt_CurrentMax)\r\n{\r\n// }} \"\"\r\n// {{ 2530 1 0 \"bd6cd05c_234c_4c59_92544f43d41c058c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_SegmentNumber = int_SegmentNumber + 1;\r\n// }} \"\"\r\n// {{ 2531 1 0 \"6bd01fce_2bcf_4f36_b22af91f532bf598\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumVolume = flt_CurrentVolume;\r\n// }} \"\"\r\n// {{ 2532 1 0 \"c4c6b25d_9953_4f25_964b3bcd3193fe07\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SegmentNumber > int_TotalSegments)\r\n{\r\n// }} \"\"\r\n// {{ 2533 1 0 \"efb17e1e_b635_4949_b89c2617e533b5c6\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2534 1 0 \"c4c6b25d_9953_4f25_964b3bcd3193fe07\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2535 1 0 \"06a2aba7_5e7e_43c5_b9f725def4f81a59\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2536 1 0 \"7c6c3e8a_7116_4a69_a46e3cd8354a510e\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentMax=arr_MaxHeight.GetAt(int_SegmentNumber-1);\r\n// }} \"\"\r\n// {{ 2537 1 0 \"846c9ee1_dbc9_4406_a47e969c130c168b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CheckHeight = flt_CurrentHeight - arr_MinHeight.ElementAt( int_SegmentNumber -1);\r\n// }} \"\"\r\n// {{{ 2538 1 0 \"24c1010c_d383_4a6e_98554fbe62af83b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n__GetVolumeForSegmentHeight(arr_Shape.ElementAt( int_SegmentNumber -1), arr_TopDiameter.ElementAt( int_SegmentNumber -1), arr_BottomDiameter.ElementAt( int_SegmentNumber -1), flt_CheckHeight, flt_Volume);\r\n// }} \"\"\r\n// {{ 2539 1 0 \"217182e5_b91f_4193_b99377499cf8efdb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentVolume = flt_MinimumVolume + flt_Volume;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Current Height:  \",flt_CurrentHeight,\"  Current Volume:  \",flt_CurrentVolume);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 2541 1 0 \"efd67301_d17b_47ee_94956e69a49fc9a7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2542 1 0 \"fa383c86_bb2b_4ca7_95b944e8024b3dee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_VolumeFromHeight = flt_CurrentVolume;\r\n// }} \"\"\r\n// {{{ 2543 1 0 \"e7184a20_7917_48c5_af2a271adda81d7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_VolumeFromHeight = MthRound(o_flt_VolumeFromHeight, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_GetVolumeBasedOnHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLiquidFollowingForAllChannels\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable flt_LiquidFollow;\r\nprivate variable str_LabID;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_ChannelIndex;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalInSeq;\r\nprivate variable int_Value;\r\n// {{ 5 \"_GetLiquidFollowingForAllChannels\" \"InitLocals\"\r\no_arr_LiquidFollowingDistance.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 2309 1 0 \"94063077_2a57_45a5_9dea7d40cfd2db13\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{ 2310 1 0 \"6825d597_1532_4c4b_ba34d8fb8c2e4eb7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_Aspirate == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 2311 1 0 \"cfcac569_afa0_4ccc_b2f6ffe074120afe\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_flt_VolumeToUse = i_flt_VolumeToUse * -1;\r\n// }} \"\"\r\n// {{ 2312 1 0 \"6825d597_1532_4c4b_ba34d8fb8c2e4eb7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2313 1 0 \"60abee57_c8c1_4fbe_825b8f18de7eeed4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_LiquidFollowingDistance.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2314 1 0 \"dcc3b4c2_09af_4966_9718440494a15869\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalInSeq = SeqGetTotal(i_seq_PositionsToCalculate);\r\n// }} \"\"\r\n// {{ 2315 1 0 \"9e7ec2d0_c501_4b21_a28ba2e39618c507\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 2316 1 0 \"36650e1d_5e33_4a6f_8cafc41bc5bdb75c\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_PositionsToCalculate.SetCurrentPosition(int_ChannelIndex);\r\n// }} \"\"\r\n// {{{ 2317 1 0 \"0b9f364a_444e_4e36_965a0caa2256bed5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChannelIndex, int_Value);\r\n// }} \"\"\r\n// {{ 2318 1 0 \"c6b65f00_7100_48a7_8ba502046afabe40\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2319 1 0 \"567fecfc_be74_4e86_8268e15cb7ab6b4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelIndex <= int_TotalInSeq)\r\n{\r\n// }} \"\"\r\n// {{{ 2320 1 0 \"1a7bff4d_9f79_4e50_b2fdce70d8eba802\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_PositionsToCalculate);\r\n// }} \"\"\r\n// {{{ 2321 1 0 \"1c7184b3_88c7_42c9_8f6034cea7dd5644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_PositionsToCalculate);\r\n// }} \"\"\r\n// {{ 2322 1 0 \"bf559173_4f7d_4c9a_918d83a77e262dd2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_LiquidFollowingEnabled == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2323 1 0 \"35abdc8f_43cb_48ac_8771f1dafb65aedd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalculateLiquidFollowDistance(ML_STAR, str_LabID, str_PosID, i_arr_FixedHeights.ElementAt( int_ChannelIndex -1), i_flt_VolumeToUse, i_bln_Aspirate, flt_LiquidFollow);\r\n// }} \"\"\r\n// {{ 2324 1 0 \"bf559173_4f7d_4c9a_918d83a77e262dd2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2325 1 0 \"d5ecd557_7b9d_4caa_9f387d6d9f116094\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = 0.0;\r\n// }} \"\"\r\n// {{ 2326 1 0 \"bf559173_4f7d_4c9a_918d83a77e262dd2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2327 1 0 \"567fecfc_be74_4e86_8268e15cb7ab6b4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2328 1 0 \"d66a0a1c_93f1_4e78_b280464d82bb6bee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = 0.0;\r\n// }} \"\"\r\n// {{ 2329 1 0 \"567fecfc_be74_4e86_8268e15cb7ab6b4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2330 1 0 \"f744c73a_93df_41d0_94ab0f745aa885eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_LiquidFollow = MthRound(flt_LiquidFollow, 1);\r\n// }} \"\"\r\n// {{ 2331 1 0 \"c6b65f00_7100_48a7_8ba502046afabe40\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2332 1 0 \"ba294a26_1e03_4263_a55e0336b1fc63d7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = 0.0;\r\n// }} \"\"\r\n// {{ 2333 1 0 \"c6b65f00_7100_48a7_8ba502046afabe40\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2334 1 0 \"d142b0ed_e515_4b48_939b602e3201705c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_LiquidFollowingDistance.AddAsLast(flt_LiquidFollow);\r\n// }} \"\"\r\n// {{ 2335 1 0 \"9e7ec2d0_c501_4b21_a28ba2e39618c507\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLiquidFollowingForAllChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ApplyOffsetToArrayofValues\" \"Begin\"\r\nprivate function _ApplyOffsetToArrayofValues( variable & i_arr_Values[], variable i_flt_Offset, variable & o_arr_AdjustedValues[] ) void {\r\n// }} \"\"\r\nprivate variable int_TotalChannels;\r\nprivate variable int_ChannelIndex;\r\nprivate variable flt_NewValue;\r\n// {{ 5 \"_ApplyOffsetToArrayofValues\" \"InitLocals\"\r\no_arr_AdjustedValues.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1667 1 0 \"0bae8f1b_f66f_4b55_870dbe5d15216391\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_AdjustedValues.SetSize(0);\r\n// }} \"\"\r\n// {{ 1668 1 0 \"474376b2_e405_46b7_9493f83a471b3869\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalChannels=i_arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 1669 1 0 \"5534d8c3_421a_47f5_a1dbb1da81adc6f0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 1670 1 0 \"13b571c6_6f1f_4233_afa10add353fb6ea\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewValue = i_arr_Values.ElementAt( int_ChannelIndex -1) + i_flt_Offset;\r\n// }} \"\"\r\n// {{ 1671 1 0 \"ac912414_9e42_442d_b5792c9a1a18c5ff\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_AdjustedValues.AddAsLast(flt_NewValue);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"5534d8c3_421a_47f5_a1dbb1da81adc6f0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ApplyOffsetToArrayofValues\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLiquidClassParams\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable str_LiquidName;\r\nprivate variable int_TipType;\r\nprivate variable str_DispenseMode;\r\n// {{ 5 \"_GetLiquidClassParams\" \"InitLocals\"\r\no_flt_FlowRate = 0;\r\no_flt_MixFlowRate = 0;\r\no_flt_AirTransportVolume = 0;\r\no_flt_BlowoutVolume = 0;\r\no_flt_SwapSpeed = 0;\r\no_int_SettlingTime = 0;\r\no_flt_OverAspVolume = 0;\r\no_flt_ClotRetractHeight = 0;\r\no_flt_StopFlowRate = 0;\r\no_flt_StopBackVolume = 0;\r\no_flt_MaxVolume = 0;\r\no_int_DispenseMode = 0;\r\no_arr_CorrectionCurveX.SetSize( 0);\r\no_arr_CorrectionCurveY.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2262 1 0 \"2453ebcf_bd9c_47cf_988faa25fe0e1763\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_AirTransportVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2263 1 0 \"964832dc_255b_47d0_95b0182dd023cae9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_BlowoutVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2264 1 0 \"cdfdf9b0_df3d_4894_bf6d53de491b8d2c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ClotRetractHeight = 0.0;\r\n// }} \"\"\r\n// {{{ 2265 1 0 \"37d5cd05_4581_4e75_8793accda87e9a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Liquid Class:  \"), i_str_LiquidClass);\r\n// }} \"\"\r\n// {{ 2266 1 0 \"440b3194_eaa0_4abb_af67e7974bb44257\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_FlowRate = 0.0;\r\n// }} \"\"\r\n// {{ 2267 1 0 \"1d26e89f_dd0b_4c85_acb570ccd6222e9e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MixFlowRate = 0.0;\r\n// }} \"\"\r\n// {{ 2268 1 0 \"fa99a00e_91c4_4c7f_b6b18ceeb3a008fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_OverAspVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2269 1 0 \"5de256cd_2dcb_4f65_8fda97e48204617f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StopBackVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2270 1 0 \"2c32f5ab_a37f_40c8_a953422592285f40\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StopFlowRate = 0.0;\r\n// }} \"\"\r\n// {{ 2271 1 0 \"f3abfae8_4dad_4554_b881e24e8b148933\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_SwapSpeed = 0.0;\r\n// }} \"\"\r\n// {{ 2272 1 0 \"47b63014_adce_441a_ac38ffb898c4d50b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_SettlingTime = 0;\r\n// }} \"\"\r\n// {{ 2273 1 0 \"3a5cce18_39f6_47cd_bb1d920005264b08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_MaxVolume = 0.0;\r\n// }} \"\"\r\n// {{ 2274 1 0 \"9dc93cbf_17f2_4c65_b0761fdb14591344\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_CorrectionCurveX.SetSize(0);\r\n// }} \"\"\r\n// {{ 2275 1 0 \"562eb4f5_2fdd_4e73_ae4ec5120ea1a095\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_CorrectionCurveY.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2276 1 0 \"ad491e2c_620e_4f59_957994df76d90b87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMLSTAR_LIQUIDCLASSLib::Initialize(BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 2277 1 0 \"eac32921_0d3f_4591_a403f53cfc7b6cd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMLSTAR_LIQUIDCLASSLib::SelectLiquidClass(i_str_LiquidClass);\r\n// }} \"\"\r\n// {{{ 2278 1 0 \"a2907b51_776c_4ecb_b0abfd381b4723f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMLSTAR_LIQUIDCLASSLib::GetCorrectionCurve(o_arr_CorrectionCurveX, o_arr_CorrectionCurveY);\r\n// }} \"\"\r\n// {{{ 2279 1 0 \"51181bca_30d4_49c5_967dab11a7344251\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_MaxVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS::MaxAspirateVolume);\r\n// }} \"\"\r\n// {{{ 2280 1 0 \"b809532c_8463_4c53_8bd07e69abfe6667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LiquidName = MLSTAR_LIQUIDCLASSLib::GetLiquidClassParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS::LiquidName);\r\n// }} \"\"\r\n// {{{ 2281 1 0 \"45303782_9445_47c3_94a902203fedce14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TipType = MLSTAR_LIQUIDCLASSLib::GetLiquidClassParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS::TipType);\r\n// }} \"\"\r\n// {{{ 2282 1 0 \"c6cde118_e451_4b0e_9faf7042ca503b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseMode = MLSTAR_LIQUIDCLASSLib::GetLiquidClassParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS::DispenseMode);\r\n// }} \"\"\r\n// {{{ 2283 1 0 \"54ca59a6_8b69_47e7_b069940645c3e88e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::ConvertToInteger(str_DispenseMode, o_int_DispenseMode);\r\n// }} \"\"\r\n// {{ 2284 1 0 \"bb2c02ba_a34f_4e4a_8a23ad07b3a01565\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_Asp == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2285 1 0 \"2e1de501_3213_4015_99a4364ffbf27ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Max volume for tip:  \"), o_flt_MaxVolume);\r\n// }} \"\"\r\n// {{{ 2286 1 0 \"080d09ec_b590_4d39_b854fde7494f1367\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Liquid Name:  \"), str_LiquidName);\r\n// }} \"\"\r\n// {{{ 2287 1 0 \"94bd4c35_f1e6_4897_8291a347912d3410\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Tip Type:  \"), int_TipType);\r\n// }} \"\"\r\n// {{{ 2288 1 0 \"82edc29e_bcc7_4092_a5566f0a3051635d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Dispense Mode:  \"), str_DispenseMode);\r\n// }} \"\"\r\n// {{{ 2289 1 0 \"383a9a34_e24a_4466_9477c56322411d72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_AirTransportVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::AirTransportVolume);\r\n// }} \"\"\r\n// {{{ 2290 1 0 \"64e3587e_2d72_4e55_9522c4a518a4cb81\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_BlowoutVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::BlowOutVolume);\r\n// }} \"\"\r\n// {{{ 2291 1 0 \"63d70743_c2ef_47cc_a8ce83a74e33fe03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_ClotRetractHeight = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::ClotRetractHeight);\r\n// }} \"\"\r\n// {{{ 2292 1 0 \"99b73645_d473_471f_a45b7aed0bc8bfc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_FlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::FlowRate);\r\n// }} \"\"\r\n// {{{ 2293 1 0 \"a5e9c794_5ee5_444e_842f67aa3684b275\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_MixFlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::MixFlowRate);\r\n// }} \"\"\r\n// {{{ 2294 1 0 \"ef106bf3_351c_4800_a8c4bbcc76c0cd15\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_OverAspVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::OverAspirateVolume);\r\n// }} \"\"\r\n// {{{ 2295 1 0 \"b364f999_63dc_4b61_ba08af119ae8bce1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_SwapSpeed = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::SwapSpeed);\r\n// }} \"\"\r\n// {{{ 2296 1 0 \"c76761dd_3354_4838_80c8c5db4757a67a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_int_SettlingTime = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::SettlingTime);\r\n// }} \"\"\r\n// {{ 2297 1 0 \"bb2c02ba_a34f_4e4a_8a23ad07b3a01565\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 2298 1 0 \"3779238b_931b_4b23_b5be068e1c77e2c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_AirTransportVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::AirTransportVolume);\r\n// }} \"\"\r\n// {{{ 2299 1 0 \"0d508bc4_b17e_4f7f_82a0bab4eb3574ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_BlowoutVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::BlowOutVolume);\r\n// }} \"\"\r\n// {{{ 2300 1 0 \"8a8621a4_9935_4bca_9c5858420bc6c628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_FlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::FlowRate);\r\n// }} \"\"\r\n// {{{ 2301 1 0 \"85ff1a94_5506_42a8_8062dd3a769357fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_MixFlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::MixFlowRate);\r\n// }} \"\"\r\n// {{{ 2302 1 0 \"0dcf0bcf_e4dc_49d9_a1e42d01a78e8117\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_int_SettlingTime = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::SettlingTime);\r\n// }} \"\"\r\n// {{{ 2303 1 0 \"be79080a_a46f_40bc_8caba486b8ba99e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_StopBackVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::StopBackVolume);\r\n// }} \"\"\r\n// {{{ 2304 1 0 \"c7c1181c_5c1f_4712_a73f9f5bdd0be130\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_StopFlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::StopFlowRate);\r\n// }} \"\"\r\n// {{{ 2305 1 0 \"f775bbc4_eca3_435a_81adb06d7d411860\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_SwapSpeed = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::SwapSpeed);\r\n// }} \"\"\r\n// {{ 2306 1 0 \"bb2c02ba_a34f_4e4a_8a23ad07b3a01565\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2307 1 0 \"9083957d_151b_4d89_a844afad23cc5adf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_LIQUID_CLASS = i_str_LiquidClass;\r\n// }} \"\"\r\n// {{{ 5 \"_GetLiquidClassParams\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_InitLiquidClassStorage\" \"Begin\"\r\nprivate function _InitLiquidClassStorage(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"_InitLiquidClassStorage\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2573 1 0 \"2ea11d12_6f32_4117_adc3b6bbf45c7b65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (T_PIP_TOOLS_LIQUID_CLASS_INIT == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 2574 1 0 \"aa5ccff2_ae2d_4f0c_9e817ae19a68973d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_LIQUID_CLASS_INIT = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 2575 1 0 \"93ba6e1e_05ca_4527_ae5466ce0192cac5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_LIQUID_CLASS = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2576 1 0 \"33ab5e85_7607_4f01_b238e8e578428a32\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_ASP_FLOW_RATE = 0.0;\r\n// }} \"\"\r\n// {{ 2577 1 0 \"9d10541c_2312_454e_9d840cf291ce0395\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_ASP_MIX_FLOW_RATE = 0.0;\r\n// }} \"\"\r\n// {{ 2578 1 0 \"fab017f2_d5cd_4362_a06682310ec92807\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_ASP_AIR_TRANSPORT = 0.0;\r\n// }} \"\"\r\n// {{ 2579 1 0 \"92f38e5f_122f_445a_97da414fbab30cc3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_ASP_BLOWOUT = 0.0;\r\n// }} \"\"\r\n// {{ 2580 1 0 \"c789b979_65e4_4996_8d7474c945d13f42\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_ASP_SWAP = 0.0;\r\n// }} \"\"\r\n// {{ 2581 1 0 \"a2ecf107_0882_4079_840f8395dfc20123\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_ASP_SETTLING = 0.0;\r\n// }} \"\"\r\n// {{ 2582 1 0 \"f3bb0ea8_b6f8_416b_850574e71f441364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_ASP_OVERASPIRATE = 0.0;\r\n// }} \"\"\r\n// {{ 2583 1 0 \"0eda17cc_5735_48cc_85c7930542bafc14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_ASP_CLOT_RETRACT = 0.0;\r\n// }} \"\"\r\n// {{ 2584 1 0 \"623668a3_91a7_47d4_835a2fdcbadfe80c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISP_FLOW_RATE = 0.0;\r\n// }} \"\"\r\n// {{ 2585 1 0 \"eeb214ed_f2c1_4f74_a12960756ec33811\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISP_MIX_FLOW_RATE = 0.0;\r\n// }} \"\"\r\n// {{ 2586 1 0 \"de50f03c_8c24_43aa_b3f5de8c20ec0fb8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISP_AIR_TRANSPORT = 0.0;\r\n// }} \"\"\r\n// {{ 2587 1 0 \"e808f5d3_a610_41ec_890013f49cbd5d16\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISP_BLOWOUT = 0.0;\r\n// }} \"\"\r\n// {{ 2588 1 0 \"46c6bbd6_d189_4374_8768302dc8c42eef\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISP_SWAP = 0.0;\r\n// }} \"\"\r\n// {{ 2589 1 0 \"315ec1ab_e691_46f4_97aa53e44d5e6b00\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISP_SETTLING = 0.0;\r\n// }} \"\"\r\n// {{ 2590 1 0 \"bbb6eedc_7632_40c0_a85c8e494924f455\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISP_STOP_FLOW = 0.0;\r\n// }} \"\"\r\n// {{ 2591 1 0 \"a711830d_f47e_46b4_b7bc36af6668256b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISP_STOP_BACK = 0.0;\r\n// }} \"\"\r\n// {{ 2592 1 0 \"df7fcad4_6e0c_481b_89cc1a8a043063da\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_MAX_VOLUME = 0.0;\r\n// }} \"\"\r\n// {{ 2593 1 0 \"443cd5de_4f98_43c9_b05a138241b34194\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nT_PIP_TOOLS_DISPENSE_MODE = -1;\r\n// }} \"\"\r\n// {{ 2594 1 0 \"add94a74_e794_4465_a63a8b1ac958314b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nT_PIP_TOOLS_ARR_CORRECTION_X.SetSize(0);\r\n// }} \"\"\r\n// {{ 2595 1 0 \"09e6e3fa_57e5_4a74_b9cde0912d2dee1c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nT_PIP_TOOLS_ARR_CORRECTION_Y.SetSize(0);\r\n// }} \"\"\r\n// {{ 2596 1 0 \"2ea11d12_6f32_4117_adc3b6bbf45c7b65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_InitLiquidClassStorage\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetCorrectedValueForVolume\" \"Begin\"\r\nprivate function _GetCorrectedValueForVolume( variable i_flt_VolumeToConvert, variable & i_arr_CorrectionX[], variable & i_arr_CorrectionY[], variable & o_flt_CorrectedVolume ) void {\r\n// }} \"\"\r\nprivate variable arr_TempX[];\r\nprivate variable arr_TempY[];\r\nprivate variable int_TotalCorrectionPoints;\r\nprivate variable i;\r\nprivate variable int_Index;\r\nprivate variable flt_Slope;\r\nprivate variable flt_Check;\r\nprivate variable flt_Intercept;\r\n// {{ 5 \"_GetCorrectedValueForVolume\" \"InitLocals\"\r\no_flt_CorrectedVolume = 0;\r\n// }} \"\"\r\n// {{{ 1944 1 0 \"eddc73a2_20cc_45f1_be141cb0456571f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_flt_VolumeToConvert = MthRound(i_flt_VolumeToConvert, 1);\r\n// }} \"\"\r\n// {{ 1945 1 0 \"00b5cbaf_2483_429f_aa0022e409114a7b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CorrectedVolume = i_flt_VolumeToConvert;\r\n// }} \"\"\r\n// {{ 1946 1 0 \"46eb004f_d4d7_4b88_91d2e83a566a5522\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TempX.SetSize(0);\r\n// }} \"\"\r\n// {{ 1947 1 0 \"01495092_cb3e_45c9_a8048ac70dae955b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TempY.SetSize(0);\r\n// }} \"\"\r\n// {{ 1948 1 0 \"0c7cdddd_d51a_4c9a_992bc853916b4558\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1949 1 0 \"3f7b8ab5_593a_448f_968eaaf804cb1091\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalCorrectionPoints=i_arr_CorrectionX.GetSize();\r\n// }} \"\"\r\n// {{ 1950 1 0 \"8768e382_5be4_4295_a0477da10ab10bda\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Check = 0.0;\r\n// }} \"\"\r\n// {{ 1951 1 0 \"3b9591d0_e586_4e59_ad81b23067ed19bb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalCorrectionPoints;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1952 1 0 \"231c0858_484d_4fc6_8776ec89a9d367be\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = int_TotalCorrectionPoints + 1;\r\n// }} \"\"\r\n// {{ 1953 1 0 \"7c3871c5_3cc1_41ad_b4125e1b3ce57e87\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Index = int_Index - i;\r\n// }} \"\"\r\n// {{ 1954 1 0 \"651d3dc3_7dde_4a7e_b08f925643481fbe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_arr_CorrectionX.ElementAt( int_Index -1) == i_flt_VolumeToConvert)\r\n{\r\n// }} \"\"\r\n// {{ 1955 1 0 \"c17f87c5_4812_4594_8fc74240aa67ab69\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempX.AddAsLast(i_arr_CorrectionX.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{ 1956 1 0 \"ffc022ca_3a5b_4a07_b5fb44f8346da6f1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempY.AddAsLast(i_arr_CorrectionY.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{ 1957 1 0 \"e724fb29_59eb_4c0b_8d5cde7deb021946\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Check = i_arr_CorrectionY.ElementAt( int_Index -1);\r\n// }} \"\"\r\n// {{ 1958 1 0 \"4877b425_7fab_4b84_9ee66f7e02bdcd1b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1959 1 0 \"651d3dc3_7dde_4a7e_b08f925643481fbe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1960 1 0 \"a882cc62_1504_4424_9b43970291464bdb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_arr_CorrectionX.ElementAt( int_Index -1) < i_flt_VolumeToConvert)\r\n{\r\n// }} \"\"\r\n// {{ 1961 1 0 \"0ff54e5b_0038_4b91_aea42181ffa6358c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempX.AddAsLast(i_arr_CorrectionX.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{ 1962 1 0 \"793824b7_e7e8_4881_925f7b039cf72b50\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempY.AddAsLast(i_arr_CorrectionY.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{ 1963 1 0 \"1ea686ac_3511_480b_8f9751bfc3204faf\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1964 1 0 \"a882cc62_1504_4424_9b43970291464bdb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1965 1 0 \"651d3dc3_7dde_4a7e_b08f925643481fbe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1966 1 0 \"6108f4b1_f3fb_45fe_9039e209d648804b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == int_TotalCorrectionPoints)\r\n{\r\n// }} \"\"\r\n// {{ 1967 1 0 \"9393ce4f_e9d5_4832_8c145024152d01d5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TARGET VOLUME IS BELOW THE CORRECTION CURVE FOR THE LIQUID CLASS!\"));\r\n// }} \"\"\r\n// {{{ 1968 1 0 \"be8d6f2d_5ae0_487d_93a6e8c2d5f6aa06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Minimum correction value:  \"), i_arr_CorrectionX.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{{ 1969 1 0 \"a82ef2b7_c0b5_406f_b46d22569ffbf555\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Required Volume:  \"), i_flt_VolumeToConvert);\r\n// }} \"\"\r\n// {{{ 1970 1 0 \"5804e8db_c6b0_4056_b558533516dea303\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"TARGET VOLUME IS BELOW THE CORRECTION CURVE FOR THE LIQUID CLASS!\"));\r\n// }} \"\"\r\n// {{ 1971 1 0 \"6108f4b1_f3fb_45fe_9039e209d648804b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1972 1 0 \"3b9591d0_e586_4e59_ad81b23067ed19bb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1973 1 0 \"3337ea6e_8411_489b_8018a9a2cc404ee3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1974 1 0 \"ffa7f68e_81c0_4469_a74d3cde766bb9f8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_TotalCorrectionPoints;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 1975 1 0 \"8337e166_7ff3_402a_b839e1a49ff3ec0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_arr_CorrectionX.ElementAt( int_Index -1) == i_flt_VolumeToConvert)\r\n{\r\n// }} \"\"\r\n// {{ 1976 1 0 \"7518977e_32c2_4212_b7eab4413de41952\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempX.AddAsLast(i_arr_CorrectionX.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{ 1977 1 0 \"776ee4d1_6e08_402e_8c0d0495d3dc7170\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempY.AddAsLast(i_arr_CorrectionY.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{ 1978 1 0 \"50b3a5e4_a3b1_4813_aee0d57efaa6dae9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Check = i_arr_CorrectionY.ElementAt( int_Index -1);\r\n// }} \"\"\r\n// {{ 1979 1 0 \"6ef85c40_6ebd_4cac_8662b95dfd7a6a4c\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1980 1 0 \"8337e166_7ff3_402a_b839e1a49ff3ec0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1981 1 0 \"114b8df1_cd78_4ad8_b980a965a7501049\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_arr_CorrectionX.ElementAt( int_Index -1) > i_flt_VolumeToConvert)\r\n{\r\n// }} \"\"\r\n// {{ 1982 1 0 \"331ffbf2_544b_490d_ba55d705277b279d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempX.AddAsLast(i_arr_CorrectionX.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{ 1983 1 0 \"07c53200_6541_47db_bc1df56181b8ab19\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempY.AddAsLast(i_arr_CorrectionY.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{ 1984 1 0 \"2faccc67_9301_4bdb_ba8e1084580d5161\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1985 1 0 \"114b8df1_cd78_4ad8_b980a965a7501049\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1986 1 0 \"8337e166_7ff3_402a_b839e1a49ff3ec0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1987 1 0 \"4d20416a_ed2f_4851_a5862c778e54c275\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == int_TotalCorrectionPoints)\r\n{\r\n// }} \"\"\r\n// {{ 1988 1 0 \"00080fbe_8fbc_497b_b57d140d30f60c94\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TARGET VOLUME IS ABOVE THE CORRECTION CURVE FOR THE LIQUID CLASS!\"));\r\n// }} \"\"\r\n// {{{ 1989 1 0 \"15746c39_fa55_4ebb_9ad69cd2d1139c7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Maximum correction value:  \"), i_arr_CorrectionX.ElementAt( int_Index -1));\r\n// }} \"\"\r\n// {{{ 1990 1 0 \"e4c66252_fbfb_4b6f_98e9e3271c787650\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Required Volume:  \"), i_flt_VolumeToConvert);\r\n// }} \"\"\r\n// {{{ 1991 1 0 \"c5ca4b15_30d5_4690_80d0fdb873ea4872\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, Translate(\"TARGET VOLUME IS ABOVE THE CORRECTION CURVE FOR THE LIQUID CLASS!\"));\r\n// }} \"\"\r\n// {{ 1992 1 0 \"4d20416a_ed2f_4851_a5862c778e54c275\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1993 1 0 \"ffa7f68e_81c0_4469_a74d3cde766bb9f8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1994 1 0 \"33995903_e7b4_4f89_883ac282449d816c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Check == 0.0)\r\n{\r\n// }} \"\"\r\n// {{{ 1995 1 0 \"851142b4_8de3_455f_bd95ed0b0437918d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Slope = HSLStatisitics::Stat_Slope(arr_TempX, arr_TempY);\r\n// }} \"\"\r\n// {{{ 1996 1 0 \"600d0b8f_8758_4a81_8012e6a6499dd60d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Intercept = HSLStatisitics::Stat_Intercept(arr_TempX, arr_TempY);\r\n// }} \"\"\r\n// {{ 1997 1 0 \"338f7966_7a3c_488f_883c8be90738169a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CorrectedVolume = i_flt_VolumeToConvert * flt_Slope;\r\n// }} \"\"\r\n// {{ 1998 1 0 \"93901b14_ce17_46be_9f72a69672b18b3f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CorrectedVolume = o_flt_CorrectedVolume + flt_Intercept;\r\n// }} \"\"\r\n// {{ 1999 1 0 \"33995903_e7b4_4f89_883ac282449d816c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2000 1 0 \"d1073b52_dfb6_4be4_aec332b961ad8fd5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CorrectedVolume = flt_Check;\r\n// }} \"\"\r\n// {{ 2001 1 0 \"33995903_e7b4_4f89_883ac282449d816c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2002 1 0 \"57ba0d79_c7b6_47c7_8d806618053d78df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_CorrectedVolume = MthRound(o_flt_CorrectedVolume, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_GetCorrectedValueForVolume\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_CalculateHeightForVolume\" \"Begin\"\r\nfunction TOOL_CalculateHeightForVolume( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_VolumeInLabware, variable & o_flt_HeightOfVolume ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable str_ConfigFile;\r\n// {{ 5 \"TOOL_CalculateHeightForVolume\" \"InitLocals\"\r\no_flt_HeightOfVolume = 0;\r\n// }} \"\"\r\n// {{ 1629 1 0 \"446f46e1_e3b8_4142_a9c1991c881c0b1e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1630 1 0 \"1aaf080b_b35e_4b37_99edef9cc4442249\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1632 1 0 \"7f98e0d0_23be_4ce3_b64c8958efcea932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1633 1 0 \"446f46e1_e3b8_4142_a9c1991c881c0b1e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"44055d69_b295_4dda_83173824f261f5dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_LabwareForCalculation);\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"df01cd49_4573_4d38_bd0e5639fc2fba99\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_LabwareForCalculation);\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"c7caea72_b763_4a2a_a48d8bbe0f73c071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     LabID:  \"), str_LabID, Translate(\"   Position ID:  \"), str_PosID);\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"b8d1558c_d05d_4022_beb140ec8d143b65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ConfigFile);\r\n// }} \"\"\r\n// {{{ 1638 1 0 \"4a533c30_5e8a_4724_ae631a0d8ce5748a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightBasedOnVolume(str_ConfigFile, i_flt_VolumeInLabware, o_flt_HeightOfVolume);\r\n// }} \"\"\r\n// {{{ 1639 1 0 \"f2481650_a64c_4050_946676ad7820f40e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     Volume:  \"), i_flt_VolumeInLabware, Translate(\"   Height:  \"), o_flt_HeightOfVolume);\r\n// }} \"\"\r\n// {{ 1640 1 0 \"8f070cd4_b3cc_4fe3_ac63cf2de31a1ba3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1641 1 0 \"ef2e565e_3b3d_40ba_a4a457c06516ff36\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1642 1 0 \"8f070cd4_b3cc_4fe3_ac63cf2de31a1ba3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_CalculateHeightForVolume\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_ProgressSequenceFromChannelPattern\" \"Begin\"\r\nfunction PIP_ProgressSequenceFromChannelPattern( variable i_str_ChPattern, variable i_bln_ProgressByUsedChannels, sequence & io_seq_SequenceToProgress ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable int_Length;\r\nprivate variable int_TotalProgression;\r\n// {{ 5 \"PIP_ProgressSequenceFromChannelPattern\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1605 1 0 \"9c9f49c3_93e3_4df3_a8f9fc8192d186d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1606 1 0 \"e4f79115_2f84_400d_a3ac050c987632f0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1608 1 0 \"5676e078_7982_4862_b25c20922653ec2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1609 1 0 \"9c9f49c3_93e3_4df3_a8f9fc8192d186d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1610 1 0 \"9161e7aa_09a8_4aac_b184a94d4813af21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Channel Pattern:  \"), i_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1611 1 0 \"307b3155_677a_46b5_a4f024ed2a0a0cc1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_ProgressByUsedChannels == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 1612 1 0 \"a4f9c95f_6e40_46ff_a46f30bc6e08a8b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalProgression = StrReplace(i_str_ChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 1613 1 0 \"307b3155_677a_46b5_a4f024ed2a0a0cc1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"83cc381c_04ed_46f1_a21a6c3123060151\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Length = StrGetLength(i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1615 1 0 \"e86aa86c_fc9e_4cd7_8e1b376b6d68b518\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalProgression = int_Length;\r\n// }} \"\"\r\n// {{ 1616 1 0 \"307b3155_677a_46b5_a4f024ed2a0a0cc1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1617 1 0 \"5b279636_db46_4296_9db60bbf39605b10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Sequence progress number:  \"), int_TotalProgression, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"504e3c43_179f_40ac_a5867f9acc387298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(io_seq_SequenceToProgress, int_TotalProgression);\r\n// }} \"\"\r\n// {{ 1619 1 0 \"a0382bc2_201b_4552_a011bb4a5e7b4b7b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"a6353cd6_6b6c_47b2_8ba381e9cd159336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1621 1 0 \"a0382bc2_201b_4552_a011bb4a5e7b4b7b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PIP_ProgressSequenceFromChannelPattern\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_BuildChannelPatternFromSequence\" \"Begin\"\r\nfunction PIP_BuildChannelPatternFromSequence( device & ML_STAR, sequence i_seq_ControllingSequence, variable & o_str_ChPattern ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable int_TotalPositions;\r\nprivate variable i;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_YCoord;\r\nprivate variable flt_XCoord;\r\nprivate variable flt_CurrentX;\r\nprivate variable int_TotalChannels;\r\nprivate variable flt_ChannelRaster;\r\nprivate variable flt_CurrentY;\r\n// {{ 5 \"PIP_BuildChannelPatternFromSequence\" \"InitLocals\"\r\no_str_ChPattern = 0;\r\n// }} \"\"\r\n// {{ 244 1 0 \"c3678733_2859_450f_a3b99f4629c823bd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 245 1 0 \"a8721f70_239e_4d00_af263d83c5b2f23c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 247 1 0 \"dd40c047_af24_4878_8bcc427569864ad3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 248 1 0 \"c3678733_2859_450f_a3b99f4629c823bd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 249 1 0 \"df85c2cd_87c1_4ac2_90dc83ea404855f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 250 1 0 \"6ca46251_2232_415f_91053927cbedcc2e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 251 1 0 \"d0be4305_a75b_4f4c_a40d81429471de51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalChannels = G_FW_PIP_COM_TotalChannels;\r\n// }} \"\"\r\n// {{ 252 1 0 \"71aa23c7_3ccf_45be_b09b3e6f014e536f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ChannelRaster = G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{{ 253 1 0 \"909f0628_e4e8_490e_b8b3e96f240d92db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, i_seq_ControllingSequence);\r\n// }} \"\"\r\n// {{{ 254 1 0 \"944401b6_da95_44c2_b8b2965ee569c523\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_ControllingSequence);\r\n// }} \"\"\r\n// {{ 255 1 0 \"eae58dc4_fff9_424a_bc8e991d86cba3b6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = 0.0;\r\n// }} \"\"\r\n// {{ 256 1 0 \"e0f0d159_4e2e_4c84_a54a40cd55c02873\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = 0.0;\r\n// }} \"\"\r\n// {{ 257 1 0 \"4411c179_d008_43a9_8f8a23f26692639a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 258 1 0 \"e2822b77_883c_4bad_8819a5ea7ad8a0fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i > int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 259 1 0 \"f166ee7c_6005_469e_88554852f8fc2170\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 260 1 0 \"e2822b77_883c_4bad_8819a5ea7ad8a0fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 261 1 0 \"766f96d3_2224_4d2e_88636cabce2ceace\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_ControllingSequence.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 262 1 0 \"f9503bf3_3628_4c71_9cd888855fadf37b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_ControllingSequence);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5ca770f0_0b55_423f_b3d145a11f037cff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_ControllingSequence);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"957fee9f_2348_46d7_933a55a48ba132a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_XCoord, flt_YCoord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 265 1 0 \"adb68b50_44fb_4ab5_b19d3ccd53c7596f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 1)\r\n{\r\n// }} \"\"\r\n// {{ 266 1 0 \"ab855ced_084f_4c30_9139d8b6760ae011\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = flt_XCoord;\r\n// }} \"\"\r\n// {{ 267 1 0 \"57d83c85_26a6_447f_b1a906b9f2149825\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_YCoord;\r\n// }} \"\"\r\n// {{{ 268 1 0 \"69e4979e_4514_45cf_b6fdaa0c18466c84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChPattern = StrConcat2(o_str_ChPattern, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 269 1 0 \"adb68b50_44fb_4ab5_b19d3ccd53c7596f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 270 1 0 \"bb7beb06_5c20_41e1_b96338ae9bf76c8b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_XCoord != flt_CurrentX)\r\n{\r\n// }} \"\"\r\n// {{ 271 1 0 \"162bcdce_0e5f_4c20_828d83310a1ca1f9\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 272 1 0 \"bb7beb06_5c20_41e1_b96338ae9bf76c8b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 273 1 0 \"23bd6183_c175_4765_93fa5b23059ef9aa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCoord > flt_CurrentY)\r\n{\r\n// }} \"\"\r\n// {{ 274 1 0 \"ac0f0198_34f1_4da9_ac20d84477f3d52d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 275 1 0 \"23bd6183_c175_4765_93fa5b23059ef9aa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 276 1 0 \"39f700d1_1a75_4f5c_b5f26b81d87d734b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCoord > G_ARR_FW_PIP_COM_YMax.ElementAt( i -1))\r\n{\r\n// }} \"\"\r\n// {{ 277 1 0 \"fca0eefb_2f01_4997_8d739c1321318a42\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 278 1 0 \"39f700d1_1a75_4f5c_b5f26b81d87d734b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 279 1 0 \"e50b95bb_418d_4104_a800234f5c2927a5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YCoord < G_ARR_FW_PIP_COM_YMin.ElementAt( i -1))\r\n{\r\n// }} \"\"\r\n// {{ 280 1 0 \"726a84c3_6f02_4389_89b4efbc5d9506b5\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 281 1 0 \"e50b95bb_418d_4104_a800234f5c2927a5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 282 1 0 \"50387282_383d_49cd_8c12b49b60e43d4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChPattern = StrConcat2(o_str_ChPattern, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 283 1 0 \"adb68b50_44fb_4ab5_b19d3ccd53c7596f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 284 1 0 \"39973618_6bb3_4fe2_a355130a7d52211b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_CurrentY - flt_ChannelRaster;\r\n// }} \"\"\r\n// {{ 285 1 0 \"4411c179_d008_43a9_8f8a23f26692639a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 286 1 0 \"160c8ad9_5add_4e95_a9eb29a59d435fe4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChPattern = StrFillRight(o_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 287 1 0 \"94a1c969_8f0b_4f8d_8b0bfa7b118fb362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Channel Pattern:  \"), o_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 288 1 0 \"fffc6860_dcb1_41fe_a95764c50fcd4bbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 289 1 0 \"f0020278_abd0_4d3f_8b9374c51f0f21a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 290 1 0 \"fffc6860_dcb1_41fe_a95764c50fcd4bbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PIP_BuildChannelPatternFromSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_DispenseToFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bln_SimulationMode;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable flt_MovementStartHeight;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable bln_ChannelsAtCoordinates;\r\nprivate variable _strFunctionName;\r\nprivate variable flt_ZStartHeight;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable int_TotalChannels;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable flt_MovementEndHeight;\r\nprivate sequence seq_Temp;\r\nprivate variable arr_LiquidFollowingDistance[];\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_XCoord[];\r\nprivate variable flt_DispenseVolume;\r\nprivate variable flt_DispenseHeight;\r\nprivate variable str_LabID;\r\nprivate variable arr_DispenseHeights[];\r\n// {{ 5 \"PIP_DispenseToFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 292 1 0 \"cf0eda5c_c404_4127_8681a8f562d0c8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 293 1 0 \"18754cee_a4fb_456b_8bb8ba6b966e9d1c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 295 1 0 \"340a683f_fed3_4b80_adff7b6dcb2c5530\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 296 1 0 \"cf0eda5c_c404_4127_8681a8f562d0c8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"c1ce14a4_3800_4de3_9763b3cdeb7b87c5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 298 1 0 \"9c2de99e_7322_4668_a1613cfdae2414f4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 299 1 0 \"8731cd4a_6eb9_48af_93c434b82d8c9920\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 300 1 0 \"68cff407_7673_44ae_945667a9913864c9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_SimulationMode = G_FW_PIP_COM_SimulationMode;\r\n// }} \"\"\r\n// {{ 301 1 0 \"ecd9c70c_090b_41f9_8f5250b6c079a4a1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalChannels = G_FW_PIP_COM_TotalChannels;\r\n// }} \"\"\r\n// {{ 302 1 0 \"7b4b3e77_b969_442e_9b9f7c6aa9f49454\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 303 1 0 \"08c69548_4f2f_4c49_86b9d1f78120e51a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrConcat2(i_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 304 1 0 \"bd0775be_9a94_4eb9_8f40e19bd8702899\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 305 1 0 \"acfb7c25_9750_4c70_b58e3c080aad58f4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 306 1 0 \"71947c1b_40db_452a_84fcdd678a63dd89\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_DispensePositions, i_str_ChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 307 1 0 \"0233389c_a778_4fe6_8417eb9a48618900\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 308 1 0 \"2d102058_8a1c_4f22_8ef946701fad3c4c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 309 1 0 \"c8bc7dc9_b3d6_4c96_a1798a11f0f87797\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 310 1 0 \"d5e8cee5_a9f5_4e98_b5c520aa4fa19798\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 311 1 0 \"dede0368_8589_4fe2_b417e02e4c871385\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 312 1 0 \"fd3e9f67_ff6c_483e_9eb1e9582eb244c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 313 1 0 \"dede0368_8589_4fe2_b417e02e4c871385\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 314 1 0 \"ba2e2783_80ba_4d43_a68c57fe9f11d80b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 315 1 0 \"c8bc7dc9_b3d6_4c96_a1798a11f0f87797\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 316 1 0 \"5ee6b372_4dca_4824_9c77151dff02730e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 317 1 0 \"d3e7943b_5065_460e_b9229e54bfa8c450\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 318 1 0 \"a98111a5_4885_4be5_82d40149c7f44aad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 319 1 0 \"5030c2f8_a95c_4a4e_a8c0ee371ac21fa7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!\"));\r\n// }} \"\"\r\n// {{ 320 1 0 \"eb6c6c11_50ae_4390_9f86b89883aaeb12\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 321 1 0 \"90397455_2293_478f_9c242c0461a583c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 322 1 0 \"eb6c6c11_50ae_4390_9f86b89883aaeb12\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 323 1 0 \"67b80ba3_27f7_4ce8_98defc2e2f981500\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 324 1 0 \"a98111a5_4885_4be5_82d40149c7f44aad\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 325 1 0 \"c56eaba0_27ca_4eec_ac9fac91509d0e8b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 326 1 0 \"d5880458_3d08_469c_aabd4e77de848f09\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{ 327 1 0 \"2ad9a6ce_5935_45a1_bc4f1f31d10d1783\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 328 1 0 \"8cce2569_ce80_4ff8_b95460c61e085316\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 329 1 0 \"86b39e29_a430_42d6_a972395915bcb545\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ChannelsAtCoordinates = _DetermineStartZHeight(ML_STAR, i_str_ChPattern, str_LabID, arr_XCoord, arr_YCoord, flt_ZMinimumHeight, flt_ZClearanceHeight, flt_ZStartHeight);\r\n// }} \"\"\r\n// {{ 330 1 0 \"23b92880_36d3_433a_9371fd825cadae8d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 331 1 0 \"e4adb0f1_e936_4205_95482fa7048022af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (T_PIP_TOOLS_LIQUID_CLASS == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 332 1 0 \"8d2f6db4_429c_41bf_bc8fd6996cd80b1f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"LIQUID CLASS IS NOT SET! ASPIRATE COMMAND MUST BE SET PRIOR TO DISPENSE!\"));\r\n// }} \"\"\r\n// {{ 333 1 0 \"489f5897_96fc_48c9_a238564485b72d88\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 334 1 0 \"698ea32e_3a41_49ed_b96384ed954ddcf3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 335 1 0 \"489f5897_96fc_48c9_a238564485b72d88\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 336 1 0 \"da5c2e26_963c_459b_aa941c750929c11d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 337 1 0 \"e4adb0f1_e936_4205_95482fa7048022af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 338 1 0 \"34029388_f18c_41d0_b400eb0de57ac37c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"ad807e61_8b92_4060_ad02ecff539f1c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(i_flt_DispenseVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_DispenseVolume);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"06b2d677_6b66_4887_ac93044fb8411af4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Dispense Volume:  \"), i_flt_DispenseVolume, Translate(\"  Corrected Volume for Liquid Class:  \"), flt_DispenseVolume);\r\n// }} \"\"\r\n// {{ 341 1 0 \"9de1e467_610e_4258_91696628484231be\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 342 1 0 \"8ab60469_f054_4dc8_8b4acbdd2bed81cc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ApplyOffsetToArrayofValues(i_arr_FixedHeights, flt_ZBottom, arr_DispenseHeights);\r\n// }} \"\"\r\n// {{ 343 1 0 \"6c163b9f_4cfa_4a93_a1d586fb5cde8d5b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 344 1 0 \"7915a2cd_a818_43a7_a4a3f066dd4d7b89\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLiquidFollowingForAllChannels(ML_STAR, i_arr_FixedHeights, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::FALSE, flt_DispenseVolume, i_str_ChPattern, arr_LiquidFollowingDistance);\r\n// }} \"\"\r\n// {{{ 345 1 0 \"3ec22819_81a8_4943_9c9375242f3d593a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate(\"Processing\"));\r\n// }} \"\"\r\n// {{ 346 1 0 \"936d6fd2_4e74_4bf1_aac27b45670ec012\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementStartHeight = flt_ZStartHeight;\r\n// }} \"\"\r\n// {{ 347 1 0 \"aca77896_da0e_41b1_b5d8f50a999ac6c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = 245.0;\r\n// }} \"\"\r\n// {{ 348 1 0 \"7c7922a9_5f45_4cb7_b142f4f274d2b21a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 1)\r\n{\r\n// }} \"\"\r\n// {{ 349 1 0 \"2ccc6c78_627f_4d22_890a59877fd157c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZClearanceHeight;\r\n// }} \"\"\r\n// {{ 350 1 0 \"7c7922a9_5f45_4cb7_b142f4f274d2b21a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 351 1 0 \"2739b2b3_b60c_4a02_afb30852e51f22bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 2)\r\n{\r\n// }} \"\"\r\n// {{ 352 1 0 \"12ce519e_89a0_40e2_9521fc0f70f33abd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMaximumHeight;\r\n// }} \"\"\r\n// {{ 353 1 0 \"2739b2b3_b60c_4a02_afb30852e51f22bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 354 1 0 \"521fb74b_818d_47f1_8257db5c5f68ee0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 3)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 355 1 0 \"1be90833_cf18_4635_8179afd21dc26532\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMinimumHeight;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 356 1 0 \"cd11aa5b_5b6a_47d5_a12a6c64d41de250\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_DispenseHeight = HSLStatisitics::Stat_Max(i_arr_FixedHeights);\r\n// }} \"\"\r\n// {{ 357 1 0 \"163db0c3_0eb8_4bf5_807bf52848761b66\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_DispenseHeight + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 358 1 0 \"fb16386d_0f06_4a8f_a27ee17fb5d7fddd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_MovementEndHeight < flt_ZMinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 359 1 0 \"36e82dfa_4618_412a_88f6779fda0d9ff6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 360 1 0 \"fb16386d_0f06_4a8f_a27ee17fb5d7fddd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 361 1 0 \"521fb74b_818d_47f1_8257db5c5f68ee0e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 362 1 0 \"73a6fd11_54aa_4601_89f465ad165ed30e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 363 1 0 \"ba9995b2_bf15_4348_9b4bbda84f0914c6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"cb035a97_4a6b_43be_b6f63502de1abf2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"Processed\"));\r\n// }} \"\"\r\n// {{ 365 1 0 \"f2958ce7_33d8_4483_8d37c03a73f8f914\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 366 1 0 \"469662be_8841_4a70_9be707a9eb865af0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 367 1 0 \"f2958ce7_33d8_4483_8d37c03a73f8f914\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PIP_DispenseToFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH_AspirateFromFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bln_SimulationMode;\r\nprivate variable _strFunctionName;\r\nprivate variable int_MPHExists;\r\nprivate variable str_TempChPattern;\r\nprivate sequence seq_Temp;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable flt_YCoord;\r\nprivate variable flt_XCoord;\r\nprivate variable flt_ZStartHeight;\r\nprivate variable bln_MPH96AtCoordinates;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_AspirationVolume;\r\nprivate variable flt_LiquidFollowingDistance;\r\nprivate variable flt_MovementStartHeight;\r\nprivate variable flt_MovementEndHeight;\r\nprivate variable flt_EndHeight;\r\n// {{ 5 \"MPH_AspirateFromFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1 1 0 \"36ef965e_53ce_444e_bb638c9aafbc6ab1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2 1 0 \"2b2d9b5d_55f8_4057_9395dccc3949e5ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 4 1 0 \"f824901b_5723_4763_93afb5ea44a14df8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 5 1 0 \"36ef965e_53ce_444e_bb638c9aafbc6ab1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 6 1 0 \"33781d18_f399_4df1_b94d48ea28a44262\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 7 1 0 \"3f6c5c63_8e13_4d63_a8961c4e4435ddc8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 8 1 0 \"db8d7249_a3e7_4470_9d640ff7709aa1a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 9 1 0 \"8cde8a63_e0f9_4c82_b9d33d9921c1128f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 10 1 0 \"5d451d16_bf09_4553_a103e21ad2af9f51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetMPHExist(ML_STAR, int_MPHExists);\r\n// }} \"\"\r\n// {{ 11 1 0 \"e55e2ff6_39a8_438a_8b64334d7ac4f66a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_MPHExists == 0)\r\n{\r\n// }} \"\"\r\n// {{ 12 1 0 \"98a2d663_cead_40ff_a4d05d48864f636a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"MPH96 IS NOT LOADED IN THE CONFIGURATION OF THIS INSTRUMENT!\"));\r\n// }} \"\"\r\n// {{ 13 1 0 \"83d2befc_caf8_4154_8731546bb06354f1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 14 1 0 \"54f161e9_64cb_44c2_a8493d6ca8ecacfe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 15 1 0 \"83d2befc_caf8_4154_8731546bb06354f1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"b3c2592c_a9b5_4195_b17d92e7a06e994e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 17 1 0 \"e55e2ff6_39a8_438a_8b64334d7ac4f66a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 18 1 0 \"66336974_fa1d_4cd1_a2419455024d21af\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 19 1 0 \"2b8ce7bc_a8d6_4f01_965778880a1229fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TempChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 20 1 0 \"ff0b42b2_d9fb_48e4_819383d5b8ed6ca8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TempChPattern = StrFillRight(str_TempChPattern, Translate(\"1\"), 96);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"0e993d05_1329_4407_a05f492e410e4eee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_AspirationPositions, str_TempChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2ef80e77_6cca_4e19_ad283b573636fcad\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 23 1 0 \"44b9bcd0_eb86_49bc_854a912819a73c91\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheckMPH96(ML_STAR, seq_Temp, str_TempChPattern);\r\n// }} \"\"\r\n// {{ 24 1 0 \"90c78c8d_33ef_4919_a95889d87e8bdc37\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 25 1 0 \"d485bb9d_fce5_42d2_8d1e3400c9bea070\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\"));\r\n// }} \"\"\r\n// {{ 26 1 0 \"2a5226e9_bc05_4cd5_97d030e4828a03c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 27 1 0 \"ff8ce99b_744c_48b8_9e932fdd40ca8dc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 28 1 0 \"2a5226e9_bc05_4cd5_97d030e4828a03c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 29 1 0 \"23293255_623c_4e0d_971b201787675aa9\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 30 1 0 \"90c78c8d_33ef_4919_a95889d87e8bdc37\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 31 1 0 \"11b35afd_25a9_41a5_afbad4d4d8132027\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 32 1 0 \"10f4020d_48ad_4aac_a19a8804e0667783\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::MPH96GetTipPresence(ML_STAR, bln_TipsLoaded);\r\n// }} \"\"\r\n// {{ 33 1 0 \"e46df121_8add_428f_977efff4766aa576\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 34 1 0 \"12764170_242d_4a97_b65a8fd10160d526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_TipsLoaded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 35 1 0 \"e46df121_8add_428f_977efff4766aa576\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 36 1 0 \"7e5b2881_b318_4f85_be60b21e4543ee7d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 37 1 0 \"7cc0835f_c370_454a_aa843dd39914b260\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS NOT PICKED UP!\"));\r\n// }} \"\"\r\n// {{ 38 1 0 \"e334fa22_38b4_40a8_8d68032be0019aa8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 39 1 0 \"9d426a5b_d4f1_43bf_a030e4d58feffd11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 40 1 0 \"e334fa22_38b4_40a8_8d68032be0019aa8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 41 1 0 \"d9b2efa7_7b65_43ac_bbd20b15eb509172\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 42 1 0 \"7e5b2881_b318_4f85_be60b21e4543ee7d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 43 1 0 \"de3e578c_9592_4459_ad6356ded0b26fdc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 44 1 0 \"0eb786a2_9083_4b3e_be385ca81640ac8e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinatesMPH96(ML_STAR, seq_Temp, flt_XCoord, flt_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{ 45 1 0 \"5b4d8ede_641b_4daf_b03b0b80b0e6818e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 46 1 0 \"643dca63_ee0d_46a2_9a786cadf0dd629d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_MPH96AtCoordinates = _DetermineStartZHeightMPH96(ML_STAR, flt_XCoord, flt_YCoord, flt_ZMinimumHeight, flt_ZStartHeight);\r\n// }} \"\"\r\n// {{ 47 1 0 \"2d3e0f06_68f3_4f65_bc4ad94b5b913f24\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 48 1 0 \"9e02d6e0_8c07_44a6_9a158c3c4faef66f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{{ 49 1 0 \"477d0997_65bd_4c0b_b815171a10fac58a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{ 50 1 0 \"ca401083_d116_4609_a5461563a049112f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 51 1 0 \"75c5797e_e5df_44fd_b5d14c32a8faab83\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(i_flt_AspirationVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_AspirationVolume);\r\n// }} \"\"\r\n// {{{ 52 1 0 \"00af58ea_b18a_4110_904d65006c71cec6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Aspiration Volume:  \"), i_flt_AspirationVolume, Translate(\"  Corrected Volume for Liquid Class:  \"), flt_AspirationVolume);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"be718aad_3a9f_4a4f_800bdd9b15090d0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Aspiration Height:  \"), i_flt_AspHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 54 1 0 \"47399927_3969_4275_8ecc56cf898149d0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_AspirationVolume > T_PIP_TOOLS_MAX_VOLUME)\r\n{\r\n// }} \"\"\r\n// {{{ 55 1 0 \"4de5c2c7_e0e0_46bf_98f4b463775f3513\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Max Volume:  \"), T_PIP_TOOLS_MAX_VOLUME, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{ 56 1 0 \"d7d113b0_76c4_4c90_bc7ecab41fbf5f8d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"REQUESTED VOLUME IS HIGHER THAN THE LIQUID CLASS MAX VOLUME\"));\r\n// }} \"\"\r\n// {{ 57 1 0 \"36acb374_d893_4ae1_bd5f35fef39c16c4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 58 1 0 \"fb916584_b8fd_4754_8daa4c1324461df2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 59 1 0 \"36acb374_d893_4ae1_bd5f35fef39c16c4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 60 1 0 \"4ad98862_d803_431c_99e8dc9badad0430\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 61 1 0 \"47399927_3969_4275_8ecc56cf898149d0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 62 1 0 \"09658291_015b_4cc6_950a7ecd99752b22\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 63 1 0 \"12028594_4a24_4b8e_b1a3138b904ff040\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLiquidFollowingForMPH96(ML_STAR, i_flt_AspHeight, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::TRUE, i_flt_AspirationVolume, flt_LiquidFollowingDistance);\r\n// }} \"\"\r\n// {{{ 64 1 0 \"cf520160_947c_4809_9af027c77061d1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate(\"Processing\"));\r\n// }} \"\"\r\n// {{ 65 1 0 \"45321a2e_e7bd_43aa_b68552fa04c0b410\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementStartHeight = flt_ZStartHeight;\r\n// }} \"\"\r\n// {{ 66 1 0 \"3ccffeba_0c00_44a5_a1e8827408772466\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = 245.0;\r\n// }} \"\"\r\n// {{ 67 1 0 \"b9339b5a_c094_4c7e_a48934aa2cc37d91\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 1)\r\n{\r\n// }} \"\"\r\n// {{ 68 1 0 \"6ae332df_196a_49e5_bf7c189fe28351f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZClearanceHeight;\r\n// }} \"\"\r\n// {{ 69 1 0 \"b9339b5a_c094_4c7e_a48934aa2cc37d91\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 70 1 0 \"b854f68a_566d_474f_9e32c62df46b242d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 2)\r\n{\r\n// }} \"\"\r\n// {{ 71 1 0 \"c799c776_a644_4234_928747ab062ca892\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMaximumHeight;\r\n// }} \"\"\r\n// {{ 72 1 0 \"b854f68a_566d_474f_9e32c62df46b242d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 73 1 0 \"1f6a0285_47b1_4627_a589b6cc0b8da45e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 3)\r\n{\r\n// }} \"\"\r\n// {{ 74 1 0 \"a5d7549b_d770_4043_95300f94014b7904\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndHeight = i_flt_AspHeight - flt_LiquidFollowingDistance;\r\n// }} \"\"\r\n// {{ 75 1 0 \"2958bc51_faab_46b6_b1e654a0e6f0bff7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndHeight = flt_EndHeight + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 76 1 0 \"a20a80ce_d6c3_47c1_bd85a590a1273213\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_EndHeight;\r\n// }} \"\"\r\n// {{ 77 1 0 \"eb810ae2_8a9b_416a_b73098f6cd79b29c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_MovementEndHeight < flt_ZMinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 78 1 0 \"ebe906ae_e4d7_49e6_8c8cf2b1a5d9eb1b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 79 1 0 \"eb810ae2_8a9b_416a_b73098f6cd79b29c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 80 1 0 \"1f6a0285_47b1_4627_a589b6cc0b8da45e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 81 1 0 \"a818354a_0e5a_4637_b58c4f1ddb247b3f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 82 1 0 \"c0261f31_66b5_4b73_9a64778bfa6d1e90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{{ 83 1 0 \"acc41bcf_4b9d_439b_b0dec58d5a270e84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"Processed\"));\r\n// }} \"\"\r\n// {{ 84 1 0 \"a2459763_2be0_48a5_a0adfa7f70a64356\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 85 1 0 \"2512cef6_216a_454d_a5d71332c85d14e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 86 1 0 \"a2459763_2be0_48a5_a0adfa7f70a64356\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH_AspirateFromFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ProbabilityCheckMPH96\" \"Begin\"\r\nprivate function _ProbabilityCheckMPH96( device & ML_STAR, sequence i_seq_PositionsToCheck, variable i_str_ChannelPatternToCheck ) variable {\r\n// }} \"\"\r\nprivate variable bln_ProbabilityPass;\r\nprivate variable int_TotalTipsToUse;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_TotalPositions;\r\nprivate variable int_RemainingPositionsForLabware;\r\nprivate sequence seq_TempCompare;\r\nprivate variable str_PosIDSort;\r\nprivate variable str_PosIDOriginal;\r\n// {{ 5 \"_ProbabilityCheckMPH96\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2648 1 0 \"05448be4_faeb_496c_ba61214a8b96a48d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{{ 2649 1 0 \"724b2c06_16a2_49a6_b9f9cd0d02bdf2a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = StrGetLength(i_str_ChannelPatternToCheck);\r\n// }} \"\"\r\n// {{{ 2650 1 0 \"3ecddf2d_4e6c_4d3f_90e72bb635b92ed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalTipsToUse = StrReplace(i_str_ChannelPatternToCheck, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{{ 2651 1 0 \"57348320_78a8_4057_81a021d8e551e3b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_PositionsToCheck);\r\n// }} \"\"\r\n// {{ 2652 1 0 \"a371cb50_1f5b_4e81_9dfe458feeb80d51\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPositions != int_TotalTipsToUse)\r\n{\r\n// }} \"\"\r\n// {{ 2653 1 0 \"816a6c82_f0bd_4066_ae0531da9f2f8ae5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 2654 1 0 \"b1a8136a_9d6b_44e0_a5074fb22056d898\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"SEQUENCE POSITIONS DO NOT MATCH TIP CHANNEL PATTERN\"));\r\n// }} \"\"\r\n// {{{ 2655 1 0 \"8c04cb15_b4c1_4e25_812f93087f4bbc6f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bln_ProbabilityPass);\r\n// }} \"\"\r\n// {{ 2656 1 0 \"a371cb50_1f5b_4e81_9dfe458feeb80d51\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2657 1 0 \"ca8414b3_e030_4b03_b443f8bfdc5897bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_RemainingPositionsForLabware = SeqGetPositionCountForCurrLabware(i_seq_PositionsToCheck);\r\n// }} \"\"\r\n// {{ 2658 1 0 \"cde18d85_3282_4351_a83ebc2398b7bfa3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RemainingPositionsForLabware != int_TotalTipsToUse)\r\n{\r\n// }} \"\"\r\n// {{ 2659 1 0 \"e6c9f9ea_70be_4875_a0ba4401492fb953\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 2660 1 0 \"f10462b5_0632_47ac_9f3c103b1d8e9b96\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"SEQUENCE POSITIONS ARE NOT FOR THE SAME LABWARE!  MPH96 CANNOT SPLIT THE SEQUENCE OVER MULTIPLE LABWARE!\"));\r\n// }} \"\"\r\n// {{{ 2661 1 0 \"d252d3f6_f472_4a53_98f241a7c3d01146\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bln_ProbabilityPass);\r\n// }} \"\"\r\n// {{ 2662 1 0 \"cde18d85_3282_4351_a83ebc2398b7bfa3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2663 1 0 \"a437cc26_57b0_4fac_bf47a6d6acba2acb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_TempCompare, i_seq_PositionsToCheck);\r\n// }} \"\"\r\n// {{{ 2664 1 0 \"3c727d75_42d2_4a1a_bbfe61b51a733bde\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequence(ML_STAR, seq_TempCompare, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 2665 1 0 \"1e2a087a_914a_4fee_a2c344d2f8bfb6cc\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempCompare.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 2666 1 0 \"8c3372d9_3d9c_45e9_a36a899d46ff0923\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_PositionsToCheck.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 2667 1 0 \"282669d6_5720_4a25_a38374afd8fa089e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosIDOriginal = SeqGetPositionId(i_seq_PositionsToCheck);\r\n// }} \"\"\r\n// {{{ 2668 1 0 \"37fb21c6_1a88_4a5f_a39906d5dcedbcac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosIDSort = SeqGetPositionId(seq_TempCompare);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 2669 1 0 \"f4787cf6_6680_4907_bd346c749d696d92\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     Original:  \"), str_PosIDOriginal, Translate(\"     Sorted:  \"), str_PosIDSort);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 2670 1 0 \"20cb8cda_711c_401d_8cde7e6b2e46a1d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_PosIDOriginal != str_PosIDSort)\r\n{\r\n// }} \"\"\r\n// {{ 2671 1 0 \"26cbece7_d200_47da_866f6e39d348d287\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ProbabilityPass = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 2672 1 0 \"46ea6364_7dd9_408d_9af56b5862684243\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"SEQUENCE IS NOT SORTED FOR THE MPH96\"));\r\n// }} \"\"\r\n// {{ 2673 1 0 \"20cb8cda_711c_401d_8cde7e6b2e46a1d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2674 1 0 \"35d4e988_a27b_450d_a33c1ed2a89167a4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bln_ProbabilityPass);\r\n// }} \"\"\r\n// {{{ 5 \"_ProbabilityCheckMPH96\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLabwareCoordinatesMPH96\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZCoord;\r\nprivate variable flt_YCoord;\r\nprivate variable flt_MinimumPipHeight;\r\nprivate variable flt_XCoord;\r\nprivate variable str_ContainerConfig;\r\nprivate variable str_LabID;\r\nprivate variable bln_ValueExists;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalPositions;\r\nprivate variable str_Value;\r\n// {{ 5 \"_GetLabwareCoordinatesMPH96\" \"InitLocals\"\r\no_flt_XCoord = 0;\r\no_flt_YCoord = 0;\r\no_flt_ZBottom = 0;\r\no_flt_ZMinimumHeight = 0;\r\no_flt_ZMaximumHeight = 0;\r\no_flt_ZClearanceHeight = 0;\r\n// }} \"\"\r\n// {{ 2199 1 0 \"7240ddd1_320c_44bf_b80c1e02bfd0a888\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZClearanceHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2200 1 0 \"3757d776_218c_43a1_bf23343f3e155327\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZMaximumHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2201 1 0 \"0a7345f4_9019_41fc_af65761d4806e7ef\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZMinimumHeight = 0.0;\r\n// }} \"\"\r\n// {{{ 2202 1 0 \"44d9d924_b098_414c_b45070ffe08f1ce7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seq_Positions);\r\n// }} \"\"\r\n// {{ 2203 1 0 \"6688cddd_dcb9_44ea_8a4acc2dc8ac5d2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPositions == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2204 1 0 \"b666e4c9_e6fa_433b_8bc41f737fd2f6a2\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 2205 1 0 \"6688cddd_dcb9_44ea_8a4acc2dc8ac5d2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2206 1 0 \"fd3b01a6_f2d5_42e8_b2c49a029a6e91cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Positions);\r\n// }} \"\"\r\n// {{{ 2207 1 0 \"173046d3_5b91_48ca_8330af778dc0c13d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_Positions);\r\n// }} \"\"\r\n// {{{ 2208 1 0 \"e1f13360_03c4_4002_9829f8dc2f8db451\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZCoord, flt_NotUsed);\r\n// }} \"\"\r\n// {{{ 2209 1 0 \"0cbe82fb_5a3f_4e4b_8c8f2646fb6da171\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetRackHeight(ML_STAR, str_LabID, o_flt_ZMaximumHeight, o_flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{{ 2210 1 0 \"dbc46421_9a15_43ea_ad5e84175ac5a5d5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ContainerConfig);\r\n// }} \"\"\r\n// {{{ 2211 1 0 \"be8c9adb_dfee_4056_a3857d2cae0189e4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ValueExists = HELPERLIBRARY::GetDefinitionFileValue(str_ContainerConfig, Translate(\"MaxDepth\"), str_Value);\r\n// }} \"\"\r\n// {{ 2212 1 0 \"f016248e_7ccd_4e5e_81b63e043a84e0b5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MinimumPipHeight = 0.0;\r\n// }} \"\"\r\n// {{ 2213 1 0 \"aafddfde_b0ec_4d06_9a1d03769241cf5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueExists == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2214 1 0 \"2732bc68_2804_41e3_aa419ef87e254435\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_MinimumPipHeight = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2215 1 0 \"aafddfde_b0ec_4d06_9a1d03769241cf5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2216 1 0 \"aec10be2_f620_4a90_9956a46244951e57\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZMinimumHeight = flt_ZCoord + flt_MinimumPipHeight;\r\n// }} \"\"\r\n// {{ 2217 1 0 \"2c0f30e0_b90c_4963_bac1c56a2b54a884\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_ZBottom = flt_ZCoord;\r\n// }} \"\"\r\n// {{{ 2218 1 0 \"899b763f_6a49_4fff_9b1d025987317aa8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_Positions);\r\n// }} \"\"\r\n// {{{ 2219 1 0 \"a3fdf2f1_afe7_46f0_ad79649cc354f01c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_XCoord, flt_YCoord, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{{ 2220 1 0 \"2ed48b9c_6778_4c20_95fb7b3e5728874d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_XCoord = MthRound(flt_XCoord, 1);\r\n// }} \"\"\r\n// {{{ 2221 1 0 \"96f83595_d343_43f5_bc36cd2119387c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_YCoord = MthRound(flt_YCoord, 1);\r\n// }} \"\"\r\n// {{{ 2222 1 0 \"59295438_3f53_4a8f_b4a6c9c616e04838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Clearance Height:  \"), o_flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{{ 2223 1 0 \"71677673_b1cc_4ca6_9780a72c1df1f8fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Top Of Plate Height:  \"), o_flt_ZMaximumHeight);\r\n// }} \"\"\r\n// {{{ 2224 1 0 \"7f00b6e9_e8e4_4011_ba624e1693a29fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Minimum Height:  \"), o_flt_ZMinimumHeight);\r\n// }} \"\"\r\n// {{{ 2225 1 0 \"7461d35d_1e61_4664_b887263a30473097\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"X Coordinate:  \"), o_flt_XCoord);\r\n// }} \"\"\r\n// {{{ 2226 1 0 \"2b047e6a_8c4c_4c06_82b0ca015a186c90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Y Coordinate:  \"), o_flt_YCoord);\r\n// }} \"\"\r\n// {{{ 2227 1 0 \"bc59a3f7_3966_44ad_8e9903801885191b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Z Bottom:  \"), o_flt_ZBottom);\r\n// }} \"\"\r\n// {{{ 5 \"_GetLabwareCoordinatesMPH96\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_DetermineStartZHeightMPH96\" \"Begin\"\r\nprivate function _DetermineStartZHeightMPH96( device & ML_STAR, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_ZMinimumCoord, variable & o_flt_StartZHeight ) variable {\r\n// }} \"\"\r\nprivate variable bln_SimulationMode;\r\nprivate variable flt_CurrentXCoord;\r\nprivate variable flt_CurrentZCoord;\r\nprivate variable flt_CurrentYCoord;\r\nprivate variable bln_MPHAtCoordinate;\r\nprivate variable flt_XDifference;\r\nprivate variable flt_YDifference;\r\n// {{ 5 \"_DetermineStartZHeightMPH96\" \"InitLocals\"\r\no_flt_StartZHeight = 0;\r\n// }} \"\"\r\n// {{{ 1879 1 0 \"c83fd845_6417_4ade_b371cad14178563f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 1880 1 0 \"45318ae4_6505_4682_a1aa80f7c4ba5f66\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StartZHeight = 0.0;\r\n// }} \"\"\r\n// {{ 1881 1 0 \"8229a3fb_6390_44ea_ad4fe7cd3ba3005d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_MPHAtCoordinate = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{{ 1882 1 0 \"ff95b86c_772e_4309_80d9d84ea8c2cc9a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::MPH96GetCoordinates(ML_STAR, flt_CurrentXCoord, flt_CurrentYCoord, flt_CurrentZCoord);\r\n// }} \"\"\r\n// {{ 1883 1 0 \"2716a643_1a7b_4838_90b4bbfaed291659\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_flt_XCoord = i_flt_XCoord * 10;\r\n// }} \"\"\r\n// {{ 1884 1 0 \"b6c7e838_dcfb_4c99_a0385a4e313ce3ed\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_flt_YCoord = i_flt_YCoord * 10;\r\n// }} \"\"\r\n// {{{ 1885 1 0 \"045f79b1_abe4_4b78_b490f286f9880626\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_flt_XCoord = MthFloor(i_flt_XCoord);\r\n// }} \"\"\r\n// {{{ 1886 1 0 \"dadc0e98_c422_490f_ad6a336b91af667c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_flt_YCoord = MthFloor(i_flt_YCoord);\r\n// }} \"\"\r\n// {{ 1887 1 0 \"7d0c85f4_3ccc_48ef_b3519e3093005bf1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentXCoord = flt_CurrentXCoord * 10;\r\n// }} \"\"\r\n// {{ 1888 1 0 \"3fa4fb43_9c68_481b_9a64c518424280a5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentYCoord = flt_CurrentYCoord * 10;\r\n// }} \"\"\r\n// {{{ 1889 1 0 \"a6a9762d_b135_45d6_9ec55064b1502475\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_CurrentXCoord = MthFloor(flt_CurrentXCoord);\r\n// }} \"\"\r\n// {{{ 1890 1 0 \"9842fb98_94f7_43ae_97e5d13563421deb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_CurrentYCoord = MthFloor(flt_CurrentYCoord);\r\n// }} \"\"\r\n// {{ 1891 1 0 \"fe983557_afe6_4b5e_8025e291100e62ff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XDifference = flt_CurrentXCoord - i_flt_XCoord;\r\n// }} \"\"\r\n// {{ 1892 1 0 \"345d2fac_86eb_429c_ae3c48ce488bd4c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_XDifference < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1893 1 0 \"93abaf37_2884_48de_a3d1cb7205da2da4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_XDifference = flt_XDifference * -1;\r\n// }} \"\"\r\n// {{ 1894 1 0 \"345d2fac_86eb_429c_ae3c48ce488bd4c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1895 1 0 \"5bf88e6c_afab_46cf_8a1b72e629697abb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YDifference = flt_CurrentYCoord - i_flt_YCoord;\r\n// }} \"\"\r\n// {{ 1896 1 0 \"9f784417_0c1c_4249_bd88126173e18d3e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YDifference < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1897 1 0 \"058d0e01_712d_4877_9f6c9177a31071ef\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YDifference = flt_YDifference * -1;\r\n// }} \"\"\r\n// {{ 1898 1 0 \"9f784417_0c1c_4249_bd88126173e18d3e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1899 1 0 \"023f9a30_8665_4a8a_aea977d9dde200ec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_XDifference > 1)\r\n{\r\n// }} \"\"\r\n// {{ 1900 1 0 \"623e1fd9_1f0c_4f75_98cf62dccb68a711\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_MPHAtCoordinate = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{{ 1901 1 0 \"f2128c84_505c_40e3_a582f582f563653a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(i_flt_XCoord, Translate(\" IS NOT EQUAL TO \"), flt_CurrentXCoord, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1902 1 0 \"023f9a30_8665_4a8a_aea977d9dde200ec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1903 1 0 \"92cfaaa0_2ce9_441e_829f5cd5fd3d52ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YDifference > 1)\r\n{\r\n// }} \"\"\r\n// {{ 1904 1 0 \"4e84b0e4_8c54_4c61_89c3bd41686272ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_MPHAtCoordinate = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{{ 1905 1 0 \"a173c094_7c38_4cf5_96c3d0b2aef5d14e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(i_flt_YCoord, Translate(\" IS NOT EQUAL TO \"), flt_CurrentYCoord, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1906 1 0 \"92cfaaa0_2ce9_441e_829f5cd5fd3d52ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1907 1 0 \"7848a39a_9aaa_4f27_a03457a33bace1b0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1908 1 0 \"c50b3acc_965f_4b2f_bc895317b803b26b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_MPHAtCoordinate = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 1909 1 0 \"7848a39a_9aaa_4f27_a03457a33bace1b0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1910 1 0 \"d05b1618_5de7_4b6a_b101358d92d71204\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_MPHAtCoordinate == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1911 1 0 \"c4fa00c6_8813_47d0_90a01df4d6ce0770\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StartZHeight = i_flt_ZMinimumCoord;\r\n// }} \"\"\r\n// {{ 1912 1 0 \"d05b1618_5de7_4b6a_b101358d92d71204\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1913 1 0 \"977bbd22_7a69_4ce0_8a36d82805b03268\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_StartZHeight = 245.0;\r\n// }} \"\"\r\n// {{ 1914 1 0 \"282ef985_04b4_4bec_83d9c4ef62271653\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"NOT AT CORRECT COORDINATES!\"));\r\n// }} \"\"\r\n// {{ 1915 1 0 \"d05b1618_5de7_4b6a_b101358d92d71204\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1916 1 0 \"13fc6406_2ebc_4bde_ab963a4939a59ad9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Z Start height:  \"), o_flt_StartZHeight, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1917 1 0 \"8eb75d78_ef93_47f4_8427428fe4ab8ddf\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bln_MPHAtCoordinate);\r\n// }} \"\"\r\n// {{{ 5 \"_DetermineStartZHeightMPH96\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLiquidFollowingForMPH96\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable flt_LiquidFollow;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\n// {{ 5 \"_GetLiquidFollowingForMPH96\" \"InitLocals\"\r\no_flt_LiquidFollowingDistance = 0;\r\n// }} \"\"\r\n// {{ 2337 1 0 \"00d33a8a_7b08_4ead_8c6557357d7e26bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_Aspirate == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 2338 1 0 \"7f53500a_ab3b_4bf8_82501c9874b482a9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_flt_VolumeToUse = i_flt_VolumeToUse * -1;\r\n// }} \"\"\r\n// {{ 2339 1 0 \"00d33a8a_7b08_4ead_8c6557357d7e26bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2340 1 0 \"8cbebec6_d753_43a0_9cdf3a359151f040\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LiquidFollowingDistance = 0.0;\r\n// }} \"\"\r\n// {{{ 2341 1 0 \"6f1158eb_0514_4ecb_81d0f78f9c166e7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_PositionsToCalculate);\r\n// }} \"\"\r\n// {{{ 2342 1 0 \"0667da06_459c_4064_bce119d316c48a0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_PositionsToCalculate);\r\n// }} \"\"\r\n// {{ 2343 1 0 \"fae18252_f907_4120_8a9d5f1b972bdb56\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_LiquidFollowingEnabled == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2344 1 0 \"2d85b46b_7657_4a03_a3a34065a8dbfc5b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalculateLiquidFollowDistance(ML_STAR, str_LabID, str_PosID, i_flt_FixedHeights, i_flt_VolumeToUse, i_bln_Aspirate, flt_LiquidFollow);\r\n// }} \"\"\r\n// {{ 2345 1 0 \"fae18252_f907_4120_8a9d5f1b972bdb56\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2346 1 0 \"ac7b0295_4043_450a_a5fc9b924e6432ff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollow = 0.0;\r\n// }} \"\"\r\n// {{ 2347 1 0 \"fae18252_f907_4120_8a9d5f1b972bdb56\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2348 1 0 \"87553761_891a_4f21_a8b2b93051b36f24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_flt_LiquidFollowingDistance = MthRound(flt_LiquidFollow, 1);\r\n// }} \"\"\r\n// {{{ 5 \"_GetLiquidFollowingForMPH96\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH_DispenseToFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bln_SimulationMode;\r\nprivate variable _strFunctionName;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable flt_DispenseVolume;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_YCoord;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable flt_XCoord;\r\nprivate variable flt_ZStartHeight;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable str_TempChPattern;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable bln_MPH96AtCoordinates;\r\nprivate variable int_MPHExists;\r\nprivate sequence seq_Temp;\r\nprivate variable flt_LiquidFollowingDistance;\r\nprivate variable flt_MovementStartHeight;\r\nprivate variable flt_MovementEndHeight;\r\nprivate variable flt_EndHeight;\r\n// {{ 5 \"MPH_DispenseToFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 88 1 0 \"856fd6f2_44ae_40b7_a4bc0bc9d604e472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 89 1 0 \"7f92fab9_72f0_4909_8a54a747f92dfd7f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 91 1 0 \"327b4abe_dc39_427f_b9841d57b06575af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 92 1 0 \"856fd6f2_44ae_40b7_a4bc0bc9d604e472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 93 1 0 \"0aaa2022_7130_41da_bb51628719313db8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 94 1 0 \"1ad59e94_9641_4608_87503bb1c6cb6ec6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 95 1 0 \"5227a1d3_d2e1_4ccb_8b43c64e76e61336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 96 1 0 \"c340e8f5_ae08_44b3_a57d96b96c1771ac\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 97 1 0 \"ca7f6989_3a3f_4842_b88c01ce2bf0290a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetMPHExist(ML_STAR, int_MPHExists);\r\n// }} \"\"\r\n// {{ 98 1 0 \"1e8574ca_af5d_418c_98e87b94bed30250\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_MPHExists == 0)\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"62b07a33_fbeb_4039_b181692514cbdea2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"MPH96 IS NOT LOADED IN THE CONFIGURATION OF THIS INSTRUMENT!\"));\r\n// }} \"\"\r\n// {{ 100 1 0 \"75053de7_d610_42fd_85c784b494f2fac4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"4f98007a_5575_4371_b674ac741adb14a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 102 1 0 \"75053de7_d610_42fd_85c784b494f2fac4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 103 1 0 \"076b5c62_cf24_4541_b6d52093843e3ef5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 104 1 0 \"1e8574ca_af5d_418c_98e87b94bed30250\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 105 1 0 \"09243164_fc51_4cf9_a312ea805644a68a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 106 1 0 \"9c75b280_c768_4b20_add335bb966324fa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TempChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 107 1 0 \"b2577ab6_a6e5_4e8e_80f075034f33f55f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TempChPattern = StrFillRight(str_TempChPattern, Translate(\"1\"), 96);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"eae91407_ab97_4b1c_801dbed2e6510a43\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_DispensePositions, str_TempChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 109 1 0 \"084dbaec_7634_40a4_bb3fae2b8f3dcbbe\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 110 1 0 \"4c0a01ec_a227_472b_b3b5ab563a63242f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheckMPH96(ML_STAR, seq_Temp, str_TempChPattern);\r\n// }} \"\"\r\n// {{ 111 1 0 \"4af4361a_45b3_4869_adff7a848fb57c6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 112 1 0 \"05588c22_2000_49dc_b413c247bbd26370\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\"));\r\n// }} \"\"\r\n// {{ 113 1 0 \"0bab1631_9dee_4903_aac98cfffec44b9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 114 1 0 \"954ac070_4da4_41fe_a2f54ef17b0afc78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 115 1 0 \"0bab1631_9dee_4903_aac98cfffec44b9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 116 1 0 \"654c4858_8df9_424a_a521cb0b290fca12\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 117 1 0 \"4af4361a_45b3_4869_adff7a848fb57c6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 118 1 0 \"30444594_4634_47d7_b5b1711aa79600f2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 119 1 0 \"d91614bd_22e6_4c46_80a4f11024f80a54\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::MPH96GetTipPresence(ML_STAR, bln_TipsLoaded);\r\n// }} \"\"\r\n// {{ 120 1 0 \"39a1a712_406c_4b45_b0f12c7cfbf45ce8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 121 1 0 \"aac4f907_68cc_4822_99a95b2b742e98b3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_TipsLoaded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 122 1 0 \"39a1a712_406c_4b45_b0f12c7cfbf45ce8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 123 1 0 \"ac94b279_67c2_4f0a_b8040e4aedec38a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 124 1 0 \"e545c868_bcf9_42f7_8785a943dfda096e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS NOT PICKED UP!\"));\r\n// }} \"\"\r\n// {{ 125 1 0 \"7f09c032_5f92_4c73_bf16b41ff4118cd1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 126 1 0 \"7da5d47e_3314_419c_a14b5e4b05d7019d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 127 1 0 \"7f09c032_5f92_4c73_bf16b41ff4118cd1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 128 1 0 \"72d97802_d110_4c86_9d10331ac0d27d78\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 129 1 0 \"ac94b279_67c2_4f0a_b8040e4aedec38a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 130 1 0 \"9d27fb64_d783_40cc_a5a78769047bffb9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 131 1 0 \"b30a7f48_08a0_41c6_8332f4f92ce07e4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinatesMPH96(ML_STAR, seq_Temp, flt_XCoord, flt_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{ 132 1 0 \"63a2f5dd_8c7f_493c_a6df17eab64ce8e8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 133 1 0 \"2539e7a4_9609_44bf_b5484ed65e2f1945\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_MPH96AtCoordinates = _DetermineStartZHeightMPH96(ML_STAR, flt_XCoord, flt_YCoord, flt_ZMinimumHeight, flt_ZStartHeight);\r\n// }} \"\"\r\n// {{ 134 1 0 \"dc222e01_56ab_45bc_84301fbc4b33abdb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (T_PIP_TOOLS_LIQUID_CLASS == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 135 1 0 \"0c29cce1_eb4c_49b4_a3868fcc37703770\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"LIQUID CLASS IS NOT SET! ASPIRATE COMMAND MUST BE SET PRIOR TO DISPENSE!\"));\r\n// }} \"\"\r\n// {{ 136 1 0 \"ee43b63a_1982_4f0a_9d2fb6d02dec4b5b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 137 1 0 \"583ba071_fe9e_4708_946fa8ad4d5a88b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 138 1 0 \"ee43b63a_1982_4f0a_9d2fb6d02dec4b5b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 139 1 0 \"6ee74921_9832_48bd_b4caad6c8f589c67\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 140 1 0 \"dc222e01_56ab_45bc_84301fbc4b33abdb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 141 1 0 \"de4c25d2_80bd_4cf3_bd9630f44647e4a6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 142 1 0 \"f64af878_2b91_4536_8226831e46a65a30\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(i_flt_DispenseVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_DispenseVolume);\r\n// }} \"\"\r\n// {{{ 143 1 0 \"3f7cd488_050f_4c04_a145dd63de2c2018\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Dispense Volume:  \"), i_flt_DispenseVolume, Translate(\"  Corrected Volume for Liquid Class:  \"), flt_DispenseVolume);\r\n// }} \"\"\r\n// {{{ 144 1 0 \"26ebfd5b_3144_460d_8bc5f894f9ca7286\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Dispense Height:  \"), i_flt_DispenseHeight, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 145 1 0 \"757d2bd5_38c0_4ee1_aaf7d05124c6c93c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 146 1 0 \"ea2fda89_0933_4fe5_bc595af76d2319c7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLiquidFollowingForMPH96(ML_STAR, i_flt_DispenseHeight, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::FALSE, i_flt_DispenseVolume, flt_LiquidFollowingDistance);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"05fad318_a702_41ea_bdbee0e773972592\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate(\"Processing\"));\r\n// }} \"\"\r\n// {{ 148 1 0 \"e48fb309_9484_46fa_a654d7108c230c8a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementStartHeight = flt_ZStartHeight;\r\n// }} \"\"\r\n// {{ 149 1 0 \"64755a16_fa32_4f62_aa1d5b037a770de0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = 245.0;\r\n// }} \"\"\r\n// {{ 150 1 0 \"108e224f_b6ce_438d_86348f1050c29c2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 1)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"3413e386_f4dd_4e0e_ab07d169f177c472\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZClearanceHeight;\r\n// }} \"\"\r\n// {{ 152 1 0 \"108e224f_b6ce_438d_86348f1050c29c2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 153 1 0 \"15ef3377_8ea5_464b_900f535302eb8624\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 2)\r\n{\r\n// }} \"\"\r\n// {{ 154 1 0 \"ae1cc3cb_9989_494c_814aeaf905a02ebd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMaximumHeight;\r\n// }} \"\"\r\n// {{ 155 1 0 \"15ef3377_8ea5_464b_900f535302eb8624\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 156 1 0 \"60e38117_a8ef_463a_af1e107cfc57d781\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 3)\r\n{\r\n// }} \"\"\r\n// {{ 157 1 0 \"8bd4ae9e_d56e_4222_8b599fabe008b34b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndHeight = i_flt_DispenseHeight + flt_LiquidFollowingDistance;\r\n// }} \"\"\r\n// {{ 158 1 0 \"97586f4c_62c5_4b24_bcfec86ce61356e9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_EndHeight = flt_EndHeight + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 159 1 0 \"7494472a_ab66_4024_b36505aeb7c0a64a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_EndHeight;\r\n// }} \"\"\r\n// {{ 160 1 0 \"b48a9c79_08df_4fe3_b86be87bee71ea98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_MovementEndHeight < flt_ZMinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 161 1 0 \"f75790a3_4fcd_4668_a714099b4ebb98b0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 162 1 0 \"b48a9c79_08df_4fe3_b86be87bee71ea98\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 163 1 0 \"60e38117_a8ef_463a_af1e107cfc57d781\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"c3cdbbf8_75db_4424_898f543662f54aac\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 165 1 0 \"fa48b9ab_11a1_4c73_8a6e6afc9d20e5ca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{{ 166 1 0 \"356227c4_11f3_449c_b0857c909b70c4e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"Processed\"));\r\n// }} \"\"\r\n// {{ 167 1 0 \"6128552c_bc78_4a8f_b1f6ec4b01cee6f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 168 1 0 \"9b1c9615_5def_4bc0_ad082442d555270d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 169 1 0 \"6128552c_bc78_4a8f_b1f6ec4b01cee6f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH_DispenseToFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_CheckForPressureErrors\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable int_TotalReturnValues;\r\nprivate variable int_Pos;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZBottom;\r\nprivate variable i;\r\nprivate variable int_Recovery;\r\nprivate variable flt_LiquidLevelHeight;\r\nprivate variable int_ChannelUsed;\r\nprivate variable str_ReturnValueLiquidLevel;\r\nprivate variable str_LabID;\r\nprivate variable int_DispenseCount;\r\nprivate variable int_TotalErrorChannels;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_ChannelIndex;\r\nprivate variable str_PosID;\r\nprivate variable flt_DispenseHeight;\r\nprivate variable str_ChPattern;\r\nprivate sequence seq_Dispense;\r\nprivate variable arr_DispenseHeights[];\r\nprivate variable arr_ChannelPattern[];\r\nprivate variable arr_ChannelPatternNoError[];\r\n// {{ 5 \"_CheckForPressureErrors\" \"InitLocals\"\r\no_str_NoErrorChPattern = 0;\r\n// }} \"\"\r\n// {{ 1703 1 0 \"e782db96_81f7_4a41_998e536994c93c66\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_AspirationReturnValue == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"2b082cda_bd4c_481b_bd5fa8d885bbc148\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 1705 1 0 \"e782db96_81f7_4a41_998e536994c93c66\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1706 1 0 \"87237b65_843e_4e32_8b2677c0518917d6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"-----------------------------------------CheckForTADMErrors - START\"));\r\n// }} \"\"\r\n// {{{ 1707 1 0 \"42979d42_5730_4e78_bfd29bbbc4eb09ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{ 1708 1 0 \"c17dfb6c_1ab5_4c9e_bf3d6540b85cb56b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1709 1 0 \"28a4c387_25cf_4877_824095348abc6032\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 1710 1 0 \"be386bdb_21ba_40f9_bbf17d735d54e8db\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelPatternNoError.SetSize(0);\r\n// }} \"\"\r\n// {{ 1711 1 0 \"ce8204e2_313e_4827_bf069f3b4f8e5dd5\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1712 1 0 \"6029a1b4_7c12_4745_9550f1cb4e5aa71b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 1713 1 0 \"50e3f34a_6bb7_4007_a1885db451912819\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1714 1 0 \"5dda57c5_3750_41a4_82190a0a2e5edb13\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 1715 1 0 \"2d312cc1_858a_4851_ab62614f33bc0965\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPatternNoError.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 1716 1 0 \"6029a1b4_7c12_4745_9550f1cb4e5aa71b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1717 1 0 \"18a1a33a_30ab_47ae_8e9d23357a270628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_Dispense);\r\n// }} \"\"\r\n// {{ 1718 1 0 \"99e5ebc0_6221_45c2_92ceba4a7c88c07a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1719 1 0 \"bf06b94e_9dde_486d_ba9fc3a37c15404d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnValueLiquidLevel = i_str_LiquidReturnValue;\r\n// }} \"\"\r\n// {{{ 1720 1 0 \"48c547a1_b691_4aeb_b0728806f6fd2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalReturnValues = StepReturn::GetNumberOfPositions(i_str_AspirationReturnValue);\r\n// }} \"\"\r\nTrace(i_str_AspirationReturnValue);\r\n// {{ 1722 1 0 \"e36fe486_c4e0_4f40_89216fb90ee25a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_DispenseCount = 1;\r\n// }} \"\"\r\n// {{ 1723 1 0 \"2277d6cf_6250_4cd8_ab2f6dc5f37e88ba\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalReturnValues;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1724 1 0 \"a83829bc_1051_4ab1_931b1a8cb5f721e6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ZBottom = 0.0;\r\n// }} \"\"\r\n// {{{ 1725 1 0 \"f48e8257_26ac_4282_acd801d594bfd846\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Pos = StepReturn::GetPositionFromNum(i, i_str_AspirationReturnValue);\r\n// }} \"\"\r\n// {{ 1726 1 0 \"aabba532_1801_49a1_96b59ca897230a7c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1727 1 0 \"10fb9c2a_bffd_4d25_81104d361f2dade6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = StepReturn::GetLabwareId(int_Pos, i_str_AspirationReturnValue);\r\n// }} \"\"\r\n// {{{ 1728 1 0 \"945e6487_fe29_4293_b9de0ed36c7245a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = StepReturn::GetPositionId(int_Pos, i_str_AspirationReturnValue);\r\n// }} \"\"\r\n// {{ 1729 1 0 \"3c7ba13f_1dd5_486e_a737d58184e4a5ca\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1730 1 0 \"ab71d958_b7e6_46eb_b478c3f1ba22fb7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Recovery = StepReturn::GetRecoveryButton(int_Pos, i_str_AspirationReturnValue);\r\n// }} \"\"\r\n// {{ 1731 1 0 \"2c3f4ded_cb33_425f_9c8a480884e12628\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1732 1 0 \"65fc3c3d_718c_461a_8b137db6217f9c11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChannelUsed = StepReturn::GetPosition(int_Pos, i_str_AspirationReturnValue);\r\n// }} \"\"\r\n// {{ 1733 1 0 \"94829a4e_edda_4956_aa796a45f63cc941\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1734 1 0 \"d82bb162_dc10_427f_97f8aac8805f0080\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_LiquidLevelHeight = StepReturn::GetLastLiquidLevel(int_ChannelUsed, str_ReturnValueLiquidLevel);\r\n// }} \"\"\r\n// {{ 1735 1 0 \"33ee4633_0d2e_4f0f_a77d0f6acb96b4ce\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1736 1 0 \"ed3c35d3_bd92_4620_93581bfb87fba700\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Recovery == 9)\r\n{\r\n// }} \"\"\r\n// {{ 1737 1 0 \"5482308a_bb0e_4896_90a395391479d5d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabID != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1738 1 0 \"8f13d2f1_bd5f_4527_97cce3ce0aa29892\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_PosID != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1739 1 0 \"97a85001_f674_4df5_99cce7b89db3914a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZBottom, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 1740 1 0 \"8f13d2f1_bd5f_4527_97cce3ce0aa29892\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1741 1 0 \"5482308a_bb0e_4896_90a395391479d5d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1742 1 0 \"76e33a7d_eac3_4d3b_8a8b34c82ec10cf0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1743 1 0 \"bdd84df7_3539_47e8_ab625034100123ec\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = flt_LiquidLevelHeight - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1744 1 0 \"7da92bc5_0044_4f54_ae1265f142cffd21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_DispenseHeight < 5.0)\r\n{\r\n// }} \"\"\r\n// {{ 1745 1 0 \"85b46f89_a1f7_42e4_a3e74e348a152dba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = 5.0;\r\n// }} \"\"\r\n// {{ 1746 1 0 \"7da92bc5_0044_4f54_ae1265f142cffd21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1747 1 0 \"d699688a_28fb_44b0_8e94c9207f4766d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_Dispense, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1748 1 0 \"ea978b45_90e9_436e_9f07b94df9f7282d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.SetAt(int_ChannelUsed-1, 1);\r\n// }} \"\"\r\n// {{ 1749 1 0 \"b1a3caa4_b2ff_4b71_850040f0adc6204e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.SetAt(int_ChannelUsed-1, flt_DispenseHeight);\r\n// }} \"\"\r\n// {{ 1750 1 0 \"ed3c35d3_bd92_4620_93581bfb87fba700\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1751 1 0 \"b65821a7_c371_4d7b_b129c12c33e523e7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPatternNoError.SetAt(int_ChannelUsed-1, 1);\r\n// }} \"\"\r\n// {{ 1752 1 0 \"ed3c35d3_bd92_4620_93581bfb87fba700\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1753 1 0 \"2277d6cf_6250_4cd8_ab2f6dc5f37e88ba\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1754 1 0 \"fd376040_f5f3_4d81_9d45158199a2b185\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Dispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1755 1 0 \"cacaaa67_4a2e_47b3_bcf13c700d7b3c46\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1756 1 0 \"305ca67a_4f53_4e52_896911b8c736e929\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1757 1 0 \"3d7bf2af_373e_4d75_88ac59a583e05b63\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_NoErrorChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1758 1 0 \"08fbf65e_d74b_4255_a2b2a70ea809ae36\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 1759 1 0 \"eeef0bb4_1a93_4eb9_b6ad457fb8d1d137\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChPattern = StrConcat2(str_ChPattern, arr_ChannelPattern.ElementAt( int_ChannelIndex -1));\r\n// }} \"\"\r\n// {{{ 1760 1 0 \"9405d05d_3319_4184_841e26b9d0448d88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_NoErrorChPattern = StrConcat2(o_str_NoErrorChPattern, arr_ChannelPatternNoError.ElementAt( int_ChannelIndex -1));\r\n// }} \"\"\r\n// {{ 1761 1 0 \"08fbf65e_d74b_4255_a2b2a70ea809ae36\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\nTrace(\"Channel Pattern no error:  \",o_str_NoErrorChPattern);\r\n// {{{ 1763 1 0 \"2cb74f4c_d9f3_4d77_8e850aab761b91a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalErrorChannels = StrReplace(str_ChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 1764 1 0 \"715e73b5_fad5_4c43_aa3a9469ba2c16e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalErrorChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1765 1 0 \"06c1f7cb_1c41_459c_9700d5c5a4bafec4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"======================================================================\\nNO PRESSURE ERRORS\\n======================================================================\"));\r\n// }} \"\"\r\n// {{ 1766 1 0 \"715e73b5_fad5_4c43_aa3a9469ba2c16e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1767 1 0 \"5b062f27_a24e_4bdc_a2c3d7f5972b6e89\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_LiquidClassDispenseBack != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1768 1 0 \"eb2ad94c_dd6e_4dd6_84b061ae405750b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_DispenseBackVolume > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1769 1 0 \"ef3fdedf_fab7_46c4_8b88cb79c20e85cb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"================================================================\\nSAMPLE DISPENSE BACK TO SOURCE REQUIRED!\\n\"));\r\n// }} \"\"\r\nTrace(\"Channel Pattern of channels that need to dispense back to source:  \",str_ChPattern);\r\n// {{{ 1771 1 0 \"7dea5406_3e49_47e5_a1282f64ca374d18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceSequence(seq_Dispense);\r\n// }} \"\"\r\n// {{{ 1772 1 0 \"162b5432_4079_4f3d_8cebda63c50ae959\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Dispense Heights\"), arr_DispenseHeights);\r\n// }} \"\"\r\n// {{ 1773 1 0 \"9e42f1da_34fb_438e_b04e3e97fbf7deb5\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"9e42f1da_34fb_438e_b04e3e97fbf7deb5\"); // Dispense\r\n}\r\n// }} \"\"\r\n// {{ 1774 1 0 \"08796230_6ad4_42fa_90396f5f4545ae63\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"\\n================================================================\"));\r\n// }} \"\"\r\n// {{ 1775 1 0 \"eb2ad94c_dd6e_4dd6_84b061ae405750b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1776 1 0 \"5b062f27_a24e_4bdc_a2c3d7f5972b6e89\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1777 1 0 \"715e73b5_fad5_4c43_aa3a9469ba2c16e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1778 1 0 \"acb00700_80cf_44a2_8bf7827873855c58\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"-----------------------------------------CheckForTADMErrors - END\"));\r\n// }} \"\"\r\n// {{{ 5 \"_CheckForPressureErrors\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_CalculateVolumeForHeight\" \"Begin\"\r\nfunction TOOL_CalculateVolumeForHeight( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_HeightOfVolume, variable & o_flt_Volume ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable str_ConfigFile;\r\nprivate variable str_PosID;\r\n// {{ 5 \"TOOL_CalculateVolumeForHeight\" \"InitLocals\"\r\no_flt_Volume = 0;\r\n// }} \"\"\r\n// {{ 1644 1 0 \"5d320976_b6b6_4a36_aff000b78d2d0d37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1645 1 0 \"c86b2074_1484_4b4a_aec9b964ec7088e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1647 1 0 \"a867c267_264e_44a9_abaacde24b31de64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1648 1 0 \"5d320976_b6b6_4a36_aff000b78d2d0d37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1649 1 0 \"4dae6cce_9144_4eb8_90318ab5fb77ae38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_LabwareForCalculation);\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"7b3fba34_520b_4276_85fb9eb7545de8b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seq_LabwareForCalculation);\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"79d77517_f4e2_4299_af1afba4ff5c97eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     LabID:  \"), str_LabID, Translate(\"   Position ID:  \"), str_PosID);\r\n// }} \"\"\r\n// {{{ 1652 1 0 \"2afad708_5009_4b67_b43ced40eda97746\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ConfigFile);\r\n// }} \"\"\r\n// {{{ 1653 1 0 \"593d0247_b82c_4542_8f86ae8f574ca7b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ConfigFile, i_flt_HeightOfVolume, o_flt_Volume);\r\n// }} \"\"\r\n// {{{ 1654 1 0 \"5b9ae5ee_83ad_460c_940b4f406d6a8cde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     Height:  \"), i_flt_HeightOfVolume, Translate(\"   Volume:  \"), o_flt_Volume);\r\n// }} \"\"\r\n// {{ 1655 1 0 \"60b42f20_dcfd_4e75_bd00573c4c078357\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1656 1 0 \"4e2e0e7c_a054_4c52_a4d4730623c6e3e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1657 1 0 \"60b42f20_dcfd_4e75_bd00573c4c078357\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_CalculateVolumeForHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetLabwareLimits\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable flt_Angle;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_LabwareYDim;\r\nprivate variable flt_LabwareXDim;\r\nprivate variable flt_OriginX;\r\nprivate variable flt_OriginY;\r\nprivate variable flt_OriginZ;\r\nprivate variable i;\r\n// {{ 5 \"_GetLabwareLimits\" \"InitLocals\"\r\no_flt_XMin = 0;\r\no_flt_XMax = 0;\r\no_flt_YMin = 0;\r\no_flt_YMax = 0;\r\n// }} \"\"\r\n// {{{ 2229 1 0 \"59a9d321_c287_4537_9578b9a0d093710e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, i_str_LabID, flt_NotUsed, flt_NotUsed, flt_NotUsed, flt_Angle);\r\n// }} \"\"\r\n// {{{ 2230 1 0 \"ae2b547f_77b8_4d39_9905409e5eacac44\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareOrigin(ML_STAR, i_str_LabID, flt_OriginX, flt_OriginY, flt_OriginZ);\r\n// }} \"\"\r\n// {{{ 2231 1 0 \"3c7cec60_7b08_4a88_896edb5c147f9cb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetLabwareLW(ML_STAR, i_str_LabID, flt_LabwareYDim, flt_LabwareXDim);\r\n// }} \"\"\r\n// {{ 2232 1 0 \"f95f4bb9_015b_4242_a299167abbecea97\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < 1;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 2233 1 0 \"a70b0249_a7b8_4c22_91362a019a902887\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XMin = flt_OriginX;\r\n// }} \"\"\r\n// {{ 2234 1 0 \"96053a6e_ff26_44a1_8275a580079b6f13\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YMin = flt_OriginY;\r\n// }} \"\"\r\n// {{ 2235 1 0 \"02a4417a_d0a3_4dab_8bf0a7a74fff89c8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XMax = flt_OriginX + flt_LabwareXDim;\r\n// }} \"\"\r\n// {{ 2236 1 0 \"fe097457_a60d_4a87_82abcf27fc9b8e45\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YMax = flt_OriginY + flt_LabwareYDim;\r\n// }} \"\"\r\n// {{ 2237 1 0 \"e6991c87_b4e1_44a0_b8e82e9b0f98bbfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Angle == 90)\r\n{\r\n// }} \"\"\r\n// {{ 2238 1 0 \"a3b19ae7_82f8_451c_a2060a6b93d175db\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XMin = flt_OriginX;\r\n// }} \"\"\r\n// {{ 2239 1 0 \"9e7e40cc_06d6_48d8_8441c4c1cc2becb5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YMax = flt_OriginY;\r\n// }} \"\"\r\n// {{ 2240 1 0 \"d7d0016c_019a_4eb1_8ef7e07ed9da25d5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XMax = flt_OriginX + flt_LabwareYDim;\r\n// }} \"\"\r\n// {{ 2241 1 0 \"baf7a761_2fc1_4012_ab7cb6d0db8931fb\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YMin = flt_OriginY - flt_LabwareXDim;\r\n// }} \"\"\r\n// {{ 2242 1 0 \"611d5b7c_d2e6_48f3_977429a86acd80eb\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2243 1 0 \"e6991c87_b4e1_44a0_b8e82e9b0f98bbfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2244 1 0 \"5a9093c8_9f4e_4a01_958ece676a05d173\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Angle == 180)\r\n{\r\n// }} \"\"\r\n// {{ 2245 1 0 \"ca07bc3a_6d65_4cea_8e0a133c109fdf59\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XMax = flt_OriginX;\r\n// }} \"\"\r\n// {{ 2246 1 0 \"3533b504_78f5_4cad_a0a09e2b04d68846\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YMax = flt_OriginY;\r\n// }} \"\"\r\n// {{ 2247 1 0 \"58544be5_7bd1_4174_9d46ccfe656a9ec4\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XMin = flt_OriginX - flt_LabwareXDim;\r\n// }} \"\"\r\n// {{ 2248 1 0 \"1e420591_f535_4238_8a31dbadf45ba94c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YMin = flt_OriginY - flt_LabwareYDim;\r\n// }} \"\"\r\n// {{ 2249 1 0 \"3700c789_0c48_46bf_ab4aad158204ccaa\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2250 1 0 \"5a9093c8_9f4e_4a01_958ece676a05d173\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2251 1 0 \"69943145_ff55_40d3_9d92bfa15462dfdd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_Angle == 270)\r\n{\r\n// }} \"\"\r\n// {{ 2252 1 0 \"46dd0980_ba3e_4d66_be4900440f227e6b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XMax = flt_OriginX;\r\n// }} \"\"\r\n// {{ 2253 1 0 \"009579ae_ffaf_4bad_ae7928fcfeaf5fd7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YMin = flt_OriginY;\r\n// }} \"\"\r\n// {{ 2254 1 0 \"b4fd3c78_b31f_498c_b4de0d90365d3b99\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_XMin = flt_OriginX - flt_LabwareYDim;\r\n// }} \"\"\r\n// {{ 2255 1 0 \"6f023a87_16c3_4a33_bd0b7a1635ff3e31\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_YMax = flt_OriginY + flt_LabwareXDim;\r\n// }} \"\"\r\n// {{ 2256 1 0 \"1d3dab8a_e7e3_4aeb_a0646a1b137fc48b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2257 1 0 \"69943145_ff55_40d3_9d92bfa15462dfdd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2258 1 0 \"f95f4bb9_015b_4242_a299167abbecea97\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2259 1 0 \"2daf8299_0a3b_44de_86d144abce8c5054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(Translate(\"     \"), Translate(\"X Min:  \"), o_flt_XMin, Translate(\"     X Max:  \"), o_flt_XMax, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2260 1 0 \"d666895a_b3a5_4a87_bb57178a3826acbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(Translate(\"     \"), Translate(\"Y Min:  \"), o_flt_YMin, Translate(\"     Y Max:  \"), o_flt_YMax, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"_GetLabwareLimits\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_MixFromFixedHeight\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bln_SimulationMode;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ContainerDepth;\r\nprivate variable flt_MovementStartHeight;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable bln_ChannelsAtCoordinates;\r\nprivate variable _strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable flt_ZStartHeight;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable flt_AspirationVolume;\r\nprivate variable int_TotalChannels;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable flt_DispenseHeight;\r\nprivate variable flt_MovementEndHeight;\r\nprivate sequence seq_Temp;\r\nprivate variable arr_LiquidFollowingDistance[];\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_XCoord[];\r\nprivate variable arr_AspirationHeights[];\r\nprivate variable flt_MixVolume;\r\n// {{ 5 \"PIP_MixFromFixedHeight\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 435 1 0 \"709f2224_f785_4533_b8e6fff0956538d1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 436 1 0 \"15850733_0dfb_49b4_b9f417303886bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 438 1 0 \"d73c76eb_d51a_478d_8ecf347029585755\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 439 1 0 \"709f2224_f785_4533_b8e6fff0956538d1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 440 1 0 \"b02fdb69_4dab_4c7c_91c03eb43edc0f95\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 441 1 0 \"7fe739eb_29cc_4904_a2d912ebb41e4a9a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 442 1 0 \"8741ceb1_0342_41f6_b335c2d3f9b3790f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 443 1 0 \"ef73a351_f4a6_46a8_b832d5b10a349978\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 444 1 0 \"4fc65373_0651_47f0_b18f856060f5331e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{ 445 1 0 \"e2ee4f12_6130_4632_911a5784eff12472\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 446 1 0 \"354b23d4_5cf2_4eb5_aad92ad9375dd89b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrConcat2(i_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 447 1 0 \"3d7c76f6_1a69_4a14_b56608cfc52cc60d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 448 1 0 \"07c539ed_1c1c_4f5e_8e1a618084436d52\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 449 1 0 \"f5af5bce_2b44_449e_b2a8c60820a7ba31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_MixPositions, i_str_ChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 450 1 0 \"26f9028b_16f0_4b9b_824c30b48bb40c52\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 451 1 0 \"f2512d83_4b70_4aed_a06bdbcda4031905\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 452 1 0 \"01f97a90_0caa_4d85_bffc452c7d486036\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 453 1 0 \"8b6f2811_69f4_4fcb_ac16ee9fb69e3494\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 454 1 0 \"1ee5ba5b_f8ac_4b75_a899dfbefc4fc471\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 455 1 0 \"f4eed0d6_ede8_4031_b0ad4fe9f263e3e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 456 1 0 \"1ee5ba5b_f8ac_4b75_a899dfbefc4fc471\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 457 1 0 \"edd9e761_085d_4f4f_90746336c5527523\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 458 1 0 \"01f97a90_0caa_4d85_bffc452c7d486036\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 459 1 0 \"d43695b4_7f8b_400b_9e62c17a15dadfab\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 460 1 0 \"86bad04b_8b94_4879_ad43a83045e32a5c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 461 1 0 \"c2a3c880_e468_4581_b6418fa1b608fc6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 462 1 0 \"49839430_3708_4dea_8dfcde3a0fee9d01\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!\"));\r\n// }} \"\"\r\n// {{ 463 1 0 \"4f55bd18_62fa_46d1_a6299632d3acc117\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 464 1 0 \"e8329f6d_73f5_47a3_9e14daa797e7c486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 465 1 0 \"4f55bd18_62fa_46d1_a6299632d3acc117\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 466 1 0 \"584e67d8_7194_47a4_aac91697d126322e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 467 1 0 \"c2a3c880_e468_4581_b6418fa1b608fc6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 468 1 0 \"a712be01_221a_49c1_b648724e456097c1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 469 1 0 \"8567fe7d_6af9_4b17_9861ff65d16ff712\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{ 470 1 0 \"a759d21a_be3d_43ff_b790dd3c1dd78d8c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 471 1 0 \"7c05bfe4_7d97_485c_92c6fb2434e288b3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 472 1 0 \"4e17ac2a_855d_4d89_ab267438969a6275\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"42fa07a7_71b5_47b8_a17367022f393d60\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ChannelsAtCoordinates = _DetermineStartZHeight(ML_STAR, i_str_ChPattern, str_LabID, arr_XCoord, arr_YCoord, flt_ZMinimumHeight, flt_ZClearanceHeight, flt_ZStartHeight);\r\n// }} \"\"\r\n// {{ 474 1 0 \"c8e027b1_ba13_407c_afe6fb2c57b6fe8c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 475 1 0 \"ed8d2b66_6750_4770_a53aeff5a5b4f3ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ApplyOffsetToArrayofValues(i_arr_FixedHeights, flt_ZBottom, arr_AspirationHeights);\r\n// }} \"\"\r\n// {{ 476 1 0 \"65546bc4_ba3d_4892_9d3df54d132f2f23\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 477 1 0 \"867ed115_f540_489b_b57ef27f3dae8900\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"57749e8a_30e7_41bc_a2e0d1f12a7cf1fc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{ 479 1 0 \"56d60f98_2e08_43d6_886ae38ccbded5bb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 480 1 0 \"5b53a3a8_53e3_410d_990a4bdeb4b397af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(i_flt_MixVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_MixVolume);\r\n// }} \"\"\r\n// {{{ 481 1 0 \"c49834cd_6f9a_41d0_9a5243c205145826\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Mix Volume:  \"), i_flt_MixVolume, Translate(\"  Corrected Volume for Liquid Class:  \"), flt_MixVolume);\r\n// }} \"\"\r\n// {{ 482 1 0 \"cda3cb5c_e361_48da_940f7bb80e7ce1b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 483 1 0 \"50cd3239_9108_46e8_995be7cb777e3b49\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLiquidFollowingForAllChannels(ML_STAR, i_arr_FixedHeights, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::TRUE, flt_AspirationVolume, i_str_ChPattern, arr_LiquidFollowingDistance);\r\n// }} \"\"\r\n// {{{ 484 1 0 \"610cd7f6_8101_4774_b0b19b47acc89b13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate(\"Processing\"));\r\n// }} \"\"\r\n// {{ 485 1 0 \"2c40f5f0_fdb7_4183_bde357cc6f5d4a15\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementStartHeight = flt_ZStartHeight;\r\n// }} \"\"\r\n// {{ 486 1 0 \"80af149d_caf0_4583_be7299b557ac8147\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = 245.0;\r\n// }} \"\"\r\n// {{ 487 1 0 \"1c1951ce_5a24_43d0_be7d52a95380d1d1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 1)\r\n{\r\n// }} \"\"\r\n// {{ 488 1 0 \"5e773e48_842b_4d60_8b24fd613626f940\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZClearanceHeight;\r\n// }} \"\"\r\n// {{ 489 1 0 \"1c1951ce_5a24_43d0_be7d52a95380d1d1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 490 1 0 \"5f0ec7f8_6692_4e2b_930ce8ec668ba806\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 2)\r\n{\r\n// }} \"\"\r\n// {{ 491 1 0 \"73abcc32_8911_48e8_95f318801fe87b2a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMaximumHeight;\r\n// }} \"\"\r\n// {{ 492 1 0 \"5f0ec7f8_6692_4e2b_930ce8ec668ba806\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 493 1 0 \"4e472715_daff_496f_95795d401ec9fe2f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_End_Position == 3)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 494 1 0 \"adbd6f8f_0e9b_4d8a_a23d5286ddb48a02\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMinimumHeight;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 495 1 0 \"a6f6b40d_dd56_4897_8614cada0b241ba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_DispenseHeight = HSLStatisitics::Stat_Max(i_arr_FixedHeights);\r\n// }} \"\"\r\n// {{ 496 1 0 \"388be725_e048_4d8b_ae887a710d99297f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_DispenseHeight + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 497 1 0 \"48ff1540_09f2_4ad8_a4f6af9e46564aea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_MovementEndHeight < flt_ZMinimumHeight)\r\n{\r\n// }} \"\"\r\n// {{ 498 1 0 \"41a350a0_639a_4632_85ad62efed67d0a6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MovementEndHeight = flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 499 1 0 \"48ff1540_09f2_4ad8_a4f6af9e46564aea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 500 1 0 \"4e472715_daff_496f_95795d401ec9fe2f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 501 1 0 \"d48aac06_9147_47bb_9df66596f51cab74\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 502 1 0 \"415f4b01_92ac_4bfd_a75db86ba42025c5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{{ 503 1 0 \"e4100e74_741a_492b_b8e2ec9a6219df29\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"Processed\"));\r\n// }} \"\"\r\n// {{ 504 1 0 \"f2f34f43_1f39_489f_b8a4a2ae6a574452\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 505 1 0 \"798c2f0e_0607_41f3_88f679c813ff5929\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 506 1 0 \"f2f34f43_1f39_489f_b8a4a2ae6a574452\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PIP_MixFromFixedHeight\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspirationWasteRemainder\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bln_SimulationMode;\r\nprivate variable _strFunctionName;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_PLLD;\r\nprivate variable flt_ZBottomDispesne;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ZClearanceHeightDispense;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable flt_ZMinimumHeightDispense;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable flt_ZMaximumHeightDispense;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable int_CLLD;\r\nprivate variable int_Value;\r\nprivate variable str_ReturnChPattern;\r\nprivate variable flt_MaxTipVolume;\r\nprivate variable int_ChIndex;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_TempDispense;\r\nprivate variable arr_MaxVolumes[];\r\nprivate variable arr_XCoordDispense[];\r\nprivate variable arr_YCoordDispense[];\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_XCoord[];\r\nprivate variable arr_LiquidLevelHeights[];\r\nprivate variable flt_VolumeToAspirate;\r\nprivate variable flt_ContainerDepth;\r\nprivate variable str_ContainerConfig;\r\nprivate variable flt_TopHeight;\r\nprivate variable flt_BottomHeight;\r\nprivate variable str_LabID;\r\nprivate variable flt_BottomVolume;\r\nprivate variable flt_TopVolume;\r\nprivate variable flt_LiquidFollowingDistance;\r\nprivate variable str_PosID;\r\nprivate variable arr_LiquidFollowingDistances[];\r\nprivate variable arr_AspirationVolumes[];\r\nprivate variable arr_AspirationHeights[];\r\nprivate variable str_PosIDDisp;\r\nprivate variable str_LabIDDisp;\r\nprivate variable str_ContainerConfigDisp;\r\nprivate variable arr_DispenseHeights[];\r\nprivate variable arr_LiquidFollowingDistancesDisp[];\r\nprivate variable flt_TopHeightContainer;\r\nprivate variable flt_BottomHeightContainer;\r\nprivate variable flt_AspirationHeight;\r\nprivate variable flt_DispenseHeight;\r\nprivate variable int_TotalActiveChannels;\r\nprivate variable arr_TopPhaseHeight[];\r\nprivate variable arr_SecondPhaseHeights[];\r\n// {{ 5 \"PIP_PhaseAspirationWasteRemainder\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1445 1 0 \"0c4ea4a7_4915_4687_853b574330f48333\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1446 1 0 \"0f9bd729_6a1a_4975_a6c49440df868930\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1448 1 0 \"455fbeac_7af5_44a7_8c4fce4ff8cbc2f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1449 1 0 \"0c4ea4a7_4915_4687_853b574330f48333\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1450 1 0 \"fd499c3a_6207_4001_b1fbb90762df5fd2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"fefe8d48_c412_488d_a0085aefe7939f68\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"85ba0389_b651_435b_aacebfac034b11d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 1453 1 0 \"67329df4_0ab9_4451_99589e7ce533c04a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"11beae7e_66c9_46f0_abc5ec400290e6aa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{ 1455 1 0 \"cb983161_1c71_4790_a65ff4dcfba21f34\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TopPhaseHeight.SetSize(0);\r\n// }} \"\"\r\n// {{ 1456 1 0 \"bc145ce5_ec9a_4239_b75f365769c322fd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"05613ce4_b9b7_4968_a021df8289063b70\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ReturnChPattern = StrFillRight(str_ReturnChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 1458 1 0 \"db92caf3_9ed9_4c92_af8f26c8281f545c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1459 1 0 \"0cd28ebf_2181_4263_a47b402820ffb2c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrConcat2(i_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"c200803d_2481_457e_8cf8708453009505\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"6d81aa6a_db3f_47b8_b1a0f44ffc9d05e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalActiveChannels = StrReplace(i_str_ChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 1462 1 0 \"df0c77c4_04d2_4d6f_9fcb7dc9c2ac9205\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalActiveChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1463 1 0 \"d99f86b4_e6db_4d12_a225e6e3268ac530\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"CHANNEL PATTERN CONTAINS NO ACTIVE CHANNELS!\"));\r\n// }} \"\"\r\n// {{ 1464 1 0 \"eb0bc9bc_efcc_47cf_bb1a4327a959bd85\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"f78795a4_1cbe_4b7e_a66d2f66e3f8bc41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1466 1 0 \"eb0bc9bc_efcc_47cf_bb1a4327a959bd85\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"94ec42dc_69ea_43bb_b319f76e0331a373\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 1468 1 0 \"df0c77c4_04d2_4d6f_9fcb7dc9c2ac9205\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1469 1 0 \"470270b9_e44a_44ae_9a41b882bdf58938\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"d1268d78_f1c5_4c0a_89de01ad6ac070c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_AspirationPosition, i_str_ChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 1471 1 0 \"ef82fa0d_5f76_4817_a4a04c2be1d0379e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"a8778bc9_4492_45c9_b384d6b48b793e6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1473 1 0 \"cc11c555_576e_4b3d_b638dea3f81f58bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1474 1 0 \"a73addf5_659d_419e_8a38308a0a5b7c23\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 1475 1 0 \"0021afc5_911e_48f6_8731565183a6aefc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"16009541_ba77_4d82_bdee2238a6152121\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1477 1 0 \"0021afc5_911e_48f6_8731565183a6aefc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"93c20786_4090_4e7e_aa992d4f4dbf8cdc\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 1479 1 0 \"cc11c555_576e_4b3d_b638dea3f81f58bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1480 1 0 \"31fd4c44_ad17_4575_b181ba5d0bf0d2b3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"c4d46276_0391_431e_91da24aaf5e4f6c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_DispensePosition, i_str_ChPattern, seq_TempDispense);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1482 1 0 \"b98475c5_d177_4f01_ab439bcc6e71c4f7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"682625fc_cbd0_491c_b57519da79f3bec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_TempDispense, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1484 1 0 \"522c8f59_3d82_47d8_aadd4e01bff35523\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1485 1 0 \"23e0bd2c_288d_4c4f_a93797caf4d8c9d6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 1486 1 0 \"5bebc339_1aa6_4297_9589f75b82b8fb00\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"bdedebe2_6508_4655_b8283ca3eaeaece9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1488 1 0 \"5bebc339_1aa6_4297_9589f75b82b8fb00\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1489 1 0 \"0408357d_0749_4d8f_bf6a612a84a8a6cc\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 1490 1 0 \"522c8f59_3d82_47d8_aadd4e01bff35523\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1491 1 0 \"1bf54e5c_5c2c_4c1b_bbae2e1a45698dcd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1492 1 0 \"45309945_631f_4584_b04b053d40f18669\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1493 1 0 \"bde0fa04_e46e_4632_8c16985881591b96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1494 1 0 \"138fc1f0_2270_4e58_a1abbb95fbf56fca\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!\"));\r\n// }} \"\"\r\n// {{ 1495 1 0 \"af1e747c_09da_48cb_838c33407dbc205c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1496 1 0 \"9f555ef9_0eb3_49c8_b6a66029b2d842ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1497 1 0 \"af1e747c_09da_48cb_838c33407dbc205c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1498 1 0 \"4115fdcb_852e_47f8_af8e5997dca21dc1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 1499 1 0 \"bde0fa04_e46e_4632_8c16985881591b96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"f82425d4_14a8_43ac_822e3a13a557ea85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightInfoFromLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeights);\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"f89c0ec6_168e_4875_a5ebc1accfcd8251\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightInfoFromLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeight);\r\n// }} \"\"\r\n// {{ 1502 1 0 \"3c6ed590_2c5e_4105_8d320988d9b28320\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1503 1 0 \"796b2fd2_751f_4df9_9255314593821483\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{{ 1504 1 0 \"66950d31_4ff7_4f44_889b34bc0c93a491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_TempDispense, i_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense);\r\n// }} \"\"\r\n// {{ 1505 1 0 \"c53ec153_20c5_4eb8_8c55f8dc09b46628\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 1506 1 0 \"bca66b0e_9df2_400b_a2f77af5a6140b5a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1507 1 0 \"54b3e6f4_c053_4990_bcf12c805d6f534a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_UseCLLD == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1508 1 0 \"86cd45fd_502f_4a49_8672369009cfa27a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CLLD = 1;\r\n// }} \"\"\r\n// {{ 1509 1 0 \"f79a4c66_7c90_4a57_8087a2d1b9ed65bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PLLD = 0;\r\n// }} \"\"\r\n// {{ 1510 1 0 \"54b3e6f4_c053_4990_bcf12c805d6f534a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1511 1 0 \"2c1fff0d_fe33_483a_a58f5bac0fc1ddc0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CLLD = 0;\r\n// }} \"\"\r\n// {{ 1512 1 0 \"9d880e85_0184_4148_9a0f1f4923995dcc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PLLD = 1;\r\n// }} \"\"\r\n// {{ 1513 1 0 \"54b3e6f4_c053_4990_bcf12c805d6f534a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1514 1 0 \"a47e7a2f_dd31_40ac_9ee509eb92fec68b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_MaxVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 1515 1 0 \"c4514c71_0fea_4c46_806820716af488c5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"e6f6b21a_9003_486e_956859c39184178e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1517 1 0 \"91c8b8ec_95bc_47d0_8cf2b0675d6ea279\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1518 1 0 \"6678511f_ed7f_41e9_a2db557d8fb5caed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxTipVolume, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 1519 1 0 \"41a5dcdc_84e7_44a3_9c7e2a6ed220f109\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MaxVolumes.AddAsLast(flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 1520 1 0 \"91c8b8ec_95bc_47d0_8cf2b0675d6ea279\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1521 1 0 \"a9e189f3_fa17_4867_a083355668ba7600\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MaxVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1522 1 0 \"91c8b8ec_95bc_47d0_8cf2b0675d6ea279\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1523 1 0 \"c4514c71_0fea_4c46_806820716af488c5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1524 1 0 \"44767dc5_eda8_42c1_b360a62f7c8455bd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"8d311609_4eb0_4053_88755feb25c13e5e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{ 1526 1 0 \"edb6af0d_7cc7_4013_8d3be01a4208c15a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1527 1 0 \"1887e881_e656_4cdc_88f77d4494c2f516\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{{ 1528 1 0 \"32d4eadd_35e2_45f3_a79eeec665377a18\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{ 1529 1 0 \"52153e0b_6907_4733_8b90a20ef1edc904\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1530 1 0 \"c75297b4_d1a1_4f53_a5218eb5ee2c6682\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AspirationVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 1531 1 0 \"27785211_d457_4da8_be3bc81035b516ad\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowingDistances.SetSize(0);\r\n// }} \"\"\r\n// {{ 1532 1 0 \"a7ee51bc_50ef_4241_b3fd59d2f3f3784b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1533 1 0 \"40ba0cd2_45dd_481d_aa56da82db04586e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowingDistancesDisp.SetSize(0);\r\n// }} \"\"\r\n// {{ 1534 1 0 \"91203a2d_59e9_4708_bb6255a2adda8b67\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AspirationHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1535 1 0 \"7a6c7913_eb6c_4f07_9690f049367bb2a3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1536 1 0 \"a3d298fd_2167_40b5_bab3e46a96703d9a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1537 1 0 \"fbff2220_bfa6_4456_8ee6c3b9a5a0db2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1538 1 0 \"dbce7db9_2541_46bf_969d51660a127e3d\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{ 1539 1 0 \"d9f2274d_3aba_497c_bdcb828ea8f23b22\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{{ 1540 1 0 \"7390cfa4_129f_47e0_9661f301b585e946\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1541 1 0 \"2e471e44_9575_492f_8f556c1df8b1e0c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1542 1 0 \"2313952a_9f5e_4207_8afa52b3f1bc8718\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDDisp = SeqGetLabwareId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"380bc8c9_906b_47b3_84f6969c4264116d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosIDDisp = SeqGetPositionId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"f34f6a36_fc80_409f_90923c92e3fdc533\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ContainerConfig);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"e5bf1ab7_c7ab_4ca3_923ead27a853e5c5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabIDDisp, str_PosIDDisp, str_ContainerConfigDisp);\r\n// }} \"\"\r\n// {{ 1546 1 0 \"073d76ee_3e69_4aa3_af09c416ee9a5858\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_TopHeight=arr_LiquidLevelHeights.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1547 1 0 \"43d2a8f6_5f67_4887_bc956ffb87d45478\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_BottomHeightContainer=arr_SecondPhaseHeights.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1548 1 0 \"209f4f46_bb03_452d_b05bf1964ff7b61e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomHeightContainer = flt_BottomHeightContainer + i_flt_SafeHeightAbovePhase;\r\n// }} \"\"\r\n// {{ 1549 1 0 \"91db4090_a62c_487f_a367d61b8ab4b333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AspirationHeight = flt_BottomHeightContainer;\r\n// }} \"\"\r\n// {{ 1550 1 0 \"ab88242d_5b9c_4bc2_a7a16a81b6deb412\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TopPhaseHeight.SetAt(int_ChIndex-1, flt_AspirationHeight);\r\n// }} \"\"\r\n// {{ 1551 1 0 \"d2da1100_063d_4c8f_9641ca244b8487f3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomHeight = flt_BottomHeightContainer + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1552 1 0 \"3498b23e_df4a_4b6b_ad823662758db067\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopHeightContainer = flt_TopHeight - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1553 1 0 \"79a62c7d_c41d_4da6_88d1ee67b51fcd8d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollowingDistance = flt_TopHeight - flt_BottomHeight;\r\n// }} \"\"\r\n// {{ 1554 1 0 \"3c19618f_12c9_4cc3_b1d9d80d7f44059f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_LiquidFollowingDistance > 0.0)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1555 1 0 \"b230daee_a80e_4ccf_9886fbf397752ee6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollowingDistance = flt_LiquidFollowingDistance + 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1556 1 0 \"80656410_4e31_4639_83d1616b59d75d88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE12(Translate(\"    \"), Translate(\"Top Height:  \"), flt_TopHeightContainer, Translate(\"    Bottom Height:  \"), flt_BottomHeightContainer, Translate(\"  Liquid Following Distance:  \"), flt_LiquidFollowingDistance, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1557 1 0 \"bec82822_da27_456e_ab008a739c2bca4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ContainerConfig, flt_TopHeightContainer, flt_TopVolume);\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"c5f19935_fcad_4e6a_903e019d2ddb1980\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ContainerConfig, flt_BottomHeightContainer, flt_BottomVolume);\r\n// }} \"\"\r\n// {{ 1559 1 0 \"4ae6bc11_b140_4a69_8476478d87b21e2f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = flt_TopVolume - flt_BottomVolume;\r\n// }} \"\"\r\n// {{ 1560 1 0 \"d5bfd237_0482_4d9c_996620069871ca46\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = flt_VolumeToAspirate + i_flt_AdditionalAspirationVolume;\r\n// }} \"\"\r\n// {{ 1561 1 0 \"3c5f5412_676c_49dc_b8cacde33e4e6d0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeToAspirate > T_PIP_TOOLS_MAX_VOLUME)\r\n{\r\n// }} \"\"\r\n// {{ 1562 1 0 \"6a51275a_7dd2_48ec_881438fdb515e3e4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = T_PIP_TOOLS_MAX_VOLUME;\r\n// }} \"\"\r\n// {{ 1563 1 0 \"3c5f5412_676c_49dc_b8cacde33e4e6d0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1564 1 0 \"53855068_ffa3_4f36_90b7f543065ba248\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeToAspirate < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1565 1 0 \"7f747698_b68f_49aa_94088fac419c9f35\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = 0.0;\r\n// }} \"\"\r\n// {{ 1566 1 0 \"53855068_ffa3_4f36_90b7f543065ba248\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1567 1 0 \"e890e276_0c1c_4dee_8a7fccca7950ba55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE12(Translate(\"    \"), Translate(\"Top Volume:  \"), flt_TopVolume, Translate(\"    Bottom Volume:  \"), flt_BottomVolume, Translate(\"  Aspiration Volume:  \"), flt_VolumeToAspirate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1568 1 0 \"4e668072_2d51_474f_9d8ef61a2935b11e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(flt_VolumeToAspirate, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_VolumeToAspirate);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1569 1 0 \"24dc0fda_e7eb_4527_a34da5cce3ee2c27\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeToAspirate > T_PIP_TOOLS_MAX_VOLUME)\r\n{\r\n// }} \"\"\r\n// {{ 1570 1 0 \"70fac355_ad5c_477f_88bd479024849f78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = T_PIP_TOOLS_MAX_VOLUME;\r\n// }} \"\"\r\n// {{ 1571 1 0 \"24dc0fda_e7eb_4527_a34da5cce3ee2c27\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1572 1 0 \"5cf230a8_7c61_4fc9_962516e43ce5e068\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(flt_VolumeToAspirate);\r\n// }} \"\"\r\n// {{ 1573 1 0 \"3c19618f_12c9_4cc3_b1d9d80d7f44059f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1574 1 0 \"7f6229f9_346f_4dd9_96115ff88e5d237b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1575 1 0 \"3c19618f_12c9_4cc3_b1d9d80d7f44059f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1576 1 0 \"d7936b2f_f1b1_40ff_85e98053678d8b4e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_BottomHeightContainer < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1577 1 0 \"b1e61437_077d_446f_b18f85e8a75e7a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomHeightContainer = 0.0;\r\n// }} \"\"\r\n// {{ 1578 1 0 \"d7936b2f_f1b1_40ff_85e98053678d8b4e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1579 1 0 \"2885a132_5301_47ff_b88d30e19fccf2ce\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationHeights.AddAsLast(flt_BottomHeightContainer);\r\n// }} \"\"\r\n// {{ 1580 1 0 \"fbff2220_bfa6_4456_8ee6c3b9a5a0db2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1581 1 0 \"d79801f6_d045_4612_930877d81ced363f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1582 1 0 \"0b08e5f1_0fcd_45c9_b08de95a5b6022e6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1583 1 0 \"fbff2220_bfa6_4456_8ee6c3b9a5a0db2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1584 1 0 \"e700d1ab_6b67_4402_9ca47a4614c86b1c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowingDistances.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1585 1 0 \"c0997286_4db0_4a6f_8deeb5b8ab050bf7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = i_flt_DispenseHeight + flt_ZBottomDispesne;\r\n// }} \"\"\r\n// {{ 1586 1 0 \"d7b64b05_3af9_4cf5_85839638cabc1cd0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(flt_DispenseHeight);\r\n// }} \"\"\r\n// {{ 1587 1 0 \"71dbaa11_6669_4fbf_aeeeb1df3299e9bc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowingDistancesDisp.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1588 1 0 \"7a6c7913_eb6c_4f07_9690f049367bb2a3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1589 1 0 \"d206f41a_ce27_450f_9a44ebd22ac3df13\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1590 1 0 \"d691e43e_fae7_44b8_898635eb6da94e37\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1591 1 0 \"0bc35184_ed14_4941_bd324b76396a98dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Aspiration Volumes\"), arr_AspirationVolumes);\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"612e0c41_7493_4de3_a5b2c1b6fb080489\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Aspiration Heights\"), arr_AspirationHeights);\r\n// }} \"\"\r\n// {{{ 1593 1 0 \"0d3e8388_2992_477a_93f579a4f6bc9e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1594 1 0 \"1a09b42f_7e8a_4267_88184d8448e3a2b6\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"1a09b42f_7e8a_4267_88184d8448e3a2b6\"); // Aspirate\r\n}\r\n// }} \"\"\r\n// {{{ 1595 1 0 \"1312e976_249c_4b24_b5cc0779717e7ea7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1596 1 0 \"af2d8a0c_1895_4f90_a3563a221b295d1e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1597 1 0 \"d5aca47d_02a0_4c8a_b47ba5ad8f6fc462\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"d5aca47d_02a0_4c8a_b47ba5ad8f6fc462\"); // Dispense\r\n}\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"43922065_60db_4b70_857ca0af32225955\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 4, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"5dec4862_6501_4197_9f86ab54b3f9d86e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Top Phase Liquid Levels\"), arr_TopPhaseHeight);\r\n// }} \"\"\r\n// {{{ 1600 1 0 \"65bf2c13_072e_40b2_ab2ad9846faae410\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetHeightInfoToLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeight);\r\n// }} \"\"\r\n// {{ 1601 1 0 \"7a5b02b6_8b66_4178_84a18811923a8b99\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1602 1 0 \"6be8e0f8_a808_4a94_afe2aaf4ab3c0092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1603 1 0 \"7a5b02b6_8b66_4178_84a18811923a8b99\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspirationWasteRemainder\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspirationSmallLayer\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bln_SimulationMode;\r\nprivate variable flt_Angle;\r\nprivate variable flt_ZBottomDispesne;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ContainerDepth;\r\nprivate variable flt_ZClearanceHeightDispense;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable str_LabIDAsp;\r\nprivate variable flt_ZMinimumHeightDispense;\r\nprivate variable flt_TopHeight;\r\nprivate variable _strFunctionName;\r\nprivate variable flt_LiquidFollowDistance;\r\nprivate variable int_LoopIndex;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable flt_ZMaximumHeightDispense;\r\nprivate variable int_TotalChannels;\r\nprivate variable flt_ContainerDiameter;\r\nprivate variable flt_AngleProgression;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable int_Value;\r\nprivate variable str_ReturnChPattern;\r\nprivate variable flt_OffsetDiameter;\r\nprivate variable flt_MaxTipVolume;\r\nprivate variable int_ChIndex;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_TempDispense;\r\nprivate variable arr_DispenseHeights[];\r\nprivate variable arr_OffsetCalculationAngle[];\r\nprivate variable arr_LiquidFollowingDistancesDisp[];\r\nprivate variable arr_MaxVolumes[];\r\nprivate variable arr_XCoordDispense[];\r\nprivate variable arr_LiquidFollowingDistances[];\r\nprivate variable arr_AspirationVolumes[];\r\nprivate variable arr_YCoordDispense[];\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_XCoord[];\r\nprivate variable arr_AspirationHeights[];\r\nprivate variable flt_VolumeTop;\r\nprivate variable str_PosIDAsp;\r\nprivate variable flt_VolumeAspirate;\r\nprivate variable str_ContainerFile;\r\nprivate variable flt_VolumeBottom;\r\nprivate variable flt_TopHeightContainer;\r\nprivate variable flt_BottomHeightContainer;\r\nprivate variable flt_CoordR;\r\nprivate variable flt_CoordX;\r\nprivate variable flt_CoordY;\r\nprivate variable flt_CoordZ;\r\nprivate variable str_ContainerFileDsp;\r\nprivate variable str_PosIDDsp;\r\nprivate variable str_LabIDDsp;\r\nprivate variable flt_VolumeAspirateTotal;\r\nprivate variable flt_DispenseHeight;\r\nprivate variable flt_DeltaX;\r\nprivate variable flt_DeltaY;\r\nprivate variable flt_CurrentAngle;\r\nprivate variable arr_DispenseVolumes[];\r\nprivate variable flt_BlowoutVolume;\r\nprivate variable flt_TransportAirGap;\r\nprivate variable flt_MaxHeight;\r\nprivate variable flt_MaxHeightEnd;\r\nprivate variable int_TotalActiveChannels;\r\nprivate variable ret_strAllPipettingReturn;\r\nprivate variable str_AspReturn;\r\nprivate variable str_DispReturn;\r\nprivate variable arr_TopPhaseHeights[];\r\nprivate variable arr_SecondPhaseHeights[];\r\nprivate variable flt_CurrentVolume;\r\nprivate variable i_flt_SubmergeHeight;\r\nprivate variable flt_VolumeAspirated;\r\nprivate variable str_LabID;\r\nprivate variable str_CurrentDispChPattern;\r\nprivate variable flt_NewVolume;\r\nprivate variable int_DispenseCount;\r\nprivate variable int_DispenseLoops;\r\nprivate variable flt_CurrentHeight;\r\nprivate variable str_PosID;\r\nprivate sequence seq_VolumeUpdateSequence;\r\nprivate variable arr_CurrentDestVolumes[];\r\nprivate variable arr_DispenseChPatterns[];\r\nprivate variable arr_TotalAspirationVolumes[];\r\n// {{ 5 \"PIP_PhaseAspirationSmallLayer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1200 1 0 \"249198e8_bc62_48e3_934403c2b14edc03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1201 1 0 \"eaeb3195_6d12_430b_9059b028607e3489\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1203 1 0 \"6c4a8b94_d112_4905_a2c794036b3289a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1204 1 0 \"249198e8_bc62_48e3_934403c2b14edc03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1205 1 0 \"563291dd_adbf_4add_970c921a662357ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_strAllPipettingReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1206 1 0 \"137f1e39_bad2_46e6_9cb641e3a2e0155d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1207 1 0 \"6b133603_d951_4b13_8d356090a49d05aa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"41f1c0e8_058a_4dea_8d96638b2603d31f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 1209 1 0 \"148950f0_8662_4791_b3c7843f17f5e262\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"70cf08ad_f4a3_4ad6_911bb6da178ec02b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{ 1211 1 0 \"27419d51_2a49_44ad_a701d47081af791a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"8f6cdb32_46f2_42ab_897e23b2fa5c00dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ReturnChPattern = StrFillRight(str_ReturnChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"daff0fc7_a632_4e13_834c367388fdae3a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1214 1 0 \"7cb2880f_db57_46e5_baccb98739f81d83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrConcat2(i_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"9692bdbb_d8b5_4cdc_9646d94a211dd8f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 1216 1 0 \"6f0ddee2_a4f0_4999_8c4ba6843be9f77a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalActiveChannels = StrReplace(i_str_ChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 1217 1 0 \"1698f539_4cde_40c0_a2c17dcf3a8798a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalActiveChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1218 1 0 \"65f8ae0a_884c_4bf8_bdcf91c58588a8f0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"CHANNEL PATTERN CONTAINS NO ACTIVE CHANNELS!\"));\r\n// }} \"\"\r\n// {{ 1219 1 0 \"89a202a6_ef40_46ef_ad2b1495f6bcb3a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"a1c34773_91d2_49b3_88fd47d95053207c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1221 1 0 \"89a202a6_ef40_46ef_ad2b1495f6bcb3a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1222 1 0 \"a33ecc9c_f318_4858_9bd3bb57e4cada16\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 1223 1 0 \"1698f539_4cde_40c0_a2c17dcf3a8798a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1224 1 0 \"d26d3cff_394c_4b9f_b0e5a7cdc391e7f7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"aebe0811_d75e_494e_82fe671d8ccdb36e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_AspirationPosition, i_str_ChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 1226 1 0 \"0283f706_8f0a_4e31_9774c1fb18495965\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1227 1 0 \"e5f44ef3_8e6f_40b5_8ca64dce71b09ef0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1228 1 0 \"d5b3f634_599a_4d4c_9d2bbb87cd0f2df6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1229 1 0 \"d1b530ce_7de0_4a17_a6488100bcc6ae28\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 1230 1 0 \"5bb26c0a_048a_4475_8254c78ad9121bf1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"28f2a1ae_f93e_4316_bb7b06b362d0017d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1232 1 0 \"5bb26c0a_048a_4475_8254c78ad9121bf1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1233 1 0 \"411f3c06_d2ca_4e81_95672a9bdb8ef7a4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 1234 1 0 \"d5b3f634_599a_4d4c_9d2bbb87cd0f2df6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1235 1 0 \"2e8e4cfe_1f5a_4a1c_af5a9bd1e8afbbaf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1236 1 0 \"67ab20cc_d20b_419e_9dbbd396553c12dc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_DispensePosition, i_str_ChPattern, seq_TempDispense);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1237 1 0 \"346cdb39_1226_40ad_bd921847ab1f3247\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"7df49529_5616_495d_9aa80cb49f417d31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_TempDispense, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1239 1 0 \"65de4f6c_2a07_4e07_84be8cde9e9051f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1240 1 0 \"96bc1a3d_52be_4f6e_951e94d473e0521e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 1241 1 0 \"b3fd0c31_ff02_4c5c_bf5915aa8721f7a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"0666f7a0_0b77_4bbd_a8b1907ffe32edee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"b3fd0c31_ff02_4c5c_bf5915aa8721f7a8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1244 1 0 \"47c38c24_92c1_4895_a97e20aaeb04022b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 1245 1 0 \"65de4f6c_2a07_4e07_84be8cde9e9051f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1246 1 0 \"86e5aa63_7da5_4258_815127c699b21b26\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"c5f616e4_ca4e_4528_86ccc16489c51aa4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1248 1 0 \"fb5d8064_6511_4d04_97cbf65a9ddd3cdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1249 1 0 \"191e9a18_215d_45af_8f82e5b15f6aaff2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!\"));\r\n// }} \"\"\r\n// {{ 1250 1 0 \"2cd27fd7_81a3_4581_9831c696811adfa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"52531b66_1666_4728_9412cd02aceef413\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1252 1 0 \"2cd27fd7_81a3_4581_9831c696811adfa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1253 1 0 \"1e513345_b8bf_42ce_ba52fca7a047d6ec\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 1254 1 0 \"fb5d8064_6511_4d04_97cbf65a9ddd3cdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1255 1 0 \"d663d840_460f_4ec3_91a795e759930a50\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightInfoFromLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeights);\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"fdd98a87_3b2a_43fd_8bf98eb9c36ce782\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightInfoFromLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeights);\r\n// }} \"\"\r\n// {{ 1257 1 0 \"9f0d002c_ba4a_4b81_bdedefe08edfdde7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"505e996c_aed9_4387_a91e296daf527930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"248abcee_e5e6_4abe_b007b5ca843dfa9c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_TempDispense, i_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense);\r\n// }} \"\"\r\n// {{ 1260 1 0 \"53b8087a_49c5_44f2_ac7c88088c6bd987\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 1261 1 0 \"143163d8_ee02_4180_80c7041914a7c2b2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_MaxVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"13e2190f_3539_4f6a_a840cd3d2aae7690\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1263 1 0 \"e8d338f7_ed73_4a23_8e6c70eee68d7a0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1264 1 0 \"44ef6943_ad1e_4c5a_add81d0a75fac56c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1265 1 0 \"05c1e336_bfd5_433c_bcc7241593720143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxTipVolume, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 1266 1 0 \"e2ce6a81_240f_4728_8f32bfafd8c8a55c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MaxVolumes.AddAsLast(flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 1267 1 0 \"44ef6943_ad1e_4c5a_add81d0a75fac56c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1268 1 0 \"d5857905_0e91_45be_933936437f4332f9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MaxVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1269 1 0 \"44ef6943_ad1e_4c5a_add81d0a75fac56c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1270 1 0 \"13e2190f_3539_4f6a_a840cd3d2aae7690\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1271 1 0 \"cf7493d6_091e_4551_a6827bf7b309e225\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1272 1 0 \"cdbde850_115e_417e_9d236e34e9d26806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{{ 1273 1 0 \"f61f221f_f5eb_4f15_a5b5b81bd245e097\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{ 1274 1 0 \"dd8a1dbe_f87e_440f_87987bf979062f8b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_OffsetCalculationAngle.SetSize(0);\r\n// }} \"\"\r\n// {{ 1275 1 0 \"1b6bf6ce_d407_4afc_99caa82408bf5630\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AngleProgression = 360.0 / (i_int_TotalAspirationRounds * 1.0);\r\n// }} \"\"\r\n// {{ 1276 1 0 \"f93ea379_99fa_404a_abe82b27b13aae27\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LoopIndex = 0; int_LoopIndex < i_int_TotalAspirationRounds;)\r\n{\r\nint_LoopIndex = int_LoopIndex + 1;\r\n// }} \"\"\r\n// {{ 1277 1 0 \"59d4aa4e_78be_4c28_a4625fe04837a75a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LoopIndex == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1278 1 0 \"c33fc878_b634_4f88_889cbfe58911dbb7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Angle = 0.0;\r\n// }} \"\"\r\n// {{ 1279 1 0 \"59d4aa4e_78be_4c28_a4625fe04837a75a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1280 1 0 \"18d7e4ff_e389_43cf_912ca3c883767998\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Angle = flt_Angle + flt_AngleProgression;\r\n// }} \"\"\r\n// {{ 1281 1 0 \"59d4aa4e_78be_4c28_a4625fe04837a75a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1282 1 0 \"412d66aa_53f0_4568_821dbe2ccdd71a96\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_OffsetCalculationAngle.AddAsLast(flt_Angle);\r\n// }} \"\"\r\n// {{ 1283 1 0 \"f93ea379_99fa_404a_abe82b27b13aae27\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1284 1 0 \"233ca47e_95f4_4dd6_864f5224a64a0f3b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1285 1 0 \"bb7fee67_e14d_46e4_96947669c7e2e4a8\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AspirationVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 1286 1 0 \"c62a5795_5b26_4a2e_865b2fdda1685073\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 1287 1 0 \"8aa03792_d18b_49c4_805a0922e1c8a44f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowingDistances.SetSize(0);\r\n// }} \"\"\r\n// {{ 1288 1 0 \"e595127d_1a0b_4d62_973c3473731b7f9b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1289 1 0 \"fa1a3b23_7358_45ab_a5d4a5eabe074df3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowingDistancesDisp.SetSize(0);\r\n// }} \"\"\r\n// {{ 1290 1 0 \"4cfce63f_25be_490d_817d12121fff5a76\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AspirationHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1291 1 0 \"8b831000_f5ba_494f_84534bb668cdb2bd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TotalAspirationVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"97c8a94a_01dc_4b68_adc9eb0a2aeb68d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1293 1 0 \"361b50bb_4374_4819_bef6666ef664640f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1294 1 0 \"db68e922_e83b_4ddb_a3d6d087defd00c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1295 1 0 \"fd830ac1_a5d9_41d6_adb6e16e0f6b7eae\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1296 1 0 \"249219b9_8b9d_4357_927833b616fb3f54\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"2c24ebab_5fd5_4a96_992d03545ec64d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDAsp = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"4af16fb4_6b4c_4528_bc3fe7477e4aadd2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosIDAsp = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"a92ceacd_a3a1_44a1_965b5c2d9a9c3cb4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabIDAsp, str_PosIDAsp, flt_CoordX, flt_CoordY, flt_CoordZ, flt_CoordR);\r\n// }} \"\"\r\n// {{{ 1300 1 0 \"97a29a5d_f43e_4eb2_91fa8e1e1a545a2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabIDAsp, str_PosIDAsp, str_ContainerFile);\r\n// }} \"\"\r\n// {{ 1301 1 0 \"182cd3b9_0acc_491e_aefeabc49cdb8b9a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{{ 1302 1 0 \"003775be_cdbb_428f_8a6c852b999deba5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDDsp = SeqGetLabwareId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1303 1 0 \"87db7024_e2fd_40b2_83d22cc0b167fec9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosIDDsp = SeqGetPositionId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1304 1 0 \"cd286c6e_6894_4fdb_8e893bf250412db0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabIDDsp, str_PosIDDsp, str_ContainerFileDsp);\r\n// }} \"\"\r\n// {{ 1305 1 0 \"a24699ec_8990_4f0a_84d9842c32f6179c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1306 1 0 \"4db78183_c215_48d0_8f7aec3b6913476a\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_TopHeightContainer=arr_TopPhaseHeights.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1307 1 0 \"944f478f_0ab4_4b47_8a53a36065d95d98\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_BottomHeightContainer=arr_SecondPhaseHeights.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1308 1 0 \"81d036e5_78f5_49cb_a7e5199553c23849\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomHeightContainer = flt_BottomHeightContainer - i_flt_OffsetBelowSecondPhase;\r\n// }} \"\"\r\n// {{ 1309 1 0 \"8f74aabf_8ef5_42d0_8f8a454ec36db767\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollowDistance = flt_TopHeightContainer - flt_BottomHeightContainer;\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"54a9292d_2c35_4dbf_828ea2b3a14d273b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE12(Translate(\"    \"), Translate(\"Top Height:  \"), flt_TopHeightContainer, Translate(\"    Bottom Height:  \"), flt_BottomHeightContainer, Translate(\"  Liquid Following Distance:  \"), flt_LiquidFollowDistance, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1311 1 0 \"02d0ac1e_6236_4b97_972b0e6ecd40c0c8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1312 1 0 \"16b2a762_6cb0_4c14_9f71a41aee37c858\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ContainerFile, flt_TopHeightContainer, flt_VolumeTop);\r\n// }} \"\"\r\n// {{{ 1313 1 0 \"975b8f1a_561e_4556_97e43028b5b8c18e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ContainerFile, flt_BottomHeightContainer, flt_VolumeBottom);\r\n// }} \"\"\r\n// {{ 1314 1 0 \"b65b5940_d6f7_4084_99f78ac2b2886c3b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirateTotal = flt_VolumeTop - flt_VolumeBottom;\r\n// }} \"\"\r\n// {{ 1315 1 0 \"69d74e36_e397_44f5_91ad93c744196ab0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TotalAspirationVolumes.AddAsLast(flt_VolumeAspirateTotal);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1316 1 0 \"aa3064f6_74e7_4db8_aa495e887da282a3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirateTotal = flt_VolumeAspirate + i_flt_AdditionalAspirationVolume;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1317 1 0 \"5cbab378_0a19_4607_a76a1c66581d3527\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirate = flt_VolumeAspirateTotal / (i_int_TotalAspirationRounds * 1.0);\r\n// }} \"\"\r\n// {{ 1318 1 0 \"b17b66b9_803f_4415_8424a46fa04e55fd\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirate = flt_VolumeAspirate + i_flt_AdditionalAspirationVolume;\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"53290389_0735_41a4_a509e0d13a0eeb3f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightBasedOnVolume(str_ContainerFileDsp, flt_VolumeAspirateTotal, flt_DispenseHeight);\r\n// }} \"\"\r\n// {{ 1320 1 0 \"62f3cd1f_8bc1_4d9b_987f85f188834890\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = flt_DispenseHeight - 2.0;\r\n// }} \"\"\r\n// {{ 1321 1 0 \"1fc2057b_3deb_4690_a0780020edfb9542\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_DispenseHeight < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1322 1 0 \"b1515bfd_5b44_498f_a28e09be18e738ae\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = flt_DispenseHeight + 2.0;\r\n// }} \"\"\r\n// {{ 1323 1 0 \"1fc2057b_3deb_4690_a0780020edfb9542\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1324 1 0 \"9852af3a_8884_411d_82027048c1568139\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_LiquidFollowDistance < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1325 1 0 \"bd106e66_225e_4dfd_b6de6a2042fbd5d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirate = 0.0;\r\n// }} \"\"\r\n// {{ 1326 1 0 \"9852af3a_8884_411d_82027048c1568139\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"ee5834df_2b84_4f66_b1d7c9987a4e7eab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::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(\"\"));\r\n// }} \"\"\r\n// {{ 1328 1 0 \"fd830ac1_a5d9_41d6_adb6e16e0f6b7eae\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1329 1 0 \"536454f3_3cac_4d48_af0541deb7ba81c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeAspirate > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1330 1 0 \"b8e808b4_d53e_4584_89b3b2b5bb513c58\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopHeight = flt_TopHeightContainer + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1331 1 0 \"ce92b6ef_3bb3_4b3e_b4c681b20cccdfe1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(flt_VolumeAspirate);\r\n// }} \"\"\r\n// {{ 1332 1 0 \"2d37c18e_e894_4943_a9a8383dfd45b1f3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationHeights.AddAsLast(flt_TopHeight);\r\n// }} \"\"\r\n// {{ 1333 1 0 \"fe879d77_e1a8_45fd_947d423f1fcb16de\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowingDistances.AddAsLast(flt_LiquidFollowDistance);\r\n// }} \"\"\r\n// {{ 1334 1 0 \"bb67e62f_5313_4864_ae4f04b22e759ce4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseVolumes.AddAsLast(flt_VolumeAspirateTotal);\r\n// }} \"\"\r\n// {{ 1335 1 0 \"536454f3_3cac_4d48_af0541deb7ba81c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1336 1 0 \"f5ec3468_696c_4e46_804ba420619513fb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1337 1 0 \"e0e989cf_c74f_40ec_85e670445eac6489\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1338 1 0 \"aa5facb9_5395_4ee5_a16cc228c15000ff\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowingDistances.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1339 1 0 \"b16356da_c879_428a_9b6fbd4f131e8528\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1340 1 0 \"536454f3_3cac_4d48_af0541deb7ba81c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1341 1 0 \"db68e922_e83b_4ddb_a3d6d087defd00c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1342 1 0 \"2c6be867_6f32_4128_9c2a8a49e1fc70a4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1343 1 0 \"7b2efecd_8e02_46df_947f715a4b557eba\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1344 1 0 \"5c7c9417_0aad_449c_94ff5b800e145513\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowingDistances.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1345 1 0 \"5f3cb94d_77a1_436b_be091e7afc31305a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1346 1 0 \"db68e922_e83b_4ddb_a3d6d087defd00c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1347 1 0 \"1bec273b_33f4_43bd_a339c1f0749ab301\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = i_flt_DispenseHeight + flt_ZBottomDispesne;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1348 1 0 \"4425a413_02ea_48fc_adf78c71a8fae6fc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(flt_DispenseHeight);\r\n// }} \"\"\r\n// {{ 1349 1 0 \"6202c800_5131_4769_a6a3435c8ffa25da\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowingDistancesDisp.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1350 1 0 \"9714c6a4_a052_458c_90aeb883637e81c1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TotalAspirationVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1351 1 0 \"97c8a94a_01dc_4b68_adc9eb0a2aeb68d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1352 1 0 \"77fc0393_a52b_4a99_bfb53e8184ea4e0d\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1353 1 0 \"eebf4329_fe1c_48b8_96db9b1e2ba70d46\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1354 1 0 \"ffbfab8b_381e_49eb_b2aa341d9a1cf964\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"6c574977_9841_424b_96174bf338cb4825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1356 1 0 \"df9ede81_4c05_4e8e_95b0212038af263e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1357 1 0 \"dd5639a4_59b0_4e45_8e44c7efd20f5b86\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{{ 1358 1 0 \"41ed752a_96e4_45b9_a641a25d1054c5d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDAsp = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{ 1359 1 0 \"534d9990_8053_495d_ad469dd974f6f533\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1360 1 0 \"df9ede81_4c05_4e8e_95b0212038af263e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1361 1 0 \"ffbfab8b_381e_49eb_b2aa341d9a1cf964\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1362 1 0 \"2c1615a3_a347_497c_87b0680720ed9359\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1363 1 0 \"380899d9_2751_406c_abe31e0ab2961543\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerWidth(ML_STAR, str_LabIDAsp, flt_ContainerDiameter);\r\n// }} \"\"\r\n// {{ 1364 1 0 \"e50c46e7_44e4_4930_ac7c16f688c80b12\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_OffsetDiameter = flt_ContainerDiameter / (4.0 * 1.0);\r\n// }} \"\"\r\n// {{ 1365 1 0 \"95f8bf0d_0dd4_4933_832e54a77e63c786\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TotalAspirationRounds == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1366 1 0 \"046ba197_6bb4_4007_9cd776b1f72d5031\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_OffsetDiameter = 0.0;\r\n// }} \"\"\r\n// {{ 1367 1 0 \"95f8bf0d_0dd4_4933_832e54a77e63c786\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1368 1 0 \"a2af51a9_8633_4c97_b61d6241554733cc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LoopIndex = 0; int_LoopIndex < i_int_TotalAspirationRounds;)\r\n{\r\nint_LoopIndex = int_LoopIndex + 1;\r\n// }} \"\"\r\n// {{ 1369 1 0 \"be7dd6f2_248d_4a5f_a4198a6c05d77abb\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentAngle=arr_OffsetCalculationAngle.GetAt(int_LoopIndex-1);\r\n// }} \"\"\r\n// {{{ 1370 1 0 \"5dc5cfd0_0ed7_4895_a513535b51fc6d60\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::CalculateXYFromDiameterAndAngle(flt_OffsetDiameter, flt_CurrentAngle, flt_DeltaX, flt_DeltaY);\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"fd6baa79_42bc_4c30_ac446b990b2c4a16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Relative_Position_for_LabwareID(ML_STAR, str_LabIDAsp, flt_DeltaX, flt_DeltaY, 0.0, 0.0);\r\n// }} \"\"\r\n// {{ 1372 1 0 \"0ad2c2c8_1972_422f_8a768eacc68b4304\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"dd4edb68_e744_4cb1_a2390bce2e0bb867\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"ca5c76b5_ff73_47ad_9b8563ff8ccc2fab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_TempDispense, i_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense);\r\n// }} \"\"\r\n// {{{ 1375 1 0 \"92aaf2dd_7a9d_46e2_a4b4a74be80cde70\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Aspiration Volumes\"), arr_AspirationVolumes);\r\n// }} \"\"\r\n// {{{ 1376 1 0 \"21ca695e_41c7_4df5_83361ba8ed030582\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Aspiration Heights\"), arr_AspirationHeights);\r\n// }} \"\"\r\n// {{ 1377 1 0 \"6a03df4c_9b27_4aa6_82845ef7d8b3aed0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LoopIndex == i_int_TotalAspirationRounds)\r\n{\r\n// }} \"\"\r\n// {{ 1378 1 0 \"043dfeb8_dbe7_4c0e_b9232b35e6f39cea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TransportAirGap = T_PIP_TOOLS_ASP_AIR_TRANSPORT;\r\n// }} \"\"\r\n// {{ 1379 1 0 \"ad115879_a63e_4b1d_900f83913c6c1462\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MaxHeightEnd = 245.0;\r\n// }} \"\"\r\n// {{ 1380 1 0 \"6a03df4c_9b27_4aa6_82845ef7d8b3aed0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1381 1 0 \"74ffd281_3fed_430e_9498d890c2c6cfbe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TransportAirGap = 0.0;\r\n// }} \"\"\r\n// {{ 1382 1 0 \"4098f2e3_a0e9_481d_b442efe176b7f853\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MaxHeightEnd = flt_ZMaximumHeight;\r\n// }} \"\"\r\n// {{ 1383 1 0 \"6a03df4c_9b27_4aa6_82845ef7d8b3aed0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1384 1 0 \"62b63f99_506b_4a3b_89406325e09d8eea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LoopIndex == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1385 1 0 \"bbddd7f1_72c7_4b15_a1a29bd64838c7d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BlowoutVolume = T_PIP_TOOLS_ASP_BLOWOUT;\r\n// }} \"\"\r\n// {{ 1386 1 0 \"7293e771_0a6d_4f1e_b879c7ba0298038b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MaxHeight = 245.0;\r\n// }} \"\"\r\n// {{ 1387 1 0 \"62b63f99_506b_4a3b_89406325e09d8eea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1388 1 0 \"41f7350f_5050_453c_bc3abaac67dfd15e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BlowoutVolume = 0.0;\r\n// }} \"\"\r\n// {{ 1389 1 0 \"ea9964bc_1abb_44ca_9b648c8b5a61478c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_MaxHeight = flt_ZMaximumHeight;\r\n// }} \"\"\r\n// {{ 1390 1 0 \"62b63f99_506b_4a3b_89406325e09d8eea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1391 1 0 \"9a61fd8d_5f77_45cb_9058d68af81cb4ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"8169ef12_44eb_4f3e_b1525f7ed9ba3f9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{{ 1393 1 0 \"b9b7167a_ceda_46a8_a230b7a0c022a95f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1394 1 0 \"b78de438_d834_4ca7_b52857e92161aed7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DeltaX = flt_DeltaX * -1;\r\n// }} \"\"\r\n// {{ 1395 1 0 \"9537a912_5ee3_4814_9fe74286b0ba2560\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DeltaY = flt_DeltaY * -1;\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"ea9c2b42_58db_48b5_9e37c2d166904723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::Set_Relative_Position_for_LabwareID(ML_STAR, str_LabIDAsp, flt_DeltaX, flt_DeltaY, 0.0, 0.0);\r\n// }} \"\"\r\n// {{ 1397 1 0 \"a2af51a9_8633_4c97_b61d6241554733cc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1398 1 0 \"d398436d_b3a4_40b1_8cd713ffa971f000\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_AspReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"760b03fd_df99_44d2_b2e33b840f51b093\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"e7aa1a69_7b3d_483a_9e580915a5557b74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetPartialChannelPatternForRepeatingPositions(ML_STAR, i_str_ChPattern, seq_TempDispense, int_DispenseLoops, arr_DispenseChPatterns);\r\n// }} \"\"\r\n// {{ 1401 1 0 \"2261c355_f81a_4fe3_acfc84b1955f8650\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_DispenseCount = 0; int_DispenseCount < int_DispenseLoops;)\r\n{\r\nint_DispenseCount = int_DispenseCount + 1;\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"3303490e_cc1b_41ab_8189e63b491e87f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumesInPositions(ML_STAR, seq_TempDispense, arr_CurrentDestVolumes);\r\n// }} \"\"\r\n// {{ 1403 1 0 \"09a173e9_5a55_4724_b58d69bade27801a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1404 1 0 \"eca0f408_0acb_4d02_a6ec031e3c89dfa7\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentDispChPattern=arr_DispenseChPatterns.GetAt(int_DispenseCount-1);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"23ce18ab_6904_4320_95d3417006eae6ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(str_CurrentDispChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1406 1 0 \"5136e817_1c06_4ec8_80df0371a3dc3e52\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"edbcda5d_5b29_4947_a5d2b35307b02751\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(str_CurrentDispChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1408 1 0 \"c2a44c5c_0a5a_4e36_a925a44c06211362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1409 1 0 \"c32cc5c3_f689_4db7_ae4ad6aad908e85c\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{ 1410 1 0 \"bfb9d934_4f29_4da9_8cc639d96dc1390f\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentVolume=arr_CurrentDestVolumes.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1411 1 0 \"9a77b5c9_cf87_449e_85a6cdec821e11ea\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_VolumeAspirated=arr_TotalAspirationVolumes.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1412 1 0 \"26dcf1c9_42e1_4c35_843a5d961438a4d7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewVolume = flt_CurrentVolume + flt_VolumeAspirated;\r\n// }} \"\"\r\n// {{ 1413 1 0 \"ff5d209f_ee04_47f9_9105502e68a15b99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_NewVolume < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1414 1 0 \"9ab8d158_6414_45df_8353c30a4c24bbc6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewVolume = 0.0;\r\n// }} \"\"\r\n// {{ 1415 1 0 \"ff5d209f_ee04_47f9_9105502e68a15b99\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"32db8f9c_574f_41b0_b409c6fe84ada26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(Translate(\"    \"), Translate(\"Current Volume in well:  \"), flt_CurrentVolume, Translate(\"     Volume aspirated:  \"), flt_VolumeAspirated, Translate(\"    Added Volume:  \"), flt_NewVolume, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"75007903_1a9d_4df1_b43a81096c9bf2da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"8c8ad044_7de5_45b7_b653cb1b0f6de701\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"3b329b75_6a3d_4722_8acd7a889f6ddf0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVectorDb_Labware::LoadLabware(ML_STAR, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{{ 1420 1 0 \"9fe65c52_2ab1_4bed_993e7825db814fa7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_VolumeUpdateSequence);\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"74a0f137_398a_45ef_a2f4e6d0cff58a2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_VolumeUpdateSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1422 1 0 \"1ad4722f_0741_4937_bf2569844224689f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_VolumeUpdateSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1423 1 0 \"48f6862f_8e57_412a_a738b1f6ed624f00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLLabwState::SetLabwareVolume(ML_STAR, seq_VolumeUpdateSequence, flt_NewVolume);\r\n// }} \"\"\r\n// {{{ 1424 1 0 \"69d92345_85f2_4b49_877aee615a4b614a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightBasedOnVolume(str_ContainerFileDsp, flt_CurrentVolume, flt_CurrentHeight);\r\n// }} \"\"\r\n// {{ 1425 1 0 \"258d85e6_bebe_4e95_98de03fdc56d333f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = flt_CurrentHeight - i_flt_SubmergeHeight;\r\n// }} \"\"\r\n// {{ 1426 1 0 \"1f8e549b_58b5_4a1b_90dc0c212b73fc15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_DispenseHeight <= 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1427 1 0 \"62ab4fcf_2b53_40f6_8df0820c4b713a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = 2.0;\r\n// }} \"\"\r\n// {{ 1428 1 0 \"1f8e549b_58b5_4a1b_90dc0c212b73fc15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1429 1 0 \"0eed2a3c_fb03_455d_9ae30b5bb63d5b7f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(flt_DispenseHeight);\r\n// }} \"\"\r\n// {{ 1430 1 0 \"c2a44c5c_0a5a_4e36_a925a44c06211362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1431 1 0 \"3e8885ff_61a7_4930_8c843efd2aa9f6de\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1432 1 0 \"c2a44c5c_0a5a_4e36_a925a44c06211362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1433 1 0 \"5136e817_1c06_4ec8_80df0371a3dc3e52\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1434 1 0 \"fd064b9c_4896_4c44_81f1f584b99c8b84\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"00d2fedc_453a_4eb7_a2b0ebc58bb728e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Dispense Heights\"), arr_DispenseHeights);\r\n// }} \"\"\r\n// {{ 1436 1 0 \"750f3759_2819_4c85_92ff353579410442\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"750f3759_2819_4c85_92ff353579410442\"); // Dispense\r\n}\r\n// }} \"\"\r\n// {{ 1437 1 0 \"2261c355_f81a_4fe3_acfc84b1955f8650\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1438 1 0 \"68ec062d_2b27_4afc_b1fe95ddd378c22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 4, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"42e6fa49_d733_4f1f_b8c56ac69df74b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nret_strAllPipettingReturn = StrConcat4(ret_strAllPipettingReturn, str_AspReturn, Translate(\"&\"), str_DispReturn);\r\n// }} \"\"\r\n// {{ 1440 1 0 \"9f9c94e3_b5c4_4b6a_b8c60545f1f384f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"ed6f0925_2e89_48bd_860d03a14fb038a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1442 1 0 \"9f9c94e3_b5c4_4b6a_b8c60545f1f384f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"899db1ae_d189_43b1_a936b6d84bf9ce99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspirationSmallLayer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspirationParseReturnValue\" \"Begin\"\r\nfunction PIP_PhaseAspirationParseReturnValue( variable i_strReturnFromPhaseAspiration, variable & o_arrAspirationReturns[], variable & o_arrDispenseReturns[] ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable l_intTotalRounds;\r\nprivate variable l_intRoundIndex;\r\nprivate variable l_arrAspDispReturns[];\r\nprivate variable l_arrRoundReturns[];\r\n// {{ 5 \"PIP_PhaseAspirationParseReturnValue\" \"InitLocals\"\r\no_arrAspirationReturns.SetSize( 0);\r\no_arrDispenseReturns.SetSize( 0);\r\n// }} \"\"\r\n// {{ 977 1 0 \"dd3ca57e_4fe7_4d36_b44e79d291d8da96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 978 1 0 \"b86926d4_4190_45d2_b9792377c964b310\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 980 1 0 \"81802ebf_d563_4c43_93088e59b28ad157\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 981 1 0 \"dd3ca57e_4fe7_4d36_b44e79d291d8da96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 982 1 0 \"f662f989_5852_4c9d_bfa7c0f4002fa30f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrAspirationReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 983 1 0 \"47ef9dcb_2ad3_4471_8101972f53807b9e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrDispenseReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 984 1 0 \"2c0837a3_3bad_490a_8d1011ec5bdc0b89\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BD97F20DFCA74048B44FE4F1B0A9045B ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 985 1 0 \"64453b4f_f543_469f_b1690c9e61c06196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_arrRoundReturns = HSLExtensions::String::Split(i_strReturnFromPhaseAspiration, Translate(\"*\"), 1);\r\n// }} \"\"\r\n// {{ 986 1 0 \"85c852eb_3af2_4ff0_9105f2fe750d27de\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nl_intTotalRounds=l_arrRoundReturns.GetSize();\r\n// }} \"\"\r\n// {{ 987 1 0 \"801b77a1_ad5d_41c4_80f9df23fabbacc7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(l_intRoundIndex = 0; l_intRoundIndex < l_intTotalRounds;)\r\n{\r\nl_intRoundIndex = l_intRoundIndex + 1;\r\n// }} \"\"\r\n// {{{ 988 1 0 \"236f1ecf_7f15_4b3d_a0f29f2faf7052dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_arrAspDispReturns = HSLExtensions::String::Split(l_arrRoundReturns.ElementAt( l_intRoundIndex -1), Translate(\"&\"), 1);\r\n// }} \"\"\r\n// {{ 989 1 0 \"48ed2152_be69_43e8_89fa3aae160d3c28\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrAspirationReturns.AddAsLast(l_arrAspDispReturns.ElementAt( 1 -1));\r\n// }} \"\"\r\n// {{ 990 1 0 \"0de1799e_3585_4318_a0546351f248f1d0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrDispenseReturns.AddAsLast(l_arrAspDispReturns.ElementAt( 2 -1));\r\n// }} \"\"\r\n// {{ 991 1 0 \"801b77a1_ad5d_41c4_80f9df23fabbacc7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 992 1 0 \"2c0837a3_3bad_490a_8d1011ec5bdc0b89\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BD97F20DFCA74048B44FE4F1B0A9045B : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 993 1 0 \"2c0837a3_3bad_490a_8d1011ec5bdc0b89\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 994 1 0 \"e91d5ee1_5f05_4f73_aba8af49d6ac7b06\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 995 1 0 \"386c09f0_1943_4399_8cf8896cde6bf46e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 996 1 0 \"e91d5ee1_5f05_4f73_aba8af49d6ac7b06\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspirationParseReturnValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspiration\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable bln_SimulationMode;\r\nprivate variable flt_CurrentVolume;\r\nprivate variable str_ErrorReturn;\r\nprivate variable flt_ZBottomDispesne;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable ret_strAllPipettingReturn;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable str_LiquidReturn;\r\nprivate variable int_PLLD;\r\nprivate variable flt_CorrectedDispenseBack;\r\nprivate variable flt_CorrectedBlowout;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_DispenseVolume;\r\nprivate variable flt_ZClearanceHeightDispense;\r\nprivate variable int_TotalActiveChannels;\r\nprivate variable int_RemainingChannels;\r\nprivate variable int_MaxLoop;\r\nprivate variable flt_ZBottom;\r\nprivate variable i;\r\nprivate variable int_DispenseCheck;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable flt_TotalAirGap;\r\nprivate variable flt_VolumeAspirated;\r\nprivate variable flt_ZMinimumHeightDispense;\r\nprivate variable str_Volume;\r\nprivate variable flt_Offset;\r\nprivate variable str_DispenseLabID;\r\nprivate variable flt_CorrectedAirGap;\r\nprivate variable flt_MaxVolume;\r\nprivate variable _strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable flt_LiquidFollowDistance;\r\nprivate variable str_ContainerConfigFile;\r\nprivate variable int_DispenseBackCheck;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable int_Position;\r\nprivate variable str_DispenseChPattern;\r\nprivate variable flt_ZMaximumHeightDispense;\r\nprivate variable str_StartingChannelPattern;\r\nprivate variable str_DispenseLocation;\r\nprivate variable flt_LiquidHeight;\r\nprivate variable str_AspReturn;\r\nprivate variable str_DispReturn;\r\nprivate variable str_NewChPattern;\r\nprivate variable int_TotalChannels;\r\nprivate variable str_DispensePosID;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable flt_CurrentHeight;\r\nprivate variable str_PosID;\r\nprivate variable bln_UseLLD;\r\nprivate variable int_CLLD;\r\nprivate variable str_ReturnChPattern;\r\nprivate variable flt_DispenseHeight;\r\nprivate variable int_Value;\r\nprivate variable int_TotalPositions;\r\nprivate variable int_ReturnErrorCode;\r\nprivate variable int_ChIndex;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_TempDispense;\r\nprivate variable arr_DispenseHeights[];\r\nprivate variable arr_VolumesAspirated[];\r\nprivate variable arr_LiquidFollowingDistance[];\r\nprivate variable arr_XCoordDispense[];\r\nprivate variable arr_YCoordDispense[];\r\nprivate variable arr_LiquidHeights[];\r\nprivate variable arr_DispenseVolumes[];\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_LiquidFollowingDispense[];\r\nprivate variable arr_XCoord[];\r\nprivate variable int_AspirationMode;\r\nprivate variable arr_SecondPhaseHeights[];\r\nprivate variable arr_ZTravelHeight[];\r\nprivate variable int_DispenseCount;\r\nprivate variable int_DispenseLoops;\r\nprivate variable arr_CurrentDestVolumes[];\r\nprivate variable arr_DispenseChPatterns[];\r\nprivate variable str_CurrentDispChPattern;\r\nprivate variable flt_NewVolume;\r\nprivate sequence seq_VolumeUpdateSequence;\r\n// {{ 5 \"PIP_PhaseAspiration\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 508 1 0 \"c98f0d29_586c_4cb4_8b0f7f3daab3fcc1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 509 1 0 \"2f2aa768_428a_4c9c_bf73c2d267787efe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 511 1 0 \"4026017f_224f_482c_9ba0aac961156761\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 512 1 0 \"c98f0d29_586c_4cb4_8b0f7f3daab3fcc1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"f9ee75ac_acf1_4581_943d92c59b0d46f8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_strAllPipettingReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 514 1 0 \"1b82cdd1_d197_4235_85a78f8890ba2436\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 515 1 0 \"b5eb3e7a_02d9_4b1a_a53f37e5bfac0432\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 516 1 0 \"d45812bd_5ae5_4a33_b9b0d1c50ca77c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 517 1 0 \"f841bc87_a589_4987_9e8240f8ddbc4235\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 518 1 0 \"c04e88d4_e066_4fac_88002893d721238e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{ 519 1 0 \"591efe3e_7e79_463d_bd3e948dc3086a8c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_SecondPhaseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 520 1 0 \"0b2d2428_98c3_4c6d_b53f1634627bae14\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_VolumesAspirated.SetSize(0);\r\n// }} \"\"\r\n// {{ 521 1 0 \"cafe0bce_20df_4c7d_a18f09cefe5abc9f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ZTravelHeight.SetSize(0);\r\n// }} \"\"\r\n// {{ 522 1 0 \"749742b8_d3fe_4f8e_933731f64c6f16a7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 523 1 0 \"296bb3c6_3806_439f_972878a8c3904f2e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ZTravelHeight.AddAsLast(245.0);\r\n// }} \"\"\r\n// {{ 524 1 0 \"749742b8_d3fe_4f8e_933731f64c6f16a7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 525 1 0 \"755828d4_289d_4d85_b86402fbc754df46\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 526 1 0 \"e8944a23_1251_4622_8a0f43e5e6139f31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ReturnChPattern = StrFillRight(str_ReturnChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 527 1 0 \"dd5a9741_3bd1_4456_b5f1051b6203e810\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 528 1 0 \"8dcde973_5e69_4971_ab1596fb4eae0f80\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_str_ChPattern = StrConcat2(io_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 529 1 0 \"5c40f682_dfca_4087_a40b4e79ab8c0139\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_str_ChPattern = StrFillRight(io_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 530 1 0 \"bc090a05_b912_4cc2_ac211f43ae210404\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalActiveChannels = StrReplace(io_str_ChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 531 1 0 \"6f2d2c5c_3de4_4036_b44c2332cb4168c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalActiveChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 532 1 0 \"19afc80e_46cd_4887_a2c15a97947dd5ee\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"CHANNEL PATTERN CONTAINS NO ACTIVE CHANNELS!\"));\r\n// }} \"\"\r\n// {{ 533 1 0 \"d9c5b013_caaa_4a7f_931b304cc0c2b5c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 534 1 0 \"b9b4513f_526c_42f0_bdd0e6e28450db56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 535 1 0 \"d9c5b013_caaa_4a7f_931b304cc0c2b5c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 536 1 0 \"cf5822fd_16f6_47c9_b74286a2dcd665e0\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 537 1 0 \"6f2d2c5c_3de4_4036_b44c2332cb4168c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"e56fa06e_d70a_48f9_8b8726c3fd58fd55\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 539 1 0 \"705223e5_2ab2_4119_8f456818c3da5781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_AspirationPosition, io_str_ChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 540 1 0 \"885723fc_eb98_4008_8f6296eef6fda427\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 541 1 0 \"28309ba1_744c_4ebf_a2e931f0be01a54f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, io_str_ChPattern);\r\n// }} \"\"\r\n// {{ 542 1 0 \"aac905ef_9fd3_4215_a8b0c60e0a824464\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 543 1 0 \"75c27f21_98a5_4e11_ad50cc932998761e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 544 1 0 \"09af1937_cd5d_4d2b_bdcf94a8077c1df4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 545 1 0 \"c5977f73_247c_43eb_b48b244e9e820755\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 546 1 0 \"09af1937_cd5d_4d2b_bdcf94a8077c1df4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 547 1 0 \"3805520a_3f76_4dbc_af3818778bbbe318\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 548 1 0 \"aac905ef_9fd3_4215_a8b0c60e0a824464\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 549 1 0 \"34445a00_dbc0_41f6_9314f262a61f736f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 550 1 0 \"ace11e4d_0e05_4ebd_b82244b0f7748396\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_DispensePosition, io_str_ChPattern, seq_TempDispense);\r\n// }} \"\"\r\n// {{ 551 1 0 \"c7d5097b_4629_407f_9b68df09d4d1e694\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 552 1 0 \"847c5018_2b5f_43f1_9a9976ef8e4b119d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, io_str_ChPattern);\r\n// }} \"\"\r\n// {{ 553 1 0 \"e038e4b9_e826_4d18_817fb22573bbdf77\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 554 1 0 \"f0d30a4d_1beb_4ba5_8547a4ceb2432afe\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!\"));\r\n// }} \"\"\r\n// {{ 555 1 0 \"f416065e_a281_488c_83f0b301d6fe28d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 556 1 0 \"b9e2846f_98d9_4fac_aaef47b0f99c3c93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 557 1 0 \"f416065e_a281_488c_83f0b301d6fe28d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 558 1 0 \"48a015c8_993c_4e54_b0299f3f65fe02f5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 559 1 0 \"e038e4b9_e826_4d18_817fb22573bbdf77\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 560 1 0 \"ab80790c_eede_4564_a14e463aba88db31\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 561 1 0 \"8e08dfd9_6ac6_47fa_898661455ba9eedf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightInfoFromLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeights);\r\n// }} \"\"\r\n// {{ 562 1 0 \"93960aab_29dd_49c8_98c8238a8c19016e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 563 1 0 \"89d8700c_45d5_4659_95282280ce1b79c7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, io_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{{ 564 1 0 \"26b76595_aed5_4eff_9dac44058c1f3d84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_TempDispense, io_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense);\r\n// }} \"\"\r\n// {{ 565 1 0 \"263f27c7_742e_46e8_a9b6daafb4e4b8fb\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 566 1 0 \"648dbb7f_c726_40ee_b8448e91f567ac0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"6cc6b55c_3904_41f4_814764e631a7dc25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{ 568 1 0 \"2072bab6_717f_4c2f_952a6c67e6c87ab5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 569 1 0 \"f5504680_3e56_4cd9_91ff9fa20802383d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(i_flt_DispenseBackVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_CorrectedDispenseBack);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 570 1 0 \"9f6a6849_e705_443e_b97979b24f343f9a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalChannels = StrReplace(io_str_ChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 571 1 0 \"156dda4c_ca95_4877_8977b0a04daafce7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_UseCLLD == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 572 1 0 \"fac68826_fa96_46ee_82db34cea38c1adf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CLLD = 1;\r\n// }} \"\"\r\n// {{ 573 1 0 \"c511f321_6f3d_49b1_b10bb43d9b615269\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PLLD = 0;\r\n// }} \"\"\r\n// {{ 574 1 0 \"156dda4c_ca95_4877_8977b0a04daafce7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 575 1 0 \"b93174b7_bda9_44d2_b3fc00ffa0e44cf9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CLLD = 0;\r\n// }} \"\"\r\n// {{ 576 1 0 \"15ee29fb_54b5_4061_83a1ddc556df55b1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PLLD = 1;\r\n// }} \"\"\r\n// {{ 577 1 0 \"156dda4c_ca95_4877_8977b0a04daafce7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 578 1 0 \"b7b79063_8cc2_4f44_8a80c3094d5c0bd3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 579 1 0 \"5fd8bf9f_e5c5_405b_9f94ba189eeee127\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_VolumesAspirated.SetSize(0);\r\n// }} \"\"\r\n// {{ 580 1 0 \"73515f7e_e524_478a_8a58cedd9637e749\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 581 1 0 \"dc871879_de6e_4d08_a6fb44ec20440824\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_MaxLoop = i_flt_MaxVolumeToRemove / (i_flt_AspirationVolume * 1.0);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"41738e96_1a61_4aeb_97a6a516fe625c62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_MaxLoop = MthCeiling(int_MaxLoop);\r\n// }} \"\"\r\n// {{ 583 1 0 \"6e64a7c7_7522_462a_89bab0b7942ed897\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 584 1 0 \"512016f4_6f42_4af5_ba789f60b3037414\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 585 1 0 \"03afca63_9626_492c_b2e45c577f3116f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 586 1 0 \"7f031682_e097_4267_864c687e4896cb26\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 587 1 0 \"3a51c773_6c69_4c3d_bbb1d76532b68065\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{{ 588 1 0 \"64305a3b_a57f_4e8c_898623b523148ed3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseLabID = SeqGetLabwareId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 589 1 0 \"b844ab3a_76e4_4d3d_8511178dd6fa4daa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispensePosID = SeqGetPositionId(seq_TempDispense);\r\n// }} \"\"\r\n// {{ 590 1 0 \"2ef361fc_8675_4620_a791523e22137946\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 591 1 0 \"7f031682_e097_4267_864c687e4896cb26\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"512016f4_6f42_4af5_ba789f60b3037414\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 593 1 0 \"8f39de55_f27d_49bb_8ced7a02b22cb896\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 594 1 0 \"d6d11811_d720_40f9_98751909c8196b10\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_DispenseLabID, str_DispensePosID, str_ContainerConfigFile);\r\n// }} \"\"\r\n// {{ 595 1 0 \"e18cd14a_041a_4a51_b243b0921e456d34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_UseLLD = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 596 1 0 \"8143f465_06e7_4028_b1f2b2dbec291141\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_StartingChannelPattern = io_str_ChPattern;\r\n// }} \"\"\r\n// {{ 597 1 0 \"abe9b0c1_bcc9_4451_955b6c603e199a55\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\ni = 0;\r\nwhile (int_TotalChannels > 0)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 598 1 0 \"f362d926_162e_459e_94b87ed76d433a13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_RemainingChannels = StrReplace(io_str_ChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 599 1 0 \"9c569061_d42b_4ecb_921746c3884b86c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_RemainingChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 600 1 0 \"4a3576cf_c8b6_41f6_b7d4ab25af413669\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 601 1 0 \"9c569061_d42b_4ecb_921746c3884b86c1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 602 1 0 \"0c22e9fd_c8d6_4e43_ad71b08955863362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i > int_MaxLoop)\r\n{\r\n// }} \"\"\r\n// {{ 603 1 0 \"f0c1d88f_0507_47db_969e44a678228677\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"MAX VOLUME REMOVED!\"));\r\n// }} \"\"\r\n// {{ 604 1 0 \"02937868_2d61_4364_83dd0977971b5044\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 605 1 0 \"0c22e9fd_c8d6_4e43_ad71b08955863362\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 606 1 0 \"8ac170e0_4bdd_4eef_8f247643dc22ff79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 607 1 0 \"6c5070df_fee5_42aa_8250b195f77d3a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 3)\r\n{\r\n// }} \"\"\r\n// {{ 608 1 0 \"275d092b_d3b2_4e68_9c9e4995f5f1244a\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 609 1 0 \"6c5070df_fee5_42aa_8250b195f77d3a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 610 1 0 \"8ac170e0_4bdd_4eef_8f247643dc22ff79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 611 1 0 \"3e5996c7_4a90_42ec_ade4b36d48855d1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_UseCLLD == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 612 1 0 \"c214a8db_b8e0_4f70_a79a2486d4514d42\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i > 1)\r\n{\r\n// }} \"\"\r\n// {{ 613 1 0 \"45254042_0e64_4538_9cddf62d11bf61ec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_UseLLD = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 614 1 0 \"c214a8db_b8e0_4f70_a79a2486d4514d42\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 615 1 0 \"3e5996c7_4a90_42ec_ade4b36d48855d1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 616 1 0 \"7923f47b_a57e_4640_9ed7ef8c8c2302fa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_AspirationMode = 0;\r\n// }} \"\"\r\n// {{ 617 1 0 \"9ff524f0_d459_4bdc_9616146536b8b5fa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_DisableTADMFirst == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 618 1 0 \"dc88362c_195d_48c5_b2c8aec19ee65aaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 1)\r\n{\r\n// }} \"\"\r\n// {{ 619 1 0 \"416019da_930c_4d58_9e457f5137fae363\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_AspirationMode = 2;\r\n// }} \"\"\r\n// {{ 620 1 0 \"dc88362c_195d_48c5_b2c8aec19ee65aaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 621 1 0 \"9ff524f0_d459_4bdc_9616146536b8b5fa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 622 1 0 \"b86b9ded_a95f_46c5_a9a6abf8619982e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i > 1)\r\n{\r\n// }} \"\"\r\n// {{ 623 1 0 \"41e148e3_44ef_4b87_81bc7230d336a1ff\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 624 1 0 \"85706105_45bf_42dd_9fac6a8849630823\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_InstrumentType <= 2)\r\n{\r\n// }} \"\"\r\n// {{{ 625 1 0 \"6d6627e3_09d1_4aa4_b336ad619572c9ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_StartingChannelPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZTravelHeight);\r\n// }} \"\"\r\n// {{ 626 1 0 \"85706105_45bf_42dd_9fac6a8849630823\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 627 1 0 \"cb03ffb3_d1d6_4890_ac0c36441689a21d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nVANTAGE_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_StartingChannelPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZTravelHeight);\r\n// }} \"\"\r\n// {{ 628 1 0 \"85706105_45bf_42dd_9fac6a8849630823\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 629 1 0 \"b86b9ded_a95f_46c5_a9a6abf8619982e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 630 1 0 \"bf08fbb2_33c2_43a3_83808f176b9cd964\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_UseLLD == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 631 1 0 \"c9ae6500_b5d1_4477_a223613843f63ca6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C5F95C8F9E654de5948C18A25DDCED25 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 632 1 0 \"01fe469b_4274_43ed_bf9242e8f026a02d\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"01fe469b_4274_43ed_bf9242e8f026a02d\"); // Aspirate\r\n\tstr_AspReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 633 1 0 \"701edfb3_990c_4c1b_bedc28252711ee79\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 634 1 0 \"c9ae6500_b5d1_4477_a223613843f63ca6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C5F95C8F9E654de5948C18A25DDCED25 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 635 1 0 \"ff68417a_c631_4446_9806f35dcd906d1e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 636 1 0 \"94c030fe_80a2_4f92_b3f6398bb4de0a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_AspReturn = str_ErrorReturn;\r\n// }} \"\"\r\n// {{ 637 1 0 \"c9ae6500_b5d1_4477_a223613843f63ca6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 638 1 0 \"d4cb59ab_f466_4c93_a6c14323be726409\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"d4cb59ab_f466_4c93_a6c14323be726409\"); // GetLastLiquidLevel\r\n\tstr_LiquidReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 639 1 0 \"6c454965_143f_4988_a52b397933b8424a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 640 1 0 \"c9bfcf14_aef2_461a_b58cd83257c695bd\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 641 1 0 \"f742a43b_9530_4cfd_b258b03e6570a658\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = 0.0;\r\n// }} \"\"\r\n// {{ 642 1 0 \"9139c912_bc68_4019_b300ce2a85b1662d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = 0.0;\r\n// }} \"\"\r\n// {{ 643 1 0 \"64966e50_2fdd_45f0_8638ae33c2a8c100\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"99a05cc8_4c91_4e8f_8af0152b01f0ffce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 645 1 0 \"622467f4_0897_4aa3_acb5f7fed1136df4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 646 1 0 \"4b2e4a96_f178_4613_80bda8956dea72d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ErrorReturn != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 647 1 0 \"e25c0793_4732_4c19_886bbfc79105b958\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StepReturn::GetPositionFromNum(int_ChIndex, str_ErrorReturn);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"fec343b1_ce8f_4724_80636c401244140c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ReturnErrorCode = StepReturn::GetSlaveError(int_Position, str_ErrorReturn);\r\n// }} \"\"\r\n// {{ 649 1 0 \"4b2e4a96_f178_4613_80bda8956dea72d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 650 1 0 \"8997fb37_48b6_4bc3_aedf483366696db6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ReturnErrorCode = 0;\r\n// }} \"\"\r\n// {{ 651 1 0 \"4b2e4a96_f178_4613_80bda8956dea72d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 652 1 0 \"aa294da8_31f5_4eec_84fc99f62f3c92c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"9b680ed5_17c9_443e_a5d17bcd20a3b6db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"87f89c1b_4427_4b93_8d0c2ec85f35ebb9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLIQUID_LEVEL_CHECK::FindLiquidHeight(ML_STAR, str_LiquidReturn, seq_Temp, int_ChIndex, flt_LiquidHeight);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"9069418d_e49c_4e26_85eeb26028dcadba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxVolume, flt_CurrentVolume);\r\n// }} \"\"\r\n// {{ 656 1 0 \"58be1779_4edd_49be_929085a29dab5980\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 657 1 0 \"79c76753_3c6f_477b_830640987b27965e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 658 1 0 \"38020480_c48a_4136_bb0053ddef9b6f48\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentVolume = i_flt_AspirationVolume;\r\n// }} \"\"\r\n// {{ 659 1 0 \"79c76753_3c6f_477b_830640987b27965e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 660 1 0 \"58be1779_4edd_49be_929085a29dab5980\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 661 1 0 \"11bb03f8_d0d2_4d83_bed8e59152c95375\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (T_PIP_TOOLS_ASP_BLOWOUT > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 662 1 0 \"913b2a59_c950_4e33_ac5bdd95fe418d2b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedBlowout = T_PIP_TOOLS_ASP_BLOWOUT;\r\n// }} \"\"\r\n// {{ 663 1 0 \"11bb03f8_d0d2_4d83_bed8e59152c95375\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 664 1 0 \"0cbf3be3_f584_4968_99f383674d07c271\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedBlowout = 0.0;\r\n// }} \"\"\r\n// {{ 665 1 0 \"11bb03f8_d0d2_4d83_bed8e59152c95375\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 666 1 0 \"321a835d_efe8_45a2_b6c6f8a991b52e58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ReturnErrorCode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 667 1 0 \"a8965122_47e4_4537_ac349fb3a18c78c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (T_PIP_TOOLS_ASP_AIR_TRANSPORT > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 668 1 0 \"53c9f80c_5c98_418b_b35ebd3667c0d392\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedAirGap = T_PIP_TOOLS_ASP_AIR_TRANSPORT;\r\n// }} \"\"\r\n// {{ 669 1 0 \"a8965122_47e4_4537_ac349fb3a18c78c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 670 1 0 \"bf071407_23c7_4307_89fc454fc5dd8894\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedAirGap = 0.0;\r\n// }} \"\"\r\n// {{ 671 1 0 \"a8965122_47e4_4537_ac349fb3a18c78c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 672 1 0 \"321a835d_efe8_45a2_b6c6f8a991b52e58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 673 1 0 \"3362931e_6e54_4513_be361f43eca70d78\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"ASPIRATION STOPPED EARLY!\"));\r\n// }} \"\"\r\n// {{ 674 1 0 \"8cb6b4a7_eab5_43b3_9a6d3fc5724df40c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedAirGap = 0.0;\r\n// }} \"\"\r\n// {{ 675 1 0 \"321a835d_efe8_45a2_b6c6f8a991b52e58\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 676 1 0 \"5ec02639_96a9_4b89_ae14223988e270b5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TotalAirGap = flt_CorrectedBlowout + flt_CorrectedAirGap;\r\n// }} \"\"\r\n// {{ 677 1 0 \"ae46bddb_93d9_4a3a_8ef97076889fd331\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_CurrentVolume - flt_TotalAirGap;\r\n// }} \"\"\r\n// {{{ 678 1 0 \"75fc396c_79de_4bec_b416d80210eb85c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Total Air Gap:  \"), flt_TotalAirGap, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{{ 679 1 0 \"7353601c_388d_4aad_a0bc76b2a7a2904f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Volume Aspirated Adjusted:  \"), flt_VolumeAspirated, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{ 680 1 0 \"669b72a1_1f53_4657_ab99db3a297ff820\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeAspirated < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 681 1 0 \"b66f1b89_ee4f_437a_81a143c7e25a4555\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = 0.0;\r\n// }} \"\"\r\n// {{ 682 1 0 \"669b72a1_1f53_4657_ab99db3a297ff820\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 683 1 0 \"d62f6978_2c3a_4d13_98cc788a029dc361\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(flt_VolumeAspirated, T_PIP_TOOLS_ARR_CORRECTION_Y, T_PIP_TOOLS_ARR_CORRECTION_X, flt_VolumeAspirated);\r\n// }} \"\"\r\n// {{ 684 1 0 \"669b72a1_1f53_4657_ab99db3a297ff820\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 685 1 0 \"5eda7fc8_1880_4782_8d2f3e9d97d6f3aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Volume Aspirated:  \"), flt_VolumeAspirated, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{{ 686 1 0 \"52ca64fa_e481_4b94_9c989cecff862e41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Liquid Level Start :  \"), flt_LiquidHeight, Translate(\" mm\"));\r\n// }} \"\"\r\n// {{ 687 1 0 \"b591bace_e17e_482b_9f63a0831b507fe3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_VolumeAspirated * -1;\r\n// }} \"\"\r\n// {{{ 688 1 0 \"6c76bb6e_928f_4175_90f6f8d970209b8e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalculateLiquidFollowDistance(ML_STAR, str_LabID, str_PosID, flt_LiquidHeight, flt_VolumeAspirated, BOOLEON::TRUE, flt_LiquidFollowDistance);\r\n// }} \"\"\r\n// {{ 689 1 0 \"a691b616_1d81_4bb9_bbb0c55e7eac037a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_VolumeAspirated * -1;\r\n// }} \"\"\r\n// {{ 690 1 0 \"ee5daac4_ddab_49cb_89d82ebadd8bbe8a\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = flt_LiquidHeight - flt_LiquidFollowDistance;\r\n// }} \"\"\r\n// {{ 691 1 0 \"aa34f00c_8c76_4a60_b39d1f26b4285022\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentHeight < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 692 1 0 \"65873774_54e0_42ce_8ce5018a47dda2d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = 0.0;\r\n// }} \"\"\r\n// {{ 693 1 0 \"aa34f00c_8c76_4a60_b39d1f26b4285022\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 694 1 0 \"b459a2e7_8b67_4a4c_8839c80221ec8ceb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 695 1 0 \"bd708f31_0bd4_4dcc_bc251ac03b2f4813\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = 25.0;\r\n// }} \"\"\r\n// {{ 696 1 0 \"b459a2e7_8b67_4a4c_8839c80221ec8ceb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 697 1 0 \"5b428709_5b1a_4d4c_bf97c01ff333ae23\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Liquid Level End :  \"), flt_CurrentHeight, Translate(\" mm\"));\r\n// }} \"\"\r\n// {{ 698 1 0 \"622467f4_0897_4aa3_acb5f7fed1136df4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 699 1 0 \"e359871e_2d38_43f8_a380b7232befea01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i == 1)\r\n{\r\n// }} \"\"\r\n// {{ 700 1 0 \"65b232e8_e0f3_4e26_91a1c9cb59d51630\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidHeights.AddAsLast(flt_CurrentHeight);\r\n// }} \"\"\r\n// {{ 701 1 0 \"056ceda5_8d75_47bb_87c0b3027ec9494c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_VolumesAspirated.AddAsLast(flt_VolumeAspirated);\r\n// }} \"\"\r\n// {{ 702 1 0 \"e359871e_2d38_43f8_a380b7232befea01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 703 1 0 \"b9facf05_9e69_42ea_953b261a760855a4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidHeights.SetAt(int_ChIndex-1, flt_CurrentHeight);\r\n// }} \"\"\r\n// {{ 704 1 0 \"ec06ede3_cbae_4bb2_b8134077a764350f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_VolumesAspirated.SetAt(int_ChIndex-1, flt_VolumeAspirated);\r\n// }} \"\"\r\n// {{ 705 1 0 \"e359871e_2d38_43f8_a380b7232befea01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 706 1 0 \"c9bfcf14_aef2_461a_b58cd83257c695bd\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 707 1 0 \"7b00d4fd_2795_4308_952aaae821eed301\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 708 1 0 \"6c454965_143f_4988_a52b397933b8424a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 709 1 0 \"bf08fbb2_33c2_43a3_83808f176b9cd964\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 710 1 0 \"561f9901_7d5e_4818_86cef754fd762f96\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_448E92A110B74ccdAF87B89FEFEB9A0A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 711 1 0 \"b468e8f1_82e4_4845_b1998a5beb10be0c\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"b468e8f1_82e4_4845_b1998a5beb10be0c\"); // Aspirate\r\n\tstr_AspReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 712 1 0 \"01fc08d1_c86f_4e01_9e78e6ac0ae19aba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ErrorReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 713 1 0 \"561f9901_7d5e_4818_86cef754fd762f96\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_448E92A110B74ccdAF87B89FEFEB9A0A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 714 1 0 \"9893c613_fc99_4c77_ba1b2e661a8ba2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ErrorReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 715 1 0 \"aa5e1f48_c0d9_4e08_b6b3613408f9b5be\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_AspReturn = str_ErrorReturn;\r\n// }} \"\"\r\n// {{ 716 1 0 \"561f9901_7d5e_4818_86cef754fd762f96\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 717 1 0 \"732b2123_d5b9_4b3f_91b9f0083066e6ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 718 1 0 \"d06cf1e9_2252_44bf_ae188ab8375f2693\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 719 1 0 \"6c59a17f_f92d_43b8_8d84a8321e1383f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = 0.0;\r\n// }} \"\"\r\n// {{ 720 1 0 \"aad54511_4e3a_46ff_8a2df15d0b20cc09\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = 0.0;\r\n// }} \"\"\r\n// {{ 721 1 0 \"906f8f79_c9ee_40fd_835dc54cd0998e1f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"966eba6c_e8f5_4819_b2e9255119db5c6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 723 1 0 \"2bf0c1cc_312f_4900_aaf2762dd7acf33c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 724 1 0 \"f9454c79_83b0_46c4_889552986fb1c004\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ErrorReturn != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 725 1 0 \"c76d5f4a_2315_47fd_a665c156c5631393\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StepReturn::GetPositionFromNum(int_ChIndex, str_ErrorReturn);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"63507b2f_a5a1_4d2f_b450770d1a6b7603\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ReturnErrorCode = StepReturn::GetSlaveError(int_Position, str_ErrorReturn);\r\n// }} \"\"\r\n// {{ 727 1 0 \"f9454c79_83b0_46c4_889552986fb1c004\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 728 1 0 \"bb5cf922_1456_4f4d_8c507d8f5c580a2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ReturnErrorCode = 0;\r\n// }} \"\"\r\n// {{ 729 1 0 \"f9454c79_83b0_46c4_889552986fb1c004\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 730 1 0 \"134afa56_49b8_4807_9d513c1a50a685c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"f831cb1c_c260_4162_ae36fd0d91b15a73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{ 732 1 0 \"5b95941c_52c5_47d5_b58ccfdaa2555e14\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_LiquidHeight=arr_LiquidHeights.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"d1817f5f_d4dc_4da1_9d3741c33e7a0a26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxVolume, flt_CurrentVolume);\r\n// }} \"\"\r\n// {{ 734 1 0 \"7e44597a_0f1a_41dc_82bf20a16397e3a1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"daddb01d_2e44_4dde_92bc919b3eb03054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 736 1 0 \"f5d16664_5ae8_4f02_8075b9271e454c40\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentVolume = i_flt_AspirationVolume;\r\n// }} \"\"\r\n// {{ 737 1 0 \"daddb01d_2e44_4dde_92bc919b3eb03054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 738 1 0 \"7e44597a_0f1a_41dc_82bf20a16397e3a1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 739 1 0 \"59758ce1_6412_4757_867b3c822476a9b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (T_PIP_TOOLS_ASP_BLOWOUT > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 740 1 0 \"5d9874a9_2969_4737_beff127abe27bafc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedBlowout = T_PIP_TOOLS_ASP_BLOWOUT;\r\n// }} \"\"\r\n// {{ 741 1 0 \"59758ce1_6412_4757_867b3c822476a9b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 742 1 0 \"33d56fee_a73e_4a41_bbd71d671c7b1471\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedBlowout = 0.0;\r\n// }} \"\"\r\n// {{ 743 1 0 \"59758ce1_6412_4757_867b3c822476a9b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 744 1 0 \"b30390f6_1553_4848_b4aad7ab747c83c8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ReturnErrorCode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 745 1 0 \"d8afc0d4_b8de_4999_9864a81e5aed4ee3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (T_PIP_TOOLS_ASP_AIR_TRANSPORT > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 746 1 0 \"258c17b6_cf39_4a32_bcbbcf50d10a3072\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedAirGap = T_PIP_TOOLS_ASP_AIR_TRANSPORT;\r\n// }} \"\"\r\n// {{ 747 1 0 \"d8afc0d4_b8de_4999_9864a81e5aed4ee3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 748 1 0 \"033dd162_38fb_44b6_80203fc6982c553f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedAirGap = 0.0;\r\n// }} \"\"\r\n// {{ 749 1 0 \"d8afc0d4_b8de_4999_9864a81e5aed4ee3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 750 1 0 \"b30390f6_1553_4848_b4aad7ab747c83c8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 751 1 0 \"ef583f37_c319_4246_90fe7de74f350c9b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"ASPIRATION STOPPED EARLY!\"));\r\n// }} \"\"\r\n// {{ 752 1 0 \"1aba71ab_9bb8_43eb_a5778981c19818da\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedAirGap = 0.0;\r\n// }} \"\"\r\n// {{ 753 1 0 \"b30390f6_1553_4848_b4aad7ab747c83c8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 754 1 0 \"751fd6e4_b3a4_4841_b54db699f14370ac\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TotalAirGap = flt_CorrectedBlowout + flt_CorrectedAirGap;\r\n// }} \"\"\r\n// {{ 755 1 0 \"1ede1fd5_84e7_47e8_9f713eef0d0156df\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_CurrentVolume - flt_TotalAirGap;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 756 1 0 \"87ddd759_4f31_40d8_93e22c5a5b10c1c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_CurrentVolume;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 757 1 0 \"e590aff6_ad61_4b00_90da7460cf735a6c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Total Air Gap:  \"), flt_TotalAirGap, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{{ 758 1 0 \"99eacef1_9baa_4c1f_8b1ca80e8028503f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Volume Aspirated Adjusted:  \"), flt_VolumeAspirated, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{ 759 1 0 \"67bb31ae_9bcf_4b4c_ab338793f0f338db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeAspirated < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 760 1 0 \"b2be93ef_1212_4c4b_a5c7e50c0003eb5e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = 0.0;\r\n// }} \"\"\r\n// {{ 761 1 0 \"67bb31ae_9bcf_4b4c_ab338793f0f338db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 762 1 0 \"712275b4_6fd0_4b6a_8bfb5c70452c8ac3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(flt_VolumeAspirated, T_PIP_TOOLS_ARR_CORRECTION_Y, T_PIP_TOOLS_ARR_CORRECTION_X, flt_VolumeAspirated);\r\n// }} \"\"\r\n// {{ 763 1 0 \"67bb31ae_9bcf_4b4c_ab338793f0f338db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 764 1 0 \"e8829853_4fb7_4440_943811f68a2ed2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Volume Aspirated :  \"), flt_VolumeAspirated, Translate(\" uL\"));\r\n// }} \"\"\r\n// {{{ 765 1 0 \"fab4eba5_d677_4164_8afe589b98c60e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Liquid Level Start :  \"), flt_LiquidHeight, Translate(\" mm\"));\r\n// }} \"\"\r\n// {{ 766 1 0 \"8fe1098d_4077_4155_a79d6b13a3ed42c6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_VolumeAspirated * -1;\r\n// }} \"\"\r\n// {{{ 767 1 0 \"de9434cc_4c99_4ff8_9317226ed47090b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_CalculateLiquidFollowDistance(ML_STAR, str_LabID, str_PosID, flt_LiquidHeight, flt_VolumeAspirated, BOOLEON::TRUE, flt_LiquidFollowDistance);\r\n// }} \"\"\r\n// {{ 768 1 0 \"bbf4b28c_16a8_48d0_ae59be2a01c9d472\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollowDistance = flt_LiquidFollowDistance + i_flt_SubmergeDepth;\r\n// }} \"\"\r\n// {{ 769 1 0 \"45543d0d_04c6_4642_b8865b47b58341b5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_VolumeAspirated * -1;\r\n// }} \"\"\r\n// {{ 770 1 0 \"1aef9b4e_ab87_470c_8080eec225467ed2\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = flt_LiquidHeight - flt_LiquidFollowDistance;\r\n// }} \"\"\r\n// {{ 771 1 0 \"7c3438a0_989c_4492_91c88c1520e4dedb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentHeight < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 772 1 0 \"768bde28_c264_401d_93e1d1d3606e1154\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = 0.0;\r\n// }} \"\"\r\n// {{ 773 1 0 \"7c3438a0_989c_4492_91c88c1520e4dedb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 774 1 0 \"e5e30769_7257_4015_bd9824fcbbbc7ffa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 775 1 0 \"b513ece4_3a10_4ad3_9548e1bd15c59b95\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentHeight = 25.0;\r\n// }} \"\"\r\n// {{ 776 1 0 \"e5e30769_7257_4015_bd9824fcbbbc7ffa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 777 1 0 \"3bef5d06_2cc2_460d_8a41bd7a9e8a35dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Liquid Level End :  \"), flt_CurrentHeight, Translate(\" mm\"));\r\n// }} \"\"\r\n// {{ 778 1 0 \"2bf0c1cc_312f_4900_aaf2762dd7acf33c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 779 1 0 \"3904fff4_9d0b_4d19_94ebd694a2b164d9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidHeights.SetAt(int_ChIndex-1, flt_CurrentHeight);\r\n// }} \"\"\r\n// {{ 780 1 0 \"efd550f7_edd3_4ad5_b6f6416edebb3d66\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_VolumesAspirated.SetAt(int_ChIndex-1, flt_VolumeAspirated);\r\n// }} \"\"\r\n// {{ 781 1 0 \"d06cf1e9_2252_44bf_ae188ab8375f2693\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 782 1 0 \"c394793a_01a8_48ed_a9d70756394ce92b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 783 1 0 \"732b2123_d5b9_4b3f_91b9f0083066e6ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 784 1 0 \"bf08fbb2_33c2_43a3_83808f176b9cd964\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 785 1 0 \"1b932678_fbdd_40fe_b7798f8e1723a9c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Current Liquid Heights                        Volumes Aspirated\"), arr_LiquidHeights, arr_VolumesAspirated);\r\n// }} \"\"\r\n// {{ 786 1 0 \"8b2d25c7_2980_45c1_a7fb6228da1aaf7e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 787 1 0 \"06e83eed_1178_49d4_959f06f0f9abad5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ErrorReturn != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 788 1 0 \"65259c29_55a8_44b5_817e88f2453b7662\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Error Return Value:  \"), str_ErrorReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 789 1 0 \"2588a21c_c33e_4862_9a5831d49f60f78b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DispenseChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 790 1 0 \"fc628844_4aa9_4baf_bd0333b92d766ae6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = StepReturn::GetNumberOfPositions(str_ErrorReturn);\r\n// }} \"\"\r\n// {{ 791 1 0 \"e222f01b_3223_41b0_a18a38a868179d37\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowingDistance.SetSize(0);\r\n// }} \"\"\r\n// {{ 792 1 0 \"d47e9a41_3e27_43f2_91056cbb1fe461a4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"d6c9339a_90b1_4896_938f79602518c4b7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLiquidFollowingForAllChannels(ML_STAR, arr_LiquidHeights, seq_Temp, BOOLEON::TRUE, BOOLEON::FALSE, i_flt_DispenseBackVolume, io_str_ChPattern, arr_LiquidFollowingDistance);\r\n// }} \"\"\r\n// {{ 794 1 0 \"18e000d9_ced3_4969_9c1793c6c7a4bb78\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalPositions;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 795 1 0 \"e926097a_8821_4962_bd7ec04b0e8f1f97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StepReturn::GetPositionFromNum(int_ChIndex, str_ErrorReturn);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"b900fc58_1622_4f11_9a5ca738da6ba983\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ReturnErrorCode = StepReturn::GetSlaveError(int_Position, str_ErrorReturn);\r\n// }} \"\"\r\n// {{ 797 1 0 \"de987974_b0dc_4bf4_8554d5aaea02608d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ReturnErrorCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 798 1 0 \"d67a56f6_b163_41ac_856184d4d8113462\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 799 1 0 \"5eea53a0_ab0f_4262_95824a3e59ae1e07\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 800 1 0 \"de987974_b0dc_4bf4_8554d5aaea02608d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 801 1 0 \"413ba4da_4b17_4380_a4474b427737e26a\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentHeight=arr_LiquidHeights.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 802 1 0 \"7aedc866_5b91_476c_8b6da2b58088d372\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_SecondPhaseHeights.SetAt(int_ChIndex-1, flt_CurrentHeight);\r\n// }} \"\"\r\n// {{{ 803 1 0 \"14e0e33c_ea5c_4ca9_8937ca89aede554a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxVolume, flt_CurrentVolume);\r\n// }} \"\"\r\n// {{ 804 1 0 \"c86f9e42_40dd_49d3_92288ae49f161a3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (T_PIP_TOOLS_ASP_BLOWOUT > 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 805 1 0 \"eeb3c4ac_59f0_43a8_957f06f6c36c4ecc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedBlowout = T_PIP_TOOLS_ASP_BLOWOUT;\r\n// }} \"\"\r\n// {{ 806 1 0 \"c86f9e42_40dd_49d3_92288ae49f161a3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 807 1 0 \"79c5731a_c39e_4e7f_bc1a0783b49f8364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CorrectedBlowout = 0.0;\r\n// }} \"\"\r\n// {{ 808 1 0 \"c86f9e42_40dd_49d3_92288ae49f161a3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 809 1 0 \"0e2f4ee5_6c82_4687_b1c2a67994632b15\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_CurrentVolume - flt_CorrectedBlowout;\r\n// }} \"\"\r\n// {{ 810 1 0 \"d202b601_f05b_4c49_aa26653e0d265265\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeAspirated < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 811 1 0 \"8b51c074_e336_4462_b2ce6691a1645dc8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = 0.0;\r\n// }} \"\"\r\n// {{ 812 1 0 \"d202b601_f05b_4c49_aa26653e0d265265\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 813 1 0 \"d62385c8_9950_4a4a_ad9999b2a4936bd0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(flt_VolumeAspirated, T_PIP_TOOLS_ARR_CORRECTION_Y, T_PIP_TOOLS_ARR_CORRECTION_X, flt_VolumeAspirated);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 814 1 0 \"d202b601_f05b_4c49_aa26653e0d265265\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 815 1 0 \"fa21df3e_416e_4892_adf3fa29046ec27c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(int_ChIndex, Translate(\"     Volume currently in channel:  \"), flt_VolumeAspirated, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 816 1 0 \"96ebbf0d_2de1_4e59_a6b20ea6dbdffe62\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseVolume = i_flt_DispenseBackVolume;\r\n// }} \"\"\r\n// {{ 817 1 0 \"b9595f45_9895_4b0f_a6c1ddc9dc8a849a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeAspirated < i_flt_DispenseBackVolume)\r\n{\r\n// }} \"\"\r\n// {{ 818 1 0 \"eff021df_e28b_4279_bb8a68187d45bd58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseVolume = flt_VolumeAspirated;\r\n// }} \"\"\r\n// {{ 819 1 0 \"769aecb7_bb7b_4084_a5787c6850a5da32\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 820 1 0 \"54706dac_dae4_45b7_af591a2c6739944f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = 0.0;\r\n// }} \"\"\r\n// {{ 821 1 0 \"2fe3286d_42d1_4547_9f14b19ff02fa4f6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_DispenseVolume < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 822 1 0 \"9847b893_9c33_41b1_89ce8f7f8e4e95d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseVolume = 0.0;\r\n// }} \"\"\r\n// {{ 823 1 0 \"2fe3286d_42d1_4547_9f14b19ff02fa4f6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 824 1 0 \"b9595f45_9895_4b0f_a6c1ddc9dc8a849a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 825 1 0 \"62c1f8e6_d65f_46d4_a7d5452c9e86f8c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_DispenseVolume < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 826 1 0 \"25422e4a_ec6d_465d_99506cf1a5cf1f0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseVolume = 0.0;\r\n// }} \"\"\r\n// {{ 827 1 0 \"62c1f8e6_d65f_46d4_a7d5452c9e86f8c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 828 1 0 \"e90a7a0d_f77d_45d6_aa363dd7a9269202\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeAspirated < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 829 1 0 \"70c8bd07_a24d_4aa3_95805d6eb108923e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = 0.0;\r\n// }} \"\"\r\n// {{ 830 1 0 \"e90a7a0d_f77d_45d6_aa363dd7a9269202\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 831 1 0 \"e210d053_0aad_412f_8ced9ec6445295ed\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = flt_VolumeAspirated - flt_DispenseVolume;\r\n// }} \"\"\r\n// {{ 832 1 0 \"b9595f45_9895_4b0f_a6c1ddc9dc8a849a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 833 1 0 \"f2772797_f1c7_4a33_9a24218cc51020de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Volume dispensed in channel:  \"), flt_DispenseVolume, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 834 1 0 \"1c57021a_13cc_4b06_b5970aac41bf0533\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseVolumes.AddAsLast(flt_DispenseVolume);\r\n// }} \"\"\r\n// {{ 835 1 0 \"f068711c_302c_462f_9f7733f151d0df66\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeAspirated <= 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 836 1 0 \"653075c7_f7dd_47e6_8b83069c46160b64\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeAspirated = 0.0;\r\n// }} \"\"\r\n// {{ 837 1 0 \"f068711c_302c_462f_9f7733f151d0df66\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 838 1 0 \"7192df1a_5ec0_48cd_8899e195f5f96e2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(flt_VolumeAspirated, T_PIP_TOOLS_ARR_CORRECTION_Y, T_PIP_TOOLS_ARR_CORRECTION_X, flt_VolumeAspirated);\r\n// }} \"\"\r\n// {{ 839 1 0 \"f068711c_302c_462f_9f7733f151d0df66\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 840 1 0 \"a8f99053_ca55_440e_aebdc833e528c576\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Remaining volume in channel:  \"), flt_VolumeAspirated, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 841 1 0 \"41bb2796_c027_4c67_82e520f90db0febe\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_VolumesAspirated.SetAt(int_ChIndex-1, flt_VolumeAspirated);\r\n// }} \"\"\r\n// {{ 842 1 0 \"3cdf2067_590f_40d2_a30e96ea5b075421\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_DispenseVolume > 0.0)\r\n{\r\n// }} \"\"\r\n// {{{ 843 1 0 \"440855a3_6daa_40f2_b5c1e3f6b90ff540\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 844 1 0 \"3cdf2067_590f_40d2_a30e96ea5b075421\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 845 1 0 \"05208409_70b6_41a4_adee6054f939c230\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 846 1 0 \"3cdf2067_590f_40d2_a30e96ea5b075421\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 847 1 0 \"de987974_b0dc_4bf4_8554d5aaea02608d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 848 1 0 \"18e000d9_ced3_4969_9c1793c6c7a4bb78\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 849 1 0 \"0c61b957_6550_4676_bd277acca204d3e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Dispense Back Channel Pattern:  \"), str_DispenseChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 850 1 0 \"2d4984b8_8a34_46de_8fe612a53a08daab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_flt_DispenseBackVolume > 0.0)\r\n{\r\n// }} \"\"\r\n// {{{ 851 1 0 \"142e4920_8321_4c9f_b5fd8ee2465693ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_DispenseBackCheck = StrReplace(str_DispenseChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 852 1 0 \"26f853e2_d9a0_419f_9682f7fbc826d864\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_DispenseBackCheck > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 853 1 0 \"e5de9938_78db_408b_a7c9501761cf7b2a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Dispense Back Volumes\"), arr_DispenseVolumes);\r\n// }} \"\"\r\n// {{ 854 1 0 \"047530a8_24e3_4082_ae77116e37f01edc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Offset = flt_ZBottom - 1.0;\r\n// }} \"\"\r\n// {{{ 855 1 0 \"8bb043ef_eb9e_40c5_991a2171d4e18c78\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_ApplyOffsetToArrayofValues(arr_LiquidHeights, flt_Offset, arr_DispenseHeights);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"5c10acbf_30b3_410d_a7747be1deb4e5b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{ 857 1 0 \"26f853e2_d9a0_419f_9682f7fbc826d864\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 858 1 0 \"2d4984b8_8a34_46de_8fe612a53a08daab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 859 1 0 \"06e83eed_1178_49d4_959f06f0f9abad5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 860 1 0 \"8b2d25c7_2980_45c1_a7fb6228da1aaf7e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 861 1 0 \"e4efec32_3c7b_4026_ad4227f90d5d3c5a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 862 1 0 \"498bb0f7_3843_4ecc_bc0fc084ad478d7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DispenseLocation = Translate(\"\");\r\n// }} \"\"\r\n// {{ 863 1 0 \"5ade1ecc_2dfb_4004_b2446aaad7d6150a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DispenseChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 864 1 0 \"c64f6ba6_5721_48af_91f2c0da9db5c594\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 865 1 0 \"cc5588b5_4661_4efa_afaff5deb32e40ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Volume = Translate(\"\");\r\n// }} \"\"\r\n// {{ 866 1 0 \"f238de0e_da85_463f_9742657099aabcd6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DispenseLabID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 867 1 0 \"faf092cc_6db1_45f7_8c4a4b5e0d76376c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DispensePosID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 868 1 0 \"6c616aef_3a1f_4f50_bd9ea5c8ec8a5a86\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{ 869 1 0 \"d3d91a57_3d55_4f7d_8b479f76923dfdcc\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentVolume=arr_VolumesAspirated.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{{ 870 1 0 \"20bcd3aa_6368_4aa9_b2e92d4399eec065\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 871 1 0 \"397307bf_e586_4f05_be3958dbc616598c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 872 1 0 \"428af9ab_bc87_48d2_a164c983eb8d8c52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentVolume > 0.0)\r\n{\r\n// }} \"\"\r\n// {{{ 873 1 0 \"f7485159_65b9_4f3a_95a583fe4b743cb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseLabID = SeqGetLabwareId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"ac8bf98b_3a64_44fd_b1de5a29aeeb7750\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispensePosID = SeqGetPositionId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 875 1 0 \"3ca455b7_3e3b_416e_90fb2d29533faad4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseLocation = StrConcat12(str_DispenseLocation, Translate(\"> \"), Translate(\"channel \"), int_ChIndex, Translate(\": \"), str_DispenseLabID, Translate(\", \"), str_DispensePosID, Translate(\", \"), flt_CurrentVolume, Translate(\" uL\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 876 1 0 \"c7d22e41_425c_4fc2_b10694581fee4faf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 877 1 0 \"428af9ab_bc87_48d2_a164c983eb8d8c52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 878 1 0 \"50ea52ed_f0f3_43f7_92903eea19bafdcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 879 1 0 \"428af9ab_bc87_48d2_a164c983eb8d8c52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 880 1 0 \"397307bf_e586_4f05_be3958dbc616598c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 881 1 0 \"9a835fbd_5abc_4dd3_806c9ebf3acd10be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 882 1 0 \"397307bf_e586_4f05_be3958dbc616598c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 883 1 0 \"c64f6ba6_5721_48af_91f2c0da9db5c594\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 884 1 0 \"cc173dfb_01f7_4443_b8f193db3b904474\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"69e954e2_d438_4f62_80dc6f68a4c8c53d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), str_DispenseLocation, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 886 1 0 \"0bb3ab97_7e8d_4dfe_afc7b4c08f8e2b56\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLiquidFollowingForAllChannels(ML_STAR, arr_DispenseHeights, seq_TempDispense, BOOLEON::TRUE, BOOLEON::FALSE, i_flt_AspirationVolume, io_str_ChPattern, arr_LiquidFollowingDispense);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 887 1 0 \"a3f08315_590f_4c42_9023e335176561fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_DispenseCheck = StrReplace(str_DispenseChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 888 1 0 \"e3117107_a600_4c7b_af090ef8fc0b794a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_DispenseCheck > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 889 1 0 \"177ec00c_80e9_48f7_9c1b55632bf5e5ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetPartialChannelPatternForRepeatingPositions(ML_STAR, str_DispenseChPattern, seq_TempDispense, int_DispenseLoops, arr_DispenseChPatterns);\r\n// }} \"\"\r\n// {{ 890 1 0 \"23d311ef_1388_4e83_acba41524e5ef7b0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_DispenseCount = 0; int_DispenseCount < int_DispenseLoops;)\r\n{\r\nint_DispenseCount = int_DispenseCount + 1;\r\n// }} \"\"\r\n// {{{ 891 1 0 \"4efcdaa7_b3b5_4974_89c4ef007b4fc14f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumesInPositions(ML_STAR, seq_TempDispense, arr_CurrentDestVolumes);\r\n// }} \"\"\r\n// {{ 892 1 0 \"74634c06_fbec_44dc_af6594ee79143b86\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 893 1 0 \"6b364c4e_104c_4efa_bd1f5e7be354378e\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentDispChPattern=arr_DispenseChPatterns.GetAt(int_DispenseCount-1);\r\n// }} \"\"\r\n// {{{ 894 1 0 \"ce0a19e8_da0a_41eb_84259a65c56b571f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(str_CurrentDispChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 895 1 0 \"14263018_92be_4c77_a87b83ff01da0394\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 896 1 0 \"12ecbdd7_113a_49b7_b8396724b005a118\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(str_CurrentDispChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 897 1 0 \"4781c46c_d9fb_446f_b88f94d8dd0cf43b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 898 1 0 \"c40934dc_2a94_4170_8588a6067715e30f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{ 899 1 0 \"e6be073d_5e4c_4fcc_ae3e54d415ccb8e5\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentVolume=arr_CurrentDestVolumes.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 900 1 0 \"0e07ac76_1247_4a31_8f365a32f1990e90\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_VolumeAspirated=arr_VolumesAspirated.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 901 1 0 \"98bd5216_5234_4c06_971962fb4583fb49\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewVolume = flt_CurrentVolume + flt_VolumeAspirated;\r\n// }} \"\"\r\n// {{{ 902 1 0 \"fcb9f0be_c779_407d_903f26f44705f8be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(Translate(\"    \"), Translate(\"Current Volume in well:  \"), flt_CurrentVolume, Translate(\"     Volume aspirated:  \"), flt_VolumeAspirated, Translate(\"    Added Volume\"), flt_NewVolume, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 903 1 0 \"77ef0c00_b4d3_41d4_9c60f9b39af187b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"0792e3a6_ebaf_4921_876c73736cddc757\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"930ff5e0_829d_43e1_a9b1df34fb80e70a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_VolumeUpdateSequence);\r\n// }} \"\"\r\n// {{{ 906 1 0 \"f03bd0ec_a2af_478f_998da838e441a78c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_VolumeUpdateSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 907 1 0 \"77769afd_4c9f_40ec_b5a2bac8e6475167\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_VolumeUpdateSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 908 1 0 \"7b3b0cb8_db56_457f_97c9a842731cea09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVectorDb_Labware::LoadLabware(ML_STAR, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{{ 909 1 0 \"62c4a0db_86b9_4d69_9959b14097a73c1e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLLabwState::SetLabwareVolume(ML_STAR, seq_VolumeUpdateSequence, flt_NewVolume);\r\n// }} \"\"\r\n// {{{ 910 1 0 \"65f1dc4f_9b59_46fa_a50eeceb5aad5a4d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightBasedOnVolume(str_ContainerConfigFile, flt_CurrentVolume, flt_CurrentHeight);\r\n// }} \"\"\r\n// {{ 911 1 0 \"b53411f7_a83b_4a46_af492c6dc6599f57\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = flt_CurrentHeight - i_flt_SubmergeDepth;\r\n// }} \"\"\r\n// {{ 912 1 0 \"b4758dad_e292_4e29_8cdee54653d21b3a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_DispenseHeight <= 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 913 1 0 \"8f61fd80_7f80_4a79_acddefde6d14f21e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = 2.0;\r\n// }} \"\"\r\n// {{ 914 1 0 \"b4758dad_e292_4e29_8cdee54653d21b3a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 915 1 0 \"f184dd47_5c75_4093_bc07bcb43f11817d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(flt_DispenseHeight);\r\n// }} \"\"\r\n// {{ 916 1 0 \"4781c46c_d9fb_446f_b88f94d8dd0cf43b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 917 1 0 \"a52b69ed_f484_4829_930a22aadb72e694\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 918 1 0 \"4781c46c_d9fb_446f_b88f94d8dd0cf43b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 919 1 0 \"14263018_92be_4c77_a87b83ff01da0394\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 920 1 0 \"443ed7a8_d7ae_42da_82c8431c3aaa038c\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"c3c892e0_1463_4fe8_bf6bf8484ac89fe0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Dispense Heights\"), arr_DispenseHeights);\r\n// }} \"\"\r\n// {{ 922 1 0 \"87fda7d3_3a1d_4198_a6720d5182a05b8c\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"87fda7d3_3a1d_4198_a6720d5182a05b8c\"); // Dispense\r\n\tstr_DispReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 923 1 0 \"1bcd2467_2b43_4bac_946211df96f2b955\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ret_strAllPipettingReturn != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 924 1 0 \"39db1fe2_a6e2_4524_a4f9677dcaeaa1ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nret_strAllPipettingReturn = StrConcat2(ret_strAllPipettingReturn, Translate(\"*\"));\r\n// }} \"\"\r\n// {{ 925 1 0 \"1bcd2467_2b43_4bac_946211df96f2b955\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 926 1 0 \"e289866a_8f3e_4232_9ecc5931912b1e29\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nret_strAllPipettingReturn = StrConcat4(ret_strAllPipettingReturn, str_AspReturn, Translate(\"&\"), str_DispReturn);\r\n// }} \"\"\r\n// {{ 927 1 0 \"23d311ef_1388_4e83_acba41524e5ef7b0\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 928 1 0 \"e3117107_a600_4c7b_af090ef8fc0b794a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 929 1 0 \"64b488a9_6d53_48e9_ab2e1092399b099d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_DispReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 930 1 0 \"e3117107_a600_4c7b_af090ef8fc0b794a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 931 1 0 \"636312a3_b1c2_4044_b01faf10f22899f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 932 1 0 \"9fbb1870_07db_4a75_a5b02da3aea6ad2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 4, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 933 1 0 \"2c42f698_dd56_4e18_a76aaa9af9a46c2f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 934 1 0 \"3eb66c79_e7ba_4a69_b35c380eb33d2162\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 935 1 0 \"85effdf5_aabf_4f90_9427af0769f8c9d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_ErrorReturn != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 936 1 0 \"0193aa6a_d013_43e8_97dc03c354b97d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Error Return Value:  \"), str_ErrorReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 937 1 0 \"4586b6c1_4d4d_4fb0_98dafbd66e010e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_NewChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 938 1 0 \"b054930a_0513_4d6b_b6a3fb3820d92bea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = StepReturn::GetNumberOfPositions(str_ErrorReturn);\r\n// }} \"\"\r\n// {{ 939 1 0 \"c340091a_425e_4078_be6a80e0c439bdb7\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowingDistance.SetSize(0);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"0aeac13b_abbe_44bc_bfaa1bc7c4db0058\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLiquidFollowingForAllChannels(ML_STAR, arr_LiquidHeights, seq_Temp, BOOLEON::TRUE, BOOLEON::FALSE, i_flt_DispenseBackVolume, io_str_ChPattern, arr_LiquidFollowingDistance);\r\n// }} \"\"\r\n// {{ 941 1 0 \"c8079862_f995_47be_b3f6af48b996d772\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalPositions;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 942 1 0 \"cc8cffb5_b175_4729_9b61713c65f235ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StepReturn::GetPositionFromNum(int_ChIndex, str_ErrorReturn);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"868b8b89_08cf_45d9_b0a39767b260333b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ReturnErrorCode = StepReturn::GetSlaveError(int_Position, str_ErrorReturn);\r\n// }} \"\"\r\n// {{{ 944 1 0 \"0382715d_2aee_4a61_86b520ba1a6e959f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 945 1 0 \"f9602fa6_f2ff_4085_875eb98e862b0178\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 946 1 0 \"e8048465_d918_4594_9e31bc554840a97a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ReturnErrorCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 947 1 0 \"93fc62bf_13f8_4d28_81f00ecc830638f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_NewChPattern = StrConcat2(str_NewChPattern, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 948 1 0 \"e8048465_d918_4594_9e31bc554840a97a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 949 1 0 \"8bf807f1_72f9_4069_81f7767e297c86d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_NewChPattern = StrConcat2(str_NewChPattern, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 950 1 0 \"e8048465_d918_4594_9e31bc554840a97a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 951 1 0 \"f9602fa6_f2ff_4085_875eb98e862b0178\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 952 1 0 \"960a1c0e_f346_4e6d_94683fc0b22d1f5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_NewChPattern = StrConcat2(str_NewChPattern, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 953 1 0 \"f9602fa6_f2ff_4085_875eb98e862b0178\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 954 1 0 \"c8079862_f995_47be_b3f6af48b996d772\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 955 1 0 \"b421ee24_8b22_4a1d_90a4fbea8e9723bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"New Channel Pattern:  \"), str_NewChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 956 1 0 \"68d734c5_c4bd_4962_8eacf7a1c90ed44f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_str_ChPattern = str_NewChPattern;\r\n// }} \"\"\r\n// {{ 957 1 0 \"85effdf5_aabf_4f90_9427af0769f8c9d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 958 1 0 \"3eb66c79_e7ba_4a69_b35c380eb33d2162\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 959 1 0 \"abe9b0c1_bcc9_4451_955b6c603e199a55\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 960 1 0 \"9931d8c2_8eeb_4957_9b3235191ec556a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 961 1 0 \"149edfe2_6ff5_47c5_9e385748d93a33e4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_SecondPhaseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 962 1 0 \"193b59f9_f738_4aed_bfbdfad4d91ef0c7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 963 1 0 \"a1f48321_2253_4fde_a0a197f8ef874701\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_SecondPhaseHeights.AddAsLast(25.0);\r\n// }} \"\"\r\n// {{ 964 1 0 \"193b59f9_f738_4aed_bfbdfad4d91ef0c7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 965 1 0 \"9931d8c2_8eeb_4957_9b3235191ec556a7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 966 1 0 \"6be318c8_12a3_45e5_8a73f5243cfc5d82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Volumes Transferred\"), arr_VolumesAspirated);\r\n// }} \"\"\r\n// {{{ 967 1 0 \"c4f29127_fc92_4614_9e5cfed670dd45ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Second Phase Heights\"), arr_SecondPhaseHeights);\r\n// }} \"\"\r\n// {{{ 968 1 0 \"21402f9f_7016_4e8d_b76093680dd4d781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetHeightInfoToLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeights);\r\n// }} \"\"\r\n// {{ 969 1 0 \"347af0ad_bd88_42f2_a60ec6223e82f2c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_ResetChPattern == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 970 1 0 \"987d51c7_b5cd_4290_8d9dbe4c933b6ef0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_str_ChPattern = str_StartingChannelPattern;\r\n// }} \"\"\r\n// {{ 971 1 0 \"347af0ad_bd88_42f2_a60ec6223e82f2c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 972 1 0 \"7c55a578_d9c1_4f03_a3fd587b1d307a48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 973 1 0 \"368d56b3_295b_44c7_9a304e3a8a611907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 974 1 0 \"7c55a578_d9c1_4f03_a3fd587b1d307a48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 975 1 0 \"70750af5_e01f_4962_893263a7ca761726\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspiration\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_SetHeightInfoToLabware\" \"Begin\"\r\nprivate function _SetHeightInfoToLabware( device & ML_STAR, variable i_blnUpperHeights, sequence i_seqPositions, variable & i_arrHeights[] ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable int_TotalPositions;\r\nprivate variable bln_LabwareValid;\r\nprivate variable str_PropertyReplace;\r\nprivate variable str_Property;\r\nprivate variable str_LabID;\r\nprivate variable flt_Height;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalArray;\r\n// {{ 5 \"_SetHeightInfoToLabware\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2676 1 0 \"96157d18_9762_457d_8b4b4b12fcbecbd1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seqPositions);\r\n// }} \"\"\r\n// {{ 2677 1 0 \"18c0ea00_c375_4ab5_a4ced5d748bc2f79\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalArray=i_arrHeights.GetSize();\r\n// }} \"\"\r\n// {{ 2678 1 0 \"6730ebe6_3a45_4e16_8faa1774f018e519\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_blnUpperHeights == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 2679 1 0 \"12b9eb13_128d_491d_8b5ac09d99c8196a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Property = Translate(\"HEIGHT_TOP_#\");\r\n// }} \"\"\r\n// {{ 2680 1 0 \"6730ebe6_3a45_4e16_8faa1774f018e519\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2681 1 0 \"2fd08897_d79a_46f9_a5fde59b4e5cdafd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Property = Translate(\"HEIGHT_BOTTOM_#\");\r\n// }} \"\"\r\n// {{ 2682 1 0 \"6730ebe6_3a45_4e16_8faa1774f018e519\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2683 1 0 \"32bc83df_890f_4105_bdf90a8520893608\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 2684 1 0 \"e4c233bd_6182_4d85_86a71e7f5e5f082b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seqPositions.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{ 2685 1 0 \"ec820b22_08e0_43a1_bfa5fef698541f30\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i > int_TotalArray)\r\n{\r\n// }} \"\"\r\n// {{ 2686 1 0 \"68b79fa7_753f_4df7_8915ca4237ba42a4\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2687 1 0 \"ec820b22_08e0_43a1_bfa5fef698541f30\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2688 1 0 \"f45acbc5_5da9_46a4_963565112649e5b2\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_Height=i_arrHeights.GetAt(i-1);\r\n// }} \"\"\r\n// {{{ 2689 1 0 \"bdab040e_8b5b_4edc_9d62641a54ffeabf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seqPositions);\r\n// }} \"\"\r\n// {{{ 2690 1 0 \"64d1b4a2_5922_48b4_8630a3cf18c751f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID);\r\n// }} \"\"\r\n// {{ 2691 1 0 \"8fc73a4a_6e4f_489b_8f62deb032dceb4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_LabwareValid == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2692 1 0 \"fe17facb_803f_4200_8f0fa25e01c9dd10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seqPositions);\r\n// }} \"\"\r\n// {{ 2693 1 0 \"dd894d52_6292_407b_a5ad697fcffb2105\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_PropertyReplace = str_Property;\r\n// }} \"\"\r\n// {{{ 2694 1 0 \"95fc12be_96f2_4d4d_8592532483f9ab8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_PropertyReplace, Translate(\"#\"), str_PosID);\r\n// }} \"\"\r\n// {{{ 2695 1 0 \"f743bb6e_873d_49df_9bd704159074a631\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetPropertiesForLabwareID(ML_STAR, str_LabID, str_PropertyReplace, flt_Height);\r\n// }} \"\"\r\n// {{ 2696 1 0 \"8fc73a4a_6e4f_489b_8f62deb032dceb4c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2697 1 0 \"32bc83df_890f_4105_bdf90a8520893608\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_SetHeightInfoToLabware\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_SetPropertiesForLabwareID\" \"Begin\"\r\nprivate function _SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void {\r\n// }} \"\"\r\nprivate variable strLabwareID;\r\nprivate variable strProperyValue;\r\nprivate variable strPropertyKey;\r\n// {{ 5 \"_SetPropertiesForLabwareID\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2699 1 0 \"5e5d9144_103a_4ba1_8e9c5eed0c87bae8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrPropertyKey = StrConcat2(i_strPropertyKey, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2700 1 0 \"27258292_4975_47d2_b92d870876021797\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrProperyValue = StrConcat2(i_strProperyValue, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 2701 1 0 \"c39d99d8_e738_4275_8fddf3205018fa27\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrLabwareID = StrConcat2(i_strLabwareID, Translate(\"\"));\r\n// }} \"\"\r\nTrace(\"Lab ID:  \",i_strLabwareID,\" Property Key:  \",strPropertyKey,\"  Property Value:  \",strProperyValue);\r\n// {{ 2703 1 0 \"f9024c49_af60_42fd_8dca2f6fde4350e1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n    {\r\n      object   objDecklayout;\r\n      variable str_PropertyValue;\r\n\r\n      str_PropertyValue = strProperyValue;\r\n\r\n      //variable strFunctionName(\"\");\r\n\r\n      //strFunctionName = ExtractFunctionName(GetFunctionName());\r\n\r\n      // check input variables\r\n      //if (!CheckString(i_strPropertyValue, \"i_strPropertyValue\", strFunctionName)) return(hslFalse);\r\n      //if (!CheckString(i_strPropertyKey, \"i_strPropertyKey\", strFunctionName)) return(hslFalse);\r\n      //if (!CheckString(i_strLabwareID, \"i_strLabwareID\", strFunctionName)) return(hslFalse);\r\n\r\n      //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, \"i_strLabwareID = \" + i_strLabwareID + \", i_strPropertyKey = \" + i_strPropertyKey + \", i_strPropertyValue = \" + i_strPropertyValue, strFunctionName);\r\n\r\n      //EnterSemaphore();\r\n      objDecklayout = Instrument.GetDeckLayoutObject();\r\n      //LeaveSemaphore();\r\n\r\n      if (!objDecklayout.IsNull())\r\n      {\r\n        object objLabware;\r\n\r\n        onerror goto HandleLabwareError;\r\n        objLabware = objDecklayout.Labware(i_strLabwareID);\r\n        onerror goto 0;\r\n        err.Clear();\r\n\r\n        if (!objLabware.IsNull())\r\n        {\r\n          object   objEditLabware5;\r\n          object   objPropertyParameters;\r\n\r\n          objLabware.GetObject(\"IEditLabware5\", objEditLabware5);\r\n\r\n          // prepare a new Pars object for the labware properties\r\n          objPropertyParameters.CreateObject(\"HXPARAMSLib.HxPars\");\r\n          objPropertyParameters.Add(str_PropertyValue, strPropertyKey);\r\n\r\n          // check data from the decklayout\r\n          objEditLabware5.SetLabwrProperties(objPropertyParameters);\r\n\r\n          str_PropertyValue = objPropertyParameters.Item1(strPropertyKey);\r\n\r\n          objPropertyParameters.ReleaseObject();\r\n          objEditLabware5.ReleaseObject();\r\n          objDecklayout.ReleaseObject();\r\n          objLabware.ReleaseObject();\r\n\r\n          //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName);\r\n\r\n          //return(hslTrue);\r\n        }\r\n        else\r\n        {\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find labware.\", strFunctionName);\r\n          objDecklayout.ReleaseObject();\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n      else\r\n      {\r\n        //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Could not find decklayout.\", strFunctionName);\r\n        //return(hslFalse);\r\n      }\r\n\r\n      // runtime error handling\r\n      HandleLabwareError :\r\n      {\r\n        variable errorID;\r\n        errorID=err.GetId();\r\n        err.Clear();\r\n\r\n        if (errorID==-1574764487)\r\n        {\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"LabwareID is  unknown.\", strFunctionName);\r\n          //return(hslFalse);\r\n        }\r\n        else\r\n        {\r\n          //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, \"Unknown error occured.\", strFunctionName);\r\n          //return(hslFalse);\r\n        }\r\n      }\r\n    }\r\n// {{{ 5 \"_SetPropertiesForLabwareID\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetHeightInfoFromLabware\" \"Begin\"\r\nprivate function _GetHeightInfoFromLabware( device & ML_STAR, variable i_blnUpperHeights, sequence i_seqPositions, variable & o_arrHeights[] ) void {\r\n// }} \"\"\r\nprivate variable bln_LabwareValid;\r\nprivate variable str_PropertyReplace;\r\nprivate variable i;\r\nprivate variable str_Property;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalPositions;\r\nprivate variable flt_Value;\r\nprivate variable str_Value;\r\nprivate variable int_ChIndex;\r\n// {{ 5 \"_GetHeightInfoFromLabware\" \"InitLocals\"\r\no_arrHeights.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 2114 1 0 \"4e7cb626_c627_4d63_aa0c70ff32262eb6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seqPositions);\r\n// }} \"\"\r\n// {{ 2115 1 0 \"baac2398_481d_4ec7_b09ba3255d6b2f83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_blnUpperHeights == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 2116 1 0 \"000e7edf_b98a_47eb_a581b364d14f81d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Property = Translate(\"HEIGHT_TOP_#\");\r\n// }} \"\"\r\n// {{ 2117 1 0 \"baac2398_481d_4ec7_b09ba3255d6b2f83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2118 1 0 \"c2c08542_9951_47ea_805d80481a554813\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_Property = Translate(\"HEIGHT_BOTTOM_#\");\r\n// }} \"\"\r\n// {{ 2119 1 0 \"baac2398_481d_4ec7_b09ba3255d6b2f83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2120 1 0 \"932950ad_7964_47d9_a1d2b2902bd3373c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 2121 1 0 \"a330e42a_2ad4_4168_9fe08917f9059b05\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 2122 1 0 \"932950ad_7964_47d9_a1d2b2902bd3373c\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2123 1 0 \"27968d7f_1a7f_442f_9ffa3a2e0d70329a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 2124 1 0 \"f01fbbf4_0838_4464_b97b73c464d0e507\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seqPositions.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{ 2125 1 0 \"72ad901e_e774_49c3_a2e037a14e00dcd6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i > G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 2126 1 0 \"39e8d3ae_4708_4b18_a6df7afc9fb0faf1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2127 1 0 \"72ad901e_e774_49c3_a2e037a14e00dcd6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"1e02c247_5ea8_4fcf_ab4ad06936af7cc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seqPositions);\r\n// }} \"\"\r\n// {{{ 2129 1 0 \"93266117_9854_4ddd_b34e8923022d44f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID);\r\n// }} \"\"\r\n// {{ 2130 1 0 \"a716dc95_100c_4a4a_a9ac7e7f23625251\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_LabwareValid == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2131 1 0 \"bb844ef9_8677_4374_b7e645ae9a2a5d61\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seqPositions);\r\n// }} \"\"\r\n// {{ 2132 1 0 \"8c94379d_0c33_4cad_943517033f2814d1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_PropertyReplace = str_Property;\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"46cf5411_631b_4d2c_bf2fd0c3293c8bb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_PropertyReplace, Translate(\"#\"), str_PosID);\r\n// }} \"\"\r\n// {{{ 2134 1 0 \"d151e49a_6d95_40ac_94aca352cda8eb0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = DevGetLabwareData(ML_STAR, str_LabID, str_PropertyReplace);\r\n// }} \"\"\r\n// {{{ 2135 1 0 \"4e151042_2927_4078_839231288518f889\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Value = StrFVal(str_Value);\r\n// }} \"\"\r\n// {{ 2136 1 0 \"5c123636_360a_4e78_be59592fa1c58aea\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrHeights.SetAt(i-1, flt_Value);\r\n// }} \"\"\r\n// {{ 2137 1 0 \"a716dc95_100c_4a4a_a9ac7e7f23625251\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2138 1 0 \"27968d7f_1a7f_442f_9ffa3a2e0d70329a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetHeightInfoFromLabware\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspirationRemainder\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable str_PosIDDisp;\r\nprivate variable bln_SimulationMode;\r\nprivate variable flt_VolumeToAspirate;\r\nprivate variable ret_strAllPipettingReturn;\r\nprivate variable int_PLLD;\r\nprivate variable flt_ZBottomDispesne;\r\nprivate variable bln_TipsLoaded;\r\nprivate variable bln_ProbabilityPassed;\r\nprivate variable str_LabIDDisp;\r\nprivate variable flt_ContainerDepth;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_ZClearanceHeightDispense;\r\nprivate variable int_TotalActiveChannels;\r\nprivate variable flt_ZBottom;\r\nprivate variable flt_ZMaximumHeight;\r\nprivate variable flt_ZMinimumHeightDispense;\r\nprivate variable str_ContainerConfig;\r\nprivate variable flt_TopHeightContainer;\r\nprivate variable flt_BottomHeight;\r\nprivate variable flt_TopHeight;\r\nprivate variable _strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable flt_AspirationHeight;\r\nprivate variable flt_BottomHeightContainer;\r\nprivate variable flt_ZClearanceHeight;\r\nprivate variable flt_ZMaximumHeightDispense;\r\nprivate variable flt_TopVolume;\r\nprivate variable flt_BottomVolume;\r\nprivate variable str_AspReturn;\r\nprivate variable str_DispReturn;\r\nprivate variable int_TotalChannels;\r\nprivate variable str_ContainerConfigDisp;\r\nprivate variable flt_ZMinimumHeight;\r\nprivate variable str_PosID;\r\nprivate variable flt_LiquidFollowingDistance;\r\nprivate variable int_CLLD;\r\nprivate variable str_ReturnChPattern;\r\nprivate variable flt_DispenseHeight;\r\nprivate variable int_Value;\r\nprivate variable flt_MaxTipVolume;\r\nprivate variable int_ChIndex;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_TempDispense;\r\nprivate variable arr_DispenseHeights[];\r\nprivate variable arr_XCoordDispense[];\r\nprivate variable arr_LiquidFollowingDistancesDisp[];\r\nprivate variable arr_MaxVolumes[];\r\nprivate variable arr_YCoordDispense[];\r\nprivate variable arr_LiquidFollowingDistances[];\r\nprivate variable arr_LiquidLevelHeights[];\r\nprivate variable arr_AspirationVolumes[];\r\nprivate variable arr_YCoord[];\r\nprivate variable arr_XCoord[];\r\nprivate variable arr_AspirationHeights[];\r\nprivate variable arr_TopPhaseHeight[];\r\nprivate variable arr_SecondPhaseHeight[];\r\nprivate variable flt_CurrentVolume;\r\nprivate variable flt_VolumeAspirated;\r\nprivate variable str_CurrentDispChPattern;\r\nprivate variable flt_NewVolume;\r\nprivate variable int_DispenseCount;\r\nprivate variable int_DispenseLoops;\r\nprivate variable flt_CurrentHeight;\r\nprivate sequence seq_VolumeUpdateSequence;\r\nprivate variable arr_CurrentDestVolumes[];\r\nprivate variable arr_DispenseChPatterns[];\r\n// {{ 5 \"PIP_PhaseAspirationRemainder\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 998 1 0 \"39b578e4_39d7_4be6_884361eda56d8e42\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 999 1 0 \"e1a59900_4441_46e7_9e9eb9c452b7f1a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1001 1 0 \"6138e083_7880_40ec_be5cd4e80b6f804b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1002 1 0 \"39b578e4_39d7_4be6_884361eda56d8e42\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1003 1 0 \"02880c64_006f_4cd4_b9ebc08909516f71\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_strAllPipettingReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1004 1 0 \"f962762a_7d2b_486a_b6a975523dc11a75\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"73f50e39_45de_4061_86b4c6444d81b226\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_InitLiquidClassStorage();\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"cf5fc30a_728c_44c8_8eecda5af93ec029\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 1007 1 0 \"2cffde13_6bd0_49e0_a42c140ec46e2e7e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"71da4bbf_de6f_45ce_8344334171ef2837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{ 1009 1 0 \"a18d4bb6_ce4a_4d13_a5274f637a29d8d5\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TopPhaseHeight.SetSize(0);\r\n// }} \"\"\r\n// {{ 1010 1 0 \"35cda396_5701_4610_b3ecf990a645dfc3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_SecondPhaseHeight.SetSize(0);\r\n// }} \"\"\r\n// {{ 1011 1 0 \"c680d009_bbf9_4a55_9ffcbab7a661606e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"c6b3307c_6e8c_40b9_bd9f72d195495bce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ReturnChPattern = StrFillRight(str_ReturnChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 1013 1 0 \"e28d4137_66a8_49cc_8c027503f2f8e344\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"3f54f5a2_bcff_493a_b2df8c5a89921628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrConcat2(i_str_ChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"9aae7f24_fa62_4a89_8c03d63b1ad6470a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChPattern = StrFillRight(i_str_ChPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"7584c9ee_235c_4fd4_a19db29a0812b50f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalActiveChannels = StrReplace(i_str_ChPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 1017 1 0 \"5ec671f4_f065_42f0_99670bcf2789803a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalActiveChannels == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1018 1 0 \"4bceac6f_3ac7_4895_b2070eb64f054a23\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"CHANNEL PATTERN CONTAINS NO ACTIVE CHANNELS!\"));\r\n// }} \"\"\r\n// {{ 1019 1 0 \"c66809e5_c47e_48a5_8c5fba09e5593501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"e9548a7c_624e_4696_af0404f8ec8caf2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1021 1 0 \"c66809e5_c47e_48a5_8c5fba09e5593501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1022 1 0 \"93b2fb80_2e89_4876_b416741223a7ba58\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 1023 1 0 \"5ec671f4_f065_42f0_99670bcf2789803a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1024 1 0 \"b0501d19_2a49_4cd5_81a3ef7dda4be406\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"a456c338_56f3_4a97_ab5f107d5a305c5e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_AspirationPosition, i_str_ChPattern, seq_Temp);\r\n// }} \"\"\r\n// {{ 1026 1 0 \"d52d296e_3270_4f21_bd5fc83f1d57a254\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"652e9178_e019_448a_8c9a8e47804128cd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1028 1 0 \"2c2c0185_2140_4b4e_b69c8a89977738ef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1029 1 0 \"b79b6bed_2393_4ce4_a403416260d19b23\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 1030 1 0 \"c2505aed_1bbf_4071_a142d76ade3524aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"91c682eb_437b_4276_a5b8379a5b0ea959\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1032 1 0 \"c2505aed_1bbf_4071_a142d76ade3524aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"703d5e46_0e53_4b04_9e13642ade6fde8a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 1034 1 0 \"2c2c0185_2140_4b4e_b69c8a89977738ef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1035 1 0 \"d860e51a_6e02_4335_9fa87ce95090a4d2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"7fdc14ad_2555_462c_9c3ac5beebf30944\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetNextSequenceSet(i_seq_DispensePosition, i_str_ChPattern, seq_TempDispense);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1037 1 0 \"a794a664_a7f4_455a_962642928fd31f83\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1038 1 0 \"6c7a9eb2_21e4_40d2_8ccad8902240ff40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_TempDispense, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1039 1 0 \"a1bce8fa_69d7_42bb_84a2ca7c2756e8ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ProbabilityPassed == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1040 1 0 \"1df5af96_1242_432b_b38db8bfd3ac2534\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::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!\"));\r\n// }} \"\"\r\n// {{ 1041 1 0 \"8cf4deea_1bf7_40e2_a4f3434f20713afb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"69589096_876a_4b3a_9097f0bcfd87d7a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1043 1 0 \"8cf4deea_1bf7_40e2_a4f3434f20713afb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"ca361824_6573_4fb6_88b97f3e7fb4af97\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 1045 1 0 \"a1bce8fa_69d7_42bb_84a2ca7c2756e8ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1046 1 0 \"3f0d2eeb_179d_49b2_83e0479d32a63c38\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"c0cc9858_b72d_4b12_a4ba09009ab9a3f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern);\r\n// }} \"\"\r\n// {{ 1048 1 0 \"cd5c6fe7_7c20_4abb_a006627c28880453\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1049 1 0 \"5068af2c_4574_4cfa_8beb4eca4b1eac29\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!\"));\r\n// }} \"\"\r\n// {{ 1050 1 0 \"7e7cb150_a73d_4394_888c57a16d948f3d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"84271d12_87c6_4c6b_92b02ee6ea3af516\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1052 1 0 \"7e7cb150_a73d_4394_888c57a16d948f3d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"90387a5b_36bd_441f_9ada86b79d847a80\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{ 1054 1 0 \"cd5c6fe7_7c20_4abb_a006627c28880453\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"bd1fcfc1_e4ad_4c1b_8dca48695bf135f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightInfoFromLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeight);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"536eb437_8fee_40ad_9eaeb8811e1d0716\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightInfoFromLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeight);\r\n// }} \"\"\r\n// {{ 1057 1 0 \"80bb5a69_762f_444b_8184cde1500e05a9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"760f0f07_9a8a_45a0_ab749ee23a48c0f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight);\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"fbe75e67_d32a_4c40_ab7a3c3d0388d5f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetLabwareCoordinates(ML_STAR, seq_TempDispense, i_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense);\r\n// }} \"\"\r\n// {{ 1060 1 0 \"d5386fbf_4693_4fdc_96ef3d40f0afb277\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight;\r\n// }} \"\"\r\n// {{ 1061 1 0 \"619e28cf_f5e5_4334_b165d207315482ec\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1062 1 0 \"56ce4873_9396_4630_a64178a99aa06ab5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_bln_UseCLLD == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1063 1 0 \"7d52706e_0eab_4fe6_be4448c36ddc38d0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CLLD = 1;\r\n// }} \"\"\r\n// {{ 1064 1 0 \"ec92d067_3040_4c2f_a085629ad0e962e7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PLLD = 0;\r\n// }} \"\"\r\n// {{ 1065 1 0 \"56ce4873_9396_4630_a64178a99aa06ab5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1066 1 0 \"548ab735_ec75_4739_9ba4b92c54559c9d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CLLD = 0;\r\n// }} \"\"\r\n// {{ 1067 1 0 \"3e7bf18f_2fc8_48ef_af4f6f90c292b74d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PLLD = 1;\r\n// }} \"\"\r\n// {{ 1068 1 0 \"56ce4873_9396_4630_a64178a99aa06ab5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1069 1 0 \"fa0976f3_8309_4bd9_a838a2e511bb1783\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_MaxVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 1070 1 0 \"b0d6f5ad_a681_4b28_8516f779a42c7489\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"319af6de_5342_4542_a2538f7053aa7090\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1072 1 0 \"226e2895_ffac_4848_b7c54255f7f78653\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"7c6cb074_3540_4251_a90620b247d23410\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxTipVolume, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 1074 1 0 \"60f0edbc_e793_4745_aadb876f9f137df1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MaxVolumes.AddAsLast(flt_MaxTipVolume);\r\n// }} \"\"\r\n// {{ 1075 1 0 \"226e2895_ffac_4848_b7c54255f7f78653\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1076 1 0 \"d3bee796_8c3b_4b8d_b9bd86f7c2f42f75\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_MaxVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1077 1 0 \"226e2895_ffac_4848_b7c54255f7f78653\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1078 1 0 \"b0d6f5ad_a681_4b28_8516f779a42c7489\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1079 1 0 \"13b47da9_fe26_4e04_a3ed9ebb3f90dc3d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"07375292_9a47_4145_a625bf2d7245670a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFIRMWARE_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);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"8ef65cfe_f26f_47c5_ae357b27c0030cae\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"9ba11ae3_265e_4106_8f96476cf1005713\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"2dfbafcd_c28d_4171_92aa589d15d5d7a6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_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);\r\n// }} \"\"\r\n// {{ 1084 1 0 \"b43824eb_d62a_4e20_aa73ff7136f899bf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1085 1 0 \"5e2ed3f3_ecae_49a7_8c23b475c8da21ed\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AspirationVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 1086 1 0 \"4d06e0c0_2c97_4e54_8a4b0764b1827e5e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowingDistances.SetSize(0);\r\n// }} \"\"\r\n// {{ 1087 1 0 \"e0ec6d06_77a6_4776_828c5c956c11eddd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1088 1 0 \"402c32a6_be16_4ee6_a0df60838392eee8\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidFollowingDistancesDisp.SetSize(0);\r\n// }} \"\"\r\n// {{ 1089 1 0 \"1ea9f94d_2fd2_47a6_a8348367c141f387\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AspirationHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1090 1 0 \"812ec586_5dbb_4427_902078f4408f567d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < int_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"c5018422_a1f9_404a_b9581c4f4b70159c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1092 1 0 \"f1ef507b_813f_4b8d_ab71e6e024ff7e2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1093 1 0 \"a2fca254_6346_44ad_bdf604bcb481c11a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{ 1094 1 0 \"448c3bc9_dd51_4747_b4ae317836cf2dcb\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"1f9f999f_a9c7_4e1e_a435f7af1421e085\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"36282668_0eea_4b95_84be1dd84dc45aec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"6562c884_cfde_4cb4_85a55bdabced0e6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabIDDisp = SeqGetLabwareId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"fd772bad_5c14_4e7d_a01b9dd922668832\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosIDDisp = SeqGetPositionId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"4ba6a28f_4b89_4ed6_ab43c8950e4fff76\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ContainerConfig);\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"19983a84_9e69_4905_a2ce7f54132c4bc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabIDDisp, str_PosIDDisp, str_ContainerConfigDisp);\r\n// }} \"\"\r\n// {{ 1101 1 0 \"e4f27577_91fa_4dda_b9f7a9681a40bf64\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_TopHeight=arr_LiquidLevelHeights.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1102 1 0 \"cd0d03bf_6135_40b1_b0e4604757067b99\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_BottomHeightContainer=arr_SecondPhaseHeight.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1103 1 0 \"1da46b70_9717_4ce7_b0e33478f89e77b5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomHeightContainer = flt_BottomHeightContainer + i_flt_SafeHeightAbovePhase;\r\n// }} \"\"\r\n// {{ 1104 1 0 \"46bc02f7_d332_45e1_85a57984b8f4d24a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AspirationHeight = flt_BottomHeightContainer;\r\n// }} \"\"\r\n// {{ 1105 1 0 \"850e3fd1_b77a_47e1_988d2e06848a9b36\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TopPhaseHeight.SetAt(int_ChIndex-1, flt_AspirationHeight);\r\n// }} \"\"\r\n// {{ 1106 1 0 \"e288b86f_f328_42e9_9900a4dbea67d7fa\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomHeight = flt_BottomHeightContainer + flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1107 1 0 \"5892b01a_20b6_4861_be9e3ff4c5d111ff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopHeightContainer = flt_TopHeight - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1108 1 0 \"86289320_7e54_4ff6_bea19d384dd7c25b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1109 1 0 \"e0513fe2_02de_4914_95c4221f78b5a684\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopHeight = flt_BottomHeight + 3.0;\r\n// }} \"\"\r\n// {{ 1110 1 0 \"8de39c59_9464_4cfa_806e5a5cdad2b2b1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TopHeightContainer = flt_TopHeight - flt_ZBottom;\r\n// }} \"\"\r\n// {{ 1111 1 0 \"86289320_7e54_4ff6_bea19d384dd7c25b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1112 1 0 \"577674e7_82f6_4547_a28d2bb478c2f7a9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollowingDistance = flt_TopHeight - flt_BottomHeight;\r\n// }} \"\"\r\n// {{{ 1113 1 0 \"7e9b4011_4b9c_409d_87cffbce34008684\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE12(Translate(\"    \"), Translate(\"Top Height:  \"), flt_TopHeightContainer, Translate(\"    Bottom Height:  \"), flt_BottomHeightContainer, Translate(\"  Liquid Following Distance:  \"), flt_LiquidFollowingDistance, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1114 1 0 \"e69b8e0a_dc61_4bdf_8a645673a8aea8ed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_LiquidFollowingDistance > 0.0)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1115 1 0 \"3ba92ff0_4aa1_4e9e_9470701fe7077d39\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_LiquidFollowingDistance = flt_LiquidFollowingDistance + 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1116 1 0 \"e419fed7_8c68_4f61_afd76a84218a6244\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ContainerConfig, flt_TopHeightContainer, flt_TopVolume);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"53e14b64_26a9_4376_a16a0f982f352abd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumeBasedOnHeight(str_ContainerConfig, flt_BottomHeightContainer, flt_BottomVolume);\r\n// }} \"\"\r\n// {{ 1118 1 0 \"8c8a685a_d460_429f_aabc7c603c1739dc\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = flt_TopVolume - flt_BottomVolume;\r\n// }} \"\"\r\n// {{ 1119 1 0 \"4ab94a94_2747_416a_b40d3dcfd20a5d7d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = flt_VolumeToAspirate + i_flt_AdditionalAspirationVolume;\r\n// }} \"\"\r\n// {{ 1120 1 0 \"939cda3e_45ad_4afc_bf9175045e85405b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeToAspirate > T_PIP_TOOLS_MAX_VOLUME)\r\n{\r\n// }} \"\"\r\n// {{ 1121 1 0 \"98ce8b77_eb6b_41dc_92df499d1a433545\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = T_PIP_TOOLS_MAX_VOLUME;\r\n// }} \"\"\r\n// {{ 1122 1 0 \"939cda3e_45ad_4afc_bf9175045e85405b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1123 1 0 \"e540660d_560e_4db9_b6cf48bbcf22b96b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeToAspirate < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1124 1 0 \"b58c5cac_bc8f_41ce_a08f6245d81aaa90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = 0.0;\r\n// }} \"\"\r\n// {{ 1125 1 0 \"e540660d_560e_4db9_b6cf48bbcf22b96b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"d6b2e009_aad0_447e_9046009991e4e62e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE12(Translate(\"    \"), Translate(\"Top Volume:  \"), flt_TopVolume, Translate(\"    Bottom Volume:  \"), flt_BottomVolume, Translate(\"  Aspiration Volume:  \"), flt_VolumeToAspirate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1127 1 0 \"3442ac4a_c11e_47f8_893b34d90ae6087f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetCorrectedValueForVolume(flt_VolumeToAspirate, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_VolumeToAspirate);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1128 1 0 \"ef398f92_202b_4532_b2e78c2236065a5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_VolumeToAspirate > T_PIP_TOOLS_MAX_VOLUME)\r\n{\r\n// }} \"\"\r\n// {{ 1129 1 0 \"d89376ac_323d_49ab_bd8df80e6b52b46c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_VolumeToAspirate = T_PIP_TOOLS_MAX_VOLUME;\r\n// }} \"\"\r\n// {{ 1130 1 0 \"ef398f92_202b_4532_b2e78c2236065a5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1131 1 0 \"8bfcfa92_c2d1_4720_841599cf70656764\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(flt_VolumeToAspirate);\r\n// }} \"\"\r\n// {{ 1132 1 0 \"e69b8e0a_dc61_4bdf_8a645673a8aea8ed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1133 1 0 \"35662893_25b8_4217_ad84c8dd16f81407\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1134 1 0 \"e69b8e0a_dc61_4bdf_8a645673a8aea8ed\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1135 1 0 \"4f0b47a1_8ae9_4e00_a5a9e373646482b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_BottomHeightContainer < 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1136 1 0 \"3d67e97f_767f_4b34_8a413cfa5993a296\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_BottomHeightContainer = 0.0;\r\n// }} \"\"\r\n// {{ 1137 1 0 \"4f0b47a1_8ae9_4e00_a5a9e373646482b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1138 1 0 \"0d01424c_ac75_4ab6_8f7f3ef7895c232b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationHeights.AddAsLast(flt_BottomHeightContainer);\r\n// }} \"\"\r\n// {{ 1139 1 0 \"f1ef507b_813f_4b8d_ab71e6e024ff7e2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1140 1 0 \"9a0e61b0_c154_4738_be9bf00b0408d39b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1141 1 0 \"1b0f4857_796a_43f4_91251ce563c39673\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspirationHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1142 1 0 \"f1ef507b_813f_4b8d_ab71e6e024ff7e2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1143 1 0 \"2b5bbf17_e032_44e6_9fece51aa27c3d47\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowingDistances.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1144 1 0 \"543eb39e_d230_43fc_aae91d22e31d1886\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidFollowingDistancesDisp.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1145 1 0 \"812ec586_5dbb_4427_902078f4408f567d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1146 1 0 \"24da894a_ed11_4f22_bc079c85f4f82960\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1147 1 0 \"1706e8ae_6592_42c0_a183707c3d4eb0ce\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"66e1be32_c9d8_470c_8741c06d84ddb67d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Aspiration Volumes\"), arr_AspirationVolumes);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"ed7d3927_df1d_4944_92ac2976518cbec2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Aspiration Heights\"), arr_AspirationHeights);\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"f7f3c0f9_d137_40b1_a651adb78b6e8346\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1151 1 0 \"e95f6a40_4967_4e15_8d06a6ea257efe3b\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"e95f6a40_4967_4e15_8d06a6ea257efe3b\"); // Aspirate\r\n\tstr_AspReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"0b0f7bf7_1f43_46ae_915fedce9dc7401f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"613d575f_3d42_41c1_b96b00801eba7bac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 1, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"97851070_26c7_48e7_b6c00ac355bc2b4d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetPartialChannelPatternForRepeatingPositions(ML_STAR, i_str_ChPattern, seq_TempDispense, int_DispenseLoops, arr_DispenseChPatterns);\r\n// }} \"\"\r\n// {{ 1155 1 0 \"48ae2c95_4f0a_476b_97e7bedddde38e5f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_DispenseCount = 0; int_DispenseCount < int_DispenseLoops;)\r\n{\r\nint_DispenseCount = int_DispenseCount + 1;\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"3f2890e1_2913_48c4_83ee706f5aaa29f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetVolumesInPositions(ML_STAR, seq_TempDispense, arr_CurrentDestVolumes);\r\n// }} \"\"\r\n// {{ 1157 1 0 \"6c41ca03_6ed1_4b0c_be8468d961ee9418\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_DispenseHeights.SetSize(0);\r\n// }} \"\"\r\n// {{ 1158 1 0 \"a58e905f_c9f9_4c28_902de3a823654a50\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentDispChPattern=arr_DispenseChPatterns.GetAt(int_DispenseCount-1);\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"d8665bbb_584f_4521_9545616213b27a81\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(str_CurrentDispChPattern, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1160 1 0 \"3155438d_2bfb_4752_a7b799d35df4d04b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"7c3c072f_9ba0_4a90_ac3213a77fc4b23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(str_CurrentDispChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 1162 1 0 \"29b24462_21d2_4e11_924214c035cc2f1b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1163 1 0 \"c314b609_813a_4b3c_b2217e4fe489af03\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(int_ChIndex);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"6f4b43ec_2c49_4c0f_8dbceb27c60ce9b1\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentVolume=arr_CurrentDestVolumes.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1165 1 0 \"afa09de3_afb9_4841_9fbd60fe96b34ddd\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_VolumeAspirated=arr_AspirationVolumes.GetAt(int_ChIndex-1);\r\n// }} \"\"\r\n// {{ 1166 1 0 \"ee0f0a26_5bfc_42ee_956e727e456b2c52\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_NewVolume = flt_CurrentVolume + flt_VolumeAspirated;\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"9f4741c1_eb2b_45de_be201a4bc7f948c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(Translate(\"    \"), Translate(\"Current Volume in well:  \"), flt_CurrentVolume, Translate(\"     Volume aspirated:  \"), flt_VolumeAspirated, Translate(\"    Added Volume\"), flt_NewVolume, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"869b05b8_dd7e_4109_b67d1423e25e42ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"49e46001_d2c3_433c_a138974c8c6bdfab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_TempDispense);\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"f61c8fef_b332_4a6a_b567fe91be7b7ab5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_VolumeUpdateSequence);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"0f6d6133_4b29_4d40_8261dad0aa555f4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_VolumeUpdateSequence, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1172 1 0 \"c23e284f_3807_4500_be75c2f7eb31f7fd\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_VolumeUpdateSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"7eaea50f_0dcc_4dd7_a2f11cacd9cd7b28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLLabwState::SetLabwareVolume(ML_STAR, seq_VolumeUpdateSequence, flt_NewVolume);\r\n// }} \"\"\r\n// {{{ 1174 1 0 \"54988835_c38d_43f4_95ce41ce589b75a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetHeightBasedOnVolume(str_ContainerConfigDisp, flt_CurrentVolume, flt_CurrentHeight);\r\n// }} \"\"\r\n// {{ 1175 1 0 \"ebc7817c_ec82_49ad_9b2228281f01dc4f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = flt_CurrentHeight - i_flt_SubmergeHeight;\r\n// }} \"\"\r\n// {{ 1176 1 0 \"b23600cb_6887_46a0_93722e410cc46c67\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_DispenseHeight <= 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 1177 1 0 \"9abf5c37_919a_4c5b_866424bb7458b329\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_DispenseHeight = 2.0;\r\n// }} \"\"\r\n// {{ 1178 1 0 \"b23600cb_6887_46a0_93722e410cc46c67\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1179 1 0 \"ceac566f_833f_4da8_be0005be42af8092\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(flt_DispenseHeight);\r\n// }} \"\"\r\n// {{ 1180 1 0 \"29b24462_21d2_4e11_924214c035cc2f1b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1181 1 0 \"73780b74_5776_4f9b_bb8e89c5b8273a55\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_DispenseHeights.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 1182 1 0 \"29b24462_21d2_4e11_924214c035cc2f1b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1183 1 0 \"3155438d_2bfb_4752_a7b799d35df4d04b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1184 1 0 \"19a0df95_85db_42d2_bac59bd65150507a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempDispense.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"5ddf81a3_53dd_4140_915319c207d5caef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Dispense Heights\"), arr_DispenseHeights);\r\n// }} \"\"\r\n// {{ 1186 1 0 \"6cac4653_4169_4fed_b638d2a58446569c\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"6cac4653_4169_4fed_b638d2a58446569c\"); // Dispense\r\n\tstr_DispReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 1187 1 0 \"927121f6_67d5_43a9_b190916df04eb8e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (ret_strAllPipettingReturn != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"9d01cffa_fe85_47ad_91f2d8cbfe84149a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nret_strAllPipettingReturn = StrConcat2(ret_strAllPipettingReturn, Translate(\"*\"));\r\n// }} \"\"\r\n// {{ 1189 1 0 \"927121f6_67d5_43a9_b190916df04eb8e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"6818edd4_94bb_455d_95507691e69bc63a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nret_strAllPipettingReturn = StrConcat4(ret_strAllPipettingReturn, str_AspReturn, Translate(\"&\"), str_DispReturn);\r\n// }} \"\"\r\n// {{ 1191 1 0 \"48ae2c95_4f0a_476b_97e7bedddde38e5f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"8266ab9a_32ea_4e49_9d8ac320c874d307\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 4, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"28fe1bb7_caf2_4e20_b0782c4b769e1f46\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Top Phase Liquid Levels\"), arr_TopPhaseHeight);\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"87ac8d1b_3cee_4304_9a15551ba58bf38c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SetHeightInfoToLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeight);\r\n// }} \"\"\r\n// {{ 1195 1 0 \"df30807a_ac75_41a8_9a8c8d997462a794\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1196 1 0 \"70edd322_4dcd_4cb1_acd01d906fa65a4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1197 1 0 \"df30807a_ac75_41a8_9a8c8d997462a794\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"b753e03d_43b0_42c2_b391458fafd03da0\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_strAllPipettingReturn);\r\n// }} \"\"\r\n// {{{ 5 \"PIP_PhaseAspirationRemainder\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetVolumesInPositions\" \"Begin\"\r\nprivate function _GetVolumesInPositions( device & ML_STAR, sequence i_seqPositionsToGetVolume, variable & o_arrCurrentVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable int_PosIndex;\r\nprivate variable int_TotalPositions;\r\nprivate variable int_ChIndex;\r\nprivate variable bln_LabwareValid;\r\nprivate variable str_LabID;\r\nprivate variable flt_Volume;\r\nprivate variable int_LabwareID;\r\nprivate variable int_DeckID;\r\n// {{ 5 \"_GetVolumesInPositions\" \"InitLocals\"\r\no_arrCurrentVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2545 1 0 \"f90323d9_89de_40e0_af7ce986f9f62713\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrCurrentVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{ 2546 1 0 \"4136b4ca_8ae3_41f6_8249a31a87c80b36\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{ 2547 1 0 \"048cceac_758b_4c31_b43ab2cd4c926bda\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrCurrentVolumes.AddAsLast(0.0);\r\n// }} \"\"\r\n// {{ 2548 1 0 \"4136b4ca_8ae3_41f6_8249a31a87c80b36\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2549 1 0 \"5ed97117_df04_442e_8f008b9ede52e79d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = SeqGetTotal(i_seqPositionsToGetVolume);\r\n// }} \"\"\r\n// {{ 2550 1 0 \"4b74256d_b924_4d19_9091f31dc26ef70f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_PosIndex = 0; int_PosIndex < int_TotalPositions;)\r\n{\r\nint_PosIndex = int_PosIndex + 1;\r\n// }} \"\"\r\n// {{ 2551 1 0 \"e981d768_a89e_4a45_8e1ae79947da03bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PosIndex > G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 2552 1 0 \"0f583c2f_26e0_4e95_ab5d8a02ed928276\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2553 1 0 \"e981d768_a89e_4a45_8e1ae79947da03bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2554 1 0 \"503d04bb_6eff_4b9d_947420b8eb72dd1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Volume = 0.0;\r\n// }} \"\"\r\n// {{{ 2555 1 0 \"2a565417_e237_42a7_bd8b69b5eb6b0eb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seqPositionsToGetVolume);\r\n// }} \"\"\r\n// {{{ 2556 1 0 \"6d062f8c_a7aa_4747_b1921cc19e882fea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID);\r\n// }} \"\"\r\n// {{ 2557 1 0 \"1bda88f4_a2a5_44bf_8209407ead3af5d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_LabwareValid == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2558 1 0 \"724b1f06_b659_4fde_9d734cb56553175f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_DeckID = VectorDb_Deck::GetDeckID2(ML_STAR);\r\n// }} \"\"\r\n// {{{ 2559 1 0 \"80ed6cc4_793b_418f_a0809572e6de2e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_LabwareID = VectorDb_Labware::IsLabwareLoadedByLabwareId(int_DeckID, str_LabID);\r\n// }} \"\"\r\n// {{ 2560 1 0 \"d3240b73_e030_4595_b543fb95d9e6e656\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_LabwareID == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2561 1 0 \"ad712407_23b8_4d6d_839f1be77afd40d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVectorDb_Labware::LoadLabware(ML_STAR, str_LabID, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2562 1 0 \"d3240b73_e030_4595_b543fb95d9e6e656\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2563 1 0 \"550b9924_2690_48d8_8b18b8d98947049a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1548B09395E14b06998631567F25A1CB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2564 1 0 \"1f10e65b_ab73_45fb_8708023e99352199\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_Volume = HSLLabwState::GetLabwareVolume(ML_STAR, i_seqPositionsToGetVolume);\r\n// }} \"\"\r\n// {{ 2565 1 0 \"550b9924_2690_48d8_8b18b8d98947049a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1548B09395E14b06998631567F25A1CB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2566 1 0 \"52aa6c27_d52d_4769_adf4b48216a63096\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_Volume = 0.0;\r\n// }} \"\"\r\n// {{ 2567 1 0 \"550b9924_2690_48d8_8b18b8d98947049a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 2568 1 0 \"1bda88f4_a2a5_44bf_8209407ead3af5d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2569 1 0 \"89628961_e0dd_44da_bd90dc629f90454d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrCurrentVolumes.SetAt(int_PosIndex-1, flt_Volume);\r\n// }} \"\"\r\n// {{{ 2570 1 0 \"02b254c4_2b7c_4552_9e4dd08afa08349d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seqPositionsToGetVolume, 1);\r\n// }} \"\"\r\n// {{ 2571 1 0 \"4b74256d_b924_4d19_9091f31dc26ef70f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetVolumesInPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetPartialChannelPatternForRepeatingPositions\" \"Begin\"\r\nprivate function _GetPartialChannelPatternForRepeatingPositions( device & ML_STAR, variable i_strChPattern, sequence i_seqPositions, variable & o_intLoopNumber, variable & o_arrChannelPatterns[] ) void {\r\n// }} \"\"\r\nprivate variable flt_CurrentX;\r\nprivate variable flt_CurrentY;\r\nprivate variable flt_PositionA;\r\nprivate variable str_LabID;\r\nprivate variable str_CurrentChPattern;\r\nprivate variable flt_PositionX;\r\nprivate variable flt_PositionY;\r\nprivate variable flt_PositionZ;\r\nprivate variable str_PosID;\r\nprivate variable int_Value;\r\nprivate variable int_ChIndex;\r\nprivate variable flt_YOffsetDistance;\r\nprivate variable int_BackFill;\r\nprivate variable bln_LabwareValid;\r\n// {{ 5 \"_GetPartialChannelPatternForRepeatingPositions\" \"InitLocals\"\r\no_intLoopNumber = 0;\r\no_arrChannelPatterns.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2369 1 0 \"8525493e_1eb2_492e_964a9341e1282a88\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_intLoopNumber = 0;\r\n// }} \"\"\r\n// {{ 2370 1 0 \"46ce8513_1420_4e7a_acec02dc9512cc5c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrChannelPatterns.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2371 1 0 \"025b4083_2d3e_435a_b2de73f6bf42f3e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_strChPattern = StrFillRight(i_strChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 2372 1 0 \"7e99c21a_d10d_4eed_94ad1951ce6137be\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = 0.0;\r\n// }} \"\"\r\n// {{ 2373 1 0 \"8f3f5a26_facd_4e49_8d80a2b50a328898\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = 99999.9;\r\n// }} \"\"\r\n// {{ 2374 1 0 \"e8549661_937f_4839_a0545b0744f6bb66\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CurrentChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2375 1 0 \"ec608ab8_3898_4a6a_a85b6e3fb81e7fbe\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;)\r\n{\r\nint_ChIndex = int_ChIndex + 1;\r\n// }} \"\"\r\n// {{{ 2376 1 0 \"a5de3155_bfae_4c65_96eecc2ebba4b213\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seqPositions);\r\n// }} \"\"\r\n// {{{ 2377 1 0 \"6342a1a1_0a6b_42a7_8fabb59b743d0da8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(i_seqPositions);\r\n// }} \"\"\r\n// {{{ 2378 1 0 \"2b87bcf5_d7b0_4a3c_b603ff0d357da58b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(i_seqPositions, 1);\r\n// }} \"\"\r\n// {{{ 2379 1 0 \"89ad8ae7_00b1_41e8_9706888a9223f5c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID);\r\n// }} \"\"\r\n// {{ 2380 1 0 \"b3b0e993_cf76_4b31_83357c4fb7ffc752\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_LabwareValid == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 2381 1 0 \"f7bf59b5_f4bb_4821_8b7e82d111b7ca40\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_PositionX, flt_PositionY, flt_PositionZ, flt_PositionA);\r\n// }} \"\"\r\n// {{{ 2382 1 0 \"2df15a23_a47f_4a6f_91558f7e394e9315\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetChannelPatternValue(i_strChPattern, int_ChIndex, int_Value);\r\n// }} \"\"\r\n// {{ 2383 1 0 \"b3b0e993_cf76_4b31_83357c4fb7ffc752\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2384 1 0 \"18abe16e_0423_42e5_a85543325d98bd0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Value = 0;\r\n// }} \"\"\r\n// {{ 2385 1 0 \"b3b0e993_cf76_4b31_83357c4fb7ffc752\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2386 1 0 \"8cd48754_8a8f_444c_87dc8b76c548e132\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentX == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 2387 1 0 \"b4911283_9b04_42c3_a2ea46e6d9c60749\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2388 1 0 \"b5e10ebb_fc66_4eed_bdc7794b6b4d8cfa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = flt_PositionX;\r\n// }} \"\"\r\n// {{ 2389 1 0 \"676c91cd_e185_491c_b0ec7f5235759329\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_PositionY;\r\n// }} \"\"\r\n// {{ 2390 1 0 \"b4911283_9b04_42c3_a2ea46e6d9c60749\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2391 1 0 \"84a814f7_5e53_4ede_ae301a384ef471bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value);\r\n// }} \"\"\r\n// {{{ 2392 1 0 \"45f48d9b_28ac_4fb1_978ef709b1010b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Ch pattern Set 1:  \"), str_CurrentChPattern);\r\n// }} \"\"\r\n// {{ 2393 1 0 \"8cd48754_8a8f_444c_87dc8b76c548e132\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2394 1 0 \"2c5bcd9b_926d_4448_9d3d9b778c89df3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Value == 1)\r\n{\r\n// }} \"\"\r\n// {{ 2395 1 0 \"9a52dacd_105f_4c2c_b6a2c10e2ceda205\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_PositionX != flt_CurrentX)\r\n{\r\n// }} \"\"\r\n// {{{ 2396 1 0 \"22844b98_a48a_4fe6_a9777d3c802116c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrFillRight(str_CurrentChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 2397 1 0 \"d6e3e487_03c4_48d9_a1b39c258d13dc62\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrChannelPatterns.AddAsLast(str_CurrentChPattern);\r\n// }} \"\"\r\n// {{ 2398 1 0 \"8ccf1b6a_bd4e_4ee0_8ca621129b442e40\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentX = flt_PositionX;\r\n// }} \"\"\r\n// {{ 2399 1 0 \"d56cbdd3_bdc0_4272_8a2540c7808f0a24\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CurrentChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2400 1 0 \"842d5431_b6e1_4ce3_858732bc60fa9562\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_BackFill = int_ChIndex - 1;\r\n// }} \"\"\r\n// {{ 2401 1 0 \"59e2151f_71a0_417a_a4beb9b96a0b4432\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_BackFill > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2402 1 0 \"ba88e90c_c953_48ab_bd7009963fd9d3b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrFillRight(str_CurrentChPattern, Translate(\"0\"), int_BackFill);\r\n// }} \"\"\r\n// {{ 2403 1 0 \"59e2151f_71a0_417a_a4beb9b96a0b4432\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2404 1 0 \"88747fea_0bb3_419b_aa507595f9a3a0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value);\r\n// }} \"\"\r\n// {{ 2405 1 0 \"9a52dacd_105f_4c2c_b6a2c10e2ceda205\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2406 1 0 \"0c243dab_bf78_436a_867acfb1d42e5898\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_YOffsetDistance = flt_CurrentY - flt_PositionY;\r\n// }} \"\"\r\n// {{ 2407 1 0 \"732ecf4d_5905_42ad_87aa34e36157e7cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_YOffsetDistance < G_FW_PIP_COM_Raster)\r\n{\r\n// }} \"\"\r\n// {{{ 2408 1 0 \"b864f6a8_3e3b_4e43_beb0522c04928700\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrFillRight(str_CurrentChPattern, Translate(\"0\"), G_FW_PIP_COM_TotalChannels);\r\n// }} \"\"\r\n// {{ 2409 1 0 \"cc446f2e_999e_4b0d_8c0b8c3b41a637bc\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrChannelPatterns.AddAsLast(str_CurrentChPattern);\r\n// }} \"\"\r\n// {{ 2410 1 0 \"0d5d0b59_15e2_40c5_999cbe0c4de6dc2d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_PositionY;\r\n// }} \"\"\r\n// {{ 2411 1 0 \"c79dbf26_be54_441f_991b148eeb05dafd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_CurrentChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2412 1 0 \"f23b7136_0cd6_4dfb_882dd87655ba3571\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_BackFill = int_ChIndex - 1;\r\n// }} \"\"\r\n// {{ 2413 1 0 \"cacc7333_c959_42fe_9bb4b9a16a440e70\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_BackFill > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2414 1 0 \"ed03dbf8_07e2_4b21_90b7580a7540705f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrFillRight(str_CurrentChPattern, Translate(\"0\"), int_BackFill);\r\n// }} \"\"\r\n// {{ 2415 1 0 \"cacc7333_c959_42fe_9bb4b9a16a440e70\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2416 1 0 \"729ee505_4927_41ab_a19ddb4513f66306\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value);\r\n// }} \"\"\r\n// {{ 2417 1 0 \"732ecf4d_5905_42ad_87aa34e36157e7cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2418 1 0 \"7eaf7e41_67bb_4338_afaf5790de631c9f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_PositionY;\r\n// }} \"\"\r\n// {{{ 2419 1 0 \"26fba6a3_f8da_45d0_a0140943d20cb872\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value);\r\n// }} \"\"\r\n// {{ 2420 1 0 \"732ecf4d_5905_42ad_87aa34e36157e7cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2421 1 0 \"9a52dacd_105f_4c2c_b6a2c10e2ceda205\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2422 1 0 \"2c5bcd9b_926d_4448_9d3d9b778c89df3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2423 1 0 \"88c1fba5_17d1_4b54_889dd2af25c0525b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_CurrentY = flt_CurrentY - G_FW_PIP_COM_Raster;\r\n// }} \"\"\r\n// {{{ 2424 1 0 \"a839b91a_4efe_43e2_a9b3646fd6c44f57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value);\r\n// }} \"\"\r\n// {{ 2425 1 0 \"2c5bcd9b_926d_4448_9d3d9b778c89df3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2426 1 0 \"8cd48754_8a8f_444c_87dc8b76c548e132\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2427 1 0 \"fce15511_6593_4149_a9e33d8050c163ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChIndex == G_FW_PIP_COM_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 2428 1 0 \"e7600dc0_fb51_464a_9a82caf58ad914dd\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrChannelPatterns.AddAsLast(str_CurrentChPattern);\r\n// }} \"\"\r\n// {{ 2429 1 0 \"fce15511_6593_4149_a9e33d8050c163ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2430 1 0 \"ec608ab8_3898_4a6a_a85b6e3fb81e7fbe\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2431 1 0 \"49453f5f_0406_4657_b59de8995e7af79d\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\no_intLoopNumber=o_arrChannelPatterns.GetSize();\r\n// }} \"\"\r\n// {{{ 2432 1 0 \"b4c292e7_99b1_43d0_bf6a9588399d8eed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Channel Patterns\"), o_arrChannelPatterns);\r\n// }} \"\"\r\n// {{{ 5 \"_GetPartialChannelPatternForRepeatingPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_OffsetArrayForChannels\" \"Begin\"\r\nfunction TOOL_OffsetArrayForChannels( device & ML_STAR, variable i_flt_ValueToOffset, variable & io_arr_Values[] ) void {\r\n// }} \"\"\r\nprivate variable i;\r\nprivate variable flt_AdjustedValue;\r\nprivate variable flt_CurrentValue;\r\nprivate variable int_TotalPositions;\r\n// {{ 5 \"TOOL_OffsetArrayForChannels\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"1052edf1_bd96_4699_8e36db19cd50edcf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nFW_HELPERLIBRARY::InitFunction(ML_STAR);\r\n// }} \"\"\r\n// {{ 1660 1 0 \"77a8dbe4_4cae_4c00_bd462384b00f7cf4\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalPositions=io_arr_Values.GetSize();\r\n// }} \"\"\r\n// {{ 1661 1 0 \"a1c4d860_0219_4dcb_b5ad8c5d9eab3e28\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalPositions;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1662 1 0 \"ebd4b858_d527_4760_ad1abea49c969ff0\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_CurrentValue=io_arr_Values.GetAt(i-1);\r\n// }} \"\"\r\n// {{ 1663 1 0 \"9967f604_baca_45c0_ac0ad33a984a5a29\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_AdjustedValue = flt_CurrentValue + i_flt_ValueToOffset;\r\n// }} \"\"\r\n// {{ 1664 1 0 \"b1b8acb1_003a_46b3_b799213c46a4b3a4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nio_arr_Values.SetAt(i-1, flt_AdjustedValue);\r\n// }} \"\"\r\n// {{ 1665 1 0 \"a1c4d860_0219_4dcb_b5ad8c5d9eab3e28\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TOOL_OffsetArrayForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2021-12-09 11:07$$checksum=353a0a66$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR Tip Tools.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 4/21/2022 2:36:43 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_TIP_TOOLS {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction BuildChannelPattern( variable i_int_NumActiveChannels, variable i_int_TotalChannels, variable & o_str_ChPattern ) void { }\r\nfunction DefragTipRacks1mL( device & ML_STAR, sequence & io_seq_Tips ) void { }\r\nfunction DefragTipRacks5mL( device & ML_STAR, sequence & io_seq_Tips ) void { }\r\nfunction Get1mLChannelCount( device & ML_STAR, variable & o_int_Total1mLChannels ) void { }\r\nfunction Get5mLChannelCount( device & ML_STAR, variable & o_int_Total5mLChannels ) void { }\r\nfunction GetTipCounter( device & ML_STAR, sequence & io_seqTips, variable & o_strTipCounter ) void { }\r\nfunction GetTipType( device & Instrument, sequence i_seq_Tips, variable & o_int_TipType ) void { }\r\nfunction Optimized1mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void { }\r\nfunction Optimized1mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void { }\r\nfunction Optimized5mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void { }\r\nfunction Optimized5mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void { }\r\nfunction ResetInputSequence( device & Instrument, sequence & io_seq_SequenceToReset ) void { }\r\nfunction TipCapacityCheck( device & Instrument, sequence i_seq_TipsToCheck, variable & o_flt_TipCapacity ) void { }\r\nfunction TipCheck( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void { }\r\nfunction TipCheck2( device & Instrument, sequence & io_seq_Tips, sequence & i_seq_ControlSequence, variable i_str_TipCounter ) void { }\r\nfunction TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void { }\r\nfunction TipCountNeeded_Add( variable i_str_TipCounter, variable i_int_NumberOfTips ) void { }\r\nfunction TipCountNeeded_Get( variable i_str_TipCounter, variable & o_int_NumberOfTips ) void { }\r\nfunction TipCountNeeded_Reset( variable i_str_TipCounter ) void { }\r\nfunction TipCounter_Edit( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut ) void { }\r\nfunction TipCounter_Read( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void { }\r\nfunction 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 { }\r\nfunction TipCounter_Write( device & ML_STAR, sequence i_seq_TipSequence, variable i_str_TipCounter ) void { }\r\nfunction TipTypeCheck1mL( device & ML_STAR, variable i_str_ReturnFromTipPickUp, sequence & o_seq_IncorrectTipReturn, variable & o_str_IncorrectChannels ) variable {  return (0); }\r\nfunction TipTypeLength_Get( variable i_int_TipType, variable & o_flt_TipLength ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Bare_B$$valid=0$$time=2022-04-21 14:36$$checksum=7f92e416$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR Tip Tools.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLUtilLib.hsl\"\r\n#include \"HSLUtilLib2.hsl\"\r\n#include \"HSLExtensions\\\\File.hsl\"\r\n#include \"HSLDeckVisualize.hsl\"\r\n#include \"HSLExtensions\\\\Directory.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\HelperLibrary.hs_\"\r\n#include \"HSL_MethodHelper.hsl\"\r\n#include \"Firmware Libraries\\\\Channel_Query_1mL.hs_\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLFilLib.hsl\"\r\n#include \"HSLExtensions\\\\Venus.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\Tip Tool Global Variables.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\TIP_OFFSET_GLOBAL.hsl\"\r\n#include \"STAR Tools\\\\Resources\\\\SubMethods\\\\TipCounterGlobal.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLExtensions\\\\Core.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_TIP_TOOLS {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ABSTRACT(  ) void ;\r\nfunction BuildChannelPattern( variable i_int_NumActiveChannels, variable i_int_TotalChannels, variable & o_str_ChPattern ) void ;\r\nfunction DefragTipRacks1mL( device & ML_STAR, sequence & io_seq_Tips ) void ;\r\nfunction DefragTipRacks5mL( device & ML_STAR, sequence & io_seq_Tips ) void ;\r\nfunction Get1mLChannelCount( device & ML_STAR, variable & o_int_Total1mLChannels ) void ;\r\nfunction Get5mLChannelCount( device & ML_STAR, variable & o_int_Total5mLChannels ) void ;\r\nfunction GetTipCounter( device & ML_STAR, sequence & io_seqTips, variable & o_strTipCounter ) void ;\r\nfunction GetTipType( device & Instrument, sequence i_seq_Tips, variable & o_int_TipType ) void ;\r\nfunction Optimized1mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void ;\r\nfunction Optimized1mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void ;\r\nfunction Optimized5mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void ;\r\nfunction Optimized5mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void ;\r\nfunction ResetInputSequence( device & Instrument, sequence & io_seq_SequenceToReset ) void ;\r\nfunction TipCapacityCheck( device & Instrument, sequence i_seq_TipsToCheck, variable & o_flt_TipCapacity ) void ;\r\nfunction TipCheck( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void ;\r\nfunction TipCheck2( device & Instrument, sequence & io_seq_Tips, sequence & i_seq_ControlSequence, variable i_str_TipCounter ) void ;\r\nfunction TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void ;\r\nfunction TipCountNeeded_Add( variable i_str_TipCounter, variable i_int_NumberOfTips ) void ;\r\nfunction TipCountNeeded_Get( variable i_str_TipCounter, variable & o_int_NumberOfTips ) void ;\r\nfunction TipCountNeeded_Reset( variable i_str_TipCounter ) void ;\r\nfunction TipCounter_Edit( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut ) void ;\r\nfunction TipCounter_Read( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void ;\r\nfunction 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 ;\r\nfunction TipCounter_Write( device & ML_STAR, sequence i_seq_TipSequence, variable i_str_TipCounter ) void ;\r\nfunction TipTypeCheck1mL( device & ML_STAR, variable i_str_ReturnFromTipPickUp, sequence & o_seq_IncorrectTipReturn, variable & o_str_IncorrectChannels ) variable ;\r\nfunction TipTypeLength_Get( variable i_int_TipType, variable & o_flt_TipLength ) void ;\r\nprivate function _ConvertChannelPatternToArray( variable i_str_ChannelPattern, variable & o_arr_ChannelPatternArray[] ) void ;\r\nprivate function _ConvertToInteger( variable & io_Value ) void ;\r\nprivate function _DetermineTipCheckLC( variable i_int_TipType, variable & o_str_LiquidClass, variable & o_flt_CheckVolume ) void ;\r\nprivate function _GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ;\r\nprivate function _GetSequenceName( device & Instrument, sequence i_seq_SequenceToCheck, variable & o_strSequenceName, variable & o_intTotalPositions ) void ;\r\nprivate function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable ;\r\nprivate function _GetTipCounterFolderPath( variable & o_str_TipCounterFolder ) void ;\r\nprivate function _GetTipCounterName( variable i_strInstrumentClass, variable i_intTipType, variable & o_strTipCounterName ) variable ;\r\nprivate function _GetTipType( device & Instrument, variable i_str_LabwareID, variable & o_int_TipType ) void ;\r\nprivate function _LocalTipCounterRead( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void ;\r\nprivate function _Lookup( variable & array[], variable item ) variable ;\r\nprivate function _RemoveInvalidCharacters( variable & io_str_Value ) void ;\r\nprivate function _SortSequenceLabIDXY( device & Instrument, sequence & io_Sequence ) void ;\r\nprivate function _SortSequenceYPriority( device & Instrument, sequence & io_Sequence ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\nHELPERLIBRARY::_InitLibrary();\r\nCHANNEL_QUERY_1ML::_InitLibrary();\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nHELPERLIBRARY::_ExitLibrary();\r\nCHANNEL_QUERY_1ML::_ExitLibrary();\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"TipCheck\" \"Begin\"\r\nfunction TipCheck( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void {\r\n// }} \"\"\r\nprivate dialog customDialog744B3B2C09884d30895B6C1E10766D83;\r\nprivate variable int_CurrentPosition;\r\nprivate variable flt_TipCapacity;\r\nprivate variable str_TipMessage;\r\nprivate variable int_EndPosition;\r\nprivate variable int_PositionsRemaining;\r\nprivate variable str_TipName;\r\n// {{ 5 \"TipCheck\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 894 1 0 \"20d37af7_42c5_48c0_9b1eb8cb1c1a2f59\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========  Check tip sequence\"));\r\n// }} \"\"\r\n// {{{ 895 1 0 \"63e247f5_0586_4d9d_a36642a258643532\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCapacityCheck(Instrument, io_seq_Tips, flt_TipCapacity);\r\n// }} \"\"\r\n// {{ 896 1 0 \"2b82175b_83a7_405c_b65a34b9e46e1f7a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_TipCapacity == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 897 1 0 \"97c669f0_8796_4282_aa21d0c8886c6ff8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 898 1 0 \"2b82175b_83a7_405c_b65a34b9e46e1f7a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 899 1 0 \"a4d9de3d_e1fa_4433_9711e4672f229117\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 900 1 0 \"f1e6b1d8_ad4a_414c_9d2828c43525b7c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 901 1 0 \"4f61a638_dc22_415e_90249e60c9404ebc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 902 1 0 \"bedb9fca_3f54_424f_9beb5aa63d090b89\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = io_seq_Tips.GetCurrentPosition();\r\n// }} \"\"\r\n// {{ 903 1 0 \"577ff63b_1195_4960_8add66ffd1685d64\" \"{B31F353D-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_EndPosition = io_seq_Tips.GetCount();\r\n// }} \"\"\r\n// {{ 904 1 0 \"9e95efd9_a298_485e_94ce963cebf5590d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_CurrentPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 905 1 0 \"7be0ed57_06b1_4154_810e771cec107ef0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = int_EndPosition + 1;\r\n// }} \"\"\r\n// {{ 906 1 0 \"9e95efd9_a298_485e_94ce963cebf5590d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 907 1 0 \"390dc4f6_5aba_4b6c_b5160d53bb1b367e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_EndPosition - int_CurrentPosition;\r\n// }} \"\"\r\n// {{ 908 1 0 \"6dec19df_5a08_4ebf_b461f0944afd0f6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_PositionsRemaining + 1;\r\n// }} \"\"\r\nTrace(\"     \",\"Positions Remaining:  \",int_PositionsRemaining,\"  Tips Needed:  \",i_int_TipsNeeded);\r\n// {{ 910 1 0 \"7afdb781_322b_4b3d_97a69d64f7288f41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsRemaining >= i_int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 911 1 0 \"ca4a590d_1794_49ff_ab921d0335ea1632\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Sufficient tips found\"));\r\n// }} \"\"\r\n// {{ 912 1 0 \"90bd48f4_6428_4e24_8aee6ffc6a4f080d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 913 1 0 \"7afdb781_322b_4b3d_97a69d64f7288f41\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 914 1 0 \"6e5eb41e_94d9_4526_bb1d3eae47ceefab\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{ 915 1 0 \"0c2c9630_1875_4875_b86fdd57f5b7d89c\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialog744B3B2C09884d30895B6C1E10766D83.InitCustomDialog( \"0c2c9630_1875_4875_b86fdd57f5b7d89c\" );\r\ncustomDialog744B3B2C09884d30895B6C1E10766D83.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialog744B3B2C09884d30895B6C1E10766D83.ShowCustomDialog();\r\n// }} \"\"\r\n// {{ 916 1 0 \"1f4a57a0_cacd_41df_bdc4b6ea0bf34b8c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 917 1 0 \"f6a95e2b_32b5_4661_ad84020c5f275a15\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(Instrument, io_seq_Tips);\r\n// }} \"\"\r\n// {{{ 918 1 0 \"ab819147_6041_403b_9a5582b2ec5c45b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCounter_Edit(Instrument, io_seq_Tips, i_str_TipCounter, 99999);\r\n// }} \"\"\r\n// {{ 919 1 0 \"4f61a638_dc22_415e_90249e60c9404ebc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCheck\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCapacityCheck\" \"Begin\"\r\nfunction TipCapacityCheck( device & Instrument, sequence i_seq_TipsToCheck, variable & o_flt_TipCapacity ) void {\r\n// }} \"\"\r\nprivate variable int_TipType;\r\n// {{ 5 \"TipCapacityCheck\" \"InitLocals\"\r\no_flt_TipCapacity = 0;\r\n// }} \"\"\r\n// {{{ 834 1 0 \"5acd7023_0bc7_4818_a40d7eee380ae8fb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGetTipType(Instrument, i_seq_TipsToCheck, int_TipType);\r\n// }} \"\"\r\n// {{ 835 1 0 \"37df6113_b1bb_4b34_98674dde094046e2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 0.0;\r\n// }} \"\"\r\n// {{ 836 1 0 \"724c9f85_2cca_4894_8cce089cf2a93cdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 837 1 0 \"8408eb6a_f7f6_4568_8ab27c31bfd4ecc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 300;\r\n// }} \"\"\r\n// {{ 838 1 0 \"724c9f85_2cca_4894_8cce089cf2a93cdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 839 1 0 \"1dac2fb5_ead3_4171_bd8fe83671f7b0e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 840 1 0 \"eaf49332_c626_4ceb_abc2be7cc5fdaa7b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 300;\r\n// }} \"\"\r\n// {{ 841 1 0 \"1dac2fb5_ead3_4171_bd8fe83671f7b0e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 842 1 0 \"7ddcede3_2194_4d3e_a0af4fccd289f5b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 2)\r\n{\r\n// }} \"\"\r\n// {{ 843 1 0 \"727368dc_e86f_49eb_b112f5f419cb9068\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 10;\r\n// }} \"\"\r\n// {{ 844 1 0 \"7ddcede3_2194_4d3e_a0af4fccd289f5b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 845 1 0 \"31f0cab2_97cb_4606_b745604b1f0ee009\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 3)\r\n{\r\n// }} \"\"\r\n// {{ 846 1 0 \"f7fe5c37_0cee_499c_88d2128f371c3017\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 10;\r\n// }} \"\"\r\n// {{ 847 1 0 \"31f0cab2_97cb_4606_b745604b1f0ee009\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 848 1 0 \"08de228d_2737_433d_8c932fc0e355e4f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 4)\r\n{\r\n// }} \"\"\r\n// {{ 849 1 0 \"6dbf9b76_76a1_459f_aae8e57f05aa6295\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 1000;\r\n// }} \"\"\r\n// {{ 850 1 0 \"08de228d_2737_433d_8c932fc0e355e4f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 851 1 0 \"6c5b9b89_199f_46dc_81db24f9799e403a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 5)\r\n{\r\n// }} \"\"\r\n// {{ 852 1 0 \"0be9e9f8_719f_4af2_945ba2962af931b3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 1000;\r\n// }} \"\"\r\n// {{ 853 1 0 \"6c5b9b89_199f_46dc_81db24f9799e403a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 854 1 0 \"43a56000_861c_4a8e_9aebcd2ef238b710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 25)\r\n{\r\n// }} \"\"\r\n// {{ 855 1 0 \"67c8a424_42ad_4c34_8d7732b8950d6ff6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 5000;\r\n// }} \"\"\r\n// {{ 856 1 0 \"43a56000_861c_4a8e_9aebcd2ef238b710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 857 1 0 \"348f5714_4a67_43a7_99537d603cd64168\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 20)\r\n{\r\n// }} \"\"\r\n// {{ 858 1 0 \"5a0d6660_968b_46d4_a5177a28e06729b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 859 1 0 \"348f5714_4a67_43a7_99537d603cd64168\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 860 1 0 \"869425a9_fd1c_45a8_ad838092abf4c1c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 22)\r\n{\r\n// }} \"\"\r\n// {{ 861 1 0 \"3b42329e_767a_41ae_85e86cf971d71c6b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 862 1 0 \"869425a9_fd1c_45a8_ad838092abf4c1c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 863 1 0 \"b13534c9_52f0_428d_bb048803ae5c1413\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 23)\r\n{\r\n// }} \"\"\r\n// {{ 864 1 0 \"6ddbcac7_6a8a_44d1_80db1aec63ad9c50\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 865 1 0 \"b13534c9_52f0_428d_bb048803ae5c1413\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 866 1 0 \"0c6b1023_f259_466a_acf8bc85bb57b18d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 28)\r\n{\r\n// }} \"\"\r\n// {{ 867 1 0 \"2b0a806f_1243_41c1_a570191f55d33c4d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 300;\r\n// }} \"\"\r\n// {{ 868 1 0 \"0c6b1023_f259_466a_acf8bc85bb57b18d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 869 1 0 \"442b682a_875c_4b80_8a92043330ba6a19\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 29)\r\n{\r\n// }} \"\"\r\n// {{ 870 1 0 \"1e696872_ed22_4e82_b4e8fe64209d3780\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 4000;\r\n// }} \"\"\r\n// {{ 871 1 0 \"442b682a_875c_4b80_8a92043330ba6a19\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 872 1 0 \"c664b7fd_b641_4157_a175988142334859\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 30)\r\n{\r\n// }} \"\"\r\n// {{ 873 1 0 \"6a559380_270a_463f_a4c9ffffbd3aac55\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 300;\r\n// }} \"\"\r\n// {{ 874 1 0 \"c664b7fd_b641_4157_a175988142334859\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 875 1 0 \"81e5aaad_5b17_42dd_82c0aa96f359bb6b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 31)\r\n{\r\n// }} \"\"\r\n// {{ 876 1 0 \"e9e6cde7_2966_498b_a40e4102e29a8f9b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 877 1 0 \"81e5aaad_5b17_42dd_82c0aa96f359bb6b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 878 1 0 \"d6b2320f_a55d_4119_b661b7a6694547c0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 32)\r\n{\r\n// }} \"\"\r\n// {{ 879 1 0 \"cfb248a3_ef4f_4893_aa23e8316f7f3df9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 10;\r\n// }} \"\"\r\n// {{ 880 1 0 \"d6b2320f_a55d_4119_b661b7a6694547c0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 881 1 0 \"a3f2a355_5919_461d_b35612d57a875ad2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 33)\r\n{\r\n// }} \"\"\r\n// {{ 882 1 0 \"41cbb26e_0dea_4756_89fa27da92edaf93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 883 1 0 \"a3f2a355_5919_461d_b35612d57a875ad2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 884 1 0 \"66ce6902_021f_4ed5_b7c68dcee1321ef9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 37)\r\n{\r\n// }} \"\"\r\n// {{ 885 1 0 \"a1364e46_b2f5_44df_aeb2979d9cfb2373\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 886 1 0 \"66ce6902_021f_4ed5_b7c68dcee1321ef9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 887 1 0 \"62447ab4_a62c_43f0_8f887f9487e1d044\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 54)\r\n{\r\n// }} \"\"\r\n// {{ 888 1 0 \"5f273041_192d_4578_abf220be5035a7bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 889 1 0 \"62447ab4_a62c_43f0_8f887f9487e1d044\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 890 1 0 \"d2f4c43d_25ea_49f9_a20daa15a34fea3b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipType == 55)\r\n{\r\n// }} \"\"\r\n// {{ 891 1 0 \"48a7c3cd_0410_4191_b95b13185027b7f0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipCapacity = 50;\r\n// }} \"\"\r\n// {{ 892 1 0 \"d2f4c43d_25ea_49f9_a20daa15a34fea3b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCapacityCheck\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ResetInputSequence\" \"Begin\"\r\nfunction ResetInputSequence( device & Instrument, sequence & io_seq_SequenceToReset ) void {\r\n// }} \"\"\r\n// {{ 5 \"ResetInputSequence\" \"InitLocals\"\r\n// }} \"\"\r\n{\r\n   Instrument.CopyResetSequence(io_seq_SequenceToReset.GetName(),io_seq_SequenceToReset);\r\n}\r\n// {{{ 5 \"ResetInputSequence\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetTipType\" \"Begin\"\r\nprivate function _GetTipType( device & Instrument, variable i_str_LabwareID, variable & o_int_TipType ) void {\r\n// }} \"\"\r\nprivate variable str_TipType;\r\nprivate variable l_blnLabwareValid;\r\n// {{ 5 \"_GetTipType\" \"InitLocals\"\r\no_int_TipType = 0;\r\n// }} \"\"\r\n// {{ 1505 1 0 \"1a62786f_584f_4f26_bc4065d566fd5dc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_TipType = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"bc306722_b1e3_432a_b658f38829d79187\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_blnLabwareValid = DevIsValidLabwareForCurrentDeckLayout(Instrument, i_str_LabwareID);\r\n// }} \"\"\r\n// {{ 1507 1 0 \"82438236_d020_4d53_95dd022cad4935e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_blnLabwareValid == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 1508 1 0 \"f024f1e9_464d_46ed_95d53b187d6f838e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_TipType = -1;\r\n// }} \"\"\r\n// {{{ 1509 1 0 \"1500461c_2a44_48af_a1694bfdaf4b3ad8\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 1510 1 0 \"82438236_d020_4d53_95dd022cad4935e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1511 1 0 \"4068be5b_0aae_4eda_a54f5aa22e6cdb02\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_249D904FC42842d08D85570423A0E5BA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1512 1 0 \"4b95e849_d3be_426d_9f1f42456398debf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipType = DevGetLabwareData(Instrument, i_str_LabwareID, Translate(\"MlStarTipRack\"));\r\n// }} \"\"\r\n// {{ 1513 1 0 \"4068be5b_0aae_4eda_a54f5aa22e6cdb02\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_249D904FC42842d08D85570423A0E5BA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1514 1 0 \"4068be5b_0aae_4eda_a54f5aa22e6cdb02\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 1515 1 0 \"11116cbc_4610_436d_86e9b81132d467db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipType == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1516 1 0 \"656fb1d7_8840_431f_83859534bbac8c8c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D141C798D15C4da1BB545B0D45A22EA9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"9d205585_76a4_4de6_9da35d7ca9aada09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipType = DevGetLabwareData(Instrument, i_str_LabwareID, Translate(\"MlStarXLTipRack\"));\r\n// }} \"\"\r\n// {{ 1518 1 0 \"656fb1d7_8840_431f_83859534bbac8c8c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D141C798D15C4da1BB545B0D45A22EA9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1519 1 0 \"656fb1d7_8840_431f_83859534bbac8c8c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 1520 1 0 \"11116cbc_4610_436d_86e9b81132d467db\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1521 1 0 \"f381c6f2_d3ed_4d7d_8e91422dbecea2c8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_TipType == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1522 1 0 \"d2c01c5e_8c79_47c5_995b443342752764\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_TipType = Translate(\"-1\");\r\n// }} \"\"\r\n// {{ 1523 1 0 \"f381c6f2_d3ed_4d7d_8e91422dbecea2c8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"47b74f62_3bdc_49b1_93c1c75427714546\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_int_TipType = StrIVal(str_TipType);\r\n// }} \"\"\r\n// {{{ 5 \"_GetTipType\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCheck2\" \"Begin\"\r\nfunction TipCheck2( device & Instrument, sequence & io_seq_Tips, sequence & i_seq_ControlSequence, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate dialog customDialogC77B630404D944d48FC1D9E60E9120AE;\r\nprivate variable int_CurrentPosition;\r\nprivate variable flt_TipCapacity;\r\nprivate variable str_TipMessage;\r\nprivate variable int_EndPosition;\r\nprivate variable int_PositionsRemaining;\r\nprivate variable str_TipName;\r\nprivate variable int_TipsNeeded;\r\n// {{ 5 \"TipCheck2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 921 1 0 \"4736cee6_e877_4bd3_9dab579c996cd4c9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========  Check tip sequence\"));\r\n// }} \"\"\r\n// {{{ 922 1 0 \"33703ccc_8702_4a1f_8224a143d99a0d4e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCapacityCheck(Instrument, io_seq_Tips, flt_TipCapacity);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"22eb11e1_681f_43b6_8421142de2b98378\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(Instrument, i_seq_ControlSequence);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"bf1ffab2_f375_4cc3_a5cf98832a6901a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TipsNeeded = SeqGetTotal(i_seq_ControlSequence);\r\n// }} \"\"\r\n// {{ 925 1 0 \"576f3a55_a08d_4eed_add6b834981efa2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_TipCapacity == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 926 1 0 \"016dea6a_3902_4c64_b523dcaa413a22e3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 927 1 0 \"576f3a55_a08d_4eed_add6b834981efa2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 928 1 0 \"cb9fbc97_cf2f_460c_9ece6b7f33304065\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 929 1 0 \"e3dec0ce_3629_4018_b7751a308318793d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 930 1 0 \"f82fd335_b558_48a7_97cf2a3bb688add1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 931 1 0 \"96a9a49f_bc5e_4a94_89197d407b8c6616\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = io_seq_Tips.GetCurrentPosition();\r\n// }} \"\"\r\n// {{ 932 1 0 \"c47e33a2_9ca3_4182_87fb1c1bd734c23f\" \"{B31F353D-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_EndPosition = io_seq_Tips.GetCount();\r\n// }} \"\"\r\n// {{ 933 1 0 \"ab5c1ebd_39b1_425b_82dfb88ab28f038b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_CurrentPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 934 1 0 \"a4dab5a2_9cb3_4d18_b661bd9c85c6f4f6\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = int_EndPosition + 1;\r\n// }} \"\"\r\n// {{ 935 1 0 \"ab5c1ebd_39b1_425b_82dfb88ab28f038b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 936 1 0 \"155d00a8_ea31_4c0a_bb5ff6e4e869ad6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_EndPosition - int_CurrentPosition;\r\n// }} \"\"\r\n// {{ 937 1 0 \"bbe4b0ae_bb9e_4357_b695588d2526ca0b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_PositionsRemaining + 1;\r\n// }} \"\"\r\nTrace(\"     \",\"Positions Remaining:  \",int_PositionsRemaining,\"  Tips Needed:  \",int_TipsNeeded);\r\n// {{ 939 1 0 \"8b02d45b_8c78_4d75_97fa5483577a55b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsRemaining >= int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 940 1 0 \"10618e24_5bac_4198_a70bbe9df1b5a27b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Sufficient tips found\"));\r\n// }} \"\"\r\n// {{ 941 1 0 \"617073f9_b4fc_4cc9_8b3f6c207326161d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 942 1 0 \"8b02d45b_8c78_4d75_97fa5483577a55b5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 943 1 0 \"91677878_bede_4129_a82bf7e848502029\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{ 944 1 0 \"19498ec0_f9c5_4ff4_9cc05772164c8178\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialogC77B630404D944d48FC1D9E60E9120AE.InitCustomDialog( \"19498ec0_f9c5_4ff4_9cc05772164c8178\" );\r\ncustomDialogC77B630404D944d48FC1D9E60E9120AE.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialogC77B630404D944d48FC1D9E60E9120AE.ShowCustomDialog();\r\n// }} \"\"\r\n// {{ 945 1 0 \"7dea5860_6031_4660_85e364c9dbee12d6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 946 1 0 \"8ae5f50d_72aa_4f79_a637a7612e918fcd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(Instrument, io_seq_Tips);\r\n// }} \"\"\r\n// {{{ 947 1 0 \"16538be0_8312_4d59_9ad21593ca89a7c7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCounter_Edit(Instrument, io_seq_Tips, i_str_TipCounter, 99999);\r\n// }} \"\"\r\n// {{ 948 1 0 \"f82fd335_b558_48a7_97cf2a3bb688add1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCheck2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetSequencePosition\" \"Begin\"\r\nprivate function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable {\r\n// }} \"\"\r\nprivate variable bool_SequenceValid;\r\n// {{ 5 \"_GetSequencePosition\" \"InitLocals\"\r\no_str_LabID = 0;\r\no_str_PosID = 0;\r\n// }} \"\"\r\n// {{ 1464 1 0 \"0249bdb6_b139_41cb_b2354a27f1af9e08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 1;\r\n// }} \"\"\r\n// {{ 1465 1 0 \"be7c9f6e_511b_4b3b_927db8e1b6b7c988\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LabID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1466 1 0 \"9519998c_8f23_4ebe_a5c4eabad32bdee9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_PosID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1467 1 0 \"d6eba368_eae1_40a7_b6c5bf2155532bbc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C92BECA6FC3E4dd1A039451E8CBA8702 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1468 1 0 \"ed639d40_4467_449e_8c1965227cc90d90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_LabID = SeqGetLabwareId(i_seq_LabwareSequence);\r\n// }} \"\"\r\n// {{{ 1469 1 0 \"3a779886_b181_4f86_b281e0015d5a8887\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_PosID = SeqGetPositionId(i_seq_LabwareSequence);\r\n// }} \"\"\r\n// {{ 1470 1 0 \"700d58a9_2c2d_4489_90baf6f1d2d2c315\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_str_LabID == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1471 1 0 \"832a1752_998e_4f49_b857e0996e0a52a6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 0;\r\n// }} \"\"\r\n// {{ 1472 1 0 \"700d58a9_2c2d_4489_90baf6f1d2d2c315\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1473 1 0 \"d6eba368_eae1_40a7_b6c5bf2155532bbc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C92BECA6FC3E4dd1A039451E8CBA8702 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1474 1 0 \"05939dc1_2f24_494c_ac724dd879d8829d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbool_SequenceValid = 0;\r\n// }} \"\"\r\n// {{ 1475 1 0 \"d6eba368_eae1_40a7_b6c5bf2155532bbc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"c6bd0d6f_3f6c_45e5_82a0cfed313836ec\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (bool_SequenceValid);\r\n// }} \"\"\r\n// {{{ 5 \"_GetSequencePosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Lookup\" \"Begin\"\r\nprivate function _Lookup( variable & array[], variable item ) variable {\r\n// }} \"\"\r\nprivate variable index;\r\nprivate variable lookupreturn;\r\n// {{ 5 \"_Lookup\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"129b6c75_8a30_4682_891d77ee018a8969\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlookupreturn = Util::Lookup(array, item, index);\r\n// }} \"\"\r\n// {{ 1545 1 0 \"09b67dfd_0ac1_4981_94acbe252ef1c89a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lookupreturn > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1546 1 0 \"0792c953_6291_43b9_b3e04048cc84bda3\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nindex = index + 1;\r\n// }} \"\"\r\n// {{{ 1547 1 0 \"54f7927e_06fa_4cbc_a833d020c1a302b0\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (index);\r\n// }} \"\"\r\n// {{ 1548 1 0 \"09b67dfd_0ac1_4981_94acbe252ef1c89a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1549 1 0 \"a9b6bd42_a2f2_4a14_997e6d861f6512e6\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{ 1550 1 0 \"09b67dfd_0ac1_4981_94acbe252ef1c89a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Lookup\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get1mLChannelCount\" \"Begin\"\r\nfunction Get1mLChannelCount( device & ML_STAR, variable & o_int_Total1mLChannels ) void {\r\n// }} \"\"\r\n// {{ 5 \"Get1mLChannelCount\" \"InitLocals\"\r\no_int_Total1mLChannels = 0;\r\n// }} \"\"\r\n// {{ 334 1 0 \"f1adfa2b_bfab_48fc_9b2b3743d272cb59\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_Total1mLChannels = 0;\r\n// }} \"\"\r\n// {{{ 335 1 0 \"c462871e_4083_4a4a_8378cfa7b56dc0c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_int_Total1mLChannels = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 5 \"Get1mLChannelCount\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Get5mLChannelCount\" \"Begin\"\r\nfunction Get5mLChannelCount( device & ML_STAR, variable & o_int_Total5mLChannels ) void {\r\n// }} \"\"\r\n// {{ 5 \"Get5mLChannelCount\" \"InitLocals\"\r\no_int_Total5mLChannels = 0;\r\n// }} \"\"\r\n// {{ 337 1 0 \"0d81e43a_6414_4bc8_ad29c300dd89c06f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_Total5mLChannels = 0;\r\n// }} \"\"\r\n// {{{ 338 1 0 \"0d3a874c_ede8_4602_aca172efcb0ce4fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_int_Total5mLChannels = DevGetCfgValueWithKey(ML_STAR, 43);\r\n// }} \"\"\r\n// {{{ 5 \"Get5mLChannelCount\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildChannelPattern\" \"Begin\"\r\nfunction BuildChannelPattern( variable i_int_NumActiveChannels, variable i_int_TotalChannels, variable & o_str_ChPattern ) void {\r\n// }} \"\"\r\n// {{ 5 \"BuildChannelPattern\" \"InitLocals\"\r\no_str_ChPattern = 0;\r\n// }} \"\"\r\n// {{ 3 1 0 \"442a541c_055c_4e82_b21b38f292913dae\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 4 1 0 \"45fca93e_eaf0_4dff_9a1504f672d39516\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChPattern = StrFillLeft(o_str_ChPattern, Translate(\"1\"), i_int_NumActiveChannels);\r\n// }} \"\"\r\n// {{{ 5 1 0 \"4d3d06fe_ee44_452a_b5145e7af635479a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChPattern = StrFillRight(o_str_ChPattern, Translate(\"0\"), i_int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 6 1 0 \"dc336566_fb85_43d1_b6c4a860e4677917\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_ChPattern = StrLeft(o_str_ChPattern, i_int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 5 \"BuildChannelPattern\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetCurrentPosition\" \"Begin\"\r\nprivate function _GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void {\r\n// }} \"\"\r\nprivate variable flt_NotUsed;\r\nprivate variable str_LabID;\r\nprivate variable bool_SequenceValid;\r\nprivate variable str_PosID;\r\n// {{ 5 \"_GetCurrentPosition\" \"InitLocals\"\r\no_flt_X_Coord = 0;\r\no_flt_Y_Coord = 0;\r\no_flt_Z_Coord = 0;\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"5aa4ba6d_f9b3_4e88_8a0c5ccfc77d66f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 1455 1 0 \"799ecc9e_7a16_4a47_813bd0db1910a670\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_X_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1456 1 0 \"5e11b1c1_141d_418f_88d64f1b5cb19b95\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Y_Coord = 0.0;\r\n// }} \"\"\r\n// {{ 1457 1 0 \"67ec7b16_2230_402e_8a5ab9f70f1a9855\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_Z_Coord = 0.0;\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"6a8c5ab9_e14f_4879_98fe65f7f0c53726\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, o_flt_X_Coord, o_flt_Y_Coord, o_flt_Z_Coord, flt_NotUsed);\r\n// }} \"\"\r\n// {{{ 5 \"_GetCurrentPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertChannelPatternToArray\" \"Begin\"\r\nprivate function _ConvertChannelPatternToArray( variable i_str_ChannelPattern, variable & o_arr_ChannelPatternArray[] ) void {\r\n// }} \"\"\r\nprivate variable int_NumChannels;\r\nprivate variable i;\r\nprivate variable str_CurrentValue;\r\nprivate variable a;\r\n// {{ 5 \"_ConvertChannelPatternToArray\" \"InitLocals\"\r\no_arr_ChannelPatternArray.SetSize( 0);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"06b2f1a7_0b1f_4d1d_a1aeae59c574c897\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumChannels = StrGetLength(i_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 1405 1 0 \"6ac43b49_c568_46bf_83f054a8bd1bba22\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arr_ChannelPatternArray.SetSize(int_NumChannels);\r\n// }} \"\"\r\n// {{ 1406 1 0 \"bd3240ad_3177_4f85_a8b8a3083c93e7e7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_NumChannels;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 1407 1 0 \"fdc2ba4a_66c3_49c2_8ecc79882c713937\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\na = i - 1;\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"a405cdf6_c7ad_4e71_af8ee101dc14539d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CurrentValue = StrMid(i_str_ChannelPattern, a, 1);\r\n// }} \"\"\r\n// {{ 1409 1 0 \"d2b4e568_34eb_45b8_9bbb48165db274cf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arr_ChannelPatternArray.SetAt(i-1, str_CurrentValue);\r\n// }} \"\"\r\n// {{ 1410 1 0 \"bd3240ad_3177_4f85_a8b8a3083c93e7e7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertChannelPatternToArray\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCounter_Read\" \"Begin\"\r\nfunction TipCounter_Read( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable l_strSequenceName;\r\nprivate variable l_intTotalPositions;\r\nprivate variable l_intAvailable;\r\nprivate variable l_strError;\r\nprivate variable l_strInstrumentClass;\r\nprivate variable l_intTipType;\r\nprivate variable l_strLabID;\r\nprivate variable l_intEmptyCheck;\r\n// {{ 5 \"TipCounter_Read\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1080 1 0 \"6117d2c7_9d78_4ed0_b367fe38cce076fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1081 1 0 \"0ed1b0a9_4cc9_4bfd_862bd4b5f712346f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1083 1 0 \"355f8269_db9a_452a_b1e8760e7dabfead\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1084 1 0 \"6117d2c7_9d78_4ed0_b367fe38cce076fe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"53837490_2f1f_401f_a9cc15c489052470\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INIT::InitializeVariables();\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"c01f5a4f_1fa5_4baa_8872152538320f96\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::InitTipCountingLibrary();\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"71f58ffa_fa1c_430d_b30d954c9dddc95b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_TipCounter = StrConcat2(i_str_TipCounter, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1088 1 0 \"eebba49d_5c03_4e96_b039eabe3397576c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_TipCounter == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"d33584ba_f81d_431e_99b8e85339d54452\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strError = StrConcat4(Translate(\"Tip counter '\"), i_str_TipCounter, Translate(\"' is invalid!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"1640eb03_b351_4c45_812694e5e1add217\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, l_strError);\r\n// }} \"\"\r\n// {{ 1091 1 0 \"eebba49d_5c03_4e96_b039eabe3397576c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1092 1 0 \"a0032f9c_f15d_4d7b_94aebc13d05c60ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strLabID = SeqGetLabwareId(io_seq_TipSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1093 1 0 \"21128557_40e2_4386_ad4e2c3b10f8da13\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_strLabID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1094 1 0 \"f2f910f6_dacd_432d_809d8ccfa157dfe9\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_intEmptyCheck = io_seq_TipSequence.GetCurrentPosition();\r\n// }} \"\"\r\n{\r\n   sequence sequenceObj;\r\n\r\n   ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), sequenceObj);\r\n   l_strLabID = sequenceObj.GetLabwareId();\r\n\r\n   //if(l_intEmptyCheck == 0) ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), io_seq_TipSequence);\r\n}\r\n// {{{ 1096 1 0 \"0d20fe9a_9419_4d9c_a92eb674a2e0084e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetSequenceName(ML_STAR, io_seq_TipSequence, l_strSequenceName, l_intTotalPositions);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"63d8bc89_903e_4479_be6bd3964142cad4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetTipType(ML_STAR, l_strLabID, l_intTipType);\r\n// }} \"\"\r\n// {{ 1098 1 0 \"5795afa1_b0d2_4c24_a57fbd05f1563135\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_intTipType != -1)\r\n{\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"e1e16609_cdf1_4d3e_a370fbdf42c04031\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strInstrumentClass = DevGetInstrumentName(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"89ff3037_39d2_47f6_9579049e418d2af9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::CheckTipCounterName(i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"7effbb23_b214_4c00_addd965d3373a886\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Read tip counter:  \"), i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"cd3bedc5_c20e_4d93_8bfadb78b972c9d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::ReadFromHxElementCounter(ML_STAR, io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"7fdfc934_1dbc_492e_99b201a00a1a2b46\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_intAvailable = SeqGetTotal(io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"90284beb_b4e9_49ff_a50e5593845f2a17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(l_strSequenceName, Translate(\" :: \"), l_intAvailable, Translate(\" / \"), l_intTotalPositions, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"3a8669ae_40cf_4b29_ba3198964b65e4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_TipSequence, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1106 1 0 \"5795afa1_b0d2_4c24_a57fbd05f1563135\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1107 1 0 \"51e7c6c3_e38b_4019_bbda42a12e3d766c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"COULD NOT DETERMINE TIP TYPE!\"));\r\n// }} \"\"\r\n// {{ 1108 1 0 \"5795afa1_b0d2_4c24_a57fbd05f1563135\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1109 1 0 \"87f8cf68_441d_40a9_b1c2b470b62a48e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"09610392_7d07_4759_b0de8ab27f87e492\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"87f8cf68_441d_40a9_b1c2b470b62a48e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TipCounter_Read\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCounter_Write\" \"Begin\"\r\nfunction TipCounter_Write( device & ML_STAR, sequence i_seq_TipSequence, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable l_strSequenceName;\r\nprivate variable l_intTotalPositions;\r\nprivate variable l_intAvailable;\r\nprivate variable l_strError;\r\nprivate variable l_strInstrumentClass;\r\nprivate variable l_intTipType;\r\nprivate variable l_strLabID;\r\nprivate variable l_intEmptyCheck;\r\nprivate sequence l_seqTemp;\r\nprivate variable l_strName;\r\n// {{ 5 \"TipCounter_Write\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1150 1 0 \"fec747c3_faef_4a21_90b6a4a208c00a87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1151 1 0 \"3f464d5d_89ea_49c0_88835d3e8dd9a361\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1153 1 0 \"bfad08e1_9041_4224_a0b458c7738c9a4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1154 1 0 \"fec747c3_faef_4a21_90b6a4a208c00a87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"167741a1_0111_4e10_b93a75f0487a79a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::InitTipCountingLibrary();\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"2f70b95c_7d18_44a1_89bb72cabec4d109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_TipCounter = StrConcat2(i_str_TipCounter, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1157 1 0 \"a939d8c0_303b_48dc_813a30dd841b8bc5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_TipCounter == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1158 1 0 \"a1ef771b_c6ce_4bd2_a7cdc6e7f3315510\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strError = StrConcat4(Translate(\"Tip counter '\"), i_str_TipCounter, Translate(\"' is invalid!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"9fd10ae0_4d16_497a_b0ae6976c8081f7f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, l_strError);\r\n// }} \"\"\r\n// {{ 1160 1 0 \"a939d8c0_303b_48dc_813a30dd841b8bc5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1161 1 0 \"ab969e6b_5ee0_4805_b7c1b313c6c24505\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_intEmptyCheck = i_seq_TipSequence.GetCurrentPosition();\r\n// }} \"\"\r\n// {{ 1162 1 0 \"a06d3952_b183_4f7e_bf87997201cf5d16\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_intEmptyCheck == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"459e0ee3_5bce_4373_ad7396220af154a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strName = SeqGetName(i_seq_TipSequence);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"885a00f5_47b0_4162_b2f781b368aae648\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_strName == \"seq_Temp\")\r\n{\r\n// }} \"\"\r\n// {{ 1165 1 0 \"2cca1468_5ea0_4754_913b28029ebc8d92\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_TipSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1166 1 0 \"29831b8c_d095_4f26_9d7c9a90e1d8f224\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strLabID = SeqGetLabwareId(i_seq_TipSequence);\r\n// }} \"\"\r\n// {{ 1167 1 0 \"e1119b16_91e4_40b6_b50c17bca9b36c4c\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\ni_seq_TipSequence.SetCurrentPosition(0);\r\n// }} \"\"\r\n// {{ 1168 1 0 \"885a00f5_47b0_4162_b2f781b368aae648\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"b7f8f92f_034a_42c7_bc238cc3e15dd6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(l_seqTemp);\r\n// }} \"\"\r\nML_STAR.CopyResetSequence(i_seq_TipSequence.GetName(), l_seqTemp);\r\n// {{{ 1171 1 0 \"f9bad9ac_773b_4e53_9854a691cbc91b39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strLabID = SeqGetLabwareId(l_seqTemp);\r\n// }} \"\"\r\n// {{ 1172 1 0 \"885a00f5_47b0_4162_b2f781b368aae648\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"15c97361_a84f_4d01_9d1d39bc4357fe2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::RemoveUsedPositions(ML_STAR, i_seq_TipSequence);\r\n// }} \"\"\r\n// {{ 1174 1 0 \"a06d3952_b183_4f7e_bf87997201cf5d16\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"ad0d4e16_dc64_4044_92bffd692f80de64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::RemoveUsedPositions(ML_STAR, i_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1176 1 0 \"3009a105_d684_4924_88d3f48156e41df9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strLabID = SeqGetLabwareId(i_seq_TipSequence);\r\n// }} \"\"\r\n// {{ 1177 1 0 \"a06d3952_b183_4f7e_bf87997201cf5d16\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"c27cd0a8_f09e_4322_8cfce011d8b6b2c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetSequenceName(ML_STAR, i_seq_TipSequence, l_strSequenceName, l_intTotalPositions);\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"f02c1b7d_1e5f_41c0_886939edf81582e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetTipType(ML_STAR, l_strLabID, l_intTipType);\r\n// }} \"\"\r\n// {{ 1180 1 0 \"670d6f87_c8e2_4125_ae2de7ff382bcd6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_intTipType != -1)\r\n{\r\n// }} \"\"\r\n// {{{ 1181 1 0 \"d218d1e7_e9d8_422f_97d39177ddb93835\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strInstrumentClass = DevGetInstrumentName(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"793c6ebb_910a_4489_aa21c1ebc17c18fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::CheckTipCounterName(i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1183 1 0 \"75aca573_0231_409d_9e248bfcd5ccd80d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Read tip counter:  \"), i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"096aaa63_3b23_45e5_bcdbc9f50bc21f7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SortSequenceLabIDXY(ML_STAR, i_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"3d5ad483_19c1_4b3c_873cd10d97232158\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::CreateNewHxElementCounter(i_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1186 1 0 \"621256a3_de73_4ec3_bc80d1dcbd9d6573\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::WriteHxElementCounter(i_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"1e091ae4_cd73_4cc9_888d64739220c130\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_intAvailable = SeqGetTotal(i_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"952c4eee_dae1_4d6e_b390cc6e97769b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(l_strSequenceName, Translate(\" :: \"), l_intAvailable, Translate(\" / \"), l_intTotalPositions, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1189 1 0 \"670d6f87_c8e2_4125_ae2de7ff382bcd6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1190 1 0 \"4898c18b_c2bb_4c39_845a7009758fe72a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"COULD NOT DETERMINE TIP TYPE!\"));\r\n// }} \"\"\r\n// {{ 1191 1 0 \"670d6f87_c8e2_4125_ae2de7ff382bcd6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1192 1 0 \"9695c773_7904_4f7c_aee8d8f25dda0e4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"48854ae1_2d4e_430f_a3158df30f108a64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1194 1 0 \"9695c773_7904_4f7c_aee8d8f25dda0e4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TipCounter_Write\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCounter_Edit\" \"Begin\"\r\nfunction TipCounter_Edit( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable l_strSequenceName;\r\nprivate variable l_intTotalPositions;\r\nprivate variable l_intAvailable;\r\nprivate variable l_strError;\r\nprivate variable l_intTipType;\r\nprivate variable l_strInstrumentClass;\r\nprivate variable l_strLabID;\r\nprivate variable l_intEmptyCheck;\r\n// {{ 5 \"TipCounter_Edit\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1042 1 0 \"5d4f2ecd_cce3_4645_84cd61c9af23eb43\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1043 1 0 \"cc28f8a7_6875_4c9a_88c7705e8b6e1047\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1045 1 0 \"fdd649b0_f87f_4a07_987b00c6c13d568a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1046 1 0 \"5d4f2ecd_cce3_4645_84cd61c9af23eb43\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"ee834717_cc00_44e1_911b9b9f54f94a34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INIT::InitializeVariables();\r\n// }} \"\"\r\n// {{{ 1048 1 0 \"fb9a44f3_3431_45a4_999c38c47fe1abaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::InitTipCountingLibrary();\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"5ab33cd2_adec_4a68_a6bc21cb7d286d03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_TipCounter = StrConcat2(i_str_TipCounter, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1050 1 0 \"4665d479_18dc_4e07_87988e57c91e0c00\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_TipCounter == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"e2b20421_ffed_4b77_8504d4af5730cf2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strError = StrConcat4(Translate(\"Tip counter '\"), i_str_TipCounter, Translate(\"' is invalid!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"87aac4ea_28d1_49a2_a56755fe79862f96\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, l_strError);\r\n// }} \"\"\r\n// {{ 1053 1 0 \"4665d479_18dc_4e07_87988e57c91e0c00\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1054 1 0 \"5fadcde7_447e_4235_b8171941c768446c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_strLabID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1055 1 0 \"630e94af_3026_4f8e_818dd941298045dc\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_intEmptyCheck = io_seq_TipSequence.GetCurrentPosition();\r\n// }} \"\"\r\n{\r\n   sequence sequenceObj;\r\n\r\n   ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), sequenceObj);\r\n   l_strLabID = sequenceObj.GetLabwareId();\r\n\r\n   //if(l_intEmptyCheck == 0) ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), io_seq_TipSequence);\r\n}\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1057 1 0 \"dbf660f7_c909_4039_993198d1c25e8238\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strLabID = SeqGetLabwareId(io_seq_TipSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1058 1 0 \"220c6440_58de_4a3f_868822b42d597fb0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetSequenceName(ML_STAR, io_seq_TipSequence, l_strSequenceName, l_intTotalPositions);\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"3cf61fdd_0f5e_4292_8983e97e0a43311b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetTipType(ML_STAR, l_strLabID, l_intTipType);\r\n// }} \"\"\r\n// {{ 1060 1 0 \"4512ee8f_76d7_4237_bea5c356e06b16bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_intTipType != -1)\r\n{\r\n// }} \"\"\r\n// {{{ 1061 1 0 \"0d0c9784_ce96_45ca_a861eef0442b617c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strInstrumentClass = DevGetInstrumentName(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"6d5b02b8_f668_4966_9a0b900f757c4383\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::CheckTipCounterName(i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"04ccf350_98aa_44e6_81dbe31a272dd891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Read tip counter:  \"), i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"92ef9a83_72b5_4cdc_8687073a59085311\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::CreateNewHxElementCounter(io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"61644db6_a2e2_466f_b1125e910a196249\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::ReadFromHxElementCounter(ML_STAR, io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"e40ba698_540c_4294_b3b174eb434b882e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::RemoveUsedPositions(ML_STAR, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"8e95e599_2006_496b_81fe651702bc7640\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::EditSequence(ML_STAR, io_seq_TipSequence, BOOLEON::TRUE, i_int_TimeOut);\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"3cb60390_447d_41b9_a218eb71434170b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SortSequenceLabIDXY(ML_STAR, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1069 1 0 \"e1dafdfc_b293_4647_84b08ec5d7ec85cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::WriteHxElementCounter(io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1070 1 0 \"9c161379_d014_4bb4_b427ac8e1ec7fe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_intAvailable = SeqGetTotal(io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"f35ae057_8ad2_48df_8d16e0d3634c52a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(l_strSequenceName, Translate(\" :: \"), l_intAvailable, Translate(\" / \"), l_intTotalPositions, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1072 1 0 \"4c11d504_9fdb_40e3_b16f6832e61329e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_TipSequence, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1073 1 0 \"4512ee8f_76d7_4237_bea5c356e06b16bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1074 1 0 \"a1ec7d18_ec8d_48a9_8486b40762a850cf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"COULD NOT DETERMINE TIP TYPE!\"));\r\n// }} \"\"\r\n// {{ 1075 1 0 \"4512ee8f_76d7_4237_bea5c356e06b16bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1076 1 0 \"4be8ea44_3057_4a43_ba7d13e5201732c6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"dbb96dfb_97e8_45ff_be1fad5514d9e063\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1078 1 0 \"4be8ea44_3057_4a43_ba7d13e5201732c6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TipCounter_Edit\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetTipCounterFolderPath\" \"Begin\"\r\nprivate function _GetTipCounterFolderPath( variable & o_str_TipCounterFolder ) void {\r\n// }} \"\"\r\nprivate variable str_FileName;\r\nprivate variable str_SubFileName;\r\n// {{ 5 \"_GetTipCounterFolderPath\" \"InitLocals\"\r\no_str_TipCounterFolder = 0;\r\n// }} \"\"\r\n// {{ 1478 1 0 \"2b06dc86_4bb8_46ee_b5970a1f7c27ba60\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_TipCounterFolder = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1479 1 0 \"16adaf2f_023c_48d8_ad5b0c635de6357a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_SubFileName = Translate(\"\");\r\n// }} \"\"\r\nstr_SubFileName = GetFileName();\r\n// {{{ 1481 1 0 \"39f859cc_4597_49de_b143af932b069fb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FileName = HSLExtensions::File::GetFileName(str_SubFileName);\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"507f0293_4e4b_46ba_af66a9f4af51c12b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_SubFileName, str_FileName, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"2681f1eb_6bb4_4267_94638129989cb8e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str_TipCounterFolder = StrConcat8(str_SubFileName, Translate(\"\\\\\"), Translate(\"Resources\"), Translate(\"\\\\\"), Translate(\"TipCounters\"), Translate(\"\\\\\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"aecf018e_8deb_42d6_9d19a7b778551de3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(o_str_TipCounterFolder, Translate(\"\\\\\"), Translate(\"\\\\\\\\\"));\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"38b4ebc0_520e_4d88_b35c378bc7b782c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::Directory::Create(o_str_TipCounterFolder);\r\n// }} \"\"\r\n// {{{ 5 \"_GetTipCounterFolderPath\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveInvalidCharacters\" \"Begin\"\r\nprivate function _RemoveInvalidCharacters( variable & io_str_Value ) void {\r\n// }} \"\"\r\n// {{ 5 \"_RemoveInvalidCharacters\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1552 1 0 \"0c288e1c_8ff8_42db_b7aede6bf8822bb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\" \"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1553 1 0 \"dd5a9374_f426_4bc2_9e1d186c1064b8c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\".\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"e9cb4757_60a6_4bf1_b3216a135debeda3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"-\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1555 1 0 \"0fcd2931_e831_46e3_bf2ebc49d5789ada\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"+\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1556 1 0 \"30fc4303_49ab_4163_a11bb0203c555a0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"@\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1557 1 0 \"9e76b03b_e058_46a4_925c7db021a80734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"!\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"593f059e_e4b1_419b_8d49283698ffe238\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"#\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"f9e7db57_ec42_4fb5_a07f2930f0cda1b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"$\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"8cab63ac_3e01_4138_aebd3571db44f3a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"%\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"ae1621bf_0945_4059_96511e9f4d9694da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"^\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"7be9e888_54cc_43a1_bb433be10ad2a925\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"&\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1563 1 0 \"ae817bea_7ebb_458e_bd7d34f3c8b4158a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"*\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1564 1 0 \"d3054bfb_bbcb_4268_a218bda709c29331\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"(\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1565 1 0 \"38b914d0_5acc_4dae_8be315534185e9ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\")\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 1566 1 0 \"61ef0255_1b56_4440_a9a47df0976443a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(io_str_Value, Translate(\"=\"), Translate(\"_\"));\r\n// }} \"\"\r\n// {{{ 5 \"_RemoveInvalidCharacters\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipTypeCheck1mL\" \"Begin\"\r\nfunction TipTypeCheck1mL( device & ML_STAR, variable i_str_ReturnFromTipPickUp, sequence & o_seq_IncorrectTipReturn, variable & o_str_IncorrectChannels ) variable {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable int_Total1mLChannels;\r\nprivate variable int_TotalPositions;\r\nprivate variable int_CurrentAspirationMode;\r\nprivate variable str_LibraryFolderPath;\r\nprivate variable str_CenterSpotFilePath;\r\nprivate variable int_Position;\r\nprivate variable str_LabwareID;\r\nprivate variable arr_LabwareIDs[];\r\nprivate variable arr_PositionIDs[];\r\nprivate variable arr_TipTypes[];\r\nprivate variable int_ChannelIndex;\r\nprivate variable arr_Channel[];\r\nprivate variable str_PositionID;\r\nprivate variable int_TipType;\r\nprivate variable flt_ChCoord_Y;\r\nprivate variable flt_ChCoord_Z;\r\nprivate variable flt_ChCoord_X;\r\nprivate variable arr_TempLabware[];\r\nprivate variable str_TempLabwareID;\r\nprivate sequence seq_TempAspPosition;\r\nprivate variable int_TotalTempLabware;\r\nprivate variable str_ChannelPattern;\r\nprivate variable bln_SimulationMode;\r\nprivate variable flt_NotUsed;\r\nprivate variable str_LiquidClass;\r\nprivate variable str_ReturnAsp;\r\nprivate variable int_Recovery;\r\nprivate variable arr_TipCorrect[];\r\nprivate variable str_ChannelPattern_Return;\r\nprivate variable int_NumChanReturns;\r\nprivate variable int_RetryCheck;\r\nprivate sequence seq_TempReturnPositions;\r\nprivate variable bln_LabwareExists;\r\nprivate variable i;\r\nprivate variable ret_int_AllGood;\r\nprivate variable int_TADM_Mode;\r\nprivate variable flt_AspVolume;\r\nprivate variable arr_LiquidClasses[];\r\nprivate variable arr_AspVolumes[];\r\n// {{ 5 \"TipTypeCheck1mL\" \"InitLocals\"\r\n{ sequence __temp; o_seq_IncorrectTipReturn = __temp; }\r\no_str_IncorrectChannels = 0;\r\n// }} \"\"\r\n// {{ 1196 1 0 \"c197a365_652a_4711_bc8e2e213294d9cd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1197 1 0 \"d1938873_b69f_4c69_98b078f15d3ee78e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1199 1 0 \"a187b8e6_1d78_4927_ab4cc39f0318f69c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1200 1 0 \"c197a365_652a_4711_bc8e2e213294d9cd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1201 1 0 \"83e7a2e2_8707_4eaa_a66deaba012db3a1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_int_AllGood = -1;\r\n// }} \"\"\r\n// {{ 1202 1 0 \"b84b1b1b_aabc_49b1_8fe427b0dc06ddf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_IncorrectChannels = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1203 1 0 \"d534fd0a_d777_4c5e_86a145a7a16f7740\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq_IncorrectTipReturn);\r\n// }} \"\"\r\n// {{{ 1204 1 0 \"cc6fd535_2e9c_4e83_b23dbd179f66dee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimulationMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{{ 1205 1 0 \"78a85b00_1fbe_41c5_b94b89cf25dbc487\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LibraryFolderPath = FilGetLibraryPath();\r\n// }} \"\"\r\n// {{{ 1206 1 0 \"ea828ab9_9542_4073_b06551978e5c501e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_CenterSpotFilePath = StrConcat4(str_LibraryFolderPath, Translate(\"\\\\STAR Tools\\\\Resources\\\\SubMethods\\\\\"), Translate(\"CenterSpot\"), Translate(\".rck\"));\r\n// }} \"\"\r\n// {{{ 1207 1 0 \"0e180322_5d6d_47a2_b5582b8285320f93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCHANNEL_QUERY_1ML::RequestAspirationMonitoringMode(ML_STAR, int_CurrentAspirationMode);\r\n// }} \"\"\r\n// {{ 1208 1 0 \"517dcc68_a376_4dcc_8b1d6e4ddca2879b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_CurrentAspirationMode == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1209 1 0 \"18ed8ac2_2e13_43e9_8cd8550b9ac480d6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\nASPIRATION MONITORING IS MAD\\n=========================================\"));\r\n// }} \"\"\r\n// {{ 1210 1 0 \"517dcc68_a376_4dcc_8b1d6e4ddca2879b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1211 1 0 \"ec2c4197_058a_4d4e_9fc523239ba447cf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\nASPIRATION MONITORING IS TADM\\n=========================================\"));\r\n// }} \"\"\r\n// {{ 1212 1 0 \"517dcc68_a376_4dcc_8b1d6e4ddca2879b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1213 1 0 \"21ccb402_e87e_4c52_968744f861f6f288\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TADM_Mode = HSLExtensions::Venus::GetTadmMode(ML_STAR);\r\n// }} \"\"\r\n// {{ 1214 1 0 \"fc87d37d_e101_49c3_98107d7b7b0a840e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TADM_Mode == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1215 1 0 \"76e71649_8e93_4fe5_963e97c0739ac1d0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\nTADM IS IN RECORDING MODE\\n=========================================\"));\r\n// }} \"\"\r\n// {{ 1216 1 0 \"fc87d37d_e101_49c3_98107d7b7b0a840e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1217 1 0 \"49606005_8e26_46dc_8cc883b87a7ae18c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TADM_Mode == 2)\r\n{\r\n// }} \"\"\r\n// {{ 1218 1 0 \"d904edb9_af4e_4841_b57c56dd7704c21e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\nTADM IS IN MONITORING MODE\\n=========================================\"));\r\n// }} \"\"\r\n// {{ 1219 1 0 \"49606005_8e26_46dc_8cc883b87a7ae18c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"b3e8640a_12f6_48bf_be9923e28da5de37\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet1mLChannelCount(ML_STAR, int_Total1mLChannels);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1221 1 0 \"04f958bf_119a_41a8_b997dd06b1c0ac62\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LiquidClass == \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1222 1 0 \"20b81a37_1c32_4acb_8fb27603f306f9aa\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"==========================================================\\nTIP TYPE NOT COMPATIBLE WITH CHECK\\n==========================================================\"));\r\n// }} \"\"\r\n// {{ 1223 1 0 \"05fba4f2_c2a3_4b2b_b0c1a9d7c049aae0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"9263d8f6_8560_45ec_8320b40843dd390f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1225 1 0 \"05fba4f2_c2a3_4b2b_b0c1a9d7c049aae0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"45910900_a966_42f2_a5898068f2751db0\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_int_AllGood);\r\n// }} \"\"\r\n// {{ 1227 1 0 \"04f958bf_119a_41a8_b997dd06b1c0ac62\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1228 1 0 \"7c9cef53_4c25_4f3d_967ea334c255f222\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TempLabware.SetSize(0);\r\n// }} \"\"\r\n// {{ 1229 1 0 \"dafd9fcc_6593_47fd_8934e06e19a2765b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_RetryCheck = 0; int_RetryCheck < 1;)\r\n{\r\nint_RetryCheck = int_RetryCheck + 1;\r\n// }} \"\"\r\n// {{ 1230 1 0 \"922ac80c_37e1_456e_a8305e9faa2a9d31\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1231 1 0 \"8180eb7e_b178_4a3e_8391fb8c8136c823\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_Channel.SetSize(int_Total1mLChannels);\r\n// }} \"\"\r\n// {{ 1232 1 0 \"3e882a31_1d37_482c_9c4b0b1240c5d48e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LabwareIDs.SetSize(int_Total1mLChannels);\r\n// }} \"\"\r\n// {{ 1233 1 0 \"6185ff1f_15fd_41e6_9d9f76e86d0c9053\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PositionIDs.SetSize(int_Total1mLChannels);\r\n// }} \"\"\r\n// {{ 1234 1 0 \"5a1b6778_86bb_4ed1_92e0fc4921b0e48c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TipTypes.SetSize(int_Total1mLChannels);\r\n// }} \"\"\r\n// {{ 1235 1 0 \"f0af711c_4d52_4cab_8b697d9decb4392e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_LiquidClasses.SetSize(int_Total1mLChannels);\r\n// }} \"\"\r\n// {{ 1236 1 0 \"a3eb9f68_a387_423a_b1431cb911f9916b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_AspVolumes.SetSize(int_Total1mLChannels);\r\n// }} \"\"\r\n// {{ 1237 1 0 \"b0fd0d17_0538_44b1_b2a59ce0e53990c2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_TipCorrect.SetSize(int_Total1mLChannels);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"2e95bd1c_2c44_40f4_ba491b25b0d6534d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TempAspPosition);\r\n// }} \"\"\r\n// {{ 1239 1 0 \"fbc9c6f5_ba72_42fb_ac5c85aa746f1db7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_Total1mLChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 1240 1 0 \"59afd2ea_a5b4_4b99_a2bd00644ac88810\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_Channel.SetAt(int_ChannelIndex-1, int_ChannelIndex);\r\n// }} \"\"\r\n// {{ 1241 1 0 \"450a7b01_5bcf_4610_aba5736c0fb0f74a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LabwareIDs.SetAt(int_ChannelIndex-1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1242 1 0 \"62b57256_bf32_4807_aab7199590927b06\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_PositionIDs.SetAt(int_ChannelIndex-1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1243 1 0 \"ffcc8b0c_a7e1_4afc_864e3e891a75049c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidClasses.SetAt(int_ChannelIndex-1, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1244 1 0 \"46ece4db_6456_4398_bafcf1827f13a8df\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TipTypes.SetAt(int_ChannelIndex-1, -1);\r\n// }} \"\"\r\n// {{ 1245 1 0 \"5564149e_c466_4ea1_88f39fc5b767e133\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TipCorrect.SetAt(int_ChannelIndex-1, 0);\r\n// }} \"\"\r\n// {{ 1246 1 0 \"5e44a6fb_ce85_479c_b80f7bae1f4dfdf3\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspVolumes.SetAt(int_ChannelIndex-1, 0);\r\n// }} \"\"\r\n// {{ 1247 1 0 \"fbc9c6f5_ba72_42fb_ac5c85aa746f1db7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1248 1 0 \"c61a2058_b490_4709_8abffb8af3e5dcf5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChannelPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1249 1 0 \"922ac80c_37e1_456e_a8305e9faa2a9d31\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1250 1 0 \"f46259f9_839a_475d_95191190f191a3e0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"c08d8f18_1b7c_4789_8cb09e5a15c216b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositions = StepReturn::GetNumberOfPositions(i_str_ReturnFromTipPickUp);\r\n// }} \"\"\r\n// {{ 1252 1 0 \"06b5bb00_8927_4b2d_b43b9dc0706d067f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_Total1mLChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 1253 1 0 \"7ce3d53c_193e_4de7_8712e4a9c0c32adf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StepReturn::GetPositionFromNum(int_ChannelIndex, i_str_ReturnFromTipPickUp);\r\n// }} \"\"\r\n// {{{ 1254 1 0 \"be1ca465_e0ad_48ac_bca45940395761d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabwareID = StepReturn::GetLabwareId(int_Position, i_str_ReturnFromTipPickUp);\r\n// }} \"\"\r\n// {{{ 1255 1 0 \"fbc8e0e7_fdf5_46a9_a05ec1b587a4729b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PositionID = StepReturn::GetPositionId(int_Position, i_str_ReturnFromTipPickUp);\r\n// }} \"\"\r\n// {{ 1256 1 0 \"248f3641_6715_460b_a6ab9f6795e980ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (str_LabwareID != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"58371f21_ca6e_472e_84c99bcae73b796d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetTipType(ML_STAR, str_LabwareID, int_TipType);\r\n// }} \"\"\r\n// {{ 1258 1 0 \"e280ce4f_d329_4a0f_aede4cf0d2d3f34d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LabwareIDs.SetAt(int_ChannelIndex-1, str_LabwareID);\r\n// }} \"\"\r\n// {{ 1259 1 0 \"1c229233_cb95_49d3_869a0d62a730558e\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_PositionIDs.SetAt(int_ChannelIndex-1, str_PositionID);\r\n// }} \"\"\r\n// {{ 1260 1 0 \"d4220e64_1b2d_408f_a2a22470a36ce42c\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TipTypes.SetAt(int_ChannelIndex-1, int_TipType);\r\n// }} \"\"\r\n// {{{ 1261 1 0 \"8f94afeb_70a8_40be_a78945e77ff8fcd4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_DetermineTipCheckLC(int_TipType, str_LiquidClass, flt_AspVolume);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"bdb91223_c3f9_492e_a874a53b71d1b4f6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_LiquidClasses.SetAt(int_ChannelIndex-1, str_LiquidClass);\r\n// }} \"\"\r\n// {{ 1263 1 0 \"8d470313_fb82_48bd_b3b7f76bd6052f58\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_AspVolumes.SetAt(int_ChannelIndex-1, flt_AspVolume);\r\n// }} \"\"\r\n// {{ 1264 1 0 \"4f5e7b15_6cfc_4d36_b875e52afce252cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 1265 1 0 \"c582a9d3_48fa_4e6f_b7c41dcb69f64ca5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCHANNEL_QUERY_1ML::Get_Channel_Position(ML_STAR, int_ChannelIndex, flt_ChCoord_X, flt_ChCoord_Y, flt_ChCoord_Z);\r\n// }} \"\"\r\n// {{ 1266 1 0 \"4f5e7b15_6cfc_4d36_b875e52afce252cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"61b2c8fc_61c5_47ed_bc26f49a720f631c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabwareID, str_PositionID, flt_ChCoord_X, flt_ChCoord_Y, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 1268 1 0 \"2976dbe5_b9d6_4954_a5371c393f942221\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ChCoord_Z = 245.0;\r\n// }} \"\"\r\n// {{ 1269 1 0 \"4f5e7b15_6cfc_4d36_b875e52afce252cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1270 1 0 \"80433dee_11bd_4c71_8b867665b3741796\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_ChCoord_Z = flt_ChCoord_Z - 1.0;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 1271 1 0 \"7342ca41_62c1_43ca_bc5037292c7f0383\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TempLabwareID = StrConcat12(int_ChannelIndex, Translate(\"_\"), str_LabwareID, Translate(\"_\"), str_PositionID, Translate(\"_\"), int_TipType, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1272 1 0 \"9d4bf1da_2fe6_4803_b67c27c05f28a1f0\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TempLabware.AddAsLast(str_TempLabwareID);\r\n// }} \"\"\r\n// {{{ 1273 1 0 \"2205e385_b421_4209_aea2ea4eb71b7886\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_LabwareExists = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_TempLabwareID);\r\n// }} \"\"\r\n// {{ 1274 1 0 \"f91e5773_d9ed_4b64_b56b2446a30b8968\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_LabwareExists == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"7edff0a3_0cdf_43ae_bceeaec5502988fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevRemoveLabware(ML_STAR, str_TempLabwareID);\r\n// }} \"\"\r\n// {{ 1276 1 0 \"f91e5773_d9ed_4b64_b56b2446a30b8968\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1277 1 0 \"1b37d023_7d80_4592_893ae7d5826fc6c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevAddLabware(ML_STAR, str_TempLabwareID, str_CenterSpotFilePath, flt_ChCoord_X, flt_ChCoord_Y, flt_ChCoord_Z, 0.0);\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"62bc4fb9_ed22_4597_9425a1eb7df6070e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern = StrConcat2(str_ChannelPattern, Translate(\"1\"));\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"0b9030f5_e4f5_41f2_a71371a55de701a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_TempAspPosition, str_TempLabwareID, Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 1280 1 0 \"248f3641_6715_460b_a6ab9f6795e980ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"8ae1e577_d55a_46ae_a973ac9f45d17174\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern = StrConcat2(str_ChannelPattern, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1282 1 0 \"248f3641_6715_460b_a6ab9f6795e980ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1283 1 0 \"06b5bb00_8927_4b2d_b43b9dc0706d067f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1284 1 0 \"f973ee25_d547_42e7_9604da92dd228c9f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TempAspPosition.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 1285 1 0 \"0fc938e5_6f2d_47a6_a3dbd75b3d51c739\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Channel Pattern to check:  \"), str_ChannelPattern);\r\n// }} \"\"\r\n// {{{ 1286 1 0 \"dcadf68d_414a_4dd2_a0fe371c90229e72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_4(Translate(\"Channel   Tip Type      Labware ID      Position ID\"), arr_Channel, arr_TipTypes, arr_LabwareIDs, arr_PositionIDs);\r\n// }} \"\"\r\n// {{ 1287 1 0 \"3f8acc35_08fe_48e6_bc7575af4472e9ba\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalTempLabware=arr_TempLabware.GetSize();\r\n// }} \"\"\r\n// {{ 1288 1 0 \"9fa0f677_b97a_4f4d_8d2f5199dfe2f860\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalTempLabware == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1289 1 0 \"0449715c_88b6_4af7_b86b9554f6708033\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"==========================================================\\nNO TIPS TO CHECK\\n==========================================================\"));\r\n// }} \"\"\r\n// {{ 1290 1 0 \"02e5af70_5413_4545_8d3b15cf959677b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"6e250af5_025b_4042_a03b27bbd4e6076b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"02e5af70_5413_4545_8d3b15cf959677b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1293 1 0 \"fbd1dab6_c526_42cb_b25a5d41d1acbc9e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_int_AllGood);\r\n// }} \"\"\r\n// {{ 1294 1 0 \"9fa0f677_b97a_4f4d_8d2f5199dfe2f860\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1295 1 0 \"f46259f9_839a_475d_95191190f191a3e0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1296 1 0 \"6c82ae62_7962_4a56_9252fec95f94a116\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\nSET MODE TO TADM\\n=========================================\"));\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"909e9559_d8e2_4b74_8dfed42f0633ff7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCHANNEL_QUERY_1ML::SetAspirationMonitoringMode(ML_STAR, 1);\r\n// }} \"\"\r\n// {{ 1298 1 0 \"cdfafa82_ef09_4f58_b317dfe9b1c34c6f\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"cdfafa82_ef09_4f58_b317dfe9b1c34c6f\"); // Aspirate\r\n\tstr_ReturnAsp = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 1299 1 0 \"9056cfd0_c24a_42c7_a2b32c95be2629e4\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"9056cfd0_c24a_42c7_a2b32c95be2629e4\"); // Dispense\r\n}\r\n// }} \"\"\r\n// {{ 1300 1 0 \"e7c1812c_48a8_45b0_93adcbeb8e3342f3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========================================\\nSET MODE BACK TO INITIAL SETTING\\n=========================================\"));\r\n// }} \"\"\r\n// {{{ 1301 1 0 \"2e754af7_afa8_4ba2_a3417ff5e5f780ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCHANNEL_QUERY_1ML::SetAspirationMonitoringMode(ML_STAR, int_CurrentAspirationMode);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1302 1 0 \"7bb47b2f_6b13_41e2_adc58af9757fcdc9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1303 1 0 \"9c3a1936_ef46_4968_8c510a5804d61506\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_Total1mLChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 1304 1 0 \"dcb9d387_e5d6_45f7_8161858fc7e0d7bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arr_LabwareIDs.ElementAt( int_ChannelIndex -1) != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1305 1 0 \"a545d0ae_6b79_4541_a4a83c394051b24a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nCHANNEL_QUERY_1ML::InitializeDispenseDrive(ML_STAR, int_ChannelIndex);\r\n// }} \"\"\r\n// {{ 1306 1 0 \"dcb9d387_e5d6_45f7_8161858fc7e0d7bf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1307 1 0 \"9c3a1936_ef46_4968_8c510a5804d61506\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1308 1 0 \"7bb47b2f_6b13_41e2_adc58af9757fcdc9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1309 1 0 \"7e93e943_ac1e_4a1d_bb90976cb3163b4d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"b167cada_75d6_40e6_aa0f6df4be3e5025\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TempReturnPositions);\r\n// }} \"\"\r\n// {{ 1311 1 0 \"8ff5abbb_1ed3_4170_b6bc724cee7f2e84\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChannelPattern_Return = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1312 1 0 \"3d6e0f20_cb3d_46dc_8dc375f29a39779f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_Total1mLChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 1313 1 0 \"0cf7e6c8_3237_44fd_88145007eedf4143\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = StepReturn::GetPositionFromNum(int_ChannelIndex, str_ReturnAsp);\r\n// }} \"\"\r\n// {{ 1314 1 0 \"332dd716_c8b8_42d2_b28eae0d8b0421ee\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1315 1 0 \"8ea4d45d_ae67_4402_8c9826c0329bf511\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Recovery = StepReturn::GetRecoveryButton(int_Position, str_ReturnAsp);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 1316 1 0 \"c7d010a0_aa65_437f_945f2e77758a5bf0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimulationMode == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 1317 1 0 \"2bc2d9d4_0054_4f8a_992bee0b09fd1f0f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelIndex == 2)\r\n{\r\n// }} \"\"\r\n// {{ 1318 1 0 \"e911c42f_99e6_46ae_aeafa2cb66e2c44c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Recovery = 9;\r\n// }} \"\"\r\n// {{ 1319 1 0 \"2bc2d9d4_0054_4f8a_992bee0b09fd1f0f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1320 1 0 \"c7d010a0_aa65_437f_945f2e77758a5bf0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1321 1 0 \"5d9a91bf_c869_4d92_857f848557c6502d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arr_LabwareIDs.ElementAt( int_ChannelIndex -1) != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1322 1 0 \"8beb0111_d6dc_41fd_9a6a0b14f8637118\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Recovery != 9)\r\n{\r\n// }} \"\"\r\n// {{ 1323 1 0 \"8943ac95_90b4_40ad_a61d79e8c409c162\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_TipCorrect.SetAt(int_ChannelIndex-1, 1);\r\n// }} \"\"\r\n// {{{ 1324 1 0 \"f8fde6e4_bac5_4338_9e986c25e7cddf5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern_Return = StrConcat2(str_ChannelPattern_Return, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1325 1 0 \"8beb0111_d6dc_41fd_9a6a0b14f8637118\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"c9508edb_cb51_458b_9d11163f9e3bd232\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern_Return = StrConcat2(str_ChannelPattern_Return, Translate(\"1\"));\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"58618165_591f_4826_980718bd7cb5a8e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq_IncorrectTipReturn, arr_LabwareIDs.ElementAt( int_ChannelIndex -1), arr_PositionIDs.ElementAt( int_ChannelIndex -1));\r\n// }} \"\"\r\n// {{ 1328 1 0 \"8beb0111_d6dc_41fd_9a6a0b14f8637118\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1329 1 0 \"5d9a91bf_c869_4d92_857f848557c6502d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"c44ae60b_3b66_4839_aa4c70c049fa9ab3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern_Return = StrConcat2(str_ChannelPattern_Return, Translate(\"0\"));\r\n// }} \"\"\r\n// {{ 1331 1 0 \"5d9a91bf_c869_4d92_857f848557c6502d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1332 1 0 \"3d6e0f20_cb3d_46dc_8dc375f29a39779f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1333 1 0 \"3e16a6b2_790d_4ee2_ad9f45aeafa3070a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq_IncorrectTipReturn.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 1334 1 0 \"7e93e943_ac1e_4a1d_bb90976cb3163b4d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"ac203bec_9375_4d37_bd08ed9c4be164eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumChanReturns = StrReplace(str_ChannelPattern_Return, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{ 1336 1 0 \"cb67b4d3_1f7e_452b_b0864cb5504d5abb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_IncorrectChannels = str_ChannelPattern_Return;\r\n// }} \"\"\r\n// {{ 1337 1 0 \"d40ce8b4_7236_44a7_992ef1bdd10ee45e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_NumChanReturns == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1338 1 0 \"b78ff777_1b1c_4a04_b74b3646125008a8\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"--------------------------- TIPS CORRECT\"));\r\n// }} \"\"\r\n// {{ 1339 1 0 \"ff813b08_a672_47d3_b26eea4086ce28ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_int_AllGood = 1;\r\n// }} \"\"\r\n// {{ 1340 1 0 \"4c226991_d35d_4f14_951b60faf886b3c9\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1341 1 0 \"d40ce8b4_7236_44a7_992ef1bdd10ee45e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1342 1 0 \"ce326c4f_1f53_4180_9f1d8888f1ba4978\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nret_int_AllGood = 0;\r\n// }} \"\"\r\n// {{ 1343 1 0 \"1e65999b_7f65_4bbd_8ac97d8e4bbe1bb7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"--------------------------- WRONG TIPS DETECTED\"));\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"339edff5_4f39_47b6_98d07ea3b1660f7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Wrong channels detected:  \"), o_str_IncorrectChannels);\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"254b7cc0_e054_4493_aa843db18bbb3134\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceSequence(o_seq_IncorrectTipReturn);\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"9b027dd2_5083_4670_a602631f9a15ce6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, o_seq_IncorrectTipReturn, 6, Translate(\"Make positions flash\"));\r\n// }} \"\"\r\n// {{ 1347 1 0 \"dafd9fcc_6593_47fd_8934e06e19a2765b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1348 1 0 \"76793e63_129b_4a5a_b5ba4757c55c2797\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1349 1 0 \"1571c21e_8b54_4abb_95375415f780d60a\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalTempLabware=arr_TempLabware.GetSize();\r\n// }} \"\"\r\n// {{ 1350 1 0 \"42552639_d644_4c97_a5b3d6d1c78f9105\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_TotalTempLabware;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{{ 1351 1 0 \"7d89928a_cbe0_4733_ad1737a6e68ab4c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevRemoveLabware(ML_STAR, arr_TempLabware.ElementAt( i -1));\r\n// }} \"\"\r\n// {{ 1352 1 0 \"42552639_d644_4c97_a5b3d6d1c78f9105\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1353 1 0 \"76793e63_129b_4a5a_b5ba4757c55c2797\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1354 1 0 \"bde491a6_7223_4742_a0b63af96376c7c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"150f84a2_8b0a_4ad7_8f4da942ffba5693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1356 1 0 \"bde491a6_7223_4742_a0b63af96376c7c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"921a5bca_141d_4b12_8c2a6e25103050ca\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ret_int_AllGood);\r\n// }} \"\"\r\n// {{{ 5 \"TipTypeCheck1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_DetermineTipCheckLC\" \"Begin\"\r\nprivate function _DetermineTipCheckLC( variable i_int_TipType, variable & o_str_LiquidClass, variable & o_flt_CheckVolume ) void {\r\n// }} \"\"\r\n// {{ 5 \"_DetermineTipCheckLC\" \"InitLocals\"\r\no_str_LiquidClass = 0;\r\no_flt_CheckVolume = 0;\r\n// }} \"\"\r\n// {{ 1415 1 0 \"3c6cc16b_6c09_4208_b3ca4e9561a32e66\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1416 1 0 \"d8360e8e_3f6a_4d24_945013a59b561291\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 0.0;\r\n// }} \"\"\r\n// {{ 1417 1 0 \"6073460d_a770_40f0_b13901669dd817dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1418 1 0 \"0bc59d4f_41b7_4248_8f293d18faee6409\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_300\");\r\n// }} \"\"\r\n// {{ 1419 1 0 \"9fee1ba1_b033_49f2_bf8c9ed585adbde3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 50.0;\r\n// }} \"\"\r\n// {{ 1420 1 0 \"6073460d_a770_40f0_b13901669dd817dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1421 1 0 \"18f888ff_735e_47c4_be74f4beb3a47a24\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1422 1 0 \"83cecb4d_2b9f_4ea1_923eac5dfe09dc6d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_300F\");\r\n// }} \"\"\r\n// {{ 1423 1 0 \"0f98b07a_b368_44af_8125b6b4f768d1d7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 50.0;\r\n// }} \"\"\r\n// {{ 1424 1 0 \"18f888ff_735e_47c4_be74f4beb3a47a24\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1425 1 0 \"515fc94e_04b6_4085_a877bf3b3531fd18\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 4)\r\n{\r\n// }} \"\"\r\n// {{ 1426 1 0 \"2f3ed17e_d92f_4a54_84baefa29fec4086\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_1000\");\r\n// }} \"\"\r\n// {{ 1427 1 0 \"3b802ffd_eb01_46d5_b1102095f2a956de\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 100.0;\r\n// }} \"\"\r\n// {{ 1428 1 0 \"515fc94e_04b6_4085_a877bf3b3531fd18\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1429 1 0 \"95cd2950_531b_4830_8e1030d0788a0c1a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 5)\r\n{\r\n// }} \"\"\r\n// {{ 1430 1 0 \"e99a5e31_95d4_4a25_a2a982e53ac02bc8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_1000F\");\r\n// }} \"\"\r\n// {{ 1431 1 0 \"2ce759d7_8d36_4265_9ae6a49b35a69950\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 100.0;\r\n// }} \"\"\r\n// {{ 1432 1 0 \"95cd2950_531b_4830_8e1030d0788a0c1a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1433 1 0 \"0fa95a42_ed6c_4ed8_94c9b2f476501cd1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 22)\r\n{\r\n// }} \"\"\r\n// {{ 1434 1 0 \"23293b94_c8ed_4284_8bc54389f63edae2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_50\");\r\n// }} \"\"\r\n// {{ 1435 1 0 \"afb1cbdb_e318_4ae4_8ca6fadb5f67a53f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 50.0;\r\n// }} \"\"\r\n// {{ 1436 1 0 \"0fa95a42_ed6c_4ed8_94c9b2f476501cd1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1437 1 0 \"0cbb9ab1_b95e_4717_b4f767ab685c70fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 23)\r\n{\r\n// }} \"\"\r\n// {{ 1438 1 0 \"5537415c_5378_4ab0_9bdb6e40f5538086\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_50F\");\r\n// }} \"\"\r\n// {{ 1439 1 0 \"bb02449e_aa84_4a18_8738bafdc33763fd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 50.0;\r\n// }} \"\"\r\n// {{ 1440 1 0 \"0cbb9ab1_b95e_4717_b4f767ab685c70fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1441 1 0 \"6d62beec_090a_4f66_b8a01619759a288b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 23)\r\n{\r\n// }} \"\"\r\n// {{ 1442 1 0 \"1d864239_2340_4ad6_b25d61046b2622ba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_50F\");\r\n// }} \"\"\r\n// {{ 1443 1 0 \"e67e4d58_939f_41af_ad229cfd726dafc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 50.0;\r\n// }} \"\"\r\n// {{ 1444 1 0 \"6d62beec_090a_4f66_b8a01619759a288b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1445 1 0 \"a85a8339_304b_4b50_8c0919c28812615d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 36)\r\n{\r\n// }} \"\"\r\n// {{ 1446 1 0 \"ce4152aa_4497_493a_8eefa2d3b3037568\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_300Slim\");\r\n// }} \"\"\r\n// {{ 1447 1 0 \"a2d2b096_d3ce_4bdb_ba9689ae9febd97f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 100.0;\r\n// }} \"\"\r\n// {{ 1448 1 0 \"a85a8339_304b_4b50_8c0919c28812615d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1449 1 0 \"8984b254_f072_4e3a_858e9346b1820f50\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 45)\r\n{\r\n// }} \"\"\r\n// {{ 1450 1 0 \"8686c57e_e218_4a45_a561993e37a8f35e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_LiquidClass = Translate(\"TipCheck_300SlimF\");\r\n// }} \"\"\r\n// {{ 1451 1 0 \"54dc2a3e_cb04_4374_8c5c982fcf1ca3de\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_CheckVolume = 100.0;\r\n// }} \"\"\r\n// {{ 1452 1 0 \"8984b254_f072_4e3a_858e9346b1820f50\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_DetermineTipCheckLC\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetTipType\" \"Begin\"\r\nfunction GetTipType( device & Instrument, sequence i_seq_Tips, variable & o_int_TipType ) void {\r\n// }} \"\"\r\nprivate variable str_LabID;\r\nprivate variable bln_LabwareValid;\r\n// {{ 5 \"GetTipType\" \"InitLocals\"\r\no_int_TipType = 0;\r\n// }} \"\"\r\n// {{ 363 1 0 \"c122f1a0_3179_4fad_aa020c1aa31558a5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_TipType = -1;\r\n// }} \"\"\r\n// {{{ 364 1 0 \"f12bbb2d_b804_4824_8037bb3b41a36a22\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(Instrument, i_seq_Tips);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"4207203d_8c77_4985_8e764dacb1537101\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(i_seq_Tips);\r\n// }} \"\"\r\n// {{{ 366 1 0 \"94f70d03_3d04_4b32_84b74067987fede5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(Instrument, str_LabID);\r\n// }} \"\"\r\n// {{ 367 1 0 \"d026cfc1_011a_45d3_91500913e1ffd82a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_LabwareValid == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 368 1 0 \"3d638c8e_678c_4b02_bc44348f5cff3075\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetTipType(Instrument, str_LabID, o_int_TipType);\r\n// }} \"\"\r\n// {{ 369 1 0 \"d026cfc1_011a_45d3_91500913e1ffd82a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetTipType\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCountNeeded_Add\" \"Begin\"\r\nfunction TipCountNeeded_Add( variable i_str_TipCounter, variable i_int_NumberOfTips ) void {\r\n// }} \"\"\r\nprivate variable int_Index;\r\nprivate variable int_ExistingTipCount;\r\nprivate variable int_NewTipCountNeeded;\r\n// {{ 5 \"TipCountNeeded_Add\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 981 1 0 \"ce14fb1a_d26a_434c_a3082c1fc107ba46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 982 1 0 \"54d1c37f_7859_4565_9e776a4eebca3b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::InitializeVariables();\r\n// }} \"\"\r\n// {{ 983 1 0 \"3d825e6f_4902_4d91_a6b290beb5a29103\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetSize(0);\r\n// }} \"\"\r\n// {{ 984 1 0 \"1715ee1c_09f6_47b2_9af574d60f4a446f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.SetSize(0);\r\n// }} \"\"\r\n// {{ 985 1 0 \"2aa69005_b253_4600_8222a5f156c84e20\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 986 1 0 \"ce14fb1a_d26a_434c_a3082c1fc107ba46\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 987 1 0 \"31897509_654f_4820_8853391c568a0f56\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_Index = _Lookup(TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 988 1 0 \"a392c5dc_2ef7_4642_84a14905b3c26d10\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 0)\r\n{\r\n// }} \"\"\r\n// {{ 989 1 0 \"f5128674_afd1_45af_93aa8c5c1fafccca\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 990 1 0 \"addcf9d1_5101_4102_ba001bfe51e079d4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.AddAsLast(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 991 1 0 \"f3447a19_3bbd_474e_840639a593e05208\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.AddAsLast(i_int_NumberOfTips);\r\n// }} \"\"\r\n// {{ 992 1 0 \"a392c5dc_2ef7_4642_84a14905b3c26d10\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 993 1 0 \"9b2dc097_8a55_4501_b1aaa4a1f515ff7e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 994 1 0 \"e61cbf70_414e_4a8f_bc168f271030b052\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_ExistingTipCount=TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{ 995 1 0 \"09cdd327_7c4b_47e3_8299a3f06a12ee60\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_NewTipCountNeeded = int_ExistingTipCount + i_int_NumberOfTips;\r\n// }} \"\"\r\n// {{ 996 1 0 \"c77445ad_ab12_411d_87c2d8861504eaa4\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetAt(int_Index-1, int_NewTipCountNeeded);\r\n// }} \"\"\r\n// {{ 997 1 0 \"a392c5dc_2ef7_4642_84a14905b3c26d10\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCountNeeded_Add\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCountNeeded_Get\" \"Begin\"\r\nfunction TipCountNeeded_Get( variable i_str_TipCounter, variable & o_int_NumberOfTips ) void {\r\n// }} \"\"\r\nprivate variable int_Index;\r\nprivate variable _strFunctionName;\r\nprivate variable l_blnSuccess;\r\n// {{ 5 \"TipCountNeeded_Get\" \"InitLocals\"\r\no_int_NumberOfTips = 0;\r\n// }} \"\"\r\n// {{ 999 1 0 \"fe51a147_cf1e_41cd_9e8925815115d043\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1000 1 0 \"53fa9dda_eefb_4d81_8cf59518d4ea8433\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1002 1 0 \"ae419cc8_c1f7_468e_9fb8103e60f99c54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1003 1 0 \"fe51a147_cf1e_41cd_9e8925815115d043\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1004 1 0 \"22e66bfe_5701_49c9_ace477e40e4a0a3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"67d38e73_e2d6_4990_86a70b75dc81a248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::InitializeVariables();\r\n// }} \"\"\r\n// {{ 1006 1 0 \"dfaa6cd1_9c45_4aa9_a5723c61fa1437b6\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetSize(0);\r\n// }} \"\"\r\n// {{ 1007 1 0 \"2a8d2f1f_045a_4c98_a0931b9b38cece60\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.SetSize(0);\r\n// }} \"\"\r\n// {{ 1008 1 0 \"2a92794d_2fda_4045_bf3e1948e145ebc7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 1009 1 0 \"22e66bfe_5701_49c9_ace477e40e4a0a3c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1010 1 0 \"6d18b751_791f_45a5_aade04f7f944f635\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_Index = _Lookup(TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 1011 1 0 \"acb2c48d_8ae7_4a29_a8097e14ef5bcf02\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_int_NumberOfTips = 0;\r\n// }} \"\"\r\n// {{ 1012 1 0 \"248099f1_fb51_4840_b9400439a39481f8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1013 1 0 \"6c88a6af_7e1a_4077_8e0653901ab8ac3b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1014 1 0 \"8318c148_2374_4bbd_b75666881797fb32\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.AddAsLast(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 1015 1 0 \"71e3f35d_b18b_413d_90e2e1d6cfbe2876\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.AddAsLast(o_int_NumberOfTips);\r\n// }} \"\"\r\n// {{ 1016 1 0 \"248099f1_fb51_4840_b9400439a39481f8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1017 1 0 \"c6e0f767_5345_4d5e_bdce2339860c617e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1018 1 0 \"34e40e7a_08a1_43f0_88071e50e077116a\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\no_int_NumberOfTips=TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{ 1019 1 0 \"248099f1_fb51_4840_b9400439a39481f8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"9dac6ab6_b012_4400_86020573db704d76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_int_NumberOfTips = HSLExtensions::Core::ConvertToInteger(o_int_NumberOfTips, l_blnSuccess);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"84ff38df_c360_4444_a51a421df1e42707\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"Tip Counter:  \"), i_str_TipCounter, Translate(\"  --  Current Tips Needed:  \"), o_int_NumberOfTips);\r\n// }} \"\"\r\n// {{ 1022 1 0 \"7d3f95fa_dda8_4d43_92f29a96b82a42bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"93425d71_7939_4287_be64db60633b6cb4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1024 1 0 \"7d3f95fa_dda8_4d43_92f29a96b82a42bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TipCountNeeded_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipTypeLength_Get\" \"Begin\"\r\nfunction TipTypeLength_Get( variable i_int_TipType, variable & o_flt_TipLength ) void {\r\n// }} \"\"\r\nprivate variable bln_LengthFound;\r\n// {{ 5 \"TipTypeLength_Get\" \"InitLocals\"\r\no_flt_TipLength = 0;\r\n// }} \"\"\r\n// {{ 1359 1 0 \"fe589990_6870_43df_bfd1e9faf86e803f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_LengthFound = 0;\r\n// }} \"\"\r\n// {{ 1360 1 0 \"1ed7caad_a128_43bb_82ce06b4c3131169\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 0.0;\r\n// }} \"\"\r\n// {{ 1361 1 0 \"a0651279_e5b6_4b52_8e6c7dbb0bd447de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1362 1 0 \"f9aa172b_e330_4d6f_a14f6c513eaf93d4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 51.9;\r\n// }} \"\"\r\n// {{ 1363 1 0 \"a0651279_e5b6_4b52_8e6c7dbb0bd447de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1364 1 0 \"9cc6b7cb_e219_4d23_b031252b150c9f16\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 1)\r\n{\r\n// }} \"\"\r\n// {{ 1365 1 0 \"6e516f62_716f_48bf_9c1e6e7a81c4452c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 51.9;\r\n// }} \"\"\r\n// {{ 1366 1 0 \"9cc6b7cb_e219_4d23_b031252b150c9f16\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1367 1 0 \"5076c5e0_c6bb_4dc3_89b32db8f08b84d4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 30)\r\n{\r\n// }} \"\"\r\n// {{ 1368 1 0 \"2131c885_eefe_476b_9b59803057796d9e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 51.9;\r\n// }} \"\"\r\n// {{ 1369 1 0 \"5076c5e0_c6bb_4dc3_89b32db8f08b84d4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1370 1 0 \"4639b2ac_4068_49fb_bc0c6e9d216bed26\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 2)\r\n{\r\n// }} \"\"\r\n// {{ 1371 1 0 \"84e599c1_dbe9_4021_aa01e7741d261f1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 21.9;\r\n// }} \"\"\r\n// {{ 1372 1 0 \"4639b2ac_4068_49fb_bc0c6e9d216bed26\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1373 1 0 \"cb13f7c0_d1d9_4382_a4cb4b79565a9091\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 3)\r\n{\r\n// }} \"\"\r\n// {{ 1374 1 0 \"c60099b6_2368_45dc_9352fb97d6444a46\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 21.9;\r\n// }} \"\"\r\n// {{ 1375 1 0 \"cb13f7c0_d1d9_4382_a4cb4b79565a9091\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1376 1 0 \"12672466_9f69_4109_92a6d77ef2da3205\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 32)\r\n{\r\n// }} \"\"\r\n// {{ 1377 1 0 \"6548c5ee_71f8_4df6_9426d0bc3df655e0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 21.9;\r\n// }} \"\"\r\n// {{ 1378 1 0 \"12672466_9f69_4109_92a6d77ef2da3205\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1379 1 0 \"bb33bab1_31e0_4a68_8ae9592ce3a1536f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 4)\r\n{\r\n// }} \"\"\r\n// {{ 1380 1 0 \"c53f0fbb_6514_467a_bc7bf3f45ce273e9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 87.1;\r\n// }} \"\"\r\n// {{ 1381 1 0 \"bb33bab1_31e0_4a68_8ae9592ce3a1536f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1382 1 0 \"a3b5aad0_b81e_4410_97305964a024f900\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 5)\r\n{\r\n// }} \"\"\r\n// {{ 1383 1 0 \"cc87d368_3eba_488e_a8c8d9defbc76f7f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 87.1;\r\n// }} \"\"\r\n// {{ 1384 1 0 \"a3b5aad0_b81e_4410_97305964a024f900\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1385 1 0 \"048e1037_760f_41fe_8b704da0de9e401a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 10)\r\n{\r\n// }} \"\"\r\n// {{ 1386 1 0 \"7b325932_78c2_42a5_9ae7491ae62ab6fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 51.9;\r\n// }} \"\"\r\n// {{ 1387 1 0 \"048e1037_760f_41fe_8b704da0de9e401a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1388 1 0 \"0eb0a3ba_9edf_49d2_a448d059974a02c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 22)\r\n{\r\n// }} \"\"\r\n// {{ 1389 1 0 \"dfcb2ad6_f97f_4b23_a2f729fda6d27107\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 42.4;\r\n// }} \"\"\r\n// {{ 1390 1 0 \"0eb0a3ba_9edf_49d2_a448d059974a02c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1391 1 0 \"52de7a1e_2aa5_4f27_8e3ae45aa981c1cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 23)\r\n{\r\n// }} \"\"\r\n// {{ 1392 1 0 \"55667f2f_2149_4b87_913e3369132c06ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 42.4;\r\n// }} \"\"\r\n// {{ 1393 1 0 \"52de7a1e_2aa5_4f27_8e3ae45aa981c1cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1394 1 0 \"0fe34872_bffe_43ab_8e4836e3f18f48bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 31)\r\n{\r\n// }} \"\"\r\n// {{ 1395 1 0 \"1ca28080_2208_430a_a9fc6e67e8dcf0eb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 42.4;\r\n// }} \"\"\r\n// {{ 1396 1 0 \"0fe34872_bffe_43ab_8e4836e3f18f48bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1397 1 0 \"32716e2b_815f_4e12_b59354f8043552de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 36)\r\n{\r\n// }} \"\"\r\n// {{ 1398 1 0 \"c169b895_ade8_44c7_b47795bf114db758\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 87.0;\r\n// }} \"\"\r\n// {{ 1399 1 0 \"32716e2b_815f_4e12_b59354f8043552de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1400 1 0 \"65cf7499_952e_48d1_9771094b5a32118c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_int_TipType == 45)\r\n{\r\n// }} \"\"\r\n// {{ 1401 1 0 \"4334f250_387c_41da_a5fc235e0012acd8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_TipLength = 87.0;\r\n// }} \"\"\r\n// {{ 1402 1 0 \"65cf7499_952e_48d1_9771094b5a32118c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipTypeLength_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCheckMPH96\" \"Begin\"\r\nfunction TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate dialog customDialogD43E7E782FE34cdaA671A8701DC07C7B;\r\nprivate variable int_CurrentPosition;\r\nprivate variable flt_TipCapacity;\r\nprivate variable str_TipMessage;\r\nprivate variable int_EndPosition;\r\nprivate variable int_PositionsRemaining;\r\nprivate variable str_TipName;\r\nprivate variable int_TipsNeeded;\r\n// {{ 5 \"TipCheckMPH96\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 950 1 0 \"7fceda9a_1390_4d11_b04ce80259e13a0a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"=========  Check tip sequence\"));\r\n// }} \"\"\r\n// {{{ 951 1 0 \"a94b6eab_b7b8_41df_a17e24e356efb5e0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCapacityCheck(Instrument, io_seq_Tips, flt_TipCapacity);\r\n// }} \"\"\r\n// {{ 952 1 0 \"ccb4fef8_4bb4_4607_8330134e81ac792c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_TipCapacity == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 953 1 0 \"0ddf6a85_217b_40b8_92b0c770711a227e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 954 1 0 \"ccb4fef8_4bb4_4607_8330134e81ac792c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 955 1 0 \"9cf7e486_a614_4589_8731b4e125b8a5ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 956 1 0 \"a9b6a77a_7ca9_4e74_ad74041d87a8c2c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 957 1 0 \"2aca5e0f_584f_4584_b1b7b559bbf2be10\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipsNeeded = 96;\r\n// }} \"\"\r\n// {{ 958 1 0 \"c055fdb8_c847_4b26_86ec1462966260e3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (1 == 1)\r\n{\r\n// }} \"\"\r\n// {{ 959 1 0 \"da6b2b50_0180_4b4b_82ce31b8ea8ec6fb\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = io_seq_Tips.GetCurrentPosition();\r\n// }} \"\"\r\n// {{ 960 1 0 \"d0c66ddd_21af_4ab4_b9ab7b6dab5e2c24\" \"{B31F353D-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_EndPosition = io_seq_Tips.GetCount();\r\n// }} \"\"\r\n// {{ 961 1 0 \"661bfaaa_426f_4084_88afb86a2c14d8f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_CurrentPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 962 1 0 \"3cd2488b_6e27_4a4b_a7c403f717af2537\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_CurrentPosition = int_EndPosition + 1;\r\n// }} \"\"\r\n// {{ 963 1 0 \"661bfaaa_426f_4084_88afb86a2c14d8f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 964 1 0 \"3921ea91_0697_4547_8df43da55dab8db7\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_EndPosition - int_CurrentPosition;\r\n// }} \"\"\r\n// {{ 965 1 0 \"d75a8109_d99f_465d_bc11296389bc857b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_PositionsRemaining = int_PositionsRemaining + 1;\r\n// }} \"\"\r\n// {{ 966 1 0 \"6c1f1188_67c0_4dcb_8f401015521d1da9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsRemaining > 0)\r\n{\r\n// }} \"\"\r\n// {{{ 967 1 0 \"a5029a33_09a5_4619_b48aacaf609829a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_PositionsRemaining = SeqGetPositionCountForCurrLabware(io_seq_Tips);\r\n// }} \"\"\r\n// {{ 968 1 0 \"6c1f1188_67c0_4dcb_8f401015521d1da9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\nTrace(\"     \",\"Positions Remaining:  \",int_PositionsRemaining,\"  Tips Needed:  \",int_TipsNeeded);\r\n// {{ 970 1 0 \"46efc6b4_8501_4bb1_ac16bd625ccb9049\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_PositionsRemaining >= int_TipsNeeded)\r\n{\r\n// }} \"\"\r\n// {{ 971 1 0 \"1049c334_689e_4c66_82fb21acb84d412f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Sufficient tips found\"));\r\n// }} \"\"\r\n// {{ 972 1 0 \"48d95800_42b4_4221_8bdf7833727fefb4\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 973 1 0 \"46efc6b4_8501_4bb1_ac16bd625ccb9049\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 974 1 0 \"cff4e35a_66a9_47d4_ac2f416a3927314d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{ 975 1 0 \"8e6a0a2d_5251_4cf4_a0d3fd1351563c78\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialogD43E7E782FE34cdaA671A8701DC07C7B.InitCustomDialog( \"8e6a0a2d_5251_4cf4_a0d3fd1351563c78\" );\r\ncustomDialogD43E7E782FE34cdaA671A8701DC07C7B.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialogD43E7E782FE34cdaA671A8701DC07C7B.ShowCustomDialog();\r\n// }} \"\"\r\n// {{ 976 1 0 \"5676a1da_d935_4dd4_bfce5ac45d9afeb9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 977 1 0 \"62d1393d_580f_4ccf_9b08320fb031cfb7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(Instrument, io_seq_Tips);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"d6232f6f_c1a1_4617_a97c647bbd0d544d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCounter_Edit(Instrument, io_seq_Tips, i_str_TipCounter, 99999);\r\n// }} \"\"\r\n// {{ 979 1 0 \"c055fdb8_c847_4b26_86ec1462966260e3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCheckMPH96\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_LocalTipCounterRead\" \"Begin\"\r\nprivate function _LocalTipCounterRead( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate variable bln_SimMode;\r\nprivate variable bln_FileExists;\r\nprivate variable str_TipCounterFolder;\r\nprivate variable str_TipCounter;\r\n// {{ 5 \"_LocalTipCounterRead\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"b9013fa9_68ec_4009_8771bb61250267dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Read tip counter:  \"), i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1527 1 0 \"72dc9b1f_2f28_454b_a2d0aa11bd98b46b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_SimMode = Util::GetSimulationMode();\r\n// }} \"\"\r\n// {{ 1528 1 0 \"c3cf1b55_05e4_44fa_a39bdaf9104394be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_SimMode == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 1529 1 0 \"554bc948_5b89_436a_92753a6d9a9bb46e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_TipCounter = StrConcat2(Translate(\"SIM_\"), i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 1530 1 0 \"c3cf1b55_05e4_44fa_a39bdaf9104394be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1531 1 0 \"dec3f95c_ad18_4ca9_a6f5a5a0e550ae3e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetTipCounterFolderPath(str_TipCounterFolder);\r\n// }} \"\"\r\n// {{{ 1532 1 0 \"1108cfb8_e4cc_4017_b58ddbcda30e1c32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_RemoveInvalidCharacters(i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"6c52abc9_9d85_4d73_87685444aff598ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipCounter = StrConcat4(str_TipCounterFolder, i_str_TipCounter, Translate(\".txt\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"9a0c8423_5564_4a99_9e7693253baf2bbe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbln_FileExists = HSLExtensions::File::Exists(str_TipCounter);\r\n// }} \"\"\r\n// {{ 1535 1 0 \"de9e5522_bd6b_4945_b9f7749e2f18ec01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_FileExists == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1536 1 0 \"377a78ea_d5ab_46c4_865644e325c976c7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(ML_STAR, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"be8da422_246d_4d8e_a2fa0e7c9286e908\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Now creating tip counter:  \"), i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 1538 1 0 \"de9e5522_bd6b_4945_b9f7749e2f18ec01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"c759dad7_6e02_4a25_af47283de2295495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1540 1 0 \"40fa33f3_c6cc_4e09_807853b2ed2af18f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Now reading tip counter:  \"), i_str_TipCounter);\r\n// }} \"\"\r\n{\r\n   variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition;\r\n   string str_Temp;\r\n   file ReadTipCounter;\r\n\r\n   ReadTipCounter.RemoveFields();\r\n   ReadTipCounter.AddField(\"LAB_ID\",str_LabID,hslString);\r\n   ReadTipCounter.AddField(\"POS_ID\",str_PosID,hslString);\r\n\r\n   ReadTipCounter.SetExtendedProperties(\"HDR=YES\");\r\n   ReadTipCounter.SetExtendedProperties(\"Text\");\r\n   ReadTipCounter.SetDelimiter(hslTabDelimited);\r\n   ReadTipCounter.Open(str_TipCounter, hslAppend);\r\n   \r\n\r\n   while(ReadTipCounter.Eof() == 0)\r\n   {\r\n      ReadTipCounter.ReadRecord();\r\n\r\n      if(ML_STAR.IsValidLabwareForCurrentDeckLayout(str_LabID))\r\n      {\r\n         io_seq_TipSequence.Add(str_LabID,str_PosID);\r\n      }\r\n   }\r\n\r\n   ReadTipCounter.Close();\r\n   ReadTipCounter.RemoveFields();\r\n\r\n   io_seq_TipSequence.SetCurrentPosition(1);\r\n}\r\n// {{ 1542 1 0 \"de9e5522_bd6b_4945_b9f7749e2f18ec01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_LocalTipCounterRead\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCounter_SetShow\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable l_strSequenceName;\r\nprivate variable l_intTotalPositions;\r\nprivate variable l_intAvailable;\r\nprivate variable l_strError;\r\nprivate variable l_intTipType;\r\nprivate variable l_strInstrumentClass;\r\nprivate variable l_strLabID;\r\nprivate variable l_intEmptyCheck;\r\n// {{ 5 \"TipCounter_SetShow\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1113 1 0 \"fb2b9e71_e930_469b_8caa9819b65a26a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1114 1 0 \"ecb55238_39ef_4e6a_aaafa9e0c567cb59\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 1116 1 0 \"0da5c76a_5b94_4b2d_9d63978914846608\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1117 1 0 \"fb2b9e71_e930_469b_8caa9819b65a26a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"75e91eaa_6fca_4365_aa00667af6b6c93e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_OFFSET_GLOBAL::INIT::InitializeVariables();\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"c33027d9_1dc3_401a_846a9f725b7a9c9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::InitTipCountingLibrary();\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"3cf8fd64_ff07_4c3a_8ed9b83b2a3b6240\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_TipCounter = StrConcat2(i_str_TipCounter, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1121 1 0 \"c98e22ba_44a2_44cb_8028c70655e3ed9d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_str_TipCounter == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"109ad012_a1b6_4bff_a4c38558217e6c49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strError = StrConcat4(Translate(\"Tip counter '\"), i_str_TipCounter, Translate(\"' is invalid!\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"e359a53c_a8d7_4a59_b671559248057664\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nErrRaise(101, l_strError);\r\n// }} \"\"\r\n// {{ 1124 1 0 \"c98e22ba_44a2_44cb_8028c70655e3ed9d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 1125 1 0 \"e68a2085_603c_4576_b07c37a717414937\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strLabID = SeqGetLabwareId(io_seq_TipSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 1126 1 0 \"efe02e4f_9fba_4bf1_94f731a6f59fca55\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_strLabID = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1127 1 0 \"2b42ec5a_d8d9_4c44_bc7e9d023cbc42f9\" \"{B31F353B-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_intEmptyCheck = io_seq_TipSequence.GetCurrentPosition();\r\n// }} \"\"\r\n{\r\n   sequence sequenceObj;\r\n\r\n   ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), sequenceObj);\r\n   l_strLabID = sequenceObj.GetLabwareId();\r\n\r\n   if(l_intEmptyCheck == 0) ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), io_seq_TipSequence);\r\n}\r\n// {{{ 1129 1 0 \"ec09b446_e5cb_46ea_b34d7c7943ff2404\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetSequenceName(ML_STAR, io_seq_TipSequence, l_strSequenceName, l_intTotalPositions);\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"4d425b7a_a8b2_4df3_af75c5ebd4f4c637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetTipType(ML_STAR, l_strLabID, l_intTipType);\r\n// }} \"\"\r\n// {{ 1131 1 0 \"f81b6d9d_3eaa_4028_ae599aeb9562ba85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_intTipType != -1)\r\n{\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"d538d340_b634_4801_967b85458cb58604\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     Start and End position ::  \"), i_int_StartPosition, Translate(\" - \"), i_int_EndPosition);\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"f8f3c273_9ac5_41cf_92c98e0ef10456e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strInstrumentClass = DevGetInstrumentName(ML_STAR);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"7c72e7ac_b6e5_4b49_a0765312cc53642f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::CheckTipCounterName(i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"24c4b78a_1114_408a_8db2fbb6d1cab259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Read tip counter:  \"), i_str_TipCounter);\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"016644af_a5cc_4629_ba9278ee030a9e43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::CreateNewHxElementCounter(io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1137 1 0 \"cdd3df33_c314_4f82_b9421936524c9c45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::ReadFromHxElementCounter(ML_STAR, io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1138 1 0 \"90a184be_8010_4e33_81b10715add3ba5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::EditSequence2(ML_STAR, io_seq_TipSequence, BOOLEON::FALSE, i_int_StartPosition, i_int_EndPosition, i_int_TimeOut);\r\n// }} \"\"\r\n// {{{ 1139 1 0 \"7df6a44b_52e9_48ec_bfecdba09e565cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::WriteHxElementCounter(io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass);\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"55d5e758_d461_425a_886d5e45286ea4b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_intAvailable = SeqGetTotal(io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"342d79c8_ae66_421a_8e4197088f614e0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(l_strSequenceName, Translate(\" :: \"), l_intAvailable, Translate(\" / \"), l_intTotalPositions, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"901e4536_b168_4be3_bcc395a7a25a56f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_TipSequence, 5, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1143 1 0 \"f81b6d9d_3eaa_4028_ae599aeb9562ba85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1144 1 0 \"0a523a60_8738_4272_887e95578cd7f542\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"COULD NOT DETERMINE TIP TYPE!\"));\r\n// }} \"\"\r\n// {{ 1145 1 0 \"f81b6d9d_3eaa_4028_ae599aeb9562ba85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1146 1 0 \"0792faca_5c5f_4269_aee80f0afaf068be\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"417e245f_6270_4b86_912c2f860d16f40f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 1148 1 0 \"0792faca_5c5f_4269_aee80f0afaf068be\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"TipCounter_SetShow\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInteger\" \"Begin\"\r\nprivate function _ConvertToInteger( variable & io_Value ) void {\r\n// }} \"\"\r\n// {{ 5 \"_ConvertToInteger\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1412 1 0 \"28c4ea7b_48bb_4b10_b72ed76d4a8739d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrConcat2(io_Value, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"fdd205cd_aef4_4e23_864df13ce8ffdad8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nio_Value = StrIVal(io_Value);\r\n// }} \"\"\r\n// {{{ 5 \"_ConvertToInteger\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Optimized1mLTipPickup\" \"Begin\"\r\nfunction Optimized1mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate variable flt_YRaster;\r\nprivate variable int_TotalPositionsRemaining;\r\nprivate variable bool_FileExists;\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_TipsNeeded;\r\nprivate sequence seq_RemainingSequence;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate file WriteFile;\r\nprivate variable bln_Used;\r\nprivate file SortFile;\r\nprivate variable arr_GroupedLabID[];\r\nprivate variable arr_GroupedXCoords[];\r\nprivate variable arr_GroupedCounts[];\r\nprivate variable int_TotalOptions;\r\nprivate file UpdateFile;\r\nprivate variable arr_GroupNumber[];\r\nprivate variable int_SeqIndex;\r\nprivate variable str_LabID;\r\nprivate variable str_PosID;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_CurrentX;\r\nprivate variable flt_CurrentY;\r\nprivate variable flt_TargetX;\r\nprivate variable flt_PreviousY;\r\nprivate variable bln_OptimizationNeeded;\r\nprivate variable bln_EnoughTipsLoaded;\r\nprivate dialog customDialog7F76208478B54fc8976FBA49C9208278;\r\nprivate variable str_TipMessage;\r\nprivate variable flt_TipCapacity;\r\nprivate variable str_TipName;\r\n// {{ 5 \"Optimized1mLTipPickup\" \"InitLocals\"\r\no_str_ChannelPattern = 0;\r\n// }} \"\"\r\n// {{ 371 1 0 \"cf769fd9_4d98_4f21_a2b9368ec5cfa97d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 372 1 0 \"ff8050e6_b88e_4228_a60ff028c843a5e1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 374 1 0 \"1bfca4ff_1962_47a7_b7c1ddf1ddc030b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 375 1 0 \"cf769fd9_4d98_4f21_a2b9368ec5cfa97d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 376 1 0 \"b9d758ba_677a_4b5e_92b90e3685e20ad2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 377 1 0 \"156754fb_8da1_43d2_825b4c4dffaa029e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet1mLChannelCount(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"5afb9412_01d6_4879_8c743dc9df5bdc73\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"45220874_539f_468b_9f7a55a957b1d600\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, i_seq_ControlSequence);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"1005b078_4044_4658_8981b4fffa21c769\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositionsRemaining = SeqGetTotal(i_seq_ControlSequence);\r\n// }} \"\"\r\n// {{ 381 1 0 \"5f76d4f9_92b7_4969_b55f32145837dbc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipsNeeded = int_TotalPositionsRemaining;\r\n// }} \"\"\r\n// {{ 382 1 0 \"4a665744_325a_4e7a_aa31b3655ac0e9b3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded > int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 383 1 0 \"c2cb78a6_52c6_4141_924a59525840fea7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipsNeeded = int_TotalChannels;\r\n// }} \"\"\r\n// {{ 384 1 0 \"4a665744_325a_4e7a_aa31b3655ac0e9b3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 385 1 0 \"17cf1abe_7b93_43ee_81a508eb844a2143\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded == 0)\r\n{\r\n// }} \"\"\r\n// {{ 386 1 0 \"63439744_55f2_49ab_b217da8e54088a74\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 387 1 0 \"3315c365_3ae1_4327_9d31c3693f828e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 388 1 0 \"63439744_55f2_49ab_b217da8e54088a74\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 389 1 0 \"86aed8e3_27e5_467b_b310446b10d182d4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 390 1 0 \"17cf1abe_7b93_43ee_81a508eb844a2143\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 391 1 0 \"ae6b6124_40fe_46bd_809f9670a8c06b08\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (BOOLEON::TRUE == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 392 1 0 \"6944e0f4_6f68_4b06_85c4fb84577a019d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCheck(ML_STAR, io_seq_TipSequence, i_str_TipCounter, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"1dd2f6b0_ab60_461f_ae83822e28dd8398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_RemainingSequence, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 394 1 0 \"617ab7cc_9e9c_458d_98aa0f5dec9cc6c8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_RemainingSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 395 1 0 \"94190447_1bdf_448e_9df45e9d72e50462\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SortSequenceYPriority(ML_STAR, seq_RemainingSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 396 1 0 \"47330eff_16bd_4b9e_bdf343b61c9051e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{{ 397 1 0 \"e78cd55d_95d2_48cf_8db3d599cc5b7400\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 398 1 0 \"0aec118a_dea6_4574_b6a2c8fdb684bc28\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 399 1 0 \"d1f23c98_04ec_42b5_bea7f08d4100d537\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 400 1 0 \"0aec118a_dea6_4574_b6a2c8fdb684bc28\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 401 1 0 \"8e38af26_704f_4815_89f1a86387cb40eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildChannelPattern(int_TipsNeeded, int_TotalChannels, o_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 402 1 0 \"749c8882_11da_4bd4_894f906d8a80947d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 403 1 0 \"c3ff48b9_a775_4329_a37e794b8cf8430f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 404 1 0 \"dad70b1d_09df_42e6_b8ec46aae962a94a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_SeqIndex = 0; int_SeqIndex < int_TipsNeeded;)\r\n{\r\nint_SeqIndex = int_SeqIndex + 1;\r\n// }} \"\"\r\n// {{{ 405 1 0 \"2b6551e2_bdf7_48a0_852307ef9f81754a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 406 1 0 \"35ec9408_8796_4326_b46a77a6a9ad0e27\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 407 1 0 \"61ee662c_376c_4e3e_965d07ff027cc318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(seq_RemainingSequence, 1);\r\n// }} \"\"\r\n// {{{ 408 1 0 \"ce4264d4_1bdf_4d89_aab5c8c450008a72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_CurrentX, flt_CurrentY, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 409 1 0 \"79637ec8_74a6_49d5_9045d6fcd7e556a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY <= arr_YMax.ElementAt( int_SeqIndex -1))\r\n{\r\n// }} \"\"\r\n// {{ 410 1 0 \"33523935_7b56_45f3_b9026b7df89b012d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY >= arr_YMin.ElementAt( int_SeqIndex -1))\r\n{\r\n// }} \"\"\r\n// {{ 411 1 0 \"8cb3784d_5c2d_4cf7_bb5f00482b9a3399\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SeqIndex == 1)\r\n{\r\n// }} \"\"\r\n// {{ 412 1 0 \"96538746_c20a_433f_ac2a6dc03ee4ba8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TargetX = flt_CurrentX;\r\n// }} \"\"\r\n// {{ 413 1 0 \"b03df9f7_83fe_4cb1_8e398f6257747414\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_CurrentY;\r\n// }} \"\"\r\n// {{ 414 1 0 \"8cb3784d_5c2d_4cf7_bb5f00482b9a3399\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 415 1 0 \"c8c14864_7529_4468_bd4b29ce78871f53\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentX != flt_TargetX)\r\n{\r\n// }} \"\"\r\n// {{ 416 1 0 \"90650163_913a_4d98_b1b6f04390cd2cbb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 417 1 0 \"1b6a59ae_e5e8_492d_9ac76d982f927c2e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 418 1 0 \"c8c14864_7529_4468_bd4b29ce78871f53\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 419 1 0 \"05930ba5_d41c_4739_bb01300f043a71e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY > flt_PreviousY)\r\n{\r\n// }} \"\"\r\n// {{ 420 1 0 \"8d9062f3_3aa0_4fe2_977f5c49b7b4db34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 421 1 0 \"7975ce62_8579_4363_9a4c4e683e032fc6\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 422 1 0 \"05930ba5_d41c_4739_bb01300f043a71e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 423 1 0 \"69887eb8_174b_4fdf_a72c4ad2d66d5065\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_CurrentY;\r\n// }} \"\"\r\n// {{ 424 1 0 \"8cb3784d_5c2d_4cf7_bb5f00482b9a3399\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 425 1 0 \"33523935_7b56_45f3_b9026b7df89b012d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 426 1 0 \"36ba7e44_9265_4924_b0f688c96af2cc5e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 427 1 0 \"9d903474_f5f6_420a_81bb265ef0e4f237\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 428 1 0 \"33523935_7b56_45f3_b9026b7df89b012d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 429 1 0 \"79637ec8_74a6_49d5_9045d6fcd7e556a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 430 1 0 \"3a0c7e50_9b3d_485e_bbf918d5fd692d31\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 431 1 0 \"67b48904_c3c2_4713_aa445d42ce5c5d2c\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 432 1 0 \"79637ec8_74a6_49d5_9045d6fcd7e556a9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 433 1 0 \"dc610b9b_bbfc_41e1_bc7be416ce52850c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_PreviousY - flt_YRaster;\r\n// }} \"\"\r\n// {{ 434 1 0 \"dad70b1d_09df_42e6_b8ec46aae962a94a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 435 1 0 \"10b42ed3_8589_467b_a0869326693f1e11\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_RemainingSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 436 1 0 \"749c8882_11da_4bd4_894f906d8a80947d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 437 1 0 \"f51a2f33_2ef9_42fb_97fe75ace8133887\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_OptimizationNeeded == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 438 1 0 \"1d18bd64_4344_4c3b_b260debc70c5039d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 439 1 0 \"90fdc995_df18_4438_9c5f2ae004ed0bda\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 440 1 0 \"c7cce388_17ea_474b_8ed176e1bbc3cdb1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 441 1 0 \"90fdc995_df18_4438_9c5f2ae004ed0bda\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 442 1 0 \"fbfbd48b_efd7_4555_bea9746d989d85e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequence(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 443 1 0 \"bc37981f_03fe_4815_856ee700ccccb605\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequenceRaster(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE, flt_YRaster);\r\n// }} \"\"\r\n// {{ 444 1 0 \"dc1954a1_445f_44c1_84c2549e0da10194\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX;\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"INDEX\", int_PositionCount, hslInteger);\r\n   WriteFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   WriteFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\n   WriteFile.AddField(\"GROUP\",int_Group,hslInteger);\r\n\r\n   int_TotalValues = seq_RemainingSequence.GetTotal();\r\n\r\n   WriteFile.SetExtendedProperties(\"HDR=YES\");\r\n   WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite);\r\n   \r\n   int_PositionCount = 1;   \r\n   int_Group = 0;\r\n   flt_CurrentX = -100.0;\r\n   for(i = 0; i < int_TotalValues;)\r\n   {\r\n      i = i + 1;\r\n      int_ChannelIndex = int_ChannelIndex + 1;\r\n\r\n      seq_RemainingSequence.SetCurrentPosition(i);\r\n\r\n      str_LabID = seq_RemainingSequence.GetLabwareId();\r\n      str_PosID = seq_RemainingSequence.GetPositionId();\r\n      DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n\r\n      if(flt_CurrentX != flt_X_Coord)\r\n      {\r\n         flt_CurrentX = flt_X_Coord;\r\n         int_Group = int_Group + 1;\r\n         int_ChannelIndex = 1;\r\n      }\r\n\r\n      if(int_ChannelIndex > int_TotalChannels)\r\n      {\r\n         int_ChannelIndex = 1;\r\n         flt_CurrentX = flt_X_Coord;\r\n         int_Group = int_Group + 1;\r\n      }\r\n            \r\n      WriteFile.WriteRecord();\r\n\r\n      int_PositionCount = int_PositionCount + 1;\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n}\r\n// {{ 446 1 0 \"ed0b5112_55e4_4635_997daa9456cb2658\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 447 1 0 \"1f202f8e_a990_441f_b6f545ad0450e1e3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedLabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 448 1 0 \"907f4b7f_9e51_40d2_a2e46ca8010f4791\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedXCoords.SetSize(0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 449 1 0 \"e73b9a24_949f_43dc_84ffcc0f9a64ce1c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupNumber.SetSize(0);\r\n// }} \"\"\r\n// {{ 450 1 0 \"8507f2f7_3be3_459c_a1b5a42fc6b401ea\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedCounts.SetSize(0);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, int_Group;\r\n\r\nSortFile.RemoveFields();\r\n\r\n      //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\";\r\n      str_SQL = \"SELECT [GROUP], N FROM (SELECT [GROUP], COUNT(*) AS N FROM SORT GROUP BY [GROUP]) ORDER BY [GROUP] ASC\";\r\n      //SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n      SortFile.AddField(\"GROUP\", int_Group, hslFloat);\r\n      SortFile.AddField(\"N\", int_Count, hslInteger);\r\n\r\n      int_TotalValues = seq_RemainingSequence.GetTotal();\r\n\r\n      SortFile.SetExtendedProperties(\"HDR=YES\");\r\n      SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n   \r\n      str_LabID = \"\";\r\n      flt_Y_Coord = 0.0;\r\n\r\n      while(SortFile.Eof() == 0)\r\n      {\r\n         SortFile.ReadRecord();\r\n         arr_GroupNumber.AddAsLast(int_Group);\r\n         arr_GroupedCounts.AddAsLast(int_Count);\r\n      }\r\n\r\n      SortFile.Close();\r\n      SortFile.RemoveFields();\r\n\r\n}\r\n// {{ 452 1 0 \"584ea2f0_d870_443c_94dd6ed0d13e5d68\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 453 1 0 \"64f2fc95_b796_4657_87124cdadf71ae30\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalOptions=arr_GroupedCounts.GetSize();\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 454 1 0 \"68443eba_7a48_4dc1_b0f3684344378a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Counts           Group\"), arr_GroupedCounts, arr_GroupNumber);\r\n// }} \"\"\r\n// {{{ 455 1 0 \"535f0b9e_b6aa_490a_bf8dfaf9d5761b76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_3(Translate(\"Counts     Lab          X\"), arr_GroupedCounts, arr_GroupedLabID, arr_GroupedXCoords);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 456 1 0 \"422bb0dd_c8d3_4465_9229dc15d5b2c97a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount;\r\n\r\n   bln_UseOptimization = hslFalse;\r\n\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"GROUP\", int_Group, hslInteger);\r\n\r\n   str_SQL = \"SELECT INDEX, LAB_ID, X_COORD, Y_COORD, [GROUP] FROM SORT ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC\";\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      //Util::Lookup(arr_GroupedCounts,int_Group,a);\r\n      //Trace(\"Group:  \", int_Group,\"  Count:  \",arr_GroupedCounts.GetAt(int_Group-1),\"  Tips needed:  \",int_TipsNeeded);\r\n      if(arr_GroupedCounts.GetAt(int_Group-1) >= int_TipsNeeded)\r\n      {\r\n         int_Group = StrConcat2(int_Group,\"\");\r\n         bln_UseOptimization = hslTrue;\r\n         break;\r\n      }\r\n   }\r\n\r\n   //int_Index = StrConcat2(int_Index,\"\");   \r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n//Trace(\"Lab ID:  \",str_LabID,\"  X Coord:  \",flt_XCoord);\r\n//Trace(\"Group:  \",int_Group);\r\n//Trace(\"Use Optimization:  \",bln_UseOptimization);\r\nif(bln_UseOptimization == hslTrue)\r\n{\r\n   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\";\r\n\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"GROUP\",int_Group, hslInteger);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   i = 0;\r\n   str_InValue = \"(\";\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      i = i + 1;\r\n      if(i > int_TipsNeeded) break;\r\n      SortFile.ReadRecord();\r\n      if(i > 1) str_InValue = str_InValue + \", \";\r\n      str_InValue = StrConcat2(str_InValue , int_Index);\r\n   }\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   UpdateFile.RemoveFields();\r\n   str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n//Trace(str_SQL);\r\n   UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n   UpdateFile.Close();\r\n   UpdateFile.RemoveFields();\r\n}\r\nelse\r\n{\r\n   str_SQL = \"SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC\";\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n      i = 0;\r\n   str_InValue = \"(\";\r\n   int_ChannelCount = 1;\r\n   int_UpdateCount = 0;\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      i = i + 1;\r\n      if(int_ChannelCount > int_TipsNeeded) break;\r\n      if(flt_Y_Coord <= arr_YMax.GetAt(int_ChannelCount-1))\r\n      {\r\n         if(flt_Y_Coord >= arr_YMin.GetAt(int_ChannelCount-1))\r\n         {\r\n            if(int_ChannelCount > 1) str_InValue = str_InValue + \", \";\r\n            str_InValue = StrConcat2(str_InValue , int_Index);\r\n            int_ChannelCount = int_ChannelCount + 1;\r\n            int_UpdateCount = int_UpdateCount + 1;\r\n         }\r\n      }\r\n   }\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_UpdateCount>0)\r\n   {\r\n      UpdateFile.RemoveFields();\r\n      str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n\r\n      UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      UpdateFile.Close();\r\n      UpdateFile.RemoveFields();\r\n   }\r\n}\r\n\r\n}\r\n// {{ 458 1 0 \"79ca8ef7_0859_4630_9edbcfc4a7206bb0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 459 1 0 \"8aa6a639_609a_4ac9_90b1aeeee2dbc418\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_seq_TipSequence);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT USED, LAB_ID, POS_ID FROM SORT ORDER BY USED DESC, LAB_ID ASC, X_COORD ASC, Y_COORD DESC\";\r\n\r\n   SortFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      SeqAdd(io_seq_TipSequence, Translate(str_LabID), Translate(str_PosID));\r\n   }\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n}\r\n// {{ 461 1 0 \"aa643804_178c_4baf_84594dbef4d47f6c\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_TipSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 462 1 0 \"603f136b_cea4_408a_89602343754e6caa\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_EnoughTipsLoaded = BOOLEON::TRUE;\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT COUNT(*) AS N FROM SORT WHERE USED = 2\";\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   SortFile.ReadRecord();\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_Count < int_TipsNeeded) bln_EnoughTipsLoaded = hslFalse;\r\n}\r\n// {{ 464 1 0 \"2d293935_3f70_4483_81a5583e1cb4ffb9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_EnoughTipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 465 1 0 \"45ce0a0b_c565_49a7_856bcda016d43338\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{{ 466 1 0 \"27043be1_606e_480d_934ba065d7f07b19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCapacityCheck(ML_STAR, io_seq_TipSequence, flt_TipCapacity);\r\n// }} \"\"\r\n// {{ 467 1 0 \"d42dfe54_4b07_4e2b_baae65c3945b678f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_TipCapacity == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 468 1 0 \"052611b9_47dc_4c48_870452e835113684\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 469 1 0 \"d42dfe54_4b07_4e2b_baae65c3945b678f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 470 1 0 \"67df56f1_3c0c_427a_abd0c4c16332cad9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 471 1 0 \"78154304_1a25_4eae_8b9b75d22d615ece\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 472 1 0 \"4a741716_8aee_4a29_9872c9785017bc55\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialog7F76208478B54fc8976FBA49C9208278.InitCustomDialog( \"4a741716_8aee_4a29_9872c9785017bc55\" );\r\ncustomDialog7F76208478B54fc8976FBA49C9208278.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialog7F76208478B54fc8976FBA49C9208278.ShowCustomDialog();\r\n// }} \"\"\r\n// {{{ 473 1 0 \"c75a23cc_72d8_41ff_a89e6be443eecb3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(ML_STAR, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"78888d10_3cd1_4681_864a8b09d8e4fd05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCounter_Edit(ML_STAR, io_seq_TipSequence, i_str_TipCounter, 99999);\r\n// }} \"\"\r\n// {{ 475 1 0 \"2d293935_3f70_4483_81a5583e1cb4ffb9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 476 1 0 \"46cd72e6_d4cd_43a9_b9b3050e93669a9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 477 1 0 \"2d293935_3f70_4483_81a5583e1cb4ffb9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 478 1 0 \"dc1954a1_445f_44c1_84c2549e0da10194\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 479 1 0 \"f51a2f33_2ef9_42fb_97fe75ace8133887\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 480 1 0 \"6edd3fab_47cf_4d12_8c1c0dc9e7ffb4ca\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 481 1 0 \"f51a2f33_2ef9_42fb_97fe75ace8133887\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"ae6b6124_40fe_46bd_809f9670a8c06b08\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 483 1 0 \"1a0e64cf_770c_4136_a06f09b7186be979\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 484 1 0 \"e1697e79_74b0_462b_8fe1066a5eb13603\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 485 1 0 \"1a0e64cf_770c_4136_a06f09b7186be979\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Optimized1mLTipPickup\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_SortSequenceYPriority\" \"Begin\"\r\nprivate function _SortSequenceYPriority( device & Instrument, sequence & io_Sequence ) void {\r\n// }} \"\"\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable str_SQL_Sort;\r\n// {{ 5 \"_SortSequenceYPriority\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1572 1 0 \"803725d1_f690_4985_96c7c2207e9a9e1b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{{ 1573 1 0 \"7c7872d1_05ae_4674_a2ab5208f42f12c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM SORT ORDER BY Y_COORD DESC, X_COORD ASC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n{\r\n   variable int_CurrentPosition;\r\n   variable int_TotalSequencePositions;\r\n   sequence seq_AdjustedSequence;\r\n   variable i;\r\n\r\n   file WriteFile;\r\n   file ReadFile;\r\n   variable str_LabID;\r\n   variable str_PosID;\r\n   variable flt_X;\r\n   variable flt_Y;\r\n   variable arr_Coordinates[];\r\n\r\n   int_CurrentPosition = io_Sequence.GetCurrentPosition();\r\n\r\n   seq_AdjustedSequence.CopySequence(io_Sequence);\r\n\r\n   int_TotalSequencePositions = io_Sequence.GetTotal();\r\n\r\n   SeqRemoveAll(io_Sequence);\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n\r\n   if(WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite))\r\n   {\r\n\r\n      for(i = int_CurrentPosition; i <= int_TotalSequencePositions;)\r\n      {\r\n         if(int_CurrentPosition == 0) break;\r\n         seq_AdjustedSequence.SetCurrentPosition(i);\r\n\r\n         if(seq_AdjustedSequence.GetLabwareId() != \"\" && seq_AdjustedSequence.GetPositionId() != \"\") \r\n         {\r\n            str_LabID = seq_AdjustedSequence.GetLabwareId();\r\n            str_PosID = seq_AdjustedSequence.GetPositionId();\r\n            Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID);\r\n            flt_X = arr_Coordinates[0];\r\n            flt_Y = arr_Coordinates[1];\r\n\r\n            WriteFile.WriteRecord();\r\n         }\r\n\r\n         i = i + 1;\r\n      }\r\n\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n\r\n   ReadFile.RemoveFields();\r\n   ReadFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   ReadFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   ReadFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   ReadFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n\r\n   if(ReadFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead, str_SQL_Sort))\r\n   {\r\n      while(ReadFile.Eof() == 0)\r\n      {\r\n         ReadFile.ReadRecord();\r\n         io_Sequence.Add(str_LabID,str_PosID);\r\n      }\r\n   }\r\n\r\n   else\r\n   {\r\n      Trace(\"ERROR OCCURRED DURING SORT\");\r\n      io_Sequence.CopySequence(seq_AdjustedSequence);\r\n   }\r\n\r\n   ReadFile.Close();\r\n   ReadFile.RemoveFields();\r\n\r\n   io_Sequence.SetCurrentPosition(1);\r\n}\r\n// {{{ 5 \"_SortSequenceYPriority\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Optimized1mLTipPickup2\" \"Begin\"\r\nfunction Optimized1mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void {\r\n// }} \"\"\r\nprivate dialog customDialog658827E8DE2440068F918232E0BE9E71;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_CurrentX;\r\nprivate variable flt_TipCapacity;\r\nprivate variable flt_CurrentY;\r\nprivate variable int_TotalOptions;\r\nprivate variable flt_YRaster;\r\nprivate variable _strFunctionName;\r\nprivate variable bln_OptimizationNeeded;\r\nprivate variable str_LabID;\r\nprivate variable bool_FileExists;\r\nprivate variable str_TipMessage;\r\nprivate variable flt_PreviousY;\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable flt_TargetX;\r\nprivate variable int_TotalChannels;\r\nprivate variable str_PosID;\r\nprivate variable int_TipsNeeded;\r\nprivate variable bln_EnoughTipsLoaded;\r\nprivate variable str_TipName;\r\nprivate sequence seq_RemainingSequence;\r\nprivate variable arr_GroupedXCoords[];\r\nprivate variable arr_GroupNumber[];\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable arr_GroupedCounts[];\r\nprivate variable arr_GroupedLabID[];\r\nprivate file WriteFile;\r\nprivate file SortFile;\r\nprivate file UpdateFile;\r\nprivate variable int_ChannelIndex;\r\nprivate variable str_Value;\r\nprivate variable int_ChannelValue;\r\nprivate variable arr_ChannelPattern[];\r\nprivate variable int_ChannelSet;\r\nprivate variable int_ChannelActive;\r\n// {{ 5 \"Optimized1mLTipPickup2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 487 1 0 \"cdb3c4ca_9b54_47f5_8feb9ee5138801a5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 488 1 0 \"563544f0_c56d_41a9_ae612efa8687d6ba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 490 1 0 \"57f52d1a_e3e0_4d3f_88801a288e9a007e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 491 1 0 \"cdb3c4ca_9b54_47f5_8feb9ee5138801a5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 492 1 0 \"0b616dbb_f6d9_4a6e_8a847cf550c9f32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet1mLChannelCount(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 493 1 0 \"fdfd3c55_9d35_4122_8eb48505668df95c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\nTrace(\"Y Raster:  \",flt_YRaster);\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 495 1 0 \"b71cc68f_c409_42a2_a87bd97686458802\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TipsNeeded = StrReplace(i_str_ChannelPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{{ 496 1 0 \"9f511a89_db68_4569_924f290ffa33c6f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrFillRight(i_str_ChannelPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 497 1 0 \"7d355a12_b981_4e61_942ad4f394952877\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 498 1 0 \"43d5b84f_b786_415d_94e5b3e189af5df2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 499 1 0 \"7c53d8de_7150_4c56_886bb4e3a7acfa56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrLeft(i_str_ChannelPattern, int_ChannelIndex);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"92a4b972_e06a_4bd4_9e1c4ae28970ac5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrRight(str_Value, 1);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"804fc4e8_cc19_4cb7_aa5008874601b56e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChannelValue = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 502 1 0 \"3027a339_f53d_4aaa_ad5a52c45eab3b17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.AddAsLast(int_ChannelValue);\r\n// }} \"\"\r\n// {{ 503 1 0 \"43d5b84f_b786_415d_94e5b3e189af5df2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"9174e60b_e94f_4834_85f8ebfd5abf27cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded == 0)\r\n{\r\n// }} \"\"\r\n// {{ 505 1 0 \"88109134_74b2_48db_a529dcd83f51010e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 506 1 0 \"a89bd446_2d40_4d22_842d0c12b7e768aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 507 1 0 \"88109134_74b2_48db_a529dcd83f51010e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 508 1 0 \"16788fd8_b828_4959_bc393f013cf3aea5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 509 1 0 \"9174e60b_e94f_4834_85f8ebfd5abf27cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 510 1 0 \"03cef2d1_bc58_485c_b41d56df5f8075ca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (BOOLEON::TRUE == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 511 1 0 \"cbc03f36_02a2_4bfc_9a8e292f350e3df3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCheck(ML_STAR, io_seq_TipSequence, i_str_TipCounter, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 512 1 0 \"405313dd_38c6_4c4b_9049d089880bffd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_RemainingSequence, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 513 1 0 \"0bc40078_74b5_4256_9f9eb59ff667330f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 514 1 0 \"57c4edf1_7690_490e_a107753e3aadd57b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{{ 515 1 0 \"3bcb2dbf_903a_4368_8d34ee2b12c83270\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 516 1 0 \"5488d803_904f_42ca_848237e69f0339ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 517 1 0 \"84db3794_ee40_4eaa_a607bc8ddef2777a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 518 1 0 \"5488d803_904f_42ca_848237e69f0339ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 519 1 0 \"2495df25_cdf2_474f_a3e90193fe859802\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 520 1 0 \"65aa762f_7f53_4a51_8560476952f46705\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 521 1 0 \"264d727b_f2fe_492e_a4d74ef8dfe9a1c0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelSet = 1;\r\n// }} \"\"\r\n// {{ 522 1 0 \"ee4a3e84_216c_4268_a4f011fedb2d6bbc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 523 1 0 \"b7b70f16_e7f4_4f90_b4524775b39d1bee\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_ChannelActive=arr_ChannelPattern.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 524 1 0 \"373e70b8_f96e_4b53_804b0b01d33db2de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelActive == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 525 1 0 \"655bf6d1_4845_4f5b_af3052422def5756\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 526 1 0 \"47fc717d_aa65_48e7_9fecd85d5c8072ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 527 1 0 \"b0fda1e6_3695_4890_83a0f0d8269b6a32\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(seq_RemainingSequence, 1);\r\n// }} \"\"\r\n// {{{ 528 1 0 \"4fe8a834_700c_49bd_b8d217ce06571b6c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_CurrentX, flt_CurrentY, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 529 1 0 \"2fbd8bd9_5cc1_4cd5_a1e24ada492706b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY <= arr_YMax.ElementAt( int_ChannelIndex -1))\r\n{\r\n// }} \"\"\r\n// {{ 530 1 0 \"e0e015c6_9934_4e9e_be95f00476885623\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY >= arr_YMin.ElementAt( int_ChannelIndex -1))\r\n{\r\n// }} \"\"\r\n// {{ 531 1 0 \"1f2f21bb_3d73_4b40_85741cfb63f33fbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelSet == 1)\r\n{\r\n// }} \"\"\r\n// {{ 532 1 0 \"bb3dc4c6_647f_4965_89b35f0858521806\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TargetX = flt_CurrentX;\r\n// }} \"\"\r\n// {{ 533 1 0 \"790f828b_4132_4a49_a34422ef962470b1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_CurrentY;\r\n// }} \"\"\r\n// {{ 534 1 0 \"f87cba77_faa5_48ee_9f66f2d860b8abc8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelSet = int_ChannelSet + 1;\r\n// }} \"\"\r\n// {{ 535 1 0 \"1f2f21bb_3d73_4b40_85741cfb63f33fbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 536 1 0 \"717b86b5_baf7_4b49_9bdd289fa38df516\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentX != flt_TargetX)\r\n{\r\n// }} \"\"\r\n// {{ 537 1 0 \"d198ae37_4647_42ec_b69a190baa337b8f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 538 1 0 \"55a05b80_a0ee_47ed_b05896f26575d6c8\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 539 1 0 \"717b86b5_baf7_4b49_9bdd289fa38df516\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 540 1 0 \"93548fbc_f579_4768_b4eb213caea83f9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY > flt_PreviousY)\r\n{\r\n// }} \"\"\r\n// {{ 541 1 0 \"1b3c45dc_b1d6_4deb_8a32ee870a7bde20\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 542 1 0 \"41af9497_1a2d_4b2a_b7933d0d1cee67fa\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 543 1 0 \"93548fbc_f579_4768_b4eb213caea83f9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 544 1 0 \"dbb78f91_d9a1_42ab_b070697f4ffd350f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelSet = int_ChannelSet + 1;\r\n// }} \"\"\r\n// {{ 545 1 0 \"1f2f21bb_3d73_4b40_85741cfb63f33fbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 546 1 0 \"e0e015c6_9934_4e9e_be95f00476885623\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 547 1 0 \"8ea9e78e_83ce_4064_85a1f87eec789d70\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 548 1 0 \"792e2fe3_eba4_44c6_825ce7ee92c9df9d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 549 1 0 \"e0e015c6_9934_4e9e_be95f00476885623\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"2fbd8bd9_5cc1_4cd5_a1e24ada492706b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 551 1 0 \"820f6f77_3af9_43ce_90a75bb8e40edd7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 552 1 0 \"573b243d_7294_4c50_bf97c0fced02ac60\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 553 1 0 \"2fbd8bd9_5cc1_4cd5_a1e24ada492706b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 554 1 0 \"373e70b8_f96e_4b53_804b0b01d33db2de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 555 1 0 \"e5e4792d_a4b2_4abb_99380ff2ee4f5bf9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE06(Translate(\"Channel Active:  \"), int_ChannelActive, Translate(\"  Previous Y:  \"), flt_PreviousY, Translate(\"  Current X:  \"), flt_CurrentX);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 556 1 0 \"f2d63b90_86ec_4553_9047a5e3cef33e61\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_PreviousY - flt_YRaster;\r\n// }} \"\"\r\n// {{ 557 1 0 \"ee4a3e84_216c_4268_a4f011fedb2d6bbc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 558 1 0 \"08e74d1e_3c7e_4200_8cbb8a8deca650b7\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_RemainingSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 559 1 0 \"2495df25_cdf2_474f_a3e90193fe859802\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 560 1 0 \"7854e589_4fdd_43de_84fb880873e27a69\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_OptimizationNeeded == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 561 1 0 \"098ed406_17ab_4912_8f2fb1e8cd51c6cc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"OPTIMIZE NEEDED!\"));\r\n// }} \"\"\r\n// {{{ 562 1 0 \"d8d859ee_660e_43da_84699fd605d64dff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 563 1 0 \"aee86a20_71d6_4bb2_8504a889e69fa2b8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 564 1 0 \"60751214_c59d_4322_98994bf85951b0fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 565 1 0 \"aee86a20_71d6_4bb2_8504a889e69fa2b8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 566 1 0 \"808ac042_a174_4a1f_b6645fab91c5de1a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequence(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 567 1 0 \"f3cafa71_06b7_448d_990d51b13c774fc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequenceRaster(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE, flt_YRaster);\r\n// }} \"\"\r\n// {{ 568 1 0 \"6a0710f2_f8b0_4fa9_8928e4a77eb178d3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used;\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"INDEX\", int_PositionCount, hslInteger);\r\n   WriteFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   WriteFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\n   WriteFile.AddField(\"GROUP\",int_Group,hslInteger);\r\n\r\n   int_TotalValues = seq_RemainingSequence.GetTotal();\r\n\r\n   WriteFile.SetExtendedProperties(\"HDR=YES\");\r\n   WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite);\r\n   \r\n   int_PositionCount = 1;   \r\n   int_Group = 0;\r\n   flt_CurrentX = -100.0;\r\n   for(i = 0; i < int_TotalValues;)\r\n   {\r\n      i = i + 1;\r\n      int_ChannelIndex = int_ChannelIndex + 1;\r\n\r\n      seq_RemainingSequence.SetCurrentPosition(i);\r\n\r\n      str_LabID = seq_RemainingSequence.GetLabwareId();\r\n      str_PosID = seq_RemainingSequence.GetPositionId();\r\n      DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n\r\n      if(flt_CurrentX != flt_X_Coord)\r\n      {\r\n         flt_CurrentX = flt_X_Coord;\r\n         int_Group = int_Group + 1;\r\n         int_ChannelIndex = 1;\r\n      }\r\n\r\n      if(int_ChannelIndex > int_TotalChannels)\r\n      {\r\n         int_ChannelIndex = 1;\r\n         flt_CurrentX = flt_X_Coord;\r\n         int_Group = int_Group + 1;\r\n      }\r\n            \r\n      WriteFile.WriteRecord();\r\n\r\n      int_PositionCount = int_PositionCount + 1;\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n}\r\n// {{ 570 1 0 \"80f8aff9_1680_41ed_bebe9481bdbfbaee\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 571 1 0 \"10fd002c_f9a1_478a_868cafe5c805156e\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedLabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 572 1 0 \"4586008a_a09d_4747_8a1f23bd449dfb3b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedXCoords.SetSize(0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 573 1 0 \"6a263613_f8d4_4865_960763ccf6b2b0a0\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupNumber.SetSize(0);\r\n// }} \"\"\r\n// {{ 574 1 0 \"609c2f57_99d8_4160_96fb4d1b1973f533\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedCounts.SetSize(0);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, int_Group;\r\n\r\nSortFile.RemoveFields();\r\n\r\n      //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\";\r\n      str_SQL = \"SELECT [GROUP], N FROM (SELECT [GROUP], COUNT(*) AS N FROM SORT GROUP BY [GROUP]) ORDER BY [GROUP] ASC\";\r\n      //SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n      SortFile.AddField(\"GROUP\", int_Group, hslFloat);\r\n      SortFile.AddField(\"N\", int_Count, hslInteger);\r\n\r\n      int_TotalValues = seq_RemainingSequence.GetTotal();\r\n\r\n      SortFile.SetExtendedProperties(\"HDR=YES\");\r\n      SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n   \r\n      str_LabID = \"\";\r\n      flt_Y_Coord = 0.0;\r\n\r\n      while(SortFile.Eof() == 0)\r\n      {\r\n         SortFile.ReadRecord();\r\n         arr_GroupNumber.AddAsLast(int_Group);\r\n         arr_GroupedCounts.AddAsLast(int_Count);\r\n      }\r\n\r\n      SortFile.Close();\r\n      SortFile.RemoveFields();\r\n\r\n}\r\n// {{ 576 1 0 \"2cab2f9f_eeba_4ae9_b5e1bd6e2e73a6cf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 577 1 0 \"548470ae_b18c_4bbf_89fc273c28443be8\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalOptions=arr_GroupedCounts.GetSize();\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 578 1 0 \"e910ba33_5e56_41f2_86fbf3bba64c765a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Counts           Group\"), arr_GroupedCounts, arr_GroupNumber);\r\n// }} \"\"\r\n// {{{ 579 1 0 \"eb0124f9_2cb7_4b57_81d752cafeb41399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_3(Translate(\"Counts     Lab          X\"), arr_GroupedCounts, arr_GroupedLabID, arr_GroupedXCoords);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 580 1 0 \"b68e66e1_2733_430e_ae9e1f3d5aa9c256\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount, int_ChannelIndex;\r\n   variable flt_PreviousY;\r\n\r\n   bln_UseOptimization = hslFalse;\r\n\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"GROUP\", int_Group, hslInteger);\r\n\r\n   str_SQL = \"SELECT INDEX, LAB_ID, X_COORD, Y_COORD, [GROUP] FROM SORT ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC\";\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n\r\n      SortFile.ReadRecord();\r\n      //Util::Lookup(arr_GroupedCounts,int_Group,a);\r\n      //Trace(\"Group:  \", int_Group,\"  Count:  \",arr_GroupedCounts.GetAt(int_Group-1),\"  Tips needed:  \",int_TipsNeeded);\r\n      if(arr_GroupedCounts.GetAt(int_Group-1) >= int_TipsNeeded)\r\n      {\r\n         int_Group = StrConcat2(int_Group,\"\");\r\n         bln_UseOptimization = hslTrue;\r\n         break;\r\n      }\r\n   }\r\n\r\n   //int_Index = StrConcat2(int_Index,\"\");   \r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n//Trace(\"Lab ID:  \",str_LabID,\"  X Coord:  \",flt_X_Coord);\r\n//Trace(\"Group:  \",int_Group);\r\n//Trace(\"Use Optimization:  \",bln_UseOptimization);\r\nif(bln_UseOptimization == hslTrue)\r\n{\r\n   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\";\r\n\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   SortFile.AddField(\"GROUP\",int_Group, hslInteger);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   i = 0;\r\n   int_ChannelIndex = 1;\r\n   str_InValue = \"(\";\r\n   flt_PreviousY = 9999.9;\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      if(i > int_TipsNeeded) break;\r\n      SortFile.ReadRecord();\r\n      if(arr_ChannelPattern.GetAt(int_ChannelIndex-1)==1)\r\n      {\r\n         if(i==0) flt_PreviousY = flt_Y_Coord + flt_YRaster;\r\n         if(flt_Y_Coord <= flt_PreviousY - flt_YRaster)\r\n         {\r\n            i = i + 1;\r\n            if(i > 1) str_InValue = str_InValue + \", \";\r\n            str_InValue = StrConcat2(str_InValue , int_Index);\r\n            int_ChannelIndex = int_ChannelIndex + 1;\r\n         }\r\n      }\r\n      else\r\n      {\r\n         int_ChannelIndex = int_ChannelIndex + 1;\r\n      }\r\n   }\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   UpdateFile.RemoveFields();\r\n   str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n//Trace(str_SQL);\r\n   UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n   UpdateFile.Close();\r\n   UpdateFile.RemoveFields();\r\n}\r\nelse\r\n{\r\n   str_SQL = \"SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC\";\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n      i = 0;\r\n   str_InValue = \"(\";\r\n   int_ChannelCount = 1;\r\n   int_UpdateCount = 0;\r\n   int_ChannelIndex = 1;\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      //loop(int_TotalChannels)\r\n      //{\r\n         //if(int_ChannelIndex > int_TotalChannels) break;\r\n         //if(arr_ChannelPattern.GetAt(int_ChannelIndex)==1)\r\n         //{\r\n            //break;\r\n         //}\r\n         //int_ChannelIndex = int_ChannelIndex + 1;\r\n      //}\r\n\r\n      if(int_ChannelIndex > int_TotalChannels) break;\r\n      SortFile.ReadRecord();\r\n      i = i + 1;\r\n      if(int_ChannelCount > int_TipsNeeded) break;\r\n//Trace(flt_Y_Coord,\"  <= \",arr_YMax.GetAt(int_ChannelIndex-1));\r\n//Trace(flt_Y_Coord,\"  >= \",arr_YMin.GetAt(int_ChannelIndex-1));\r\n      if(flt_Y_Coord <= arr_YMax.GetAt(int_ChannelIndex-1))\r\n      {\r\n         if(flt_Y_Coord >= arr_YMin.GetAt(int_ChannelIndex-1))\r\n         {\r\n            if(int_ChannelCount > 1) str_InValue = str_InValue + \", \";\r\n            str_InValue = StrConcat2(str_InValue , int_Index);\r\n            int_ChannelCount = int_ChannelCount + 1;\r\n            int_UpdateCount = int_UpdateCount + 1;\r\n            int_ChannelIndex = int_ChannelIndex + 1;\r\n         }\r\n      }\r\n   }\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_UpdateCount>0)\r\n   {\r\n      UpdateFile.RemoveFields();\r\n      str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n\r\n      UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      UpdateFile.Close();\r\n      UpdateFile.RemoveFields();\r\n   }\r\n}\r\n\r\n}\r\n// {{ 582 1 0 \"b976ae82_e2ef_466e_903b9e5fe3855d7a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 583 1 0 \"75adf795_ed7e_44f5_9cde833b75a5554e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_seq_TipSequence);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT USED, LAB_ID, POS_ID FROM SORT ORDER BY USED DESC, LAB_ID ASC, X_COORD ASC, Y_COORD DESC\";\r\n\r\n   SortFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      SeqAdd(io_seq_TipSequence, Translate(str_LabID), Translate(str_PosID));\r\n   }\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n}\r\n// {{ 585 1 0 \"4b2f3034_1a2f_44c5_83786a54370344c9\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_TipSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 586 1 0 \"63297389_5f1f_46c7_aa98ad06e79d7182\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_EnoughTipsLoaded = BOOLEON::TRUE;\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT COUNT(*) AS N FROM SORT WHERE USED = 2\";\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   SortFile.ReadRecord();\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_Count < int_TipsNeeded) bln_EnoughTipsLoaded = hslFalse;\r\n}\r\n// {{ 588 1 0 \"18c0b053_e0d6_4199_93cce7d4942f651e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_EnoughTipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 589 1 0 \"d3e34f56_86d1_40e5_ad11ab7018ee241c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{{ 590 1 0 \"fdc18aaa_0d09_4ae8_87653b7e6178016c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCapacityCheck(ML_STAR, io_seq_TipSequence, flt_TipCapacity);\r\n// }} \"\"\r\n// {{ 591 1 0 \"b96623d3_e3ba_47ef_8d6e732718f6e43f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_TipCapacity == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 592 1 0 \"8533f1cf_d148_4381_bf5ee1460e9064d0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 593 1 0 \"b96623d3_e3ba_47ef_8d6e732718f6e43f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 594 1 0 \"3ae4d71f_7a3d_4aab_b7edaace45dff159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 595 1 0 \"21edea81_604d_4e6f_ae5aae7f5681cb3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 596 1 0 \"a41a6d9e_88e5_4b6c_b3c5f24c0807ae2c\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialog658827E8DE2440068F918232E0BE9E71.InitCustomDialog( \"a41a6d9e_88e5_4b6c_b3c5f24c0807ae2c\" );\r\ncustomDialog658827E8DE2440068F918232E0BE9E71.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialog658827E8DE2440068F918232E0BE9E71.ShowCustomDialog();\r\n// }} \"\"\r\n// {{{ 597 1 0 \"71d91bd6_7f17_42a6_aa68f619895fc8d7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(ML_STAR, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"0ad23c4d_b42f_4f0a_b0d6a222081c3b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCounter_Edit(ML_STAR, io_seq_TipSequence, i_str_TipCounter, 99999);\r\n// }} \"\"\r\n// {{ 599 1 0 \"18c0b053_e0d6_4199_93cce7d4942f651e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 600 1 0 \"d2ef1cbb_ecd0_45ff_aa919933c7e6c6d0\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 601 1 0 \"18c0b053_e0d6_4199_93cce7d4942f651e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 602 1 0 \"6a0710f2_f8b0_4fa9_8928e4a77eb178d3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 603 1 0 \"7854e589_4fdd_43de_84fb880873e27a69\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 604 1 0 \"3b4a7163_735a_492e_b46667a639fb058a\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 605 1 0 \"7854e589_4fdd_43de_84fb880873e27a69\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 606 1 0 \"03cef2d1_bc58_485c_b41d56df5f8075ca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 607 1 0 \"050a82a9_18cd_4697_9d045659ccf23341\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 608 1 0 \"7741a637_31fc_4cd8_8ac87d2a9dd08fe3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 609 1 0 \"050a82a9_18cd_4697_9d045659ccf23341\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Optimized1mLTipPickup2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Optimized5mLTipPickup\" \"Begin\"\r\nfunction Optimized5mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void {\r\n// }} \"\"\r\nprivate dialog customDialog1E713D506B7B49588AC668FAFBEF1C52;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_CurrentX;\r\nprivate variable flt_TipCapacity;\r\nprivate variable flt_CurrentY;\r\nprivate variable flt_YRaster;\r\nprivate variable int_TotalOptions;\r\nprivate variable bln_OptimizationNeeded;\r\nprivate variable _strFunctionName;\r\nprivate variable int_TotalPositionsRemaining;\r\nprivate variable str_LabID;\r\nprivate variable bool_FileExists;\r\nprivate variable str_TipMessage;\r\nprivate variable flt_PreviousY;\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable flt_TargetX;\r\nprivate variable int_SeqIndex;\r\nprivate variable int_TotalChannels;\r\nprivate variable str_PosID;\r\nprivate variable int_TipsNeeded;\r\nprivate variable bln_EnoughTipsLoaded;\r\nprivate variable str_TipName;\r\nprivate sequence seq_RemainingSequence;\r\nprivate variable arr_GroupedXCoords[];\r\nprivate variable arr_GroupNumber[];\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable arr_GroupedCounts[];\r\nprivate variable arr_GroupedLabID[];\r\nprivate file SortFile;\r\nprivate file UpdateFile;\r\nprivate file WriteFile;\r\nprivate variable bln_Used;\r\n// {{ 5 \"Optimized5mLTipPickup\" \"InitLocals\"\r\no_str_ChannelPattern = 0;\r\n// }} \"\"\r\n// {{ 611 1 0 \"81227204_1229_454f_aff2a7559ca862b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 612 1 0 \"c419db86_0f77_4e53_bee258c18052c0e2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 614 1 0 \"cd2061c9_cf0d_4672_b9d9cfec69d3b69e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 615 1 0 \"81227204_1229_454f_aff2a7559ca862b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 616 1 0 \"79558700_b2a9_42d8_9adab93c5c4eea5c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str_ChannelPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 617 1 0 \"d42ff746_a3da_47d8_b4d62df67ecf6c83\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet5mLChannelCount(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 618 1 0 \"3b966059_e21f_4b65_9752cbec5dee9e47\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{{ 619 1 0 \"bf47843b_c941_4e5c_865dad7d9ef707e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, i_seq_ControlSequence);\r\n// }} \"\"\r\n// {{{ 620 1 0 \"2bc367f3_bdeb_4f2c_89c9adb60c1a6d67\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TotalPositionsRemaining = SeqGetTotal(i_seq_ControlSequence);\r\n// }} \"\"\r\n// {{ 621 1 0 \"6201ed1b_06ee_4afc_ba887c363e469720\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipsNeeded = int_TotalPositionsRemaining;\r\n// }} \"\"\r\n// {{ 622 1 0 \"9413cc48_692f_49a3_81b88124b877d143\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded > int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 623 1 0 \"a532ee10_1c66_44e7_8e90a34004ff1488\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TipsNeeded = int_TotalChannels;\r\n// }} \"\"\r\n// {{ 624 1 0 \"9413cc48_692f_49a3_81b88124b877d143\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 625 1 0 \"1cfe24db_003c_4464_a32c602e728eb354\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded == 0)\r\n{\r\n// }} \"\"\r\n// {{ 626 1 0 \"c423331e_0891_4dec_a83a4b12b6aecf76\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 627 1 0 \"17f667cc_7997_42fb_972748312f394213\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 628 1 0 \"c423331e_0891_4dec_a83a4b12b6aecf76\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 629 1 0 \"e664d1f4_a200_49ec_8f6518012f426e60\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 630 1 0 \"1cfe24db_003c_4464_a32c602e728eb354\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 631 1 0 \"e405a64e_09ba_4dc6_9e3bea0f3a0a70b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_Used = 0;\r\n// }} \"\"\r\n// {{ 632 1 0 \"0e8d2cd5_8312_4e5f_b3608e8ee30e87b6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (BOOLEON::TRUE == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 633 1 0 \"8a5f61bc_b4ef_4627_8050829f1648d89b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCheck(ML_STAR, io_seq_TipSequence, i_str_TipCounter, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 634 1 0 \"91ee650a_d59d_4eb2_8a269965017b4c5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_RemainingSequence, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 635 1 0 \"b0aff417_e40b_4903_b726f96169297671\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_RemainingSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 636 1 0 \"46fb52fd_8855_4505_a29f943efba905d7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_SortSequenceYPriority(ML_STAR, seq_RemainingSequence);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 637 1 0 \"6656a50c_5bea_42c2_b15c0332872f8f3f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"f15b98fe_2302_4c77_aac91bd6c70ce1e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 639 1 0 \"302ee04c_6026_448e_a9e980c7578be133\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 640 1 0 \"a86b6301_3447_40c5_8b8315efe972ec48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 641 1 0 \"302ee04c_6026_448e_a9e980c7578be133\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 642 1 0 \"feec5c10_21ad_453e_bb5e9dfc110b70ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildChannelPattern(int_TipsNeeded, int_TotalChannels, o_str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 643 1 0 \"69ec4e8a_b4ad_467f_afc9b493cabcf686\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 644 1 0 \"eb66c58b_0dd2_4da6_a960bbd3e04fed31\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 645 1 0 \"6256bd18_c4c7_41ed_ab7d7d6006bfd848\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_SeqIndex = 0; int_SeqIndex < int_TipsNeeded;)\r\n{\r\nint_SeqIndex = int_SeqIndex + 1;\r\n// }} \"\"\r\n// {{{ 646 1 0 \"425fcf04_d590_47fd_8b0deb8dc8a1f5b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"58acd061_c305_4e72_9d74311e84c9cdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"953360ee_289b_45a1_ab09d036e0936046\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(seq_RemainingSequence, 1);\r\n// }} \"\"\r\n// {{{ 649 1 0 \"30a33945_e176_4034_bec6d22bba61e4c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_CurrentX, flt_CurrentY, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 650 1 0 \"8ec86416_84cb_4a82_b2f9eb2de6927692\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_SeqIndex == 1)\r\n{\r\n// }} \"\"\r\n// {{ 651 1 0 \"3dc4efd4_9c68_470c_8f564df88246a9f8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TargetX = flt_CurrentX;\r\n// }} \"\"\r\n// {{ 652 1 0 \"0ce7b2e4_698f_4f4a_aa44ff98bd70baf2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_CurrentY;\r\n// }} \"\"\r\n// {{ 653 1 0 \"8ec86416_84cb_4a82_b2f9eb2de6927692\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 654 1 0 \"2ae83690_355a_46ab_8bd395ed6711ddaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentX != flt_TargetX)\r\n{\r\n// }} \"\"\r\n// {{ 655 1 0 \"bb3d5baf_babe_4333_b36b83092e1a4830\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 656 1 0 \"7dfa5307_4c35_4a4a_9708ca12d2a0a70d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 657 1 0 \"2ae83690_355a_46ab_8bd395ed6711ddaf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 658 1 0 \"77184d01_be1a_4566_ae7aea74adcbc336\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY > flt_PreviousY)\r\n{\r\n// }} \"\"\r\n// {{ 659 1 0 \"06ade6e0_9ea3_415d_997cd31bba6b2a80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 660 1 0 \"cd229ec2_cab4_4781_83f5f1569628a7a7\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 661 1 0 \"77184d01_be1a_4566_ae7aea74adcbc336\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 662 1 0 \"9c6f54dc_112e_40d2_93d25640817a1b23\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_CurrentY;\r\n// }} \"\"\r\n// {{ 663 1 0 \"8ec86416_84cb_4a82_b2f9eb2de6927692\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 664 1 0 \"acdb2a96_f55b_4f72_a784f1de2f7c1d7c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_PreviousY - flt_YRaster;\r\n// }} \"\"\r\n// {{ 665 1 0 \"6256bd18_c4c7_41ed_ab7d7d6006bfd848\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 666 1 0 \"608cdbfb_7f85_421b_bb1842e53bed6bc0\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_RemainingSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 667 1 0 \"69ec4e8a_b4ad_467f_afc9b493cabcf686\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 668 1 0 \"36a71cd3_4521_4ae3_9bab2783dc4e9442\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_OptimizationNeeded == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 669 1 0 \"7816e576_69f2_4b58_a9ee001468cb4653\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequence(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 670 1 0 \"ca0039e1_d751_4125_968e43b3f38b47d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequenceRaster(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE, flt_YRaster);\r\n// }} \"\"\r\n// {{ 671 1 0 \"728066be_b08d_4a76_af138a50280c9c4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX;\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"INDEX\", int_PositionCount, hslInteger);\r\n   WriteFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   WriteFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\n   WriteFile.AddField(\"GROUP\",int_Group,hslInteger);\r\n\r\n   int_TotalValues = seq_RemainingSequence.GetTotal();\r\n\r\n   WriteFile.SetExtendedProperties(\"HDR=YES\");\r\n   WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite);\r\n   \r\n   int_PositionCount = 1;   \r\n   int_Group = 0;\r\n   flt_CurrentX = -100.0;\r\n   for(i = 0; i < int_TotalValues;)\r\n   {\r\n      i = i + 1;\r\n      int_ChannelIndex = int_ChannelIndex + 1;\r\n\r\n      seq_RemainingSequence.SetCurrentPosition(i);\r\n\r\n      str_LabID = seq_RemainingSequence.GetLabwareId();\r\n      str_PosID = seq_RemainingSequence.GetPositionId();\r\n      DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n\r\n      if(flt_CurrentX != flt_X_Coord)\r\n      {\r\n         flt_CurrentX = flt_X_Coord;\r\n         int_Group = int_Group + 1;\r\n         int_ChannelIndex = 1;\r\n      }\r\n\r\n      if(int_ChannelIndex > int_TotalChannels)\r\n      {\r\n         int_ChannelIndex = 1;\r\n         flt_CurrentX = flt_X_Coord;\r\n         int_Group = int_Group + 1;\r\n      }\r\n            \r\n      WriteFile.WriteRecord();\r\n\r\n      int_PositionCount = int_PositionCount + 1;\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n}\r\n// {{ 673 1 0 \"44874661_3057_42ad_8ee4bcf17d7ea056\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 674 1 0 \"bd47444d_65ee_4b48_9a73dd4f4431251d\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedLabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 675 1 0 \"70514244_2892_437c_9b3ad7be20572bf2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedXCoords.SetSize(0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 676 1 0 \"db2e03b1_9a4c_46b3_92c8bc3a84947e86\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupNumber.SetSize(0);\r\n// }} \"\"\r\n// {{ 677 1 0 \"05b87f22_9cd7_4f9e_806cf7d6d44c2258\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedCounts.SetSize(0);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, int_Group;\r\n\r\nSortFile.RemoveFields();\r\n\r\n      //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\";\r\n      str_SQL = \"SELECT [GROUP], N FROM (SELECT [GROUP], COUNT(*) AS N FROM SORT GROUP BY [GROUP]) ORDER BY [GROUP] ASC\";\r\n      //SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n      SortFile.AddField(\"GROUP\", int_Group, hslFloat);\r\n      SortFile.AddField(\"N\", int_Count, hslInteger);\r\n\r\n      int_TotalValues = seq_RemainingSequence.GetTotal();\r\n\r\n      SortFile.SetExtendedProperties(\"HDR=YES\");\r\n      SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n   \r\n      str_LabID = \"\";\r\n      flt_Y_Coord = 0.0;\r\n\r\n      while(SortFile.Eof() == 0)\r\n      {\r\n         SortFile.ReadRecord();\r\n         arr_GroupNumber.AddAsLast(int_Group);\r\n         arr_GroupedCounts.AddAsLast(int_Count);\r\n      }\r\n\r\n      SortFile.Close();\r\n      SortFile.RemoveFields();\r\n\r\n}\r\n// {{ 679 1 0 \"0f4e381a_4f78_4de2_87a621682b61848a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 680 1 0 \"879b54d2_f4cd_4c14_a33e6613503ffdba\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalOptions=arr_GroupedCounts.GetSize();\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 681 1 0 \"7d83b81b_6cd7_4612_aed30673d2f27357\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Counts           Group\"), arr_GroupedCounts, arr_GroupNumber);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"a5b12a53_9a27_47be_81ee38358baa3abd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_3(Translate(\"Counts     Lab          X\"), arr_GroupedCounts, arr_GroupedLabID, arr_GroupedXCoords);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 683 1 0 \"e9ce2f09_c300_427e_963b7548177035d1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount;\r\n\r\n   bln_UseOptimization = hslFalse;\r\n\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"GROUP\", int_Group, hslInteger);\r\n\r\n   str_SQL = \"SELECT INDEX, LAB_ID, X_COORD, Y_COORD, [GROUP] FROM SORT ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC\";\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      //Util::Lookup(arr_GroupedCounts,int_Group,a);\r\n      //Trace(\"Group:  \", int_Group,\"  Count:  \",arr_GroupedCounts.GetAt(int_Group-1),\"  Tips needed:  \",int_TipsNeeded);\r\n      if(arr_GroupedCounts.GetAt(int_Group-1) >= int_TipsNeeded)\r\n      {\r\n         int_Group = StrConcat2(int_Group,\"\");\r\n         bln_UseOptimization = hslTrue;\r\n         break;\r\n      }\r\n   }\r\n\r\n   //int_Index = StrConcat2(int_Index,\"\");   \r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n//Trace(\"Lab ID:  \",str_LabID,\"  X Coord:  \",flt_XCoord);\r\n//Trace(\"Group:  \",int_Group);\r\n//Trace(\"Use Optimization:  \",bln_UseOptimization);\r\nif(bln_UseOptimization == hslTrue)\r\n{\r\n   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\";\r\n\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"GROUP\",int_Group, hslInteger);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   i = 0;\r\n   str_InValue = \"(\";\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      i = i + 1;\r\n      if(i > int_TipsNeeded) break;\r\n      SortFile.ReadRecord();\r\n      if(i > 1) str_InValue = str_InValue + \", \";\r\n      str_InValue = StrConcat2(str_InValue , int_Index);\r\n   }\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   UpdateFile.RemoveFields();\r\n   str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n//Trace(str_SQL);\r\n   UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n   UpdateFile.Close();\r\n   UpdateFile.RemoveFields();\r\n}\r\nelse\r\n{\r\n   str_SQL = \"SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC\";\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n      i = 0;\r\n   str_InValue = \"(\";\r\n   int_ChannelCount = 1;\r\n   int_UpdateCount = 0;\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      i = i + 1;\r\n      if(int_ChannelCount > int_TipsNeeded) break;\r\n      if(flt_Y_Coord <= arr_YMax.GetAt(int_ChannelCount-1))\r\n      {\r\n         if(flt_Y_Coord >= arr_YMin.GetAt(int_ChannelCount-1))\r\n         {\r\n            if(int_ChannelCount > 1) str_InValue = str_InValue + \", \";\r\n            str_InValue = StrConcat2(str_InValue , int_Index);\r\n            int_ChannelCount = int_ChannelCount + 1;\r\n            int_UpdateCount = int_UpdateCount + 1;\r\n         }\r\n      }\r\n   }\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_UpdateCount>0)\r\n   {\r\n      UpdateFile.RemoveFields();\r\n      str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n\r\n      UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      UpdateFile.Close();\r\n      UpdateFile.RemoveFields();\r\n   }\r\n}\r\n\r\n}\r\n// {{ 685 1 0 \"7c3696e4_adf3_4717_b55164fce00a4bb6\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 686 1 0 \"4bb57610_25dc_445d_bd201a01ee739345\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_seq_TipSequence);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT USED, LAB_ID, POS_ID FROM SORT ORDER BY USED DESC, LAB_ID ASC, X_COORD ASC, Y_COORD DESC\";\r\n\r\n   SortFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      SeqAdd(io_seq_TipSequence, Translate(str_LabID), Translate(str_PosID));\r\n   }\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n}\r\n// {{ 688 1 0 \"c0b07f18_4e9c_4e0c_a68e42525457a476\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_TipSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 689 1 0 \"9d43c71f_c5da_4730_b763ffa6c487b769\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_EnoughTipsLoaded = BOOLEON::TRUE;\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT COUNT(*) AS N FROM SORT WHERE USED = 2\";\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   SortFile.ReadRecord();\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_Count < int_TipsNeeded) bln_EnoughTipsLoaded = hslFalse;\r\n}\r\n// {{ 691 1 0 \"89920c34_bfb3_4586_9464ec6aa07b0230\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_EnoughTipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 692 1 0 \"94173776_caf2_4321_aeea6f0f792d7ea1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{{ 693 1 0 \"1dec8f3f_b362_485d_abd3b8ae1e4272df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCapacityCheck(ML_STAR, io_seq_TipSequence, flt_TipCapacity);\r\n// }} \"\"\r\n// {{ 694 1 0 \"1c11c7c5_5aa0_4dc1_b2f85d50e62ce4d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_TipCapacity == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 695 1 0 \"0bf86617_42c7_4285_94e1577425e812e7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 696 1 0 \"1c11c7c5_5aa0_4dc1_b2f85d50e62ce4d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 697 1 0 \"58a38c4b_92a6_42a7_a47dcf3c36a271b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 698 1 0 \"1b137450_161c_4f6b_9bd20fec8f57fe9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 699 1 0 \"da7de0ca_2bef_4fc4_8589ca882ee7f96e\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialog1E713D506B7B49588AC668FAFBEF1C52.InitCustomDialog( \"da7de0ca_2bef_4fc4_8589ca882ee7f96e\" );\r\ncustomDialog1E713D506B7B49588AC668FAFBEF1C52.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialog1E713D506B7B49588AC668FAFBEF1C52.ShowCustomDialog();\r\n// }} \"\"\r\n// {{{ 700 1 0 \"b5c484ee_b08d_423d_873ee7719b679440\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(ML_STAR, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"c4fb84ed_90dc_47da_b22019a3eef9ae44\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCounter_Edit(ML_STAR, io_seq_TipSequence, i_str_TipCounter, 99999);\r\n// }} \"\"\r\n// {{ 702 1 0 \"89920c34_bfb3_4586_9464ec6aa07b0230\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 703 1 0 \"c7e438f8_d0f4_4231_a81e2242716722ef\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 704 1 0 \"89920c34_bfb3_4586_9464ec6aa07b0230\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 705 1 0 \"728066be_b08d_4a76_af138a50280c9c4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 706 1 0 \"36a71cd3_4521_4ae3_9bab2783dc4e9442\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 707 1 0 \"e7b6a0bd_1d3a_429d_83254849cb88942b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 708 1 0 \"36a71cd3_4521_4ae3_9bab2783dc4e9442\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 709 1 0 \"0e8d2cd5_8312_4e5f_b3608e8ee30e87b6\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 710 1 0 \"78c26513_64e9_47e4_88225fcf24008900\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 711 1 0 \"4ee94b00_c0fc_4d63_9013be008ff1f35a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 712 1 0 \"78c26513_64e9_47e4_88225fcf24008900\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Optimized5mLTipPickup\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"DefragTipRacks1mL\" \"Begin\"\r\nfunction DefragTipRacks1mL( device & ML_STAR, sequence & io_seq_Tips ) void {\r\n// }} \"\"\r\nprivate variable _strFunctionName;\r\nprivate sequence seq_TipsEmpty;\r\nprivate sequence seq_TipsRemaining;\r\nprivate variable arr_LabIDs[];\r\nprivate variable int_RemainingLabIDs;\r\nprivate variable int_Index;\r\nprivate variable str_LabID;\r\nprivate sequence seq_Temp;\r\nprivate variable int_NumInSeq;\r\nprivate variable i;\r\nprivate variable int_Position;\r\nprivate variable str_PosID;\r\nprivate file WriteFile;\r\nprivate variable bool_FileExists;\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable arr_PartialLabID[];\r\nprivate variable arr_PartialCount[];\r\nprivate file SortFile;\r\nprivate variable flt_YRaster;\r\nprivate variable int_TotalChannels;\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable int_TotalPartial;\r\nprivate sequence seq_TipsPickUp;\r\nprivate variable int_ChannelIndex;\r\nprivate variable int_LabIndex;\r\nprivate variable flt_YMax;\r\nprivate variable flt_YMin;\r\nprivate variable int_ChannelsSet;\r\nprivate variable arr_ChannelPattern[];\r\nprivate variable str_CurrentLabID;\r\nprivate variable bln_ValueFound;\r\nprivate variable arr_PickUpIndex[];\r\nprivate variable int_TotalSet;\r\nprivate variable int_ChannelEnabled;\r\nprivate sequence seq_TipsPutDown;\r\nprivate variable str_ChannelPattern;\r\nprivate variable int_TotalUpdates;\r\nprivate variable arr_PutDownIndex[];\r\nprivate variable arr_UsedIndex[];\r\nprivate variable arr_PickUpLabware[];\r\n// {{ 5 \"DefragTipRacks1mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 8 1 0 \"82ac5c0b_e232_409f_8485a846dd506e07\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"0417947e_1b01_4b14_9ccccf59a1fb6d6b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 11 1 0 \"b3940cc0_caaa_4573_b383125dee48d123\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 12 1 0 \"82ac5c0b_e232_409f_8485a846dd506e07\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 13 1 0 \"e7884955_1425_4cb4_b1bf078bd0d01929\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet1mLChannelCount(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 14 1 0 \"a621c8f1_99f7_478c_a195843ba77ed1cc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{{ 15 1 0 \"24d41d46_c4e2_4cb9_95dac332bbb3154a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsRemaining);\r\n// }} \"\"\r\n// {{{ 16 1 0 \"ccc19882_1dfb_457f_89bae2051f5990de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_TipsRemaining, io_seq_Tips);\r\n// }} \"\"\r\n// {{{ 17 1 0 \"163b6df4_d097_4300_9d56ed151bbba33a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_TipsRemaining);\r\n// }} \"\"\r\n// {{{ 18 1 0 \"05a19cd3_0ed8_4cbe_97557908beefdb69\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"6985a598_7362_4490_b4647702c97b5d52\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_TempSortingFilePath, Translate(\"TEMP_SORT_FILE\"), Translate(\"TEMP_DEFRAG_FILE\"));\r\n// }} \"\"\r\nTrace(str_TempSortingFilePath);\r\n// {{{ 21 1 0 \"a63eefeb_d453_4ce1_82f6a75ddd92efe4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 22 1 0 \"61035017_203d_41bd_8b0a4a64d8b3b846\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 23 1 0 \"d9730cd0_a0ac_4d2d_802199f3e2f98167\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 24 1 0 \"61035017_203d_41bd_8b0a4a64d8b3b846\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 25 1 0 \"8cc2b861_4a30_4b25_8ab703a2ae74e28f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 26 1 0 \"b30f4632_7fa5_4449_9fd66715d8c1c328\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(seq_TipsRemaining, arr_LabIDs);\r\n// }} \"\"\r\n// {{ 27 1 0 \"9abfe334_f238_49a4_9f8653d0ea539ff9\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_RemainingLabIDs=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 28 1 0 \"a32e8c83_1c14_4481_b4159e58398945fb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_RemainingLabIDs;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 29 1 0 \"bedf85ca_064c_4014_824f324c2cf3307c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=arr_LabIDs.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{{ 30 1 0 \"46b56233_0bf4_4454_9f2b4a0a70743f52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefaultSequence(ML_STAR, str_LabID, 1, seq_Temp);\r\n// }} \"\"\r\n// {{{ 31 1 0 \"6048e11a_5592_42ef_baa131b16e1e79f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumInSeq = SeqGetTotal(seq_Temp);\r\n// }} \"\"\r\n// {{ 32 1 0 \"6725ab43_1a56_410e_81af7fa0b9205564\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_NumInSeq;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 33 1 0 \"139be0bf_db3d_416f_aa769709c16b4171\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 34 1 0 \"1c741253_cfeb_4074_8c0fae78c325aa2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"181d801f_1ccb_40d6_9d725f57e5f412dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"0e6d111d_ac49_456b_97f659df4a680bfe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = SeqLookupPosition(seq_TipsRemaining, str_LabID, str_PosID, 1, 1);\r\n// }} \"\"\r\n// {{ 37 1 0 \"6520b8bc_9b23_4b18_a61dea27050fb0e8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Position == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 38 1 0 \"73f37f11_ed21_4b3b_8e51a2a45e0b05e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_TipsEmpty, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 39 1 0 \"6520b8bc_9b23_4b18_a61dea27050fb0e8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 40 1 0 \"6725ab43_1a56_410e_81af7fa0b9205564\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 41 1 0 \"a32e8c83_1c14_4481_b4159e58398945fb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 42 1 0 \"a117943b_d83f_4eb6_96d650148f86a31a\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TipsEmpty.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 43 1 0 \"c437962b_4d0c_47b6_9ba78e6c740dce61\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 44 1 0 \"02be81e3_92f7_4657_a8580f20513ff18e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used;\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"INDEX\", int_PositionCount, hslInteger);\r\n   WriteFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   WriteFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\n   WriteFile.AddField(\"GROUP\",int_Group,hslInteger);\r\n\r\n   int_TotalValues = seq_TipsRemaining.GetTotal();\r\n\r\n   WriteFile.SetExtendedProperties(\"HDR=YES\");\r\n   WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite);\r\n   \r\n   int_PositionCount = 1;   \r\n   int_Group = 0;\r\n   bln_Used = 1;\r\n   for(i = 0; i < int_TotalValues;)\r\n   {\r\n      i = i + 1;\r\n      int_ChannelIndex = int_ChannelIndex + 1;\r\n\r\n      seq_TipsRemaining.SetCurrentPosition(i);\r\n\r\n      str_LabID = seq_TipsRemaining.GetLabwareId();\r\n      str_PosID = seq_TipsRemaining.GetPositionId();\r\n      DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n            \r\n      WriteFile.WriteRecord();\r\n\r\n      int_PositionCount = int_PositionCount + 1;\r\n   }\r\n\r\n   int_TotalValues = seq_TipsEmpty.GetTotal();\r\n   bln_Used = 0;\r\n   for(i = 0; i < int_TotalValues;)\r\n   {\r\n      i = i + 1;\r\n      int_ChannelIndex = int_ChannelIndex + 1;\r\n\r\n      seq_TipsEmpty.SetCurrentPosition(i);\r\n\r\n      str_LabID = seq_TipsEmpty.GetLabwareId();\r\n      str_PosID = seq_TipsEmpty.GetPositionId();\r\n      DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n            \r\n      WriteFile.WriteRecord();\r\n\r\n      int_PositionCount = int_PositionCount + 1;\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n}\r\n// {{ 46 1 0 \"02be81e3_92f7_4657_a8580f20513ff18e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 47 1 0 \"bcd0fc00_dc63_4b8e_bbc89c072daded5b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (BOOLEON::TRUE == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 48 1 0 \"2b53981a_47c8_424c_9301b18bd3ba2202\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"264b750a_1530_437c_acc90d906a5e20ab\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 50 1 0 \"9a4c4c53_6b3b_4076_a5affe15dc0e7e28\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PartialLabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 51 1 0 \"561cee02_6208_46b3_b328844659382709\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PartialCount.SetSize(0);\r\n// }} \"\"\r\n// {{ 52 1 0 \"2618c78f_149e_4fe2_a0c277f0469c1a18\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 53 1 0 \"75f43671_ac76_41b5_ad7e0fc8fe54cbdb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsEmpty);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"b642a966_d681_4516_9f271e63dd59e876\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsPickUp);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"be87ee20_e2ee_49a7_b5d90ad6f6b6d967\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsPutDown);\r\n// }} \"\"\r\n// {{ 56 1 0 \"46e15b6d_544e_4fb4_bfffaec39ea9535d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT LAB_ID, COUNT(*) AS N FROM SORT WHERE USED = 1 GROUP BY LAB_ID ORDER BY COUNT(*) ASC\";\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      if(int_Count < 96)\r\n      {\r\n         arr_PartialLabID.AddAsLast(str_LabID);\r\n         arr_PartialCount.AddAsLast(int_Count);\r\n      }\r\n   }\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n}\r\n// {{ 58 1 0 \"46e15b6d_544e_4fb4_bfffaec39ea9535d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 59 1 0 \"504a2d8b_27d9_4eeb_ac60373c952591a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Partial Racks           Count\"), arr_PartialLabID, arr_PartialCount);\r\n// }} \"\"\r\n// {{ 60 1 0 \"70c3c442_ca97_4d08_b7614f18a905105e\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalPartial=arr_PartialCount.GetSize();\r\n// }} \"\"\r\n// {{ 61 1 0 \"68e999b0_ce10_49ea_99ad425cd690ca30\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalPartial = int_TotalPartial - 1;\r\n// }} \"\"\r\n// {{ 62 1 0 \"0a416d97_c85c_493f_a67f717302e6b3af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPartial <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 63 1 0 \"bcb5b16e_34c2_4d5b_8191b361261124df\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 64 1 0 \"0a416d97_c85c_493f_a67f717302e6b3af\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 65 1 0 \"6304ecd1_bfb2_4d8b_b42e51c2533ba657\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsSet = 0;\r\n// }} \"\"\r\n// {{ 66 1 0 \"e84b9b5d_0d5f_4e3b_9291c67fb33bdf9f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PickUpIndex.SetSize(0);\r\n// }} \"\"\r\n// {{ 67 1 0 \"6f96e507_0192_4a4d_982a72662260bf1a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PutDownIndex.SetSize(0);\r\n// }} \"\"\r\n// {{ 68 1 0 \"a46644d8_9c18_4ed9_b9bd153e83f018f5\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_UsedIndex.SetSize(0);\r\n// }} \"\"\r\n// {{ 69 1 0 \"a305b781_3a08_441f_a7c3afa28b30bcf1\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PickUpLabware.SetSize(0);\r\n// }} \"\"\r\n// {{ 70 1 0 \"f080e335_80e9_4b1d_81ac2fcde90afcf4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 71 1 0 \"a9a0dd4d_af05_46a5_b90fb44e2f029e3b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ValueFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 72 1 0 \"91e03bbe_d9ae_407a_9263e799e10a1118\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMax=arr_YMax.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 73 1 0 \"85c448fc_15c6_4b2b_877fb65aa727b74e\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMin=arr_YMin.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 74 1 0 \"7424863f_c227_47d2_944b7767d13a1eb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YMax = StrConcat2(flt_YMax, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 75 1 0 \"230ae61e_da67_4254_af2bb98d4e47329e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YMin = StrConcat2(flt_YMin, Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 76 1 0 \"7d98a8d3_32e4_4990_8565a02f4d9cbff5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LabIndex = 0; int_LabIndex < int_TotalPartial;)\r\n{\r\nint_LabIndex = int_LabIndex + 1;\r\n// }} \"\"\r\n// {{ 77 1 0 \"346edca1_4416_4798_b03ccb6dc328dacb\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentLabID=arr_PartialLabID.GetAt(int_LabIndex-1);\r\n// }} \"\"\r\n// {{ 78 1 0 \"6dd2541c_ef0d_43bc_af834ed3fb141be0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used, int_Index, a;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n   flt_YMax = StrConcat2(flt_YMax, \"\");\r\n   flt_YMin = StrConcat2(flt_YMin, \"\");\r\n\r\n   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;\r\n\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   SortFile.ReadRecord();\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_Count > 0)\r\n   {\r\n      SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n      SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n      SortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n\r\n      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\";\r\n//Trace(str_SQL);      \r\n      SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      while(SortFile.Eof() == 0)\r\n      {\r\n         SortFile.ReadRecord();\r\n         if(!Util::Lookup(arr_UsedIndex,int_Index,a))\r\n         {\r\n            SeqAdd(seq_TipsPickUp, Translate(str_LabID), Translate(str_PosID));\r\n            int_ChannelsSet = int_ChannelsSet + 1;\r\n            arr_ChannelPattern.AddAsLast(1);\r\n            arr_PickUpIndex.AddAsLast(int_Index);\r\n            arr_UsedIndex.AddAsLast(int_Index);\r\n            arr_PickUpLabware.AddAsLast(str_LabID);\r\n            bln_ValueFound = hslTrue;\r\n            break;\r\n         }\r\n      }\r\n      SortFile.Close();\r\n      SortFile.RemoveFields();\r\n   }\r\n}\r\n// {{ 80 1 0 \"6dd2541c_ef0d_43bc_af834ed3fb141be0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 81 1 0 \"b4b3f25b_3623_4c06_8c8583643d1bf90c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelsSet == int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 82 1 0 \"915f8589_98f5_49fa_b80b05b24fc27b75\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 83 1 0 \"b4b3f25b_3623_4c06_8c8583643d1bf90c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 84 1 0 \"2fdd4062_9165_4534_aa6be3619c997b57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 85 1 0 \"691a09ba_d1f1_4737_9b288b414f227d0d\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 86 1 0 \"2fdd4062_9165_4534_aa6be3619c997b57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 87 1 0 \"7d98a8d3_32e4_4990_8565a02f4d9cbff5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 88 1 0 \"e1791715_0bc5_4e10_8afb8861ba529720\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 89 1 0 \"693eac53_1423_4e89_b5edcdc30c4de4c1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 90 1 0 \"e1791715_0bc5_4e10_8afb8861ba529720\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 91 1 0 \"ba6519af_6c15_439a_a450b189f858d6ef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelsSet == int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 92 1 0 \"92bfc96a_e6af_4c12_b1fe092c24a756ce\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 93 1 0 \"ba6519af_6c15_439a_a450b189f858d6ef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 94 1 0 \"f080e335_80e9_4b1d_81ac2fcde90afcf4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 95 1 0 \"79910aa8_0a72_4ef2_9ab5b0bcab486e88\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TipsPickUp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 96 1 0 \"61ab4f51_de92_4e58_8cd8e27e2c1e6e37\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalSet=arr_ChannelPattern.GetSize();\r\n// }} \"\"\r\n// {{ 97 1 0 \"c2e9404e_c829_4f46_a808a5f80e951b99\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 98 1 0 \"2c91d11e_c2fe_45bb_b3f449998c367a8d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelIndex > int_TotalSet)\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"d1cf4ff7_fd7a_481d_a5205a60f5c61f89\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 100 1 0 \"2c91d11e_c2fe_45bb_b3f449998c367a8d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 101 1 0 \"c2e9404e_c829_4f46_a808a5f80e951b99\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 102 1 0 \"87cb5d1e_d310_41ee_b62ac0da1dea0001\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 103 1 0 \"f8f5c817_2fd8_45b5_9516f0c9ecf31d9c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PartialLabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 104 1 0 \"0621fd72_449e_44cc_b55644f2053719e3\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PartialCount.SetSize(0);\r\n// }} \"\"\r\n// {{ 105 1 0 \"ad2f5d13_201f_439c_998d01cebb814900\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT LAB_ID, COUNT(*) AS N FROM SORT WHERE USED = 0 GROUP BY LAB_ID ORDER BY COUNT(*) ASC\";\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      if(int_Count < 96)\r\n      {\r\n         arr_PartialLabID.AddAsLast(str_LabID);\r\n         arr_PartialCount.AddAsLast(int_Count);\r\n      }\r\n   }\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n}\r\n// {{ 107 1 0 \"ad2f5d13_201f_439c_998d01cebb814900\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 108 1 0 \"4fa8c471_82dc_499e_8e2380224e8993a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Partial Racks           Count\"), arr_PartialLabID, arr_PartialCount);\r\n// }} \"\"\r\n// {{ 109 1 0 \"7e0a0780_e774_4d46_a48efd38a4b59981\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalPartial=arr_PartialCount.GetSize();\r\n// }} \"\"\r\n// {{ 110 1 0 \"19fc9c68_5a39_4457_9919096773cdea24\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalPartial = int_TotalPartial - 1;\r\n// }} \"\"\r\n// {{ 111 1 0 \"594442dd_b661_4419_aad3b2c2bdc695c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPartial <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 112 1 0 \"3894c497_daae_411d_b259bd59007957b7\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 113 1 0 \"594442dd_b661_4419_aad3b2c2bdc695c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 114 1 0 \"6265782a_e810_42e6_991b6d5cb8633f1c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsSet = 0;\r\n// }} \"\"\r\n// {{ 115 1 0 \"bc805cd6_4ada_4c2e_9b4040c540e82ed5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 116 1 0 \"446300dd_24d0_4c4d_96470659a0bed927\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_ChannelEnabled=arr_ChannelPattern.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 117 1 0 \"9404ff2c_3b13_4cd2_8f440013b9bd734e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelEnabled == 1)\r\n{\r\n// }} \"\"\r\n// {{ 118 1 0 \"c9e131ae_0500_4cb6_b544874a3d5bdaf7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ValueFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 119 1 0 \"d08cea0a_14c8_497f_a7c577dc159d2f6a\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMax=arr_YMax.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 120 1 0 \"68f113a3_3471_47e6_ba192a3ab51cb5dc\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMin=arr_YMin.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 121 1 0 \"6359b0d2_bbf9_45c7_b295a4b996b436a7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LabIndex = 0; int_LabIndex < int_TotalPartial;)\r\n{\r\nint_LabIndex = int_LabIndex + 1;\r\n// }} \"\"\r\n// {{ 122 1 0 \"080ed07d_9615_485d_98f399712b68d765\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentLabID=arr_PartialLabID.GetAt(int_LabIndex-1);\r\n// }} \"\"\r\n// {{ 123 1 0 \"44d52496_3bae_4713_8b9e441f64d82cbf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used, int_Index, a;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n   flt_YMax = StrConcat2(flt_YMax, \"\");\r\n   flt_YMin = StrConcat2(flt_YMin, \"\");\r\n\r\n   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;\r\n\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   SortFile.ReadRecord();\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n//Trace(\"Count:  \",int_Count);\r\n   if(int_Count > 0)\r\n   {\r\n      SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n      SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n      SortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n      \r\n      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\";\r\n//Trace(str_SQL);      \r\n      SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      while(SortFile.Eof() == 0)\r\n      {\r\n         SortFile.ReadRecord();\r\n         if(!Util::Lookup(arr_UsedIndex,int_Index,a))\r\n         {\r\n               SeqAdd(seq_TipsPutDown, Translate(str_LabID), Translate(str_PosID));\r\n               int_ChannelsSet = int_ChannelsSet + 1;\r\n               arr_PutDownIndex.AddAsLast(int_Index);\r\n               arr_UsedIndex.AddAsLast(int_Index);\r\n               bln_ValueFound = hslTrue;\r\n//Trace(\"Add position:  \",str_PosID);\r\n               break;\r\n\r\n//Trace(\"Lab ID:  \",str_LabID,\"  Channel pickup Lab:  \",arr_PickUpLabware.GetAt(int_ChannelsSet));\r\n            //if(arr_PickUpLabware.GetAt(int_ChannelsSet)!= str_CurrentLabID)\r\n            //{\r\n               //SeqAdd(seq_TipsPutDown, Translate(str_LabID), Translate(str_PosID));\r\n               //int_ChannelsSet = int_ChannelsSet + 1;\r\n               //arr_PutDownIndex.AddAsLast(int_Index);\r\n               //arr_UsedIndex.AddAsLast(int_Index);\r\n               //bln_ValueFound = hslTrue;\r\n               //break;\r\n            //}\r\n            //else\r\n            //{\r\n               //arr_ChannelPattern.SetAt(int_ChannelIndex-1,0);\r\n               //break;\r\n            //}\r\n         }\r\n      }\r\n      SortFile.Close();\r\n      SortFile.RemoveFields();\r\n   }\r\n}\r\n// {{ 125 1 0 \"44d52496_3bae_4713_8b9e441f64d82cbf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 126 1 0 \"8e4c72b6_f87b_4853_8963156ad409109f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 127 1 0 \"1e4c6712_30ce_4f41_93644c887ce6e21d\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.SetAt(int_ChannelIndex-1, 0);\r\n// }} \"\"\r\n// {{ 128 1 0 \"8e4c72b6_f87b_4853_8963156ad409109f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 129 1 0 \"05c4a168_1ff8_44dd_a6f113cac237c6f8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelsSet == int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 130 1 0 \"3eadc9c5_001b_448f_83ec29b8078196ce\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 131 1 0 \"05c4a168_1ff8_44dd_a6f113cac237c6f8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 132 1 0 \"34dfa80b_625e_4899_bfcc2e7ac00b7eb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 133 1 0 \"cd0d7e1e_7475_40dd_8743fc6bcb6c27b0\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 134 1 0 \"34dfa80b_625e_4899_bfcc2e7ac00b7eb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 135 1 0 \"6359b0d2_bbf9_45c7_b295a4b996b436a7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 136 1 0 \"9404ff2c_3b13_4cd2_8f440013b9bd734e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 137 1 0 \"bc805cd6_4ada_4c2e_9b4040c540e82ed5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 138 1 0 \"2907c2cd_b97f_4239_ba758f8299dd0edf\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TipsPutDown.SetCurrentPosition(1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 139 1 0 \"c69b1d73_3a6a_463d_bce9eb1498bf87ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceSequence(seq_TipsPickUp);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"313ae523_e88e_413f_b84648d1ab2fab31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceSequence(seq_TipsPutDown);\r\n// }} \"\"\r\n// {{{ 141 1 0 \"c692832c_eb7f_4e63_acf81a57d37dee77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Channel Active\"), arr_ChannelPattern);\r\n// }} \"\"\r\n// {{{ 142 1 0 \"f516251d_08bd_41b8_a1d4cbcf171d70fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Pick up Index\"), arr_PickUpIndex);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 143 1 0 \"b8cd58b6_5cf7_422f_a1634c89f489d801\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChannelPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 144 1 0 \"eb101996_05f3_4b97_bfceb1c094a4ee09\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 145 1 0 \"d4efa251_4b43_4be9_8580dba065761fbb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern = StrConcat4(str_ChannelPattern, arr_ChannelPattern.ElementAt( int_ChannelIndex -1), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 146 1 0 \"eb101996_05f3_4b97_bfceb1c094a4ee09\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 147 1 0 \"9d7ae1f0_7bb1_4c22_8505886774f2aaa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Channel Pattern:  \"), str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 148 1 0 \"b83e9be6_d630_44eb_a491f530f6362e79\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"b83e9be6_d630_44eb_a491f530f6362e79\"); // TipPickUp\r\n}\r\n// }} \"\"\r\n// {{ 149 1 0 \"cd58fb8a_b0ce_4174_b40c8257faa3d377\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"cd58fb8a_b0ce_4174_b40c8257faa3d377\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 150 1 0 \"9b46c20c_45bc_400b_9a25a5e40476af19\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalUpdates=arr_PickUpIndex.GetSize();\r\n// }} \"\"\r\n// {{ 151 1 0 \"c6778974_fa7a_45fa_84be277b9465c358\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount;\r\n   file UpdateFile;\r\n\r\n   UpdateFile.RemoveFields();\r\n\r\n   str_InValue = \"(\";\r\n\r\n   int_UpdateCount = 0;\r\n   for(i=0;i<int_TotalChannels;i++)\r\n   {\r\n      if(arr_ChannelPattern.GetAt(i) == 1)\r\n      {\r\n         int_Index = arr_PickUpIndex.GetAt(int_UpdateCount);\r\n         if(int_UpdateCount > 0) str_InValue = str_InValue + \", \";\r\n         str_InValue = StrConcat2(str_InValue , int_Index);\r\n         int_ChannelCount = int_ChannelCount + 1;\r\n         int_UpdateCount = int_UpdateCount + 1;\r\n         if(int_UpdateCount>int_TotalUpdates) break;\r\n      }\r\n   }\r\n\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   if(int_UpdateCount > 0)\r\n   {\r\n      str_SQL = \"UPDATE SORT SET USED = -1 WHERE INDEX IN\" + str_InValue;\r\n//Trace(str_SQL);\r\n      UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      UpdateFile.Close();\r\n      UpdateFile.RemoveFields();\r\n   }\r\n}\r\n// {{ 153 1 0 \"c6778974_fa7a_45fa_84be277b9465c358\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 154 1 0 \"a557f854_5c3a_484e_9a8b35fe94226963\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalUpdates=arr_PutDownIndex.GetSize();\r\n// }} \"\"\r\n// {{ 155 1 0 \"f27812b0_2b97_47a0_94bf892f0c9ccc14\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount;\r\n   file UpdateFile;\r\n\r\n   UpdateFile.RemoveFields();\r\n\r\n   str_InValue = \"(\";\r\n\r\n   int_UpdateCount = 0;\r\n   for(i=0;i<int_TotalChannels;i++)\r\n   {\r\n      if(arr_ChannelPattern.GetAt(i) == 1)\r\n      {\r\n         int_Index = arr_PutDownIndex.GetAt(int_UpdateCount);\r\n         if(int_UpdateCount > 0) str_InValue = str_InValue + \", \";\r\n         str_InValue = StrConcat2(str_InValue , int_Index);\r\n         int_ChannelCount = int_ChannelCount + 1;\r\n         int_UpdateCount = int_UpdateCount + 1;\r\n         if(int_UpdateCount>int_TotalUpdates) break;\r\n      }\r\n   }\r\n\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   if(int_UpdateCount > 0)\r\n   {\r\n      str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n//Trace(str_SQL);\r\n      UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      UpdateFile.Close();\r\n      UpdateFile.RemoveFields();\r\n   }\r\n\r\n}\r\n// {{ 157 1 0 \"f27812b0_2b97_47a0_94bf892f0c9ccc14\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 158 1 0 \"bcd0fc00_dc63_4b8e_bbc89c072daded5b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 159 1 0 \"0f79010c_947a_42e0_b72121f20be34d8c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 160 1 0 \"2b5fd35d_b21b_4912_9d6b436776fd1452\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_seq_Tips);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"d34d628a_4f2d_4754_a14bed5ed84ac313\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsEmpty);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used;\r\n   file ReadFile;\r\n\r\n   ReadFile.RemoveFields();\r\n   ReadFile.AddField(\"INDEX\", int_PositionCount, hslInteger);\r\n   ReadFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   ReadFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   ReadFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   ReadFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   ReadFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   ReadFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\n   ReadFile.AddField(\"GROUP\",int_Group,hslInteger);\r\n\r\n   int_TotalValues = seq_TipsRemaining.GetTotal();\r\n\r\n   ReadFile.SetExtendedProperties(\"HDR=YES\");\r\n   ReadFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead);\r\n   \r\n   int_PositionCount = 1;   \r\n   int_Group = 0;\r\n   bln_Used = 1;\r\n   while(ReadFile.Eof() == 0)\r\n   {\r\n      ReadFile.ReadRecord();\r\n      if(bln_Used > 0)\r\n      {\r\n         SeqAdd(io_seq_Tips, Translate(str_LabID), Translate(str_PosID));\r\n      }\r\n      else\r\n      {\r\n         SeqAdd(seq_TipsEmpty, Translate(str_LabID), Translate(str_PosID));\r\n      }\r\n   }\r\n\r\n   ReadFile.Close();\r\n   ReadFile.RemoveFields();\r\n}\r\n// {{ 163 1 0 \"df596191_eb8b_4f57_825eaa977076f242\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_Tips.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 164 1 0 \"25cce0f0_2d6d_45b4_b570a1d732284edc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_Tips, 5, Translate(\"With Tips\"));\r\n// }} \"\"\r\n// {{{ 165 1 0 \"e8aac9a4_8a66_45c2_b979e011c5f1542c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TipsEmpty, 4, Translate(\"No Tips\"));\r\n// }} \"\"\r\n// {{ 166 1 0 \"0f79010c_947a_42e0_b72121f20be34d8c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"6bffd842_42a6_4ff6_915e3aae07c5f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 168 1 0 \"495fdce1_dccf_48cc_85a0070d57f7503b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 169 1 0 \"6bffd842_42a6_4ff6_915e3aae07c5f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"DefragTipRacks1mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"DefragTipRacks5mL\" \"Begin\"\r\nfunction DefragTipRacks5mL( device & ML_STAR, sequence & io_seq_Tips ) void {\r\n// }} \"\"\r\nprivate variable int_ChannelEnabled;\r\nprivate variable str_ChannelPattern;\r\nprivate variable i;\r\nprivate variable flt_YMin;\r\nprivate variable flt_YRaster;\r\nprivate variable flt_YMax;\r\nprivate variable int_NumInSeq;\r\nprivate variable int_RemainingLabIDs;\r\nprivate variable _strFunctionName;\r\nprivate variable str_LabID;\r\nprivate variable int_TotalPartial;\r\nprivate variable int_Position;\r\nprivate variable bool_FileExists;\r\nprivate variable int_TotalSet;\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable int_ChannelsSet;\r\nprivate variable bln_ValueFound;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_ChannelIndex;\r\nprivate variable str_PosID;\r\nprivate variable int_TotalUpdates;\r\nprivate variable int_LabIndex;\r\nprivate variable str_CurrentLabID;\r\nprivate variable int_Index;\r\nprivate sequence seq_TipsEmpty;\r\nprivate sequence seq_Temp;\r\nprivate sequence seq_TipsRemaining;\r\nprivate sequence seq_TipsPickUp;\r\nprivate sequence seq_TipsPutDown;\r\nprivate variable arr_PutDownIndex[];\r\nprivate variable arr_PartialCount[];\r\nprivate variable arr_LabIDs[];\r\nprivate variable arr_UsedIndex[];\r\nprivate variable arr_PickUpIndex[];\r\nprivate variable arr_ChannelPattern[];\r\nprivate variable arr_PickUpLabware[];\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable arr_PartialLabID[];\r\n// {{ 5 \"DefragTipRacks5mL\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 171 1 0 \"1146ff82_6bac_48a7_8800a3dca8b07b52\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 172 1 0 \"bfd40927_28fd_4a8d_928e323df422c24a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 174 1 0 \"8c768196_1b81_4818_879edb456c726e38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 175 1 0 \"1146ff82_6bac_48a7_8800a3dca8b07b52\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 176 1 0 \"d1a0b7e6_77b9_4d37_90f6d295f1eaedd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet5mLChannelCount(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 177 1 0 \"7d00a056_2c2c_4519_a43fadb24b88f418\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{{ 178 1 0 \"838213a9_e572_42d5_91ec15b312144760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsRemaining);\r\n// }} \"\"\r\n// {{{ 179 1 0 \"2e6f3065_f833_4541_bba008bc845256e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_TipsRemaining, io_seq_Tips);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"d5736cca_6519_4c37_b4b3a1bae2a3a415\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_TipsRemaining);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"7fb2acb0_4d90_4fd7_9799f4acb687f87c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"d35e7f49_9b8c_41af_96187e52e0e96255\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nStrReplace(str_TempSortingFilePath, Translate(\"TEMP_SORT_FILE\"), Translate(\"TEMP_DEFRAG_FILE\"));\r\n// }} \"\"\r\nTrace(str_TempSortingFilePath);\r\n// {{{ 184 1 0 \"c50671a9_62d3_4653_bd5f0dd58d1744f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 185 1 0 \"04a637c6_b13a_4131_901001ae2886a749\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 186 1 0 \"14701cc1_8390_455a_b474ca3a4847fd62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 187 1 0 \"04a637c6_b13a_4131_901001ae2886a749\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 188 1 0 \"08ae7509_b74f_437e_a319cf80b8c110a7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 189 1 0 \"86afd601_7f55_4b4b_ae99d76b476c480f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqGetLabwareIds(seq_TipsRemaining, arr_LabIDs);\r\n// }} \"\"\r\n// {{ 190 1 0 \"a97a707a_e58e_4265_a5679c1afe2a2819\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_RemainingLabIDs=arr_LabIDs.GetSize();\r\n// }} \"\"\r\n// {{ 191 1 0 \"f119a988_ffb3_4109_bff582c24f20db1a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_Index = 0; int_Index < int_RemainingLabIDs;)\r\n{\r\nint_Index = int_Index + 1;\r\n// }} \"\"\r\n// {{ 192 1 0 \"669a611b_8b96_4734_bbb001fa3cedb2b7\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_LabID=arr_LabIDs.GetAt(int_Index-1);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"17c899e3_1a31_4531_a9b830e9e3b7a81e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetDefaultSequence(ML_STAR, str_LabID, 1, seq_Temp);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"d13e2ca5_e80c_4ffe_8bbca3a4cd449456\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_NumInSeq = SeqGetTotal(seq_Temp);\r\n// }} \"\"\r\n// {{ 195 1 0 \"05868a67_3d49_4717_a8157b1666305879\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(i = 0; i < int_NumInSeq;)\r\n{\r\ni = i + 1;\r\n// }} \"\"\r\n// {{ 196 1 0 \"44c2c0ff_e55f_4b53_9649220d9fff4f28\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_Temp.SetCurrentPosition(i);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"a868e59e_832a_42cf_b6aec08c3288b781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"082251b8_50e1_4571_866985c4d588dd2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_Temp);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"c2f6870c_d951_43e2_83770c80e4186df1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_Position = SeqLookupPosition(seq_TipsRemaining, str_LabID, str_PosID, 1, 1);\r\n// }} \"\"\r\n// {{ 200 1 0 \"37bce94a_08f5_41dc_a754b8ab34bdac72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Position == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 201 1 0 \"83d1081b_f54b_43d5_a259a7d3bfafade9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(seq_TipsEmpty, str_LabID, str_PosID);\r\n// }} \"\"\r\n// {{ 202 1 0 \"37bce94a_08f5_41dc_a754b8ab34bdac72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 203 1 0 \"05868a67_3d49_4717_a8157b1666305879\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 204 1 0 \"f119a988_ffb3_4109_bff582c24f20db1a\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 205 1 0 \"92a11ed4_f700_49d2_89eb8faea0ba558f\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TipsEmpty.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 206 1 0 \"da4bbcbc_6407_4ebd_b344c706411d2667\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 207 1 0 \"bc345184_104c_445a_ae08028ece365c8a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used;\r\n   file WriteFile;\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"INDEX\", int_PositionCount, hslInteger);\r\n   WriteFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   WriteFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\n   WriteFile.AddField(\"GROUP\",int_Group,hslInteger);\r\n\r\n   int_TotalValues = seq_TipsRemaining.GetTotal();\r\n\r\n   WriteFile.SetExtendedProperties(\"HDR=YES\");\r\n   WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite);\r\n   \r\n   int_PositionCount = 1;   \r\n   int_Group = 0;\r\n   bln_Used = 1;\r\n   for(i = 0; i < int_TotalValues;)\r\n   {\r\n      i = i + 1;\r\n      int_ChannelIndex = int_ChannelIndex + 1;\r\n\r\n      seq_TipsRemaining.SetCurrentPosition(i);\r\n\r\n      str_LabID = seq_TipsRemaining.GetLabwareId();\r\n      str_PosID = seq_TipsRemaining.GetPositionId();\r\n      DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n            \r\n      WriteFile.WriteRecord();\r\n\r\n      int_PositionCount = int_PositionCount + 1;\r\n   }\r\n\r\n   int_TotalValues = seq_TipsEmpty.GetTotal();\r\n   bln_Used = 0;\r\n   for(i = 0; i < int_TotalValues;)\r\n   {\r\n      i = i + 1;\r\n      int_ChannelIndex = int_ChannelIndex + 1;\r\n\r\n      seq_TipsEmpty.SetCurrentPosition(i);\r\n\r\n      str_LabID = seq_TipsEmpty.GetLabwareId();\r\n      str_PosID = seq_TipsEmpty.GetPositionId();\r\n      DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n            \r\n      WriteFile.WriteRecord();\r\n\r\n      int_PositionCount = int_PositionCount + 1;\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n}\r\n// {{ 209 1 0 \"bc345184_104c_445a_ae08028ece365c8a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 210 1 0 \"30394ad0_d105_4d52_b03d25bb3d7b58bc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (BOOLEON::TRUE == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 211 1 0 \"661b4da3_1559_4562_ac12bb3e8098414e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 212 1 0 \"2c538ce3_261a_4b6f_b629d9814533c2f9\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 213 1 0 \"87fbe777_b062_4ac8_a4e52a97a414b24f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PartialLabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 214 1 0 \"d339514f_0972_4694_9ff668cb76e5dfd8\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PartialCount.SetSize(0);\r\n// }} \"\"\r\n// {{ 215 1 0 \"3f18207e_9056_4a55_ac0560556ceb8ccc\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 216 1 0 \"d5c68273_c25e_4520_88451847540aab2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsEmpty);\r\n// }} \"\"\r\n// {{{ 217 1 0 \"26f7876a_046f_429d_beba442f759ed8d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsPickUp);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"a32339db_d892_434c_876c4afb3795c33f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsPutDown);\r\n// }} \"\"\r\n// {{ 219 1 0 \"13532881_39cc_4b80_989852d0c70baa76\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used;\r\n   file SortFile;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT LAB_ID, COUNT(*) AS N FROM SORT WHERE USED = 1 GROUP BY LAB_ID ORDER BY COUNT(*) ASC\";\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      if(int_Count < 96)\r\n      {\r\n         arr_PartialLabID.AddAsLast(str_LabID);\r\n         arr_PartialCount.AddAsLast(int_Count);\r\n      }\r\n   }\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n}\r\n// {{ 221 1 0 \"13532881_39cc_4b80_989852d0c70baa76\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 222 1 0 \"5a210ffc_8ad0_489b_ab3f1729598d3cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Partial Racks           Count\"), arr_PartialLabID, arr_PartialCount);\r\n// }} \"\"\r\n// {{ 223 1 0 \"0c496107_7eb3_42aa_a26f443157c01622\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalPartial=arr_PartialCount.GetSize();\r\n// }} \"\"\r\n// {{ 224 1 0 \"92c0b003_0123_4bac_a8e3cc72e732de65\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalPartial = int_TotalPartial - 1;\r\n// }} \"\"\r\n// {{ 225 1 0 \"525ada1d_545f_4b8e_a5f6096a326a09f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPartial <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 226 1 0 \"9aa6e6e0_895a_43fd_b70dd4550b6592be\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 227 1 0 \"525ada1d_545f_4b8e_a5f6096a326a09f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 228 1 0 \"3f2d8a37_c7ab_4c60_a3c46f0d2bd58e25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsSet = 0;\r\n// }} \"\"\r\n// {{ 229 1 0 \"b0ec7482_d032_49d1_ac2bd6fcb8304c13\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PickUpIndex.SetSize(0);\r\n// }} \"\"\r\n// {{ 230 1 0 \"9e90e365_35e6_4269_b3dddd742eb192fe\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PutDownIndex.SetSize(0);\r\n// }} \"\"\r\n// {{ 231 1 0 \"5bd4833b_1468_4f53_9c7e59d900809cc2\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_UsedIndex.SetSize(0);\r\n// }} \"\"\r\n// {{ 232 1 0 \"d718517a_866b_4b4c_91d9d8cd01c79cc9\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PickUpLabware.SetSize(0);\r\n// }} \"\"\r\n// {{ 233 1 0 \"342873d6_9866_467b_a8aa1a30b9dc8480\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 234 1 0 \"2b914764_f551_437c_807e1b0f20383d38\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ValueFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 235 1 0 \"15be03e6_4adf_4a3f_90857e708313552b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMax=arr_YMax.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 236 1 0 \"dbd69943_50df_4cb4_bc22efec00534d44\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMin=arr_YMin.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 237 1 0 \"6f0a301b_01bc_44f0_ba3f3599e0ed6ac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YMax = StrConcat2(flt_YMax, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 238 1 0 \"6edd03bb_7acd_427b_bb531deff0e6f4b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nflt_YMin = StrConcat2(flt_YMin, Translate(\"\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 239 1 0 \"60a16d48_ce29_445f_9a9cf46c49867abb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LabIndex = 0; int_LabIndex < int_TotalPartial;)\r\n{\r\nint_LabIndex = int_LabIndex + 1;\r\n// }} \"\"\r\n// {{ 240 1 0 \"3f457565_e51f_453c_b59661220551bc83\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentLabID=arr_PartialLabID.GetAt(int_LabIndex-1);\r\n// }} \"\"\r\n// {{ 241 1 0 \"03e4e997_6db8_4b89_81b7626fc384414b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used, int_Index, a;\r\n   file SortFile;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n   flt_YMax = StrConcat2(flt_YMax, \"\");\r\n   flt_YMin = StrConcat2(flt_YMin, \"\");\r\n\r\n   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;\r\n\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   SortFile.ReadRecord();\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_Count > 0)\r\n   {\r\n      SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n      SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n      SortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n\r\n      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\";\r\n//Trace(str_SQL);      \r\n      SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      while(SortFile.Eof() == 0)\r\n      {\r\n         SortFile.ReadRecord();\r\n         if(!Util::Lookup(arr_UsedIndex,int_Index,a))\r\n         {\r\n            SeqAdd(seq_TipsPickUp, Translate(str_LabID), Translate(str_PosID));\r\n            int_ChannelsSet = int_ChannelsSet + 1;\r\n            arr_ChannelPattern.AddAsLast(1);\r\n            arr_PickUpIndex.AddAsLast(int_Index);\r\n            arr_UsedIndex.AddAsLast(int_Index);\r\n            arr_PickUpLabware.AddAsLast(str_LabID);\r\n            bln_ValueFound = hslTrue;\r\n            break;\r\n         }\r\n      }\r\n      SortFile.Close();\r\n      SortFile.RemoveFields();\r\n   }\r\n}\r\n// {{ 243 1 0 \"03e4e997_6db8_4b89_81b7626fc384414b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 244 1 0 \"f34fc3c5_ddac_4fe5_b89dc5cae395b778\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelsSet == int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 245 1 0 \"fc5ba594_0ded_4080_8929084a4e7916e1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 246 1 0 \"f34fc3c5_ddac_4fe5_b89dc5cae395b778\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 247 1 0 \"9616560d_2d52_45d8_824c9187e0ce97ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 248 1 0 \"fccdef14_cfe7_431a_ab783957e03fa50f\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 249 1 0 \"9616560d_2d52_45d8_824c9187e0ce97ca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 250 1 0 \"60a16d48_ce29_445f_9a9cf46c49867abb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 251 1 0 \"4402dd3c_aa15_47b3_b84363db2b4e0c0f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 252 1 0 \"8171262a_78f8_46fe_8f26935c31fd5087\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 253 1 0 \"4402dd3c_aa15_47b3_b84363db2b4e0c0f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 254 1 0 \"b227142b_f2a9_4fdf_b478418a1b8a74fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelsSet == int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 255 1 0 \"2cbf7c16_2a5b_4aee_81b39ff7043910aa\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 256 1 0 \"b227142b_f2a9_4fdf_b478418a1b8a74fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 257 1 0 \"342873d6_9866_467b_a8aa1a30b9dc8480\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 258 1 0 \"eb07a9ee_eb19_43ff_9c1ff1a61bd91aed\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TipsPickUp.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 259 1 0 \"1ee6513b_953e_4af0_8f254d90bbf2b66a\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalSet=arr_ChannelPattern.GetSize();\r\n// }} \"\"\r\n// {{ 260 1 0 \"5d9773cf_b749_411a_b311da1f1fd081de\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 261 1 0 \"f2fad619_fec9_4708_ba683c5acec56048\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelIndex > int_TotalSet)\r\n{\r\n// }} \"\"\r\n// {{ 262 1 0 \"2a055ff0_77a7_4a2f_9fb4de4de500a64b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 263 1 0 \"f2fad619_fec9_4708_ba683c5acec56048\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 264 1 0 \"5d9773cf_b749_411a_b311da1f1fd081de\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 265 1 0 \"122df66b_0ca3_42a4_89d88c28c547dea9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 266 1 0 \"c1693d0c_6b52_447e_ba87fd39beb0224c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PartialLabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 267 1 0 \"d9a0a5b2_9a49_4e6a_83eb6ad190a3c921\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_PartialCount.SetSize(0);\r\n// }} \"\"\r\n// {{ 268 1 0 \"bf251e5a_07f2_4987_bf3f871b504bd15f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used;\r\n   file SortFile;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT LAB_ID, COUNT(*) AS N FROM SORT WHERE USED = 0 GROUP BY LAB_ID ORDER BY COUNT(*) ASC\";\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      if(int_Count < 96)\r\n      {\r\n         arr_PartialLabID.AddAsLast(str_LabID);\r\n         arr_PartialCount.AddAsLast(int_Count);\r\n      }\r\n   }\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n}\r\n// {{ 270 1 0 \"bf251e5a_07f2_4987_bf3f871b504bd15f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 271 1 0 \"4d589e1d_5495_4d42_8205da39f83bccbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Partial Racks           Count\"), arr_PartialLabID, arr_PartialCount);\r\n// }} \"\"\r\n// {{ 272 1 0 \"fcfcb534_044f_4a41_aa57497aecc0f543\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalPartial=arr_PartialCount.GetSize();\r\n// }} \"\"\r\n// {{ 273 1 0 \"e2793c7e_118f_4d0d_92c7271474c2bc25\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalPartial = int_TotalPartial - 1;\r\n// }} \"\"\r\n// {{ 274 1 0 \"62ff2218_ed6a_4688_b708014e01841c78\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TotalPartial <= 0)\r\n{\r\n// }} \"\"\r\n// {{ 275 1 0 \"5b3b9fef_1ad7_479a_a1f8619cd4c7e7bf\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 276 1 0 \"62ff2218_ed6a_4688_b708014e01841c78\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 277 1 0 \"c8c65a59_2beb_42e9_a12a874e3524cdca\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelsSet = 0;\r\n// }} \"\"\r\n// {{ 278 1 0 \"27e00e40_edca_4cce_a9f0774c9117f8c3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 279 1 0 \"66fe9258_bf1d_4f91_bc6dd658787c4e04\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_ChannelEnabled=arr_ChannelPattern.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 280 1 0 \"166c40df_aa1f_4d13_9d394cd0a4102ac2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelEnabled == 1)\r\n{\r\n// }} \"\"\r\n// {{ 281 1 0 \"55b1b11e_dbe3_4338_bc5bb3abec57886e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_ValueFound = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 282 1 0 \"24e1052a_3e4d_469e_b955a31e36ea9580\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMax=arr_YMax.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 283 1 0 \"33551843_06bc_4921_907eb35179e77273\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nflt_YMin=arr_YMin.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 284 1 0 \"1904157b_781f_44b6_a1c71dbfdf3373c4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_LabIndex = 0; int_LabIndex < int_TotalPartial;)\r\n{\r\nint_LabIndex = int_LabIndex + 1;\r\n// }} \"\"\r\n// {{ 285 1 0 \"531ece5b_9730_444a_967f9d67ab971e48\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstr_CurrentLabID=arr_PartialLabID.GetAt(int_LabIndex-1);\r\n// }} \"\"\r\n// {{ 286 1 0 \"25c79887_7fdd_4218_97f4d227d74be16d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used, int_Index, a;\r\n   file SortFile;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n   flt_YMax = StrConcat2(flt_YMax, \"\");\r\n   flt_YMin = StrConcat2(flt_YMin, \"\");\r\n\r\n   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;\r\n\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   SortFile.ReadRecord();\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n//Trace(\"Count:  \",int_Count);\r\n   if(int_Count > 0)\r\n   {\r\n      SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n      SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n      SortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n      \r\n      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\";\r\n//Trace(str_SQL);      \r\n      SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      while(SortFile.Eof() == 0)\r\n      {\r\n         SortFile.ReadRecord();\r\n         if(!Util::Lookup(arr_UsedIndex,int_Index,a))\r\n         {\r\n               SeqAdd(seq_TipsPutDown, Translate(str_LabID), Translate(str_PosID));\r\n               int_ChannelsSet = int_ChannelsSet + 1;\r\n               arr_PutDownIndex.AddAsLast(int_Index);\r\n               arr_UsedIndex.AddAsLast(int_Index);\r\n               bln_ValueFound = hslTrue;\r\n//Trace(\"Add position:  \",str_PosID);\r\n               break;\r\n\r\n//Trace(\"Lab ID:  \",str_LabID,\"  Channel pickup Lab:  \",arr_PickUpLabware.GetAt(int_ChannelsSet));\r\n            //if(arr_PickUpLabware.GetAt(int_ChannelsSet)!= str_CurrentLabID)\r\n            //{\r\n               //SeqAdd(seq_TipsPutDown, Translate(str_LabID), Translate(str_PosID));\r\n               //int_ChannelsSet = int_ChannelsSet + 1;\r\n               //arr_PutDownIndex.AddAsLast(int_Index);\r\n               //arr_UsedIndex.AddAsLast(int_Index);\r\n               //bln_ValueFound = hslTrue;\r\n               //break;\r\n            //}\r\n            //else\r\n            //{\r\n               //arr_ChannelPattern.SetAt(int_ChannelIndex-1,0);\r\n               //break;\r\n            //}\r\n         }\r\n      }\r\n      SortFile.Close();\r\n      SortFile.RemoveFields();\r\n   }\r\n}\r\n// {{ 288 1 0 \"25c79887_7fdd_4218_97f4d227d74be16d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 289 1 0 \"1fa65b4a_c2ad_4ac7_bdfb768814347978\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 290 1 0 \"a9c5d6f0_0c6c_47a6_b24d79a09e241827\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.SetAt(int_ChannelIndex-1, 0);\r\n// }} \"\"\r\n// {{ 291 1 0 \"1fa65b4a_c2ad_4ac7_bdfb768814347978\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 292 1 0 \"3cb178b5_95b4_4cbb_a04377cb2908a478\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelsSet == int_TotalChannels)\r\n{\r\n// }} \"\"\r\n// {{ 293 1 0 \"f30313a3_79f3_4a70_ad43869b8526a46e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 294 1 0 \"3cb178b5_95b4_4cbb_a04377cb2908a478\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"a688deb6_95fb_4beb_a378f67fb0e07760\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_ValueFound == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 296 1 0 \"68a00408_e390_40e3_94a95de6072947ce\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 297 1 0 \"a688deb6_95fb_4beb_a378f67fb0e07760\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 298 1 0 \"1904157b_781f_44b6_a1c71dbfdf3373c4\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 299 1 0 \"166c40df_aa1f_4d13_9d394cd0a4102ac2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 300 1 0 \"27e00e40_edca_4cce_a9f0774c9117f8c3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 301 1 0 \"b8ccc1a1_5af2_474a_8d1768957e6a81fa\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_TipsPutDown.SetCurrentPosition(1);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 302 1 0 \"81a9c1a6_2899_4d66_aedfe2f4d360ea8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceSequence(seq_TipsPickUp);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"7672f7d1_511a_4ef5_a9749485566f3a05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceSequence(seq_TipsPutDown);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"d5f7bbd6_7f0f_4114_b82d631ff6bbfdfe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Channel Active\"), arr_ChannelPattern);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"fa5dcf75_836c_4b10_bb3b3e9c67cd56d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"Pick up Index\"), arr_PickUpIndex);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 306 1 0 \"e9938fcb_3861_4257_83d8c6af117edbb3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ChannelPattern = Translate(\"\");\r\n// }} \"\"\r\n// {{ 307 1 0 \"a26fac44_de43_4c9b_b8cfc164ad99bf94\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 308 1 0 \"a22dd98b_facb_4a22_9ed23162dd82dd75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_ChannelPattern = StrConcat4(str_ChannelPattern, arr_ChannelPattern.ElementAt( int_ChannelIndex -1), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 309 1 0 \"a26fac44_de43_4c9b_b8cfc164ad99bf94\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 310 1 0 \"11567802_dea6_4364_869802634c56e2ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Channel Pattern:  \"), str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 311 1 0 \"92bd7a52_620d_4b33_8cecf0309009da37\" \"ML_STAR:{AFA41E7B-21AC-4a24-804E-41716114FEC3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._AFA41E7B_21AC_4a24_804E_41716114FEC3(\"92bd7a52_620d_4b33_8cecf0309009da37\"); // XLTipPickUp\r\n}\r\n// }} \"\"\r\n// {{ 312 1 0 \"30183972_a0b0_4195_a293839433f4a960\" \"ML_STAR:{7F970BA7-528E-4283-807A-325DED0C065A}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._7F970BA7_528E_4283_807A_325DED0C065A(\"30183972_a0b0_4195_a293839433f4a960\"); // XLTipEject\r\n}\r\n// }} \"\"\r\n// {{ 313 1 0 \"a3a8df75_ac2b_4dce_b9cd41b8b06b5918\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalUpdates=arr_PickUpIndex.GetSize();\r\n// }} \"\"\r\n// {{ 314 1 0 \"d0df8add_0b3e_46a5_ab815cbe30de2d24\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount;\r\n   file UpdateFile;\r\n\r\n   UpdateFile.RemoveFields();\r\n\r\n   str_InValue = \"(\";\r\n\r\n   int_UpdateCount = 0;\r\n   for(i=0;i<int_TotalChannels;i++)\r\n   {\r\n      if(arr_ChannelPattern.GetAt(i) == 1)\r\n      {\r\n         int_Index = arr_PickUpIndex.GetAt(int_UpdateCount);\r\n         if(int_UpdateCount > 0) str_InValue = str_InValue + \", \";\r\n         str_InValue = StrConcat2(str_InValue , int_Index);\r\n         int_ChannelCount = int_ChannelCount + 1;\r\n         int_UpdateCount = int_UpdateCount + 1;\r\n         if(int_UpdateCount>int_TotalUpdates) break;\r\n      }\r\n   }\r\n\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   if(int_UpdateCount > 0)\r\n   {\r\n      str_SQL = \"UPDATE SORT SET USED = -1 WHERE INDEX IN\" + str_InValue;\r\n//Trace(str_SQL);\r\n      UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      UpdateFile.Close();\r\n      UpdateFile.RemoveFields();\r\n   }\r\n}\r\n// {{ 316 1 0 \"d0df8add_0b3e_46a5_ab815cbe30de2d24\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 317 1 0 \"6ad9c6e9_63a7_4741_b83cd1d5039cc665\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalUpdates=arr_PutDownIndex.GetSize();\r\n// }} \"\"\r\n// {{ 318 1 0 \"4695ae77_fba0_4d56_af0ede6bd9978b63\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount;\r\n   file UpdateFile;\r\n\r\n   UpdateFile.RemoveFields();\r\n\r\n   str_InValue = \"(\";\r\n\r\n   int_UpdateCount = 0;\r\n   for(i=0;i<int_TotalChannels;i++)\r\n   {\r\n      if(arr_ChannelPattern.GetAt(i) == 1)\r\n      {\r\n         int_Index = arr_PutDownIndex.GetAt(int_UpdateCount);\r\n         if(int_UpdateCount > 0) str_InValue = str_InValue + \", \";\r\n         str_InValue = StrConcat2(str_InValue , int_Index);\r\n         int_ChannelCount = int_ChannelCount + 1;\r\n         int_UpdateCount = int_UpdateCount + 1;\r\n         if(int_UpdateCount>int_TotalUpdates) break;\r\n      }\r\n   }\r\n\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   if(int_UpdateCount > 0)\r\n   {\r\n      str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n//Trace(str_SQL);\r\n      UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      UpdateFile.Close();\r\n      UpdateFile.RemoveFields();\r\n   }\r\n\r\n}\r\n// {{ 320 1 0 \"4695ae77_fba0_4d56_af0ede6bd9978b63\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 321 1 0 \"30394ad0_d105_4d52_b03d25bb3d7b58bc\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"351305e6_d4dc_4ac5_90901332eb584cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 323 1 0 \"247abfa1_508f_4a5c_b3f98afd392e1931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_seq_Tips);\r\n// }} \"\"\r\n// {{{ 324 1 0 \"b3650eea_b182_4707_b1b18d3bd4a929a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(seq_TipsEmpty);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used;\r\n   file ReadFile;\r\n\r\n   ReadFile.RemoveFields();\r\n   ReadFile.AddField(\"INDEX\", int_PositionCount, hslInteger);\r\n   ReadFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   ReadFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   ReadFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   ReadFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   ReadFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   ReadFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\n   ReadFile.AddField(\"GROUP\",int_Group,hslInteger);\r\n\r\n   int_TotalValues = seq_TipsRemaining.GetTotal();\r\n\r\n   ReadFile.SetExtendedProperties(\"HDR=YES\");\r\n   ReadFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead);\r\n   \r\n   int_PositionCount = 1;   \r\n   int_Group = 0;\r\n   bln_Used = 1;\r\n   while(ReadFile.Eof() == 0)\r\n   {\r\n      ReadFile.ReadRecord();\r\n      if(bln_Used > 0)\r\n      {\r\n         SeqAdd(io_seq_Tips, Translate(str_LabID), Translate(str_PosID));\r\n      }\r\n      else\r\n      {\r\n         SeqAdd(seq_TipsEmpty, Translate(str_LabID), Translate(str_PosID));\r\n      }\r\n   }\r\n\r\n   ReadFile.Close();\r\n   ReadFile.RemoveFields();\r\n}\r\n// {{ 326 1 0 \"1bc1a5af_867c_489f_ade7740f2fcd5601\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_Tips.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 327 1 0 \"4226b44e_0f2d_4e11_b6f24b1a917e7025\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_Tips, 5, Translate(\"With Tips\"));\r\n// }} \"\"\r\n// {{{ 328 1 0 \"98de9c99_d096_44da_a43b17dd265e2ce0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeckVisualize::UpdateUsedPositions(ML_STAR, seq_TipsEmpty, 4, Translate(\"No Tips\"));\r\n// }} \"\"\r\n// {{ 329 1 0 \"351305e6_d4dc_4ac5_90901332eb584cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 330 1 0 \"d3d93bf2_7358_4104_97caaae9491cbeaf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 331 1 0 \"6ad71463_9136_498b_883a3072a555fe8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 332 1 0 \"d3d93bf2_7358_4104_97caaae9491cbeaf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"DefragTipRacks5mL\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Optimized5mLTipPickup2\" \"Begin\"\r\nfunction Optimized5mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void {\r\n// }} \"\"\r\nprivate dialog customDialogD6E91AF203E543c7804E065769839332;\r\nprivate variable int_ChannelSet;\r\nprivate variable flt_NotUsed;\r\nprivate variable flt_CurrentX;\r\nprivate variable flt_CurrentY;\r\nprivate variable flt_TipCapacity;\r\nprivate variable flt_YRaster;\r\nprivate variable int_TotalOptions;\r\nprivate variable _strFunctionName;\r\nprivate variable bln_OptimizationNeeded;\r\nprivate variable str_LabID;\r\nprivate variable bool_FileExists;\r\nprivate variable flt_PreviousY;\r\nprivate variable str_TipMessage;\r\nprivate variable flt_TargetX;\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable int_ChannelActive;\r\nprivate variable int_TotalChannels;\r\nprivate variable int_ChannelValue;\r\nprivate variable int_ChannelIndex;\r\nprivate variable int_TipsNeeded;\r\nprivate variable bln_EnoughTipsLoaded;\r\nprivate variable str_PosID;\r\nprivate variable str_Value;\r\nprivate variable str_TipName;\r\nprivate sequence seq_RemainingSequence;\r\nprivate variable arr_GroupedXCoords[];\r\nprivate variable arr_GroupNumber[];\r\nprivate variable arr_ChannelPattern[];\r\nprivate variable arr_YMin[];\r\nprivate variable arr_YMax[];\r\nprivate variable arr_GroupedCounts[];\r\nprivate variable arr_GroupedLabID[];\r\n// {{ 5 \"Optimized5mLTipPickup2\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 714 1 0 \"87fac8de_eb41_437c_9d54ac067e1414d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"bd04db41_859b_4d6d_b6fc631ae437ee1d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 717 1 0 \"de5e993e_e70e_418d_bfef3d37284a4d0a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 718 1 0 \"87fac8de_eb41_437c_9d54ac067e1414d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 719 1 0 \"4829ea73_449c_4d89_b959c8a72ba41a4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nGet5mLChannelCount(ML_STAR, int_TotalChannels);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"15ced722_ce0d_4885_ad64198917ec2408\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"aff02788_116e_4cd7_95a58816d96f0c0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_TipsNeeded = StrReplace(i_str_ChannelPattern, Translate(\"1\"), Translate(\"1\"));\r\n// }} \"\"\r\n// {{{ 722 1 0 \"244ea944_17f3_49b0_8b533bf27f24197c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ni_str_ChannelPattern = StrFillRight(i_str_ChannelPattern, Translate(\"0\"), int_TotalChannels);\r\n// }} \"\"\r\n// {{ 723 1 0 \"ee35b2e3_d22a_4950_b68825bfecd9db32\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_ChannelPattern.SetSize(0);\r\n// }} \"\"\r\n// {{ 724 1 0 \"8ec59276_1a70_4ab4_a3729421d1c688a1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{{ 725 1 0 \"88ee7f36_4b73_4be0_a81e232579f752c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrLeft(i_str_ChannelPattern, int_ChannelIndex);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"8b1fd738_6bcb_4b02_943a9480ca256ba4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_Value = StrRight(str_Value, 1);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"03f35a53_a324_4d8d_b267b9b2969fb139\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_ChannelValue = StrIVal(str_Value);\r\n// }} \"\"\r\n// {{ 728 1 0 \"6d21d8e3_b318_48b1_bf20dccb62a046f6\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_ChannelPattern.AddAsLast(int_ChannelValue);\r\n// }} \"\"\r\n// {{ 729 1 0 \"8ec59276_1a70_4ab4_a3729421d1c688a1\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 730 1 0 \"29efdf4f_456c_4b73_a8b2fe99c3865a05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_TipsNeeded == 0)\r\n{\r\n// }} \"\"\r\n// {{ 731 1 0 \"01226fab_1c70_47b8_bd9aa678c03764f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 732 1 0 \"790ee152_e566_40a3_82c5893715262b18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 733 1 0 \"01226fab_1c70_47b8_bd9aa678c03764f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 734 1 0 \"25b12484_a8ec_4cc1_a95f57ca4a498186\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 735 1 0 \"29efdf4f_456c_4b73_a8b2fe99c3865a05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 736 1 0 \"29fa761c_e3d9_468d_9c101062787f26a8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (BOOLEON::TRUE == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 737 1 0 \"9f0ac349_9daf_40fd_b27d5bfd9f6d5ae6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCheck(ML_STAR, io_seq_TipSequence, i_str_TipCounter, int_TipsNeeded);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"1e9b9567_8535_4fdc_8da381e5eeb945b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_RemainingSequence, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"23873598_d72f_41dc_b5ddb1f786d28880\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"0fec3806_f601_42b6_9ee50f5e9534d908\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"9ed69bc7_7cde_4dfb_8b22f2c2ae928cfe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 742 1 0 \"6debfd39_1031_454c_89baff5f0d55e7f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bool_FileExists == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 743 1 0 \"7791d9c4_47c2_48b0_97e139c13973d930\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLExtensions::File::Delete(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{ 744 1 0 \"6debfd39_1031_454c_89baff5f0d55e7f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 745 1 0 \"6757b6e1_fe0e_48ad_b9283f59b1a69603\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 746 1 0 \"eb851f30_c750_406f_bef1624d9396755a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::FALSE;\r\n// }} \"\"\r\n// {{ 747 1 0 \"56d7646f_2d56_4d56_9c92d0da744d7777\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelSet = 1;\r\n// }} \"\"\r\n// {{ 748 1 0 \"9c42db09_491b_4067_b41f98955d984b5b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;)\r\n{\r\nint_ChannelIndex = int_ChannelIndex + 1;\r\n// }} \"\"\r\n// {{ 749 1 0 \"9c862401_589b_4405_b6aa9f68e1e964f1\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nint_ChannelActive=arr_ChannelPattern.GetAt(int_ChannelIndex-1);\r\n// }} \"\"\r\n// {{ 750 1 0 \"6e991536_e480_4e2a_b4ee22ec09bcb70e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelActive == 1)\r\n{\r\n// }} \"\"\r\n// {{{ 751 1 0 \"8b960903_20f6_4d75_abc2a4e91ce380b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_LabID = SeqGetLabwareId(seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"9da95cf1_dbeb_4bf4_81ade911bff75b94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_PosID = SeqGetPositionId(seq_RemainingSequence);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"1a6b43ae_0c85_4060_871f2d719dd99036\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqIncrement(seq_RemainingSequence, 1);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"6f2a327a_e380_4f0b_812177b24b090105\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_CurrentX, flt_CurrentY, flt_NotUsed, flt_NotUsed);\r\n// }} \"\"\r\n// {{ 755 1 0 \"b4750ac9_ca16_4df3_ad85f55626fb792d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY <= arr_YMax.ElementAt( int_ChannelIndex -1))\r\n{\r\n// }} \"\"\r\n// {{ 756 1 0 \"494e7ef7_f44b_4a19_be7c02ecd4501b7b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY >= arr_YMin.ElementAt( int_ChannelIndex -1))\r\n{\r\n// }} \"\"\r\n// {{ 757 1 0 \"1b19a1f5_95c9_4527_a7149174ac9c5efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_ChannelSet == 1)\r\n{\r\n// }} \"\"\r\n// {{ 758 1 0 \"1c751fe7_dc09_4565_99d76a77153aa80c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TargetX = flt_CurrentX;\r\n// }} \"\"\r\n// {{ 759 1 0 \"176d1f49_ae6f_4bdf_8525fe1a0c4ad7f1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_CurrentY;\r\n// }} \"\"\r\n// {{ 760 1 0 \"1d51aa1d_451b_42a3_8f8f357f7e53abff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelSet = int_ChannelSet + 1;\r\n// }} \"\"\r\n// {{ 761 1 0 \"1b19a1f5_95c9_4527_a7149174ac9c5efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 762 1 0 \"48afd576_6870_4a33_b08653db21db06e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentX != flt_TargetX)\r\n{\r\n// }} \"\"\r\n// {{ 763 1 0 \"6ccd1a02_c966_4aae_93933f75323677b6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 764 1 0 \"ba1589bf_bdb9_4985_a22f5035d66cffd0\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 765 1 0 \"48afd576_6870_4a33_b08653db21db06e1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 766 1 0 \"b1c46388_b048_403a_a28be1d16786a16a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_CurrentY > flt_PreviousY)\r\n{\r\n// }} \"\"\r\n// {{ 767 1 0 \"18e3c61c_a281_4b48_a56b776f5c7194ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 768 1 0 \"28f0bd2a_2dd4_4190_ac7d769a5ade3784\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 769 1 0 \"b1c46388_b048_403a_a28be1d16786a16a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 770 1 0 \"6ed35aa5_6cb3_4e53_b98506697635de8e\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_ChannelSet = int_ChannelSet + 1;\r\n// }} \"\"\r\n// {{ 771 1 0 \"1b19a1f5_95c9_4527_a7149174ac9c5efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 772 1 0 \"494e7ef7_f44b_4a19_be7c02ecd4501b7b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 773 1 0 \"b810b5fe_3e27_4fee_9b3d70ec67b66f31\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 774 1 0 \"9872bf4d_0481_43cb_9dfdb95901f695fa\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 775 1 0 \"494e7ef7_f44b_4a19_be7c02ecd4501b7b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 776 1 0 \"b4750ac9_ca16_4df3_ad85f55626fb792d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 777 1 0 \"f6572189_f56d_45f2_aa6382b1a19a4e63\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_OptimizationNeeded = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 778 1 0 \"b7e04722_0b4f_40e0_8d5b84b19d343cec\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 779 1 0 \"b4750ac9_ca16_4df3_ad85f55626fb792d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 780 1 0 \"6e991536_e480_4e2a_b4ee22ec09bcb70e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 781 1 0 \"97bd1161_af43_43c9_b24a69f258246851\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_PreviousY = flt_PreviousY - flt_YRaster;\r\n// }} \"\"\r\n// {{ 782 1 0 \"9c42db09_491b_4067_b41f98955d984b5b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 783 1 0 \"0482e0c0_7433_4d29_a4f92981bb47ee67\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_RemainingSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 784 1 0 \"6757b6e1_fe0e_48ad_b9283f59b1a69603\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 785 1 0 \"fbbe2532_e550_4fde_8264ba76f0d6e650\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_OptimizationNeeded == BOOLEON::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 786 1 0 \"6ca31729_f13e_41b2_92d511a618dc2caf\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"OPTIMIZE NEEDED!\"));\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 787 1 0 \"f886175d_69a4_49db_8cb42ec58ebbc954\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequence(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 788 1 0 \"83325d82_66fd_4547_9c6db08b914cbd54\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::SortSequenceRaster(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE, flt_YRaster);\r\n// }} \"\"\r\n// {{ 789 1 0 \"859f3e13_f5c4_42f8_a6f1bfae40c14bf6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used;\r\n   file WriteFile;\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"INDEX\", int_PositionCount, hslInteger);\r\n   WriteFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   WriteFile.AddField(\"Z_COORD\", flt_Z_Coord, hslFloat);\r\n   WriteFile.AddField(\"GROUP\",int_Group,hslInteger);\r\n\r\n   int_TotalValues = seq_RemainingSequence.GetTotal();\r\n\r\n   WriteFile.SetExtendedProperties(\"HDR=YES\");\r\n   WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite);\r\n   \r\n   int_PositionCount = 1;   \r\n   int_Group = 0;\r\n   flt_CurrentX = -100.0;\r\n   for(i = 0; i < int_TotalValues;)\r\n   {\r\n      i = i + 1;\r\n      int_ChannelIndex = int_ChannelIndex + 1;\r\n\r\n      seq_RemainingSequence.SetCurrentPosition(i);\r\n\r\n      str_LabID = seq_RemainingSequence.GetLabwareId();\r\n      str_PosID = seq_RemainingSequence.GetPositionId();\r\n      DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed);\r\n\r\n      if(flt_CurrentX != flt_X_Coord)\r\n      {\r\n         flt_CurrentX = flt_X_Coord;\r\n         int_Group = int_Group + 1;\r\n         int_ChannelIndex = 1;\r\n      }\r\n\r\n      if(int_ChannelIndex > int_TotalChannels)\r\n      {\r\n         int_ChannelIndex = 1;\r\n         flt_CurrentX = flt_X_Coord;\r\n         int_Group = int_Group + 1;\r\n      }\r\n            \r\n      WriteFile.WriteRecord();\r\n\r\n      int_PositionCount = int_PositionCount + 1;\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n}\r\n// {{ 791 1 0 \"c8f768d4_2c95_4069_b2a1f0ef902350b0\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{ 792 1 0 \"8cedafac_d69d_4d17_84bcaff9f102b7b6\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedLabID.SetSize(0);\r\n// }} \"\"\r\n// {{ 793 1 0 \"ac37feb6_febb_460b_8ade1a224961c8c7\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedXCoords.SetSize(0);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 794 1 0 \"c3405760_2bd3_4b76_b43baaeea9ea980f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupNumber.SetSize(0);\r\n// }} \"\"\r\n// {{ 795 1 0 \"9e863f3c_c20d_40dd_a8bdc0f83ea13c8d\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_GroupedCounts.SetSize(0);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, int_Group;\r\n   file SortFile;\r\n\r\nSortFile.RemoveFields();\r\n\r\n      //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\";\r\n      str_SQL = \"SELECT [GROUP], N FROM (SELECT [GROUP], COUNT(*) AS N FROM SORT GROUP BY [GROUP]) ORDER BY [GROUP] ASC\";\r\n      //SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n      SortFile.AddField(\"GROUP\", int_Group, hslFloat);\r\n      SortFile.AddField(\"N\", int_Count, hslInteger);\r\n\r\n      int_TotalValues = seq_RemainingSequence.GetTotal();\r\n\r\n      SortFile.SetExtendedProperties(\"HDR=YES\");\r\n      SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n   \r\n      str_LabID = \"\";\r\n      flt_Y_Coord = 0.0;\r\n\r\n      while(SortFile.Eof() == 0)\r\n      {\r\n         SortFile.ReadRecord();\r\n         arr_GroupNumber.AddAsLast(int_Group);\r\n         arr_GroupedCounts.AddAsLast(int_Count);\r\n      }\r\n\r\n      SortFile.Close();\r\n      SortFile.RemoveFields();\r\n\r\n}\r\n// {{ 797 1 0 \"48293e9c_6e04_405a_84309b9738de92d3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 798 1 0 \"a6cfbefc_9ba3_4103_85a07f2d56b3bc63\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nint_TotalOptions=arr_GroupedCounts.GetSize();\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 799 1 0 \"ce0dd410_a196_44cb_9e57d900b9a96d53\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Counts           Group\"), arr_GroupedCounts, arr_GroupNumber);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"8c69dcdb_71fd_4dd7_b7f48089ec2bf416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_3(Translate(\"Counts     Lab          X\"), arr_GroupedCounts, arr_GroupedLabID, arr_GroupedXCoords);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{ 801 1 0 \"9be4a4c2_bf8b_48ad_8ca5e9a188d7f226\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount, int_ChannelIndex;\r\n   variable flt_PreviousY;\r\n   file SortFile, UpdateFile;\r\n\r\n   bln_UseOptimization = hslFalse;\r\n\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"GROUP\", int_Group, hslInteger);\r\n\r\n   str_SQL = \"SELECT INDEX, LAB_ID, X_COORD, Y_COORD, [GROUP] FROM SORT ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC\";\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n\r\n      SortFile.ReadRecord();\r\n      //Util::Lookup(arr_GroupedCounts,int_Group,a);\r\n      //Trace(\"Group:  \", int_Group,\"  Count:  \",arr_GroupedCounts.GetAt(int_Group-1),\"  Tips needed:  \",int_TipsNeeded);\r\n      if(arr_GroupedCounts.GetAt(int_Group-1) >= int_TipsNeeded)\r\n      {\r\n         int_Group = StrConcat2(int_Group,\"\");\r\n         bln_UseOptimization = hslTrue;\r\n         break;\r\n      }\r\n   }\r\n\r\n   //int_Index = StrConcat2(int_Index,\"\");   \r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n//Trace(\"Lab ID:  \",str_LabID,\"  X Coord:  \",flt_XCoord);\r\n//Trace(\"Group:  \",int_Group);\r\n//Trace(\"Use Optimization:  \",bln_UseOptimization);\r\nif(bln_UseOptimization == hslTrue)\r\n{\r\n   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\";\r\n\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n   SortFile.AddField(\"GROUP\",int_Group, hslInteger);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   i = 0;\r\n   int_ChannelIndex = 1;\r\n   str_InValue = \"(\";\r\n   flt_PreviousY = 9999.9;\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      if(i > int_TipsNeeded) break;\r\n      SortFile.ReadRecord();\r\n      if(arr_ChannelPattern.GetAt(int_ChannelIndex-1)==1)\r\n      {\r\n         if(i==0) flt_PreviousY = flt_Y_Coord + flt_YRaster;\r\n         if(flt_Y_Coord <= flt_PreviousY - flt_YRaster)\r\n         {\r\n            i = i + 1;\r\n            if(i > 1) str_InValue = str_InValue + \", \";\r\n            str_InValue = StrConcat2(str_InValue , int_Index);\r\n            int_ChannelIndex = int_ChannelIndex + 1;\r\n         }\r\n      }\r\n      else\r\n      {\r\n         int_ChannelIndex = int_ChannelIndex + 1;\r\n      }\r\n   }\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   UpdateFile.RemoveFields();\r\n   str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n//Trace(str_SQL);\r\n   UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n   UpdateFile.Close();\r\n   UpdateFile.RemoveFields();\r\n}\r\nelse\r\n{\r\n   str_SQL = \"SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC\";\r\n   SortFile.RemoveFields();\r\n   SortFile.AddField(\"INDEX\", int_Index, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"X_COORD\", flt_X_Coord, hslFloat);\r\n   SortFile.AddField(\"Y_COORD\", flt_Y_Coord, hslFloat);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n      i = 0;\r\n   str_InValue = \"(\";\r\n   int_ChannelCount = 1;\r\n   int_UpdateCount = 0;\r\n   int_ChannelIndex = 1;\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      //loop(int_TotalChannels)\r\n      //{\r\n         //if(int_ChannelIndex > int_TotalChannels) break;\r\n         //if(arr_ChannelPattern.GetAt(int_ChannelIndex)==1)\r\n         //{\r\n            //break;\r\n         //}\r\n         //int_ChannelIndex = int_ChannelIndex + 1;\r\n      //}\r\n\r\n      if(int_ChannelIndex > int_TotalChannels) break;\r\n      SortFile.ReadRecord();\r\n      i = i + 1;\r\n      if(int_ChannelCount > int_TipsNeeded) break;\r\n      if(flt_Y_Coord <= arr_YMax.GetAt(int_ChannelIndex-1))\r\n      {\r\n         if(flt_Y_Coord >= arr_YMin.GetAt(int_ChannelIndex-1))\r\n         {\r\n            if(int_ChannelCount > 1) str_InValue = str_InValue + \", \";\r\n            str_InValue = StrConcat2(str_InValue , int_Index);\r\n            int_ChannelCount = int_ChannelCount + 1;\r\n            int_UpdateCount = int_UpdateCount + 1;\r\n            int_ChannelIndex = int_ChannelIndex + 1;\r\n         }\r\n      }\r\n   }\r\n   str_InValue = str_InValue + \")\";\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_UpdateCount>0)\r\n   {\r\n      UpdateFile.RemoveFields();\r\n      str_SQL = \"UPDATE SORT SET USED = 2 WHERE INDEX IN\" + str_InValue;\r\n\r\n      UpdateFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n      UpdateFile.Close();\r\n      UpdateFile.RemoveFields();\r\n   }\r\n}\r\n\r\n}\r\n// {{ 803 1 0 \"3bece2a4_9dd6_4778_bd06c7599f1d3ace\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 804 1 0 \"3a977b08_3564_45df_91c33f05457dcb33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(io_seq_TipSequence);\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL, bln_Used;\r\n   file SortFile;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT USED, LAB_ID, POS_ID FROM SORT ORDER BY USED DESC, LAB_ID ASC, X_COORD ASC, Y_COORD DESC\";\r\n\r\n   SortFile.AddField(\"USED\", bln_Used, hslInteger);\r\n   SortFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   SortFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   while(SortFile.Eof() == 0)\r\n   {\r\n      SortFile.ReadRecord();\r\n      SeqAdd(io_seq_TipSequence, Translate(str_LabID), Translate(str_PosID));\r\n   }\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n}\r\n// {{ 806 1 0 \"5bf28083_bb1c_43d2_b8c0fc216a22e92b\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nio_seq_TipSequence.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 807 1 0 \"eaacfa85_3d66_4a6d_b7d870d3bf843ae6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nbln_EnoughTipsLoaded = BOOLEON::TRUE;\r\n// }} \"\"\r\n{\r\n   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;\r\n   variable int_PositionCount, int_Count, str_SQL;\r\n   file SortFile;\r\n\r\n   SortFile.RemoveFields();\r\n\r\n   str_SQL = \"SELECT COUNT(*) AS N FROM SORT WHERE USED = 2\";\r\n\r\n   SortFile.AddField(\"N\", int_Count, hslInteger);\r\n\r\n   SortFile.SetExtendedProperties(\"HDR=YES\");\r\n   SortFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead,str_SQL);\r\n\r\n   SortFile.ReadRecord();\r\n\r\n   SortFile.Close();\r\n   SortFile.RemoveFields();\r\n\r\n   if(int_Count < int_TipsNeeded) bln_EnoughTipsLoaded = hslFalse;\r\n}\r\n// {{ 809 1 0 \"ef12485d_bb0b_4181_a22816499d498bbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_EnoughTipsLoaded == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 810 1 0 \"039a177b_40cb_4bb3_af57978991eda899\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"------------------  Insufficient tips found\"));\r\n// }} \"\"\r\n// {{{ 811 1 0 \"1883f8ae_29e5_4db6_8417b79391d42d05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCapacityCheck(ML_STAR, io_seq_TipSequence, flt_TipCapacity);\r\n// }} \"\"\r\n// {{ 812 1 0 \"294e0dc4_ca45_4c83_ba87d6bcec1be239\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (flt_TipCapacity == 0.0)\r\n{\r\n// }} \"\"\r\n// {{ 813 1 0 \"4e463bb2_7e4d_4b19_a55e4e2d4959d7cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipCapacity = Translate(\"Unknown\");\r\n// }} \"\"\r\n// {{ 814 1 0 \"294e0dc4_ca45_4c83_ba87d6bcec1be239\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 815 1 0 \"fac49442_6e4a_4c6b_8a4a08b46f751654\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipName = StrConcat4(flt_TipCapacity, Translate(\" uL Tips\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 816 1 0 \"a5111bb6_067d_4858_91184d48301f3d88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_TipMessage = StrConcat4(Translate(\"Please load more \"), str_TipName, Translate(\" on to the deck.\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 817 1 0 \"b6e7b665_c03d_40fc_960a1862f829d164\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialogD6E91AF203E543c7804E065769839332.InitCustomDialog( \"b6e7b665_c03d_40fc_960a1862f829d164\" );\r\ncustomDialogD6E91AF203E543c7804E065769839332.SetCustomDialogProperty( \"textBlock2.Text\", str_TipMessage );\r\ncustomDialogD6E91AF203E543c7804E065769839332.ShowCustomDialog();\r\n// }} \"\"\r\n// {{{ 818 1 0 \"bc501567_2ef5_4b26_914e17dd7bf7efaa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nResetInputSequence(ML_STAR, io_seq_TipSequence);\r\n// }} \"\"\r\n// {{{ 819 1 0 \"3468e5af_7036_4391_b63abae4629966d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nTipCounter_Edit(ML_STAR, io_seq_TipSequence, i_str_TipCounter, 99999);\r\n// }} \"\"\r\n// {{ 820 1 0 \"ef12485d_bb0b_4181_a22816499d498bbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 821 1 0 \"ad529414_3513_43ce_9c83ac1ef00a14d2\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 822 1 0 \"ef12485d_bb0b_4181_a22816499d498bbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 823 1 0 \"859f3e13_f5c4_42f8_a6f1bfae40c14bf6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 824 1 0 \"fbbe2532_e550_4fde_8264ba76f0d6e650\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 825 1 0 \"f16907cf_2348_4f67_ba32b1ead8fef794\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 826 1 0 \"fbbe2532_e550_4fde_8264ba76f0d6e650\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 827 1 0 \"29fa761c_e3d9_468d_9c101062787f26a8\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 828 1 0 \"19000815_ff51_4949_bda38d8c1eb83ef3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 829 1 0 \"f86f5175_4abf_4e88_bb4fa99ba8c49986\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 830 1 0 \"19000815_ff51_4949_bda38d8c1eb83ef3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Optimized5mLTipPickup2\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCountNeeded_Reset\" \"Begin\"\r\nfunction TipCountNeeded_Reset( variable i_str_TipCounter ) void {\r\n// }} \"\"\r\nprivate variable int_Index;\r\n// {{ 5 \"TipCountNeeded_Reset\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1026 1 0 \"634bac04_5879_48d9_b4394193206ce30d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"41edd52c_27de_4d5f_b2bee2989d6267f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::InitializeVariables();\r\n// }} \"\"\r\n// {{ 1028 1 0 \"080fd8d0_2090_4b46_b4b411c33a291e77\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetSize(0);\r\n// }} \"\"\r\n// {{ 1029 1 0 \"6dd37ae8_3441_4a1a_a2de464247c25641\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.SetSize(0);\r\n// }} \"\"\r\n// {{ 1030 1 0 \"9a63a05f_3e00_4cd3_b55c6d9a5957ea84\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED = BOOLEON::TRUE;\r\n// }} \"\"\r\n// {{ 1031 1 0 \"634bac04_5879_48d9_b4394193206ce30d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"4a4f7bbf_b9ef_4890_b5116d7d8ae6c1ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_Index = _Lookup(TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER, i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 1033 1 0 \"1cc3be18_65d7_427a_9345d0fb5437bdef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Index == 0)\r\n{\r\n// }} \"\"\r\n// {{ 1034 1 0 \"e48a9c97_4254_457f_be01cc0c85bc67f5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1035 1 0 \"e5b80bf9_2d66_44e7_b2c8876480f77397\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.AddAsLast(i_str_TipCounter);\r\n// }} \"\"\r\n// {{ 1036 1 0 \"bfa86bc1_e72b_48a1_a8043e23a80f8964\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.AddAsLast(0);\r\n// }} \"\"\r\n// {{ 1037 1 0 \"1cc3be18_65d7_427a_9345d0fb5437bdef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1038 1 0 \"cac50ff8_9da4_43aa_b796636119ff8ced\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1039 1 0 \"f6a5f903_43ac_4982_aa6494e01709c561\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nTT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetAt(int_Index-1, 0);\r\n// }} \"\"\r\n// {{ 1040 1 0 \"1cc3be18_65d7_427a_9345d0fb5437bdef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TipCountNeeded_Reset\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ABSTRACT\" \"Begin\"\r\nprivate function ABSTRACT(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"ABSTRACT\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1 1 0 \"57867926_0890_4408_8f082f9db5647dc1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"ABSTRACT\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetSequenceName\" \"Begin\"\r\nprivate function _GetSequenceName( device & Instrument, sequence i_seq_SequenceToCheck, variable & o_strSequenceName, variable & o_intTotalPositions ) void {\r\n// }} \"\"\r\n// {{ 5 \"_GetSequenceName\" \"InitLocals\"\r\no_strSequenceName = 0;\r\no_intTotalPositions = 0;\r\n// }} \"\"\r\n// {{ 1460 1 0 \"28fc9610_cc2c_42d7_bbd6ab2dad5fb555\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_intTotalPositions = 0;\r\n// }} \"\"\r\n// {{ 1461 1 0 \"efa23306_d3c8_4d16_ad333351b08821e5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_strSequenceName = 0;\r\n// }} \"\"\r\n{\r\n   Instrument.CopyResetSequence(i_seq_SequenceToCheck.GetName(),i_seq_SequenceToCheck);\r\n   o_strSequenceName = i_seq_SequenceToCheck.GetName();\r\n   o_intTotalPositions = i_seq_SequenceToCheck.GetCount();\r\n}\r\n// {{{ 5 \"_GetSequenceName\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetTipCounter\" \"Begin\"\r\nfunction GetTipCounter( device & ML_STAR, sequence & io_seqTips, variable & o_strTipCounter ) void {\r\n// }} \"\"\r\nprivate variable l_strSequenceName;\r\nprivate variable l_intTotalPositions;\r\nprivate variable l_blnLiquidClassExists;\r\nprivate variable _strFunctionName;\r\nprivate variable l_intTipType;\r\nprivate variable l_strInstrumentClass;\r\nprivate variable l_arrListOfTipCounters[];\r\nprivate variable l_strLabID;\r\n// {{ 5 \"GetTipCounter\" \"InitLocals\"\r\no_strTipCounter = 0;\r\n// }} \"\"\r\n// {{ 340 1 0 \"844ae7d3_ea89_4e60_acedc07ec3a79f82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 341 1 0 \"677eb5d4_158d_4704_9f58a9f6200b794d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strFunctionName = Translate(\"\");\r\n// }} \"\"\r\n_strFunctionName = GetFunctionName();\r\n// {{{ 343 1 0 \"7fe9af90_02e2_4ba5_b13d088fae177014\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 344 1 0 \"844ae7d3_ea89_4e60_acedc07ec3a79f82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"2c77ad10_79a5_4efd_a767213def5b1150\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_strTipCounter = Translate(\"\");\r\n// }} \"\"\r\n// {{ 346 1 0 \"f893709d_45d9_4a19_bf7b9c675b5f24e6\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nl_arrListOfTipCounters.SetSize(0);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"6496c8c1_cfd3_4560_96a190fa02b4b336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTIP_COUNTER::InitTipCountingLibrary();\r\n// }} \"\"\r\n// {{{ 348 1 0 \"cd174bd2_acf6_4846_80f6fb30766270be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetSequenceName(ML_STAR, io_seqTips, l_strSequenceName, l_intTotalPositions);\r\n// }} \"\"\r\n// {{ 349 1 0 \"fc60b013_6647_4b7b_8d12ae96a4d65ae7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_strTipCounter = l_strSequenceName;\r\n// }} \"\"\r\n// {{{ 350 1 0 \"09a5c948_509c_46d5_a279cc9752bb88f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE08(Translate(\"     Sequence:  \"), l_strSequenceName, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 351 1 0 \"a1d7d518_ddb8_4e9d_959f3016af083086\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strLabID = SeqGetLabwareId(io_seqTips);\r\n// }} \"\"\r\n// {{{ 352 1 0 \"117c8f21_1919_4338_af6b7635c05c3032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\n_GetTipType(ML_STAR, l_strLabID, l_intTipType);\r\n// }} \"\"\r\n// {{{ 353 1 0 \"79a58f67_177a_48b8_aae60cbdad2b79cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strInstrumentClass = DevGetInstrumentName(ML_STAR);\r\n// }} \"\"\r\n// {{{ 354 1 0 \"f0db91b4_0b03_48f7_be002c776154f550\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nl_blnLiquidClassExists = _GetTipCounterName(l_strInstrumentClass, l_intTipType, o_strTipCounter);\r\n// }} \"\"\r\n// {{ 355 1 0 \"8e14cfb5_100a_435e_a174296cd17fc585\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_blnLiquidClassExists == BOOLEON::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 356 1 0 \"725e5ebe_27b1_4695_bd08ce57b8f55949\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_strTipCounter = l_strSequenceName;\r\n// }} \"\"\r\n// {{ 357 1 0 \"8e14cfb5_100a_435e_a174296cd17fc585\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 358 1 0 \"a3fd4db0_a250_44b2_9e968937463af8c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE04(Translate(\"     \"), Translate(\"Selected Tip Counter:  \"), o_strTipCounter, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 359 1 0 \"cbdd7c3b_8f61_48c8_b210e8414b19459c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 360 1 0 \"f871da57_1051_42ed_8c2664e1d5741e6c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{ 361 1 0 \"cbdd7c3b_8f61_48c8_b210e8414b19459c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"GetTipCounter\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_GetTipCounterName\" \"Begin\"\r\nprivate function _GetTipCounterName( variable i_strInstrumentClass, variable i_intTipType, variable & o_strTipCounterName ) variable {\r\n// }} \"\"\r\nprivate variable l_strModified;\r\nprivate variable l_intID;\r\nprivate variable l_intNum;\r\nprivate variable l_strLabwareType;\r\nprivate variable l_strSystemFolder;\r\nprivate variable l_strName;\r\nprivate variable l_strSQL;\r\nprivate variable l_strTipCounterDatabase;\r\nprivate variable l_strSimulationModified;\r\nprivate variable l_strInstrumentClass;\r\nprivate file l_hdlFile;\r\n// {{ 5 \"_GetTipCounterName\" \"InitLocals\"\r\no_strTipCounterName = 0;\r\n// }} \"\"\r\n// {{ 1487 1 0 \"0858a27e_1423_4e2a_88b209f48af7f5fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_strTipCounterName = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1488 1 0 \"29336ebd_c831_426d_8445e5a9ac21224c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strSystemFolder = FilGetSystemPath();\r\n// }} \"\"\r\n// {{{ 1489 1 0 \"a401704e_f4ca_4323_bf38a9f0c0726713\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strTipCounterDatabase = StrConcat4(l_strSystemFolder, Translate(\"\\\\\"), Translate(\"HxElementCounter\"), Translate(\".mdb\"));\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"f773270a_02c8_419f_87a50e9a85b68e27\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strSQL = StrConcat8(Translate(\"SELECT COUNT(*) AS N FROM [ElementCounters] WHERE [InstrumentClass]= '\"), i_strInstrumentClass, Translate(\"' AND [LabwareType] = '\"), i_intTipType, Translate(\"'\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1491 1 0 \"2fc6b5fd_7947_4ad6_8b5334078bd2b0a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACE::TRACE02(Translate(\"Database:  \"), l_strTipCounterDatabase);\r\n// }} \"\"\r\n// {{ 1492 1 0 \"e0f23421_6132_412d_991b47a4f5659095\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_hdlFile.AddField(\"N\", l_intNum, hslInteger);\r\nif( 0 == l_hdlFile.Open(l_strTipCounterDatabase + \" \" + \"ElementCounters\", hslRead, l_strSQL) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, l_strTipCounterDatabase, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1493 1 0 \"bc92d284_bd18_4f37_a054c84e02c3d1e5\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == l_hdlFile.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1494 1 0 \"207055c2_0c18_4864_a9a4a31993940ff2\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != l_hdlFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nl_hdlFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 1495 1 0 \"0e984316_c27f_4765_9eeafd0085f855f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (l_intNum == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 1496 1 0 \"3124b0d6_6232_4ca0_9d1304bfac90bec9\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (BOOLEON::FALSE);\r\n// }} \"\"\r\n// {{ 1497 1 0 \"0e984316_c27f_4765_9eeafd0085f855f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1498 1 0 \"7a9a2385_1f12_41fd_b3fcb548dc13093f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nl_strSQL = StrConcat8(Translate(\"SELECT * FROM [ElementCounters] WHERE [InstrumentClass]= '\"), i_strInstrumentClass, Translate(\"' AND [LabwareType] = '\"), i_intTipType, Translate(\"' ORDER BY [ID] ASC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1499 1 0 \"3862bb82_6403_4ab3_972b5aee340931c2\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nl_hdlFile.AddField(\"ID\", l_intID, hslInteger);\r\nl_hdlFile.AddField(\"Name\", l_strName, hslString, 255);\r\nl_hdlFile.AddField(\"InstrumentClass\", l_strInstrumentClass, hslString, 50);\r\nl_hdlFile.AddField(\"LabwareType\", l_strLabwareType, hslString, 50);\r\nl_hdlFile.AddField(\"Modified\", l_strModified, hslInteger);\r\nl_hdlFile.AddField(\"SimulationModified\", l_strSimulationModified, hslInteger);\r\nif( 0 == l_hdlFile.Open(l_strTipCounterDatabase + \" \" + \"ElementCounters\", hslRead, l_strSQL) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, l_strTipCounterDatabase, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1500 1 0 \"97e743ac_4563_46e7_872bd1f697e249c2\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == l_hdlFile.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1501 1 0 \"a74d3212_5bf6_433d_9c0e48679f083b89\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != l_hdlFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nl_hdlFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 1502 1 0 \"7ff846f6_bbcb_4248_b1f2d168e850ece2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_strTipCounterName = l_strName;\r\n// }} \"\"\r\n// {{{ 1503 1 0 \"4811a841_5e0e_4117_ac13fe2766115adb\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (BOOLEON::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"_GetTipCounterName\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_SortSequenceLabIDXY\" \"Begin\"\r\nprivate function _SortSequenceLabIDXY( device & Instrument, sequence & io_Sequence ) void {\r\n// }} \"\"\r\nprivate variable str_TempSortingFilePath;\r\nprivate variable str_SQL_Sort;\r\n// {{ 5 \"_SortSequenceLabIDXY\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"8abd8950_d2f1_4e16_b70ee979a90dbb33\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"7e15759e_80c0_4634_b4e2d2946f5d5f30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_SQL_Sort = StrConcat4(Translate(\"SELECT * FROM SORT ORDER BY LAB_ID ASC, X_COORD ASC, Y_COORD DESC\"), Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n{\r\n   variable int_CurrentPosition;\r\n   variable int_TotalSequencePositions;\r\n   sequence seq_AdjustedSequence;\r\n   variable i;\r\n\r\n   file WriteFile;\r\n   file ReadFile;\r\n   variable str_LabID;\r\n   variable str_PosID;\r\n   variable flt_X;\r\n   variable flt_Y;\r\n   variable arr_Coordinates[];\r\n\r\n   int_CurrentPosition = io_Sequence.GetCurrentPosition();\r\n\r\n   seq_AdjustedSequence.CopySequence(io_Sequence);\r\n\r\n   int_TotalSequencePositions = io_Sequence.GetTotal();\r\n\r\n   SeqRemoveAll(io_Sequence);\r\n\r\n   WriteFile.RemoveFields();\r\n   WriteFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   WriteFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   WriteFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   WriteFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n\r\n   if(WriteFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslWrite))\r\n   {\r\n\r\n      for(i = int_CurrentPosition; i <= int_TotalSequencePositions;)\r\n      {\r\n         if(int_CurrentPosition == 0) break;\r\n         seq_AdjustedSequence.SetCurrentPosition(i);\r\n\r\n         if(seq_AdjustedSequence.GetLabwareId() != \"\" && seq_AdjustedSequence.GetPositionId() != \"\") \r\n         {\r\n            str_LabID = seq_AdjustedSequence.GetLabwareId();\r\n            str_PosID = seq_AdjustedSequence.GetPositionId();\r\n            Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID);\r\n            flt_X = arr_Coordinates[0];\r\n            flt_Y = arr_Coordinates[1];\r\n\r\n            WriteFile.WriteRecord();\r\n         }\r\n\r\n         i = i + 1;\r\n      }\r\n\r\n   }\r\n\r\n   WriteFile.Close();\r\n   WriteFile.RemoveFields();\r\n\r\n   ReadFile.RemoveFields();\r\n   ReadFile.AddField(\"LAB_ID\", str_LabID, hslString, 255);\r\n   ReadFile.AddField(\"POS_ID\", str_PosID, hslString, 255);\r\n   ReadFile.AddField(\"X_COORD\", flt_X, hslFloat);\r\n   ReadFile.AddField(\"Y_COORD\", flt_Y, hslFloat);\r\n\r\n   if(ReadFile.Open(str_TempSortingFilePath + \" \" + \"SORT\", hslRead, str_SQL_Sort))\r\n   {\r\n      while(ReadFile.Eof() == 0)\r\n      {\r\n         ReadFile.ReadRecord();\r\n         io_Sequence.Add(str_LabID,str_PosID);\r\n      }\r\n   }\r\n\r\n   else\r\n   {\r\n      Trace(\"ERROR OCCURRED DURING SORT\");\r\n      io_Sequence.CopySequence(seq_AdjustedSequence);\r\n   }\r\n\r\n   ReadFile.Close();\r\n   ReadFile.RemoveFields();\r\n\r\n   io_Sequence.SetCurrentPosition(1);\r\n}\r\n// {{{ 5 \"_SortSequenceLabIDXY\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2022-04-21 14:36$$checksum=d5e9c462$$length=083$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR Tools Demo.hsl",
    "content": " namespace _Method { #include \"STAR Tools\\\\STAR Tip Tools.hs_\" } \r\n namespace _Method { #include \"STAR Tools\\\\STAR MPH96 Tools.hs_\" } \r\n namespace _Method { #include \"STAR Tools\\\\STAR Channel Tools.hs_\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"STAR Tools\\\\STAR Pipetting Tools.hs_\" } \r\n namespace _Method { #include \"HSLUtilLib2.hsl\" } \r\n#include \"STAR Tools\\\\Channel Tools Test.res\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable int_TotalSamples;\r\nvariable int_RemainingSamples;\r\nvariable str_ChPattern;\r\nsequence seq_SortedPositions;\r\nvariable str_TipCounter;\r\nvariable int_TotalColumns;\r\nvariable int_Remainder;\r\nvariable bln_TipLoaded;\r\nsequence arr_seq_Reservoirs[];\r\nvariable arr_VolumesMeasured[];\r\nvariable flt_MeasuredVolume;\r\nvariable str_AspReturn;\r\nvariable str_LiquidReturn;\r\nvariable bln_LabwareFound;\r\nsequence seq_ReagentTarget;\r\nvariable str_TipPickUpReturn;\r\nvariable str_IncorrectChannels;\r\nvariable bln_TipsRightType;\r\nsequence seq_IncorrectPositions;\r\nvariable str_ChannelPattern;\r\nvariable str_TipCounter1000;\r\nvariable str_TipCounter300;\r\nvariable loopCounter1;\r\nvariable arr_DispenseHeights[];\r\nvariable arr_MixHeights[];\r\nvariable arr_AspirationHeights[];\r\nvariable str_ReturnValues;\r\nvariable arr_AspReturns[];\r\nvariable arr_DispReturns[];\r\nvariable arr_LiquidLevelHeights[];\r\nglobal device ML_STAR (\"STAR Tools\\\\Channel Tools Test.lay\", \"ML_STAR\", hslTrue);\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_TIP_TOOLS::_InitLibrary();\r\nSTAR_MPH96_TOOLS::_InitLibrary();\r\nSTAR_CHANNEL_TOOLS::_InitLibrary();\r\nSPT::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{ 1 1 0 \"8d794176_1ade_4ed5_aeb03eec85a389bf\" \"ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2(\"8d794176_1ade_4ed5_aeb03eec85a389bf\"); // Initialize\r\n}\r\n// }} \"\"\r\n// {{ 2 1 0 \"40509f62_f0a5_4021_a545baf5ffdf9308\" \"ML_STAR:{EA251BFB-66DE-48D1-83E5-6884B4DD8D11}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._EA251BFB_66DE_48D1_83E5_6884B4DD8D11(\"40509f62_f0a5_4021_a545baf5ffdf9308\"); // MoveAutoLoad\r\n}\r\n// }} \"\"\r\n// {{ 3 1 0 \"d1156590_011d_4c18_b8b4e9671900badd\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 4 1 0 \"18a77d48_0134_497b_81382d705e62877d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_MPH96_TOOLS::MOVE_MPH96ToBack(ML_STAR);\r\n// }} \"\"\r\n// {{ 5 1 0 \"37b89d75_a2a9_42d9_9ebecbf1fa832448\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalSamples = 71;\r\n// }} \"\"\r\n// {{{ 6 1 0 \"b68dbec0_3636_4b51_92ef4891e66e0393\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipCounter(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter);\r\n// }} \"\"\r\n// {{{ 7 1 0 \"146c6ac4_6310_4dc2_9718b398b649c4f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipCounter(ML_STAR, ML_STAR.MlStar300ulStandardVolumeTipWithFilter, str_TipCounter300);\r\n// }} \"\"\r\n// {{{ 8 1 0 \"2b4c50c2_c4fa_4e59_9a9d1d1a9a104754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::GetTipCounter(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, str_TipCounter1000);\r\n// }} \"\"\r\n// {{ 9 1 0 \"a3d8e366_a476_4540_bea59c2f92a6f7fb\" \"{B31F353C-5D80-11d4-A5EB-0050DA737D89}\"\r\nML_STAR.seq_SourceTubes.SetCount(int_TotalSamples);\r\n// }} \"\"\r\n// {{ 10 1 0 \"64372387_3487_4cbf_a3d5397d5deca664\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 11 1 0 \"2f012e6b_23ad_4df6_841201f19f80ee87\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Edit(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter, -1);\r\n// }} \"\"\r\n// {{{ 12 1 0 \"5dc848ca_78ff_48a3_b8f8d9e9ec800647\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Edit(ML_STAR, ML_STAR.MlStar300ulStandardVolumeTipWithFilter, str_TipCounter300, -1);\r\n// }} \"\"\r\n// {{{ 13 1 0 \"2134365b_86b3_4f2f_b3dccafca58f0c0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Edit(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, str_TipCounter1000, -1);\r\n// }} \"\"\r\n// {{ 14 1 0 \"d1c01525_97d6_4932_83008c9a99d2c9d2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 15 1 0 \"aed8446b_06a8_4d97_a4da3ee67cdd2ed4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq_ReagentTarget, ML_STAR.Cos_96_DW_1mL_0001);\r\n// }} \"\"\r\n// {{ 16 1 0 \"a50d2b28_d7c8_491d_a31e94d734122772\" \"{B31F353C-5D80-11d4-A5EB-0050DA737D89}\"\r\nseq_ReagentTarget.SetCount(int_TotalSamples);\r\n// }} \"\"\r\n// {{ 17 1 0 \"f2b963d3_2b82_4dd8_bf26308227a69a88\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (\r\n   (seq_ReagentTarget.GetCurrentPosition() > 0)\r\n)\r\n{\r\nAlignSequences(hslTrue, ML_STAR.rgt_cont_60ml_BC_A00_0001, 1, seq_ReagentTarget, 1);\r\n// }} \"\"\r\n// {{{ 18 1 0 \"fbf90cb4_5b1b_42fe_9c766d935edf367e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, seq_ReagentTarget, str_TipCounter, str_ChPattern);\r\n// }} \"\"\r\n// {{ 19 1 0 \"cfd761b0_c8dc_4dd1_ad08f946bfd2e6b0\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"cfd761b0_c8dc_4dd1_ad08f946bfd2e6b0\"); // TipPickUp\r\n}\r\n// }} \"\"\r\n// {{ 20 1 0 \"1df4158f_8e1a_47e3_99eea44fd02820c0\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"1df4158f_8e1a_47e3_99eea44fd02820c0\"); // Aspirate\r\n}\r\n// }} \"\"\r\n// {{ 21 1 0 \"fe2f044c_7545_45c1_a2fe350bcd00fe28\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"fe2f044c_7545_45c1_a2fe350bcd00fe28\"); // Dispense\r\n}\r\n// }} \"\"\r\n// {{ 22 1 0 \"868a95f6_78e5_42e0_be77f4577936b08c\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"868a95f6_78e5_42e0_be77f4577936b08c\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 23 1 0 \"f2b963d3_2b82_4dd8_bf26308227a69a88\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (\r\n   (seq_ReagentTarget.GetCurrentPosition() > 0 && seq_ReagentTarget.GetMax() == 0 )\r\n)\r\n{ MECC::EndlessSequenceLoopWarning(GetFileName()); }\r\n\r\n}\r\nML_STAR.rgt_cont_60ml_BC_A00_0001.SetMax(ML_STAR.rgt_cont_60ml_BC_A00_0001.GetTotal());\r\nseq_ReagentTarget.SetMax(seq_ReagentTarget.GetTotal());\r\nML_STAR.rgt_cont_60ml_BC_A00_0001.SetCurrentPosition(1);\r\nseq_ReagentTarget.SetCurrentPosition(1);\r\n}\r\n// }} \"\"\r\n// {{ 24 1 0 \"d1c01525_97d6_4932_83008c9a99d2c9d2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 25 1 0 \"3bc75303_2934_4588_826f338e14f106c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 26 1 0 \"df52d43e_5142_4501_8d2e5e2959835ffc\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"df52d43e_5142_4501_8d2e5e2959835ffc\"); // TipPickUp\r\n}\r\n// }} \"\"\r\n// {{{ 27 1 0 \"3ccaab9e_28d0_4726_86be617fc0df820b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_LabwareFound = STAR_CHANNEL_TOOLS::MOVE_CheckPlateWithTwoChannels(ML_STAR, 8, ML_STAR.Cos_96_DW_1mL_0001, 71.0);\r\n// }} \"\"\r\n// {{ 28 1 0 \"dac4660b_0352_46b3_8884224a0532d678\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"dac4660b_0352_46b3_8884224a0532d678\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 29 1 0 \"3bc75303_2934_4588_826f338e14f106c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 30 1 0 \"daa02f5e_1f4c_4066_8e6d22c866c2b265\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"ed267a8f_3776_42aa_914951434dabf070\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narr_seq_Reservoirs.SetSize(0);\r\n// }} \"\"\r\n// {{ 32 1 0 \"423095fb_a33c_4418_8f3d4fc9d104e958\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0001);\r\n// }} \"\"\r\n// {{ 33 1 0 \"b067d7df_aa53_4855_af331e72a9c47747\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0002);\r\n// }} \"\"\r\n// {{ 34 1 0 \"5855f8f4_5a9b_45c6_838921fa21fff94f\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0003);\r\n// }} \"\"\r\n// {{ 35 1 0 \"31e31776_a047_4849_822e8e9486db2f9a\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0004);\r\n// }} \"\"\r\n// {{ 36 1 0 \"36d32ca3_c1be_4cc6_91b4d9d063fdb6c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\narr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0005);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"14117c34_aba4_4ba8_b57b0fadc33ba991\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_TOOLS::LIQUID_LEVEL_MeasureLiquidMulti(ML_STAR, arr_seq_Reservoirs, ML_STAR.MlStar50ulTipWithFilter, ML_STAR.Waste, Translate(\"\"), 1, 1, arr_VolumesMeasured);\r\n// }} \"\"\r\n// {{ 38 1 0 \"daa02f5e_1f4c_4066_8e6d22c866c2b265\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 39 1 0 \"4be6b4ea_0fce_4685_a20fbd6de9308f5c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 40 1 0 \"dff22406_7668_4bee_8315921aca6f981d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 41 1 0 \"4be6b4ea_0fce_4685_a20fbd6de9308f5c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 42 1 0 \"46e35cf4_7171_4193_b038813960a77884\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 43 1 0 \"9df6b5c6_1c11_42b7_a100624dde444dba\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_RemainingSamples = int_TotalSamples;\r\n// }} \"\"\r\n// {{ 44 1 0 \"27ecc53b_3e3e_4285_af0e163709a99cd9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (int_RemainingSamples > 0)\r\n{\r\n// }} \"\"\r\n// {{ 45 1 0 \"4affc6d0_4242_4381_ac1caa2192798d16\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 46 1 0 \"86d9e0fb_4a86_41d1_8a95e19347bf12f4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nint_RemainingSamples = STAR_CHANNEL_TOOLS::CHAN_ACCESS_Sort1Sequence(ML_STAR, ML_STAR.seq_SourceTubes, 0, 0, 1, 1, 0, seq_SortedPositions, str_ChPattern);\r\n// }} \"\"\r\n// {{ 47 1 0 \"fa62aafe_f091_4bee_b267119c0151bb0a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 48 1 0 \"6c8c70f3_c6d4_45a4_85925add217aed65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::Optimized1mLTipPickup2(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter, str_ChPattern);\r\n// }} \"\"\r\n// {{ 49 1 0 \"59cf12b2_f4e6_43d4_87586cae3ef8249f\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"59cf12b2_f4e6_43d4_87586cae3ef8249f\"); // TipPickUp\r\n\tstr_TipPickUpReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 50 1 0 \"b95de159_54de_4c76_a5330159af9825a2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsRightType = STAR_TIP_TOOLS::TipTypeCheck1mL(ML_STAR, str_TipPickUpReturn, seq_IncorrectPositions, str_IncorrectChannels);\r\n// }} \"\"\r\n// {{ 51 1 0 \"3647a1c9_63fc_4574_aad4135859687006\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (bln_TipsRightType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 52 1 0 \"9fe09d49_7585_4132_8cbda6a2df05913e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 53 1 0 \"589cc40b_e114_4998_a440bfdc90879811\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nwhile (bln_TipsRightType == 0)\r\n{\r\n// }} \"\"\r\n// {{ 54 1 0 \"7b87a680_c1a9_47d3_a6b523b28e7631e5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\nMECC::TraceComment(Translate(\"WRONG TIPS PICKED UP!\"));\r\n// }} \"\"\r\nTrace(\"Incorrect Channel Pattern:  \",str_IncorrectChannels);\r\n// {{ 56 1 0 \"ff15d1a4_49e8_4050_846fabe9df394755\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"ff15d1a4_49e8_4050_846fabe9df394755\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{{ 57 1 0 \"1991558f_c765_45ef_88404ac15f9acac6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::Optimized1mLTipPickup2(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter, str_IncorrectChannels);\r\n// }} \"\"\r\n// {{ 58 1 0 \"7ae95306_ad9f_4443_b555f7d2a216961d\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"7ae95306_ad9f_4443_b555f7d2a216961d\"); // TipPickUp\r\n\tstr_TipPickUpReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 59 1 0 \"3ec45b81_04fc_4ca9_9332c417d8fee36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nbln_TipsRightType = STAR_TIP_TOOLS::TipTypeCheck1mL(ML_STAR, str_TipPickUpReturn, seq_IncorrectPositions, str_IncorrectChannels);\r\n// }} \"\"\r\n// {{ 60 1 0 \"589cc40b_e114_4998_a440bfdc90879811\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 61 1 0 \"3647a1c9_63fc_4574_aad4135859687006\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 62 1 0 \"9ce8717c_67a6_448c_ad49d3f293ded57f\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"9ce8717c_67a6_448c_ad49d3f293ded57f\"); // Aspirate\r\n\tstr_AspReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 63 1 0 \"52940ca3_6835_4869_ab1f040d3235a4cd\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"52940ca3_6835_4869_ab1f040d3235a4cd\"); // Dispense\r\n}\r\n// }} \"\"\r\n// {{ 64 1 0 \"f486c95d_301e_4c13_941b18e829935491\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"f486c95d_301e_4c13_941b18e829935491\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 65 1 0 \"f8ee2f5f_81cb_484f_9feb88a7e04ea000\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"f8ee2f5f_81cb_484f_9feb88a7e04ea000\"); // GetLastLiquidLevel\r\n\tstr_LiquidReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 66 1 0 \"8dc9baee_744a_44b1_a7626d842a89a55c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_CHANNEL_TOOLS::LIQUID_LEVEL_ReturnVolumesFromLiquidLevel(ML_STAR, str_AspReturn, str_LiquidReturn, 1, arr_VolumesMeasured);\r\n// }} \"\"\r\n// {{ 67 1 0 \"27ecc53b_3e3e_4285_af0e163709a99cd9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 68 1 0 \"3f8d0a02_9fdb_4a23_9efed86daad77096\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nML_STAR.Cos_96_DW_1mL_0001.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 69 1 0 \"6ec66e4f_53df_49b7_8dfa4f574ae0e488\" \"{B31F353C-5D80-11d4-A5EB-0050DA737D89}\"\r\nML_STAR.Cos_96_DW_1mL_0001.SetCount(96);\r\n// }} \"\"\r\n// {{ 70 1 0 \"46e35cf4_7171_4193_b038813960a77884\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 71 1 0 \"14dec017_21e7_4748_b0cd514f7c33da9d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 72 1 0 \"41da0f1f_8dd0_4230_8f4bb076c41b828b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 73 1 0 \"dd607556_a1f3_4486_85fe52d89c2c1f89\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_MPH96_TOOLS::TOOL_PickUpNextMPH96Tips(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"02633566_d8db_4144_acb605068227f087\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_MPH96_TOOLS::TOOL_GetTipPresence(ML_STAR, bln_TipLoaded);\r\n// }} \"\"\r\n// {{ 75 1 0 \"e0a6e86c_36e2_42c9_9f024dc318920add\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"e0a6e86c_36e2_42c9_9f024dc318920add\"); // Head96TipEject\r\n}\r\n// }} \"\"\r\n// {{ 76 1 0 \"14dec017_21e7_4748_b0cd514f7c33da9d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"1550f3dc_121b_4249_b90f3f03301eb293\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 78 1 0 \"5f1de842_b118_4437_ad23110017c323f1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalColumns = int_TotalSamples / 8;\r\n// }} \"\"\r\n// {{ 79 1 0 \"93672d97_fb74_47f7_878cec7b37b2a9d8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Remainder = int_TotalSamples % 8;\r\n// }} \"\"\r\n// {{ 80 1 0 \"9c202c5f_f85c_4ebe_9fc111ff830188bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (int_Remainder > 0)\r\n{\r\n// }} \"\"\r\n// {{ 81 1 0 \"9945ebca_4c01_4c5f_9cd962f5c01d0f0c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_TotalColumns = int_TotalColumns + 1;\r\n// }} \"\"\r\n// {{ 82 1 0 \"9c202c5f_f85c_4ebe_9fc111ff830188bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 83 1 0 \"7343f29b_f380_4876_ac637b56d2f9c7ad\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 84 1 0 \"0fafb01d_15bb_40cf_8883f7a324c3a600\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_MPH96_TOOLS::TIP_OFFSET_PickUpTips_Column(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, ML_STAR.TipSupport_0001, int_TotalColumns, str_TipCounter, 1);\r\n// }} \"\"\r\n// {{ 85 1 0 \"ee70abbf_f4ae_4258_919d03476301884c\" \"ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A(\"ee70abbf_f4ae_4258_919d03476301884c\"); // Head96Aspirate\r\n}\r\n// }} \"\"\r\n// {{ 86 1 0 \"5f02e755_d6e9_4a9f_916b0d7a155c7e30\" \"ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB(\"5f02e755_d6e9_4a9f_916b0d7a155c7e30\"); // Head96Dispense\r\n}\r\n// }} \"\"\r\n// {{ 87 1 0 \"c4fb845f_8234_4bed_bbbcd656e1c1dc63\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"c4fb845f_8234_4bed_bbbcd656e1c1dc63\"); // Head96TipEject\r\n}\r\n// }} \"\"\r\n// {{ 88 1 0 \"1550f3dc_121b_4249_b90f3f03301eb293\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 89 1 0 \"cbb80027_c30b_452e_83ad6ad21971f7c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 90 1 0 \"9b5b0026_f214_4720_803790576f70c7ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, ML_STAR.rgt_cont_60ml_BC_A00_0001, str_TipCounter1000, str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 91 1 0 \"d7976072_8605_45e3_aab7c41c3e0a29d4\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"d7976072_8605_45e3_aab7c41c3e0a29d4\"); // TipPickUp\r\n}\r\n// }} \"\"\r\n// {{{ 92 1 0 \"01fd763d_a747_4b74_b538a257d51448ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, str_TipCounter1000);\r\n// }} \"\"\r\n// {{ 93 1 0 \"92811ceb_ff49_4bf0_9ddb9bab22f0282e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 94 1 0 \"60763f9e_3e19_4f23_9ee66e5040c83ab1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::PIP_FindLiquidLevel(ML_STAR, str_ChannelPattern, ML_STAR.rgt_cont_60ml_BC_A00_0001, 2, 1, arr_LiquidLevelHeights);\r\n// }} \"\"\r\n// {{ 95 1 0 \"312f6ebd_d95a_4cec_af4bd0f8ae1c3729\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 96 1 0 \"108ab00e_d5a9_4e9e_9c8fc0739fcc9a27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::TOOL_OffsetArrayForChannels(ML_STAR, -2.0, arr_LiquidLevelHeights);\r\n// }} \"\"\r\n// {{{ 97 1 0 \"12ac4a8a_a8cc_4f29_8e0f302e63350646\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::TOOL_BuildArrayForChannels(ML_STAR, 2.0, arr_MixHeights);\r\n// }} \"\"\r\n// {{ 98 1 0 \"074db49e_8f6e_4743_88a9fd2f6f5e2a61\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 99 1 0 \"949e47a7_ee4e_429a_847b500cea25f3c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::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);\r\n// }} \"\"\r\n// {{ 100 1 0 \"54b3f4f9_964f_4909_b8bf57532cb28bc2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"cfc68296_5777_43d3_81985d1572c9aca4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::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);\r\n// }} \"\"\r\n// {{ 102 1 0 \"4b4ecf47_b903_447e_871158d3fad8aecc\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"4b4ecf47_b903_447e_871158d3fad8aecc\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 103 1 0 \"cbb80027_c30b_452e_83ad6ad21971f7c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 104 1 0 \"2509ba29_ff03_494b_95921cc066464e32\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 105 1 0 \"7c379659_4905_4a0e_b6f194a62fbebe80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, ML_STAR.MlStar300ulStandardVolumeTipWithFilter, ML_STAR.Cos_96_DW_1mL_0001, str_TipCounter300, str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 106 1 0 \"18c674c5_1513_4b23_be78083e562056d9\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"18c674c5_1513_4b23_be78083e562056d9\"); // TipPickUp\r\n}\r\n// }} \"\"\r\n// {{{ 107 1 0 \"00b521f6_ffba_4a06_b3c770b32f616f89\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, ML_STAR.MlStar300ulStandardVolumeTipWithFilter, str_TipCounter300);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"3eabc28a_e7ec_4858_a0a297ddab352768\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::TOOL_BuildArrayForChannels(ML_STAR, 1.0, arr_AspirationHeights);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"c7a59079_b416_4937_9de400d4335cf012\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::TOOL_BuildArrayForChannels(ML_STAR, 5.0, arr_DispenseHeights);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"f404b7cd_414f_4a7b_9cd1190838067c24\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::TOOL_BuildArrayForChannels(ML_STAR, 1.0, arr_MixHeights);\r\n// }} \"\"\r\n// {{ 111 1 0 \"2a5c262e_dd87_417a_a0c20d8021c7500b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 11;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 112 1 0 \"ee35f784_0515_42c2_847b08721eca644f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::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);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"fc8fa201_9095_4aff_a59d518f922168aa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::PIP_ProgressSequenceFromChannelPattern(str_ChannelPattern, 0, ML_STAR.Cos_96_DW_1mL_0001);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"f3ed6388_4851_4d40_91d906434181d643\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::PIP_DispenseToFixedHeight(ML_STAR, str_ChannelPattern, ML_STAR.Cos_96_DW_1mL_0001, arr_DispenseHeights, 3, 1, 100.0, 5.0);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"4235dcff_f0fd_4b55_8d2d7755d65603ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::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);\r\n// }} \"\"\r\n// {{ 116 1 0 \"2a5c262e_dd87_417a_a0c20d8021c7500b\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 117 1 0 \"e329552a_f49b_4659_8e91d8e89ac2c5ca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::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);\r\n// }} \"\"\r\n// {{ 118 1 0 \"3980b7da_2334_42e2_9393270c8b4a04ea\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"3980b7da_2334_42e2_9393270c8b4a04ea\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 119 1 0 \"a5def3d1_b7eb_40b4_b936ba042dffb7fe\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nML_STAR.Cos_96_DW_1mL_0001.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 120 1 0 \"2509ba29_ff03_494b_95921cc066464e32\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"e6c091aa_acb6_4d27_91e6a945ec0bd782\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 122 1 0 \"215f446b_5ff9_42e7_b23c094760261b90\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nML_STAR.SMP_CAR_32_12x100_A00_0001.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 123 1 0 \"0bb3d326_3751_49a3_a70c859a05af259c\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nML_STAR.SMP_CAR_32_12x100_A00_0002.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{ 124 1 0 \"e23c772d_070d_487b_9c18afd7345e8d72\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\nML_STAR.SMP_CAR_32_12x100_A00_0003.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"2d70d37a_5de2_4077_813a217c95939499\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, ML_STAR.SMP_CAR_32_12x100_A00_0001, str_TipCounter1000, str_ChannelPattern);\r\n// }} \"\"\r\n// {{ 126 1 0 \"0596545a_d535_4d4d_96bdce9ef0a176fc\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"0596545a_d535_4d4d_96bdce9ef0a176fc\"); // TipPickUp\r\n}\r\n// }} \"\"\r\n// {{{ 127 1 0 \"78c796ae_a735_447c_b8c48b909156623a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, str_TipCounter1000);\r\n// }} \"\"\r\n// {{ 128 1 0 \"bc2ed584_1479_42e7_87bb74dcde1678fa\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 129 1 0 \"1ec28257_92cd_4035_becce5087b1ce9f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nstr_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);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"827de719_23c2_4920_a629096abb4eb49c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::PIP_PhaseAspirationParseReturnValue(str_ReturnValues, arr_AspReturns, arr_DispReturns);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"e4e61211_6bd8_4666_a892bec91638415d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray_2(Translate(\"Returns from first Phase Aspiration\"), arr_AspReturns, arr_DispReturns);\r\n// }} \"\"\r\n// {{ 132 1 0 \"86adf3d2_87e6_4f59_b4b25d58396c5228\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 133 1 0 \"dc9e7447_da6f_41de_9eb08fc1160739ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::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);\r\n// }} \"\"\r\n// {{ 134 1 0 \"3f7d3ecf_27b6_4954_ab2b719792264dc2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 135 1 0 \"5c81ccfc_af8e_471b_81addb41d73fc1a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::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);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"da260d95_318f_4092_bc0b2250d6da716c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::PIP_ProgressSequenceFromChannelPattern(str_ChannelPattern, 1, ML_STAR.SMP_CAR_32_12x100_A00_0001);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"ff7ef161_dec0_4915_8ddfcc8c93abf932\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::PIP_ProgressSequenceFromChannelPattern(str_ChannelPattern, 1, ML_STAR.SMP_CAR_32_12x100_A00_0002);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"9d0470ca_0ff6_49f2_81c34005c5e979fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSPT::PIP_ProgressSequenceFromChannelPattern(str_ChannelPattern, 1, ML_STAR.SMP_CAR_32_12x100_A00_0003);\r\n// }} \"\"\r\n// {{ 139 1 0 \"3b77f8f7_8bc8_428d_a8305924852249c4\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"3b77f8f7_8bc8_428d_a8305924852249c4\"); // TipEject\r\n}\r\n// }} \"\"\r\n// {{ 140 1 0 \"e6c091aa_acb6_4d27_91e6a945ec0bd782\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 141 1 0 \"dee02af8_0110_4fff_9c8c7a1c485953b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 142 1 0 \"eeac54a8_f773_48e1_acd0a6275b173efa\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 143 1 0 \"d2c527e4_9547_4ae1_bc3957c98cf2c55e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_MPH96_TOOLS::TIP_OFFSET_CleanUpTips_Column(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, ML_STAR.TipSupport_0001, str_TipCounter);\r\n// }} \"\"\r\n// {{{ 144 1 0 \"a3713bea_db46_476e_9b6bdf5ba1e9318b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_MPH96_TOOLS::MOVE_MPH96ToBack(ML_STAR);\r\n// }} \"\"\r\n// {{ 145 1 0 \"9926aeea_70c2_40aa_b52a5e0299b224c1\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 146 1 0 \"4eec1a06_e75c_45e8_a1de3d3b42c1e826\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::DefragTipRacks1mL(ML_STAR, ML_STAR.MlStar50ulTipWithFilter);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"25945e42_b9d4_475f_bb0fd836d86b95a0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_TIP_TOOLS::TipCounter_Write(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter);\r\n// }} \"\"\r\n// {{ 148 1 0 \"dee02af8_0110_4fff_9c8c7a1c485953b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_TIP_TOOLS::_ExitLibrary();\r\nSTAR_MPH96_TOOLS::_ExitLibrary();\r\nSTAR_CHANNEL_TOOLS::_ExitLibrary();\r\nSPT::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-09-07 23:30$$checksum=7f926568$$length=084$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/STAR Tools Demo.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Bare_B$$valid=0$$time=2022-04-20 16:54$$checksum=889c5702$$length=085$$"
  },
  {
    "path": "pyhamilton/library/STAR Tools/TipSupport.x",
    "content": "xof 0303txt 0032\n\nFrame Root {\n  FrameTransformMatrix {\n     1.000000, 0.000000, 0.000000, 0.000000,\n     0.000000,-0.000000, 1.000000, 0.000000,\n     0.000000, 1.000000, 0.000000, 0.000000,\n     0.000000, 0.000000, 0.000000, 1.000000;;\n  }\n  Frame co_nim1 {\n    FrameTransformMatrix {\n       1.000000, 0.000000, 0.000000, 0.000000,\n       0.000000, 1.000000, 0.000000, 0.000000,\n       0.000000, 0.000000, 1.000000, 0.000000,\n       0.000004, 0.000008, 0.000000, 1.000000;;\n    }\n    Mesh { // co_nim1 mesh\n      2138;\n      53.038242;-31.410812;-11.086174;,\n      52.229343;-29.051315;-11.086166;,\n      53.038242;-22.410812;-11.086143;,\n      52.418442;-24.533112;-11.086151;,\n      52.229343;-20.051315;-11.086128;,\n      53.038242;-13.410812;-11.086105;,\n      52.418442;-15.533112;-11.086113;,\n      52.229343;-11.051315;-11.086098;,\n      53.038242;-4.410812;-11.086075;,\n      52.418442;-6.533134;-11.086082;,\n      52.229343;-2.051323;-11.086067;,\n      53.038242; 4.589188;-11.086044;,\n      52.418442; 2.466858;-11.086052;,\n      52.229343; 6.948669;-11.086037;,\n      53.038242;13.589188;-11.086014;,\n      52.418442;11.466888;-11.086021;,\n      52.229343;15.948685;-11.086006;,\n      53.038242;22.589188;-11.085976;,\n      52.418442;20.466888;-11.085983;,\n      52.229343;24.948685;-11.085968;,\n      53.038242;31.589188;-11.085945;,\n      52.418442;29.466888;-11.085953;,\n      52.463242;-36.860817;-11.086189;,\n      52.418442;-33.533112;-11.086182;,\n      57.463242;32.039188;-11.085945;,\n      57.463242;-31.860817;-11.086174;,\n      52.229343;33.948685;-11.085938;,\n      52.463242;37.039188;-11.085930;,\n      50.298538;-27.974510;-11.086159;,\n      50.298538;-25.847115;-11.086151;,\n      50.298538;-18.974510;-11.086128;,\n      50.298538;-16.847115;-11.086121;,\n      50.298538;-9.974510;-11.086098;,\n      50.298538;-7.847130;-11.086090;,\n      50.298538;-0.974480;-11.086060;,\n      50.298538; 1.152855;-11.086060;,\n      50.298538; 8.025509;-11.086029;,\n      50.298538;10.152889;-11.086021;,\n      50.298538;17.025490;-11.085999;,\n      50.298538;19.152885;-11.085991;,\n      50.298538;26.025490;-11.085968;,\n      50.298538;28.152885;-11.085960;,\n      48.727943;-27.974510;-11.086159;,\n      48.727943;-25.847115;-11.086151;,\n      48.727943;-18.974510;-11.086128;,\n      48.727943;-16.847115;-11.086121;,\n      48.727943;-9.974510;-11.086098;,\n      48.727943;-7.847130;-11.086090;,\n      48.727943;-0.974480;-11.086060;,\n      48.727943; 1.152855;-11.086060;,\n      48.727943; 8.025509;-11.086029;,\n      48.727943;10.152889;-11.086021;,\n      48.727943;17.025490;-11.085999;,\n      48.727943;19.152885;-11.085991;,\n      48.727943;26.025490;-11.085968;,\n      48.727943;28.152885;-11.085960;,\n      46.608040;-29.288513;-11.086166;,\n      46.797142;-24.770309;-11.086151;,\n      46.608040;-20.288513;-11.086136;,\n      46.797142;-15.770309;-11.086113;,\n      46.608040;-11.288513;-11.086098;,\n      46.797142;-6.770294;-11.086082;,\n      46.608040;-2.288483;-11.086067;,\n      46.797142; 2.229698;-11.086052;,\n      46.608040; 6.711510;-11.086037;,\n      46.797142;11.229687;-11.086021;,\n      46.608040;15.711487;-11.086006;,\n      46.797142;20.229691;-11.085991;,\n      46.608040;24.711487;-11.085968;,\n      46.797142;29.229691;-11.085953;,\n      45.988239;-31.410812;-11.086174;,\n      45.988239;-22.410812;-11.086143;,\n      45.988239;-13.410812;-11.086105;,\n      45.988239;-4.410812;-11.086075;,\n      45.988239; 4.589188;-11.086044;,\n      45.988239;13.589188;-11.086014;,\n      45.988239;22.589188;-11.085976;,\n      45.988239;31.589188;-11.085945;,\n      44.038242;-31.410812;-11.086174;,\n      43.229343;-29.051315;-11.086166;,\n      44.038242;-22.410812;-11.086143;,\n      43.418442;-24.533112;-11.086151;,\n      43.229343;-20.051315;-11.086128;,\n      44.038242;-13.410812;-11.086105;,\n      43.418442;-15.533112;-11.086113;,\n      43.229343;-11.051315;-11.086098;,\n      44.038242;-4.410812;-11.086075;,\n      43.418442;-6.533134;-11.086082;,\n      43.229343;-2.051323;-11.086067;,\n      44.038242; 4.589188;-11.086044;,\n      43.418442; 2.466858;-11.086052;,\n      43.229343; 6.948669;-11.086037;,\n      44.038242;13.589188;-11.086014;,\n      43.418442;11.466888;-11.086021;,\n      43.229343;15.948685;-11.086006;,\n      44.038242;22.589188;-11.085976;,\n      43.418442;20.466888;-11.085983;,\n      43.229343;24.948685;-11.085968;,\n      44.038242;31.589188;-11.085945;,\n      43.418442;29.466888;-11.085953;,\n      41.298538;-27.974510;-11.086159;,\n      41.298538;-25.847115;-11.086151;,\n      41.298538;-18.974510;-11.086128;,\n      41.298538;-16.847115;-11.086121;,\n      41.298538;-9.974510;-11.086098;,\n      41.298538;-7.847130;-11.086090;,\n      41.298538;-0.974480;-11.086060;,\n      41.298538; 1.152855;-11.086060;,\n      41.298538; 8.025509;-11.086029;,\n      41.298538;10.152889;-11.086021;,\n      41.298538;17.025490;-11.085999;,\n      41.298538;19.152885;-11.085991;,\n      41.298538;26.025490;-11.085968;,\n      41.298538;28.152885;-11.085960;,\n      39.727943;-27.974510;-11.086159;,\n      39.727943;-25.847115;-11.086151;,\n      39.727943;-18.974510;-11.086128;,\n      39.727943;-16.847115;-11.086121;,\n      39.727943;-9.974510;-11.086098;,\n      39.727943;-7.847130;-11.086090;,\n      39.727943;-0.974480;-11.086060;,\n      39.727943; 1.152855;-11.086060;,\n      39.727943; 8.025509;-11.086029;,\n      39.727943;10.152889;-11.086021;,\n      39.727943;17.025490;-11.085999;,\n      39.727943;19.152885;-11.085991;,\n      39.727943;26.025490;-11.085968;,\n      39.727943;28.152885;-11.085960;,\n      37.608040;-29.288513;-11.086166;,\n      37.797138;-24.770309;-11.086151;,\n      37.608040;-20.288513;-11.086136;,\n      37.797138;-15.770309;-11.086113;,\n      37.608040;-11.288513;-11.086098;,\n      37.797138;-6.770294;-11.086082;,\n      37.608040;-2.288483;-11.086067;,\n      37.797138; 2.229698;-11.086052;,\n      37.608040; 6.711510;-11.086037;,\n      37.797138;11.229687;-11.086021;,\n      37.608040;15.711487;-11.086006;,\n      37.797138;20.229691;-11.085991;,\n      37.608040;24.711487;-11.085968;,\n      37.797138;29.229691;-11.085953;,\n      36.988239;-31.410812;-11.086174;,\n      36.988239;-22.410812;-11.086143;,\n      36.988239;-13.410812;-11.086105;,\n      36.988239;-4.410812;-11.086075;,\n      36.988239; 4.589188;-11.086044;,\n      36.988239;13.589188;-11.086014;,\n      36.988239;22.589188;-11.085976;,\n      36.988239;31.589188;-11.085945;,\n      35.038242;-31.410812;-11.086174;,\n      34.229340;-29.051315;-11.086166;,\n      35.038242;-22.410812;-11.086143;,\n      34.418442;-24.533112;-11.086151;,\n      34.229340;-20.051315;-11.086128;,\n      35.038242;-13.410812;-11.086105;,\n      34.418442;-15.533112;-11.086113;,\n      34.229340;-11.051315;-11.086098;,\n      35.038242;-4.410812;-11.086075;,\n      34.418442;-6.533134;-11.086082;,\n      34.229340;-2.051323;-11.086067;,\n      35.038242; 4.589188;-11.086044;,\n      34.418442; 2.466866;-11.086052;,\n      34.229340; 6.948669;-11.086037;,\n      35.038242;13.589188;-11.086014;,\n      34.418442;11.466888;-11.086021;,\n      34.229340;15.948685;-11.086006;,\n      35.038242;22.589188;-11.085976;,\n      34.418442;20.466888;-11.085983;,\n      34.229340;24.948685;-11.085968;,\n      35.038242;31.589188;-11.085945;,\n      34.418442;29.466888;-11.085953;,\n      32.298538;-27.974510;-11.086159;,\n      32.298538;-25.847115;-11.086151;,\n      32.298538;-18.974510;-11.086128;,\n      32.298538;-16.847115;-11.086121;,\n      32.298538;-9.974510;-11.086098;,\n      32.298538;-7.847130;-11.086090;,\n      32.298538;-0.974480;-11.086060;,\n      32.298538; 1.152855;-11.086060;,\n      32.298538; 8.025509;-11.086029;,\n      32.298538;10.152889;-11.086021;,\n      32.298538;17.025490;-11.085999;,\n      32.298538;19.152885;-11.085991;,\n      32.298538;26.025490;-11.085968;,\n      32.298538;28.152885;-11.085960;,\n      30.727942;-27.974510;-11.086159;,\n      30.727942;-25.847115;-11.086151;,\n      30.727942;-18.974510;-11.086128;,\n      30.727942;-16.847115;-11.086121;,\n      30.727942;-9.974510;-11.086098;,\n      30.727942;-7.847130;-11.086090;,\n      30.727942;-0.974480;-11.086060;,\n      30.727942; 1.152855;-11.086060;,\n      30.727942; 8.025509;-11.086029;,\n      30.727942;10.152889;-11.086021;,\n      30.727942;17.025490;-11.085999;,\n      30.727942;19.152885;-11.085991;,\n      30.727942;26.025490;-11.085968;,\n      30.727942;28.152885;-11.085960;,\n      28.608040;-29.288513;-11.086166;,\n      28.797142;-24.770309;-11.086151;,\n      28.608040;-20.288513;-11.086136;,\n      28.797142;-15.770309;-11.086113;,\n      28.608040;-11.288513;-11.086098;,\n      28.797142;-6.770294;-11.086082;,\n      28.608040;-2.288490;-11.086067;,\n      29.315342; 1.833748;-11.086052;,\n      28.608040; 6.711510;-11.086037;,\n      29.315342;10.833786;-11.086021;,\n      28.608040;15.711487;-11.086006;,\n      29.315342;19.833786;-11.085991;,\n      28.608040;24.711487;-11.085968;,\n      29.315342;28.833786;-11.085960;,\n      28.337940; 3.059021;-11.086052;,\n      28.337940;12.058987;-11.086014;,\n      28.337940;21.058990;-11.085983;,\n      28.337940;30.058990;-11.085953;,\n      27.988239;-31.410812;-11.086174;,\n      27.988239;-22.410812;-11.086143;,\n      27.988239;-13.410812;-11.086105;,\n      27.988239;-4.410812;-11.086075;,\n      27.988239; 4.589188;-11.086044;,\n      27.988239;13.589188;-11.086014;,\n      27.988239;22.589188;-11.085976;,\n      27.988239;31.589188;-11.085945;,\n      26.038242;-31.410812;-11.086174;,\n      25.688541;-29.880615;-11.086166;,\n      26.038242;-22.410812;-11.086143;,\n      25.418442;-24.533112;-11.086151;,\n      25.688541;-20.880615;-11.086136;,\n      26.038242;-13.410812;-11.086105;,\n      25.418442;-15.533112;-11.086113;,\n      25.688541;-11.880615;-11.086105;,\n      26.038242;-4.410812;-11.086075;,\n      25.418442;-6.533134;-11.086082;,\n      25.688541;-2.880646;-11.086067;,\n      26.038242; 4.589188;-11.086044;,\n      25.418442; 2.466866;-11.086052;,\n      25.229343; 6.948669;-11.086037;,\n      26.038242;13.589188;-11.086014;,\n      25.418442;11.466888;-11.086021;,\n      25.229343;15.948685;-11.086006;,\n      26.038242;22.589188;-11.085976;,\n      25.418442;20.466888;-11.085983;,\n      25.229343;24.948685;-11.085968;,\n      26.038242;31.589188;-11.085945;,\n      25.418442;29.466888;-11.085953;,\n      24.711140;-28.655411;-11.086159;,\n      24.711140;-19.655411;-11.086128;,\n      24.711140;-10.655411;-11.086098;,\n      24.711140;-1.655373;-11.086067;,\n      23.298542;-27.974510;-11.086159;,\n      23.298542;-25.847115;-11.086151;,\n      23.298542;-18.974510;-11.086128;,\n      23.298542;-16.847115;-11.086121;,\n      23.298542;-9.974510;-11.086098;,\n      23.298542;-7.847130;-11.086090;,\n      23.298542;-0.974480;-11.086060;,\n      23.298542; 1.152855;-11.086060;,\n      23.298542; 8.025509;-11.086029;,\n      23.298542;10.152889;-11.086021;,\n      23.298542;17.025490;-11.085999;,\n      23.298542;19.152885;-11.085991;,\n      23.298542;26.025490;-11.085968;,\n      23.298542;28.152885;-11.085960;,\n      21.727940;-27.974510;-11.086159;,\n      21.727940;-25.847115;-11.086151;,\n      21.727940;-18.974510;-11.086128;,\n      21.727940;-16.847115;-11.086121;,\n      21.727940;-9.974510;-11.086098;,\n      21.727940;-7.847130;-11.086090;,\n      21.727940;-0.974480;-11.086060;,\n      21.727940; 1.152855;-11.086060;,\n      21.727940; 8.025509;-11.086029;,\n      21.727940;10.152889;-11.086021;,\n      21.727940;17.025490;-11.085999;,\n      21.727940;19.152885;-11.085991;,\n      21.727940;26.025490;-11.085968;,\n      21.727940;28.152885;-11.085960;,\n      19.608040;-29.288513;-11.086166;,\n      19.797138;-24.770309;-11.086151;,\n      19.608040;-20.288513;-11.086136;,\n      19.797138;-15.770309;-11.086113;,\n      19.608040;-11.288513;-11.086098;,\n      19.797138;-6.770294;-11.086082;,\n      19.608040;-2.288490;-11.086067;,\n      20.315342; 1.833748;-11.086052;,\n      19.608040; 6.711510;-11.086037;,\n      20.315342;10.833786;-11.086021;,\n      19.608040;15.711487;-11.086006;,\n      20.315342;19.833786;-11.085991;,\n      19.608040;24.711487;-11.085968;,\n      20.315342;28.833786;-11.085960;,\n      19.337940; 3.059021;-11.086052;,\n      19.337940;12.058987;-11.086014;,\n      19.337940;21.058990;-11.085983;,\n      19.337940;30.058990;-11.085953;,\n      18.988239;-31.410812;-11.086174;,\n      18.988239;-22.410812;-11.086143;,\n      18.988239;-13.410812;-11.086105;,\n      18.988239;-4.410812;-11.086075;,\n      18.988239; 4.589188;-11.086044;,\n      18.988239;13.589188;-11.086014;,\n      18.988239;22.589188;-11.085976;,\n      18.988239;31.589188;-11.085945;,\n      17.038242;-31.410812;-11.086174;,\n      16.688541;-29.880615;-11.086166;,\n      17.038242;-22.410812;-11.086143;,\n      16.418442;-24.533112;-11.086151;,\n      16.688541;-20.880615;-11.086136;,\n      17.038242;-13.410812;-11.086105;,\n      16.418442;-15.533112;-11.086113;,\n      16.688541;-11.880615;-11.086105;,\n      17.038242;-4.410812;-11.086075;,\n      16.418442;-6.533119;-11.086082;,\n      16.688541;-2.880646;-11.086067;,\n      17.038242; 4.589188;-11.086044;,\n      16.418442; 2.466866;-11.086052;,\n      16.688541; 6.119347;-11.086037;,\n      17.038242;13.589188;-11.086014;,\n      16.418442;11.466888;-11.086021;,\n      16.688541;15.119389;-11.086006;,\n      17.038242;22.589188;-11.085976;,\n      16.418442;20.466888;-11.085983;,\n      16.229340;24.948685;-11.085968;,\n      17.038242;31.589188;-11.085945;,\n      16.418442;29.466888;-11.085953;,\n      15.711140;-28.655411;-11.086159;,\n      15.711140;-19.655411;-11.086128;,\n      15.711140;-10.655411;-11.086098;,\n      15.711140;-1.655373;-11.086067;,\n      15.711140; 7.344616;-11.086037;,\n      15.711140;16.344589;-11.085999;,\n      14.298542;-27.974510;-11.086159;,\n      14.298542;-25.847115;-11.086151;,\n      14.298542;-18.974510;-11.086128;,\n      14.298542;-16.847115;-11.086121;,\n      14.298542;-9.974510;-11.086098;,\n      14.298542;-7.847130;-11.086090;,\n      14.298542;-0.974480;-11.086060;,\n      14.298542; 1.152855;-11.086060;,\n      14.298542; 8.025509;-11.086029;,\n      14.298542;10.152889;-11.086021;,\n      14.298542;17.025490;-11.085999;,\n      14.298542;19.152885;-11.085991;,\n      14.298542;26.025490;-11.085968;,\n      14.298542;28.152885;-11.085960;,\n      12.727940;-27.974510;-11.086159;,\n      12.727940;-25.847115;-11.086151;,\n      12.727940;-18.974510;-11.086128;,\n      12.727940;-16.847115;-11.086121;,\n      12.727940;-9.974510;-11.086098;,\n      12.727940;-7.847130;-11.086090;,\n      12.727940;-0.974480;-11.086060;,\n      12.727940; 1.152855;-11.086060;,\n      12.727940; 8.025509;-11.086029;,\n      12.727940;10.152889;-11.086021;,\n      12.727940;17.025490;-11.085999;,\n      12.727940;19.152885;-11.085991;,\n      12.727940;26.025490;-11.085968;,\n      12.727940;28.152885;-11.085960;,\n      10.608040;-29.288513;-11.086166;,\n      11.315342;-25.166214;-11.086151;,\n      10.608040;-20.288513;-11.086136;,\n      11.315342;-16.166214;-11.086121;,\n      10.608040;-11.288513;-11.086098;,\n      11.315342;-7.166245;-11.086082;,\n      10.608040;-2.288490;-11.086067;,\n      11.315342; 1.833748;-11.086052;,\n      10.608040; 6.711498;-11.086037;,\n      11.315342;10.833786;-11.086021;,\n      10.608040;15.711487;-11.086006;,\n      11.315342;19.833786;-11.085991;,\n      10.608040;24.711487;-11.085968;,\n      11.315342;28.833786;-11.085960;,\n      10.337940;-23.941010;-11.086143;,\n      10.337940;-14.941010;-11.086113;,\n      10.337940;-5.940971;-11.086082;,\n      10.337940; 3.059021;-11.086052;,\n      10.337940;12.058987;-11.086014;,\n      10.337940;21.058990;-11.085983;,\n      10.337940;30.058990;-11.085953;,\n       9.988239;-31.410812;-11.086174;,\n       9.988239;-22.410812;-11.086143;,\n       9.988239;-13.410812;-11.086105;,\n       9.988239;-4.410812;-11.086075;,\n       9.988239; 4.589188;-11.086044;,\n       9.988239;13.589188;-11.086014;,\n       9.988239;22.589188;-11.085976;,\n       9.988239;31.589188;-11.085945;,\n       8.038231;-31.410812;-11.086174;,\n       7.688519;-29.880615;-11.086166;,\n       8.038231;-22.410812;-11.086143;,\n       7.418430;-24.533112;-11.086151;,\n       7.688519;-20.880615;-11.086136;,\n       8.038231;-13.410812;-11.086105;,\n       7.418430;-15.533112;-11.086113;,\n       7.688519;-11.880615;-11.086105;,\n       8.038231;-4.410812;-11.086075;,\n       7.418430;-6.533134;-11.086082;,\n       7.688519;-2.880646;-11.086067;,\n       8.038231; 4.589188;-11.086044;,\n       7.418430; 2.466866;-11.086052;,\n       7.688519; 6.119347;-11.086037;,\n       8.038231;13.589188;-11.086014;,\n       7.418430;11.466888;-11.086021;,\n       7.688519;15.119389;-11.086006;,\n       8.038231;22.589188;-11.085976;,\n       7.418430;20.466888;-11.085983;,\n       7.688519;24.119385;-11.085976;,\n       8.038231;31.589188;-11.085945;,\n       7.418430;29.466888;-11.085953;,\n       6.711102;-28.655411;-11.086159;,\n       6.711102;-19.655411;-11.086128;,\n       6.711102;-10.655411;-11.086098;,\n       6.711102;-1.655373;-11.086067;,\n       6.711102; 7.344616;-11.086037;,\n       6.711102;16.344589;-11.085999;,\n       6.711102;25.344589;-11.085968;,\n       5.298500;-27.974510;-11.086159;,\n       5.298500;-25.847115;-11.086151;,\n       5.298500;-18.974510;-11.086128;,\n       5.298500;-16.847115;-11.086121;,\n       5.298500;-9.974510;-11.086098;,\n       5.298500;-7.847130;-11.086090;,\n       5.298500;-0.974480;-11.086060;,\n       5.298500; 1.152855;-11.086060;,\n       5.298500; 8.025509;-11.086029;,\n       5.298500;10.152889;-11.086021;,\n       5.298500;17.025490;-11.085999;,\n       5.298500;19.152885;-11.085991;,\n       5.298500;26.025490;-11.085968;,\n       5.298500;28.152885;-11.085960;,\n       3.727970;-27.974510;-11.086159;,\n       3.727970;-25.847115;-11.086151;,\n       3.727970;-18.974510;-11.086128;,\n       3.727970;-16.847115;-11.086121;,\n       3.727970;-9.974510;-11.086098;,\n       3.727970;-7.847130;-11.086090;,\n       3.727970;-0.974480;-11.086060;,\n       3.727970; 1.152855;-11.086060;,\n       3.727970; 8.025509;-11.086029;,\n       3.727970;10.152889;-11.086021;,\n       3.727970;17.025490;-11.085999;,\n       3.727970;19.152885;-11.085991;,\n       3.727970;26.025490;-11.085968;,\n       3.727970;28.152885;-11.085960;,\n       1.608040;-29.288513;-11.086166;,\n       2.315372;-25.166214;-11.086151;,\n       1.608040;-20.288513;-11.086136;,\n       2.315372;-16.166214;-11.086121;,\n       1.608040;-11.288513;-11.086098;,\n       2.315372;-7.166245;-11.086082;,\n       1.608040;-2.288490;-11.086067;,\n       2.315372; 1.833748;-11.086052;,\n       1.608040; 6.711510;-11.086037;,\n       2.315372;10.833786;-11.086021;,\n       1.608040;15.711487;-11.086006;,\n       2.315372;19.833786;-11.085991;,\n       1.608040;24.711487;-11.085968;,\n       2.315372;28.833786;-11.085960;,\n       1.337952;-23.941010;-11.086143;,\n       1.337952;-14.941010;-11.086113;,\n       1.337952;-5.940971;-11.086082;,\n       1.337952; 3.059021;-11.086052;,\n       1.337952;12.058987;-11.086014;,\n       1.337952;21.058990;-11.085983;,\n       1.337952;30.058990;-11.085953;,\n       0.988239;-31.410812;-11.086174;,\n       0.988239;-22.410812;-11.086143;,\n       0.988239;-13.410812;-11.086105;,\n       0.988239;-4.410812;-11.086075;,\n       0.988239; 4.589188;-11.086044;,\n       0.988239;13.589188;-11.086014;,\n       0.988239;22.589188;-11.085976;,\n       0.988239;31.589188;-11.085945;,\n      -0.961758;-31.410812;-11.086174;,\n      -1.311470;-29.880615;-11.086166;,\n      -0.961758;-22.410812;-11.086143;,\n      -1.581566;-24.533112;-11.086151;,\n      -1.311470;-20.880615;-11.086136;,\n      -0.961758;-13.410812;-11.086105;,\n      -1.581566;-15.533112;-11.086113;,\n      -1.311470;-11.880615;-11.086105;,\n      -0.961758;-4.410812;-11.086075;,\n      -1.581566;-6.533134;-11.086082;,\n      -1.311470;-2.880646;-11.086067;,\n      -0.961758; 4.589188;-11.086044;,\n      -1.581566; 2.466866;-11.086052;,\n      -1.311470; 6.119347;-11.086037;,\n      -0.961758;13.589188;-11.086014;,\n      -1.581566;11.466888;-11.086021;,\n      -1.311470;15.119389;-11.086006;,\n      -0.961758;22.589188;-11.085976;,\n      -1.581566;20.466888;-11.085983;,\n      -1.311470;24.119385;-11.085976;,\n      -0.961758;31.589188;-11.085945;,\n      -1.581566;29.466888;-11.085953;,\n      -2.288887;-28.655411;-11.086159;,\n      -2.288887;-19.655411;-11.086128;,\n      -2.288887;-10.655411;-11.086098;,\n      -2.288887;-1.655373;-11.086067;,\n      -2.288887; 7.344616;-11.086037;,\n      -2.288887;16.344589;-11.085999;,\n      -2.288887;25.344589;-11.085968;,\n      -3.701485;-27.974510;-11.086159;,\n      -3.701485;-25.847115;-11.086151;,\n      -3.701485;-18.974510;-11.086128;,\n      -3.701485;-16.847115;-11.086121;,\n      -3.701485;-9.974510;-11.086098;,\n      -3.701485;-7.847130;-11.086090;,\n      -3.701485;-0.974480;-11.086060;,\n      -3.701485; 1.152855;-11.086060;,\n      -3.701485; 8.025509;-11.086029;,\n      -3.701485;10.152889;-11.086021;,\n      -3.701485;17.025490;-11.085999;,\n      -3.701485;19.152885;-11.085991;,\n      -3.701485;26.025490;-11.085968;,\n      -3.701485;28.152885;-11.085960;,\n      -5.272026;-27.974510;-11.086159;,\n      -5.272026;-25.847115;-11.086151;,\n      -5.272026;-18.974510;-11.086128;,\n      -5.272026;-16.847115;-11.086121;,\n      -5.272026;-9.974510;-11.086098;,\n      -5.272026;-7.847130;-11.086090;,\n      -5.272026;-0.974480;-11.086060;,\n      -5.272026; 1.152855;-11.086060;,\n      -5.272026; 8.025509;-11.086029;,\n      -5.272026;10.152889;-11.086021;,\n      -5.272026;17.025490;-11.085999;,\n      -5.272026;19.152885;-11.085991;,\n      -5.272026;26.025490;-11.085968;,\n      -5.272026;28.152885;-11.085960;,\n      -7.391945;-29.288513;-11.086166;,\n      -6.684624;-25.166214;-11.086151;,\n      -7.391945;-20.288513;-11.086136;,\n      -6.684624;-16.166214;-11.086121;,\n      -7.391945;-11.288513;-11.086098;,\n      -6.684624;-7.166245;-11.086082;,\n      -7.391945;-2.288490;-11.086067;,\n      -6.684624; 1.833748;-11.086052;,\n      -7.391945; 6.711510;-11.086037;,\n      -6.684624;10.833786;-11.086021;,\n      -7.391945;15.711487;-11.086006;,\n      -6.684624;19.833786;-11.085991;,\n      -7.391945;24.711487;-11.085968;,\n      -6.684624;28.833786;-11.085960;,\n      -7.662041;-23.941010;-11.086143;,\n      -7.662041;-14.941010;-11.086113;,\n      -7.662041;-5.940971;-11.086082;,\n      -7.662041; 3.059021;-11.086052;,\n      -7.662041;12.058987;-11.086014;,\n      -7.662041;21.058990;-11.085983;,\n      -7.662041;30.058990;-11.085953;,\n      -8.011742;-31.410812;-11.086174;,\n      -8.011742;-22.410812;-11.086143;,\n      -8.011742;-13.410812;-11.086105;,\n      -8.011742;-4.410812;-11.086075;,\n      -8.011742; 4.589188;-11.086044;,\n      -8.011742;13.589188;-11.086014;,\n      -8.011742;22.589188;-11.085976;,\n      -8.011742;31.589188;-11.085945;,\n      -9.961754;-31.410812;-11.086174;,\n      -10.311455;-29.880615;-11.086166;,\n      -9.961754;-22.410812;-11.086143;,\n      -10.581566;-24.533112;-11.086151;,\n      -10.311455;-20.880615;-11.086136;,\n      -9.961754;-13.410812;-11.086105;,\n      -10.581566;-15.533112;-11.086113;,\n      -10.311455;-11.880615;-11.086105;,\n      -9.961754;-4.410812;-11.086075;,\n      -10.581566;-6.533119;-11.086082;,\n      -10.311455;-2.880646;-11.086067;,\n      -9.961754; 4.589188;-11.086044;,\n      -10.581566; 2.466866;-11.086052;,\n      -10.311455; 6.119347;-11.086037;,\n      -9.961754;13.589188;-11.086014;,\n      -10.581566;11.466888;-11.086021;,\n      -10.311455;15.119389;-11.086006;,\n      -9.961754;22.589188;-11.085976;,\n      -10.581566;20.466888;-11.085983;,\n      -10.311455;24.119385;-11.085976;,\n      -9.961754;31.589188;-11.085945;,\n      -10.581566;29.466888;-11.085953;,\n      -11.288857;-28.655411;-11.086159;,\n      -11.288857;-19.655411;-11.086128;,\n      -11.288857;-10.655411;-11.086098;,\n      -11.288857;-1.655373;-11.086067;,\n      -11.288857; 7.344616;-11.086037;,\n      -11.288857;16.344589;-11.085999;,\n      -11.288857;25.344589;-11.085968;,\n      -12.701454;-27.974510;-11.086159;,\n      -12.701454;-25.847115;-11.086151;,\n      -12.701454;-18.974510;-11.086128;,\n      -12.701454;-16.847115;-11.086121;,\n      -12.701454;-9.974510;-11.086098;,\n      -12.701454;-7.847130;-11.086090;,\n      -12.701454;-0.974480;-11.086060;,\n      -12.701454; 1.152855;-11.086060;,\n      -12.701454; 8.025509;-11.086029;,\n      -12.701454;10.152889;-11.086021;,\n      -12.701454;17.025490;-11.085999;,\n      -12.701454;19.152885;-11.085991;,\n      -12.701454;26.025490;-11.085968;,\n      -12.701454;28.152885;-11.085960;,\n      -14.272057;-27.974510;-11.086159;,\n      -14.272057;-25.847115;-11.086151;,\n      -14.272057;-18.974510;-11.086128;,\n      -14.272057;-16.847115;-11.086121;,\n      -14.272057;-9.974510;-11.086098;,\n      -14.272057;-7.847130;-11.086090;,\n      -14.272057;-0.974480;-11.086060;,\n      -14.272057; 1.152855;-11.086060;,\n      -14.272057; 8.025509;-11.086029;,\n      -14.272057;10.152889;-11.086021;,\n      -14.272057;17.025490;-11.085999;,\n      -14.272057;19.152885;-11.085991;,\n      -14.272057;26.025490;-11.085968;,\n      -14.272057;28.152885;-11.085960;,\n      -16.391960;-29.288513;-11.086166;,\n      -15.684654;-25.166214;-11.086151;,\n      -16.391960;-20.288513;-11.086136;,\n      -15.684654;-16.166214;-11.086121;,\n      -16.391960;-11.288513;-11.086098;,\n      -15.684654;-7.166245;-11.086082;,\n      -16.391960;-2.288490;-11.086067;,\n      -15.684654; 1.833748;-11.086052;,\n      -16.391960; 6.711498;-11.086037;,\n      -15.684654;10.833786;-11.086021;,\n      -16.391960;15.711487;-11.086006;,\n      -15.684654;19.833786;-11.085991;,\n      -16.391960;24.711487;-11.085968;,\n      -15.684654;28.833786;-11.085960;,\n      -16.662056;-23.941010;-11.086143;,\n      -16.662056;-14.941010;-11.086113;,\n      -16.662056;-5.940971;-11.086082;,\n      -16.662056; 3.059021;-11.086052;,\n      -16.662056;12.058987;-11.086014;,\n      -16.662056;21.058990;-11.085983;,\n      -16.662056;30.058990;-11.085953;,\n      -17.011757;-31.410812;-11.086174;,\n      -17.011757;-22.410812;-11.086143;,\n      -17.011757;-13.410812;-11.086105;,\n      -17.011757;-4.410812;-11.086075;,\n      -17.011757; 4.589188;-11.086044;,\n      -17.011757;13.589188;-11.086014;,\n      -17.011757;22.589188;-11.085976;,\n      -17.011757;31.589188;-11.085945;,\n      -18.961754;-31.410812;-11.086174;,\n      -19.311455;-29.880615;-11.086166;,\n      -18.961754;-22.410812;-11.086143;,\n      -19.581551;-24.533112;-11.086151;,\n      -19.311455;-20.880615;-11.086136;,\n      -18.961754;-13.410812;-11.086105;,\n      -19.581551;-15.533112;-11.086113;,\n      -19.311455;-11.880615;-11.086105;,\n      -18.961754;-4.410812;-11.086075;,\n      -19.581551;-6.533134;-11.086082;,\n      -19.311455;-2.880646;-11.086067;,\n      -18.961754; 4.589188;-11.086044;,\n      -19.581551; 2.466866;-11.086052;,\n      -19.770653; 6.948669;-11.086037;,\n      -18.961754;13.589188;-11.086014;,\n      -19.581551;11.466888;-11.086021;,\n      -19.770653;15.948685;-11.086006;,\n      -18.961754;22.589188;-11.085976;,\n      -19.581551;20.466888;-11.085983;,\n      -19.770653;24.948685;-11.085968;,\n      -18.961754;31.589188;-11.085945;,\n      -19.581551;29.466888;-11.085953;,\n      -20.288857;-28.655411;-11.086159;,\n      -20.288857;-19.655411;-11.086128;,\n      -20.288857;-10.655411;-11.086098;,\n      -20.288857;-1.655373;-11.086067;,\n      -21.701454;-27.974510;-11.086159;,\n      -21.701454;-25.847115;-11.086151;,\n      -21.701454;-18.974510;-11.086128;,\n      -21.701454;-16.847115;-11.086121;,\n      -21.701454;-9.974510;-11.086098;,\n      -21.701454;-7.847130;-11.086090;,\n      -21.701454;-0.974480;-11.086060;,\n      -21.701454; 1.152855;-11.086060;,\n      -21.701454; 8.025509;-11.086029;,\n      -21.701454;10.152889;-11.086021;,\n      -21.701454;17.025490;-11.085999;,\n      -21.701454;19.152885;-11.085991;,\n      -21.701454;26.025490;-11.085968;,\n      -21.701454;28.152885;-11.085960;,\n      -23.272057;-27.974510;-11.086159;,\n      -23.272057;-25.847115;-11.086151;,\n      -23.272057;-18.974510;-11.086128;,\n      -23.272057;-16.847115;-11.086121;,\n      -23.272057;-9.974510;-11.086098;,\n      -23.272057;-7.847130;-11.086090;,\n      -23.272057;-0.974480;-11.086060;,\n      -23.272057; 1.152855;-11.086060;,\n      -23.272057; 8.025509;-11.086029;,\n      -23.272057;10.152889;-11.086021;,\n      -23.272057;17.025490;-11.085999;,\n      -23.272057;19.152885;-11.085991;,\n      -23.272057;26.025490;-11.085968;,\n      -23.272057;28.152885;-11.085960;,\n      -25.391960;-29.288513;-11.086166;,\n      -25.202858;-24.770309;-11.086151;,\n      -25.391960;-20.288513;-11.086136;,\n      -25.202858;-15.770309;-11.086113;,\n      -25.391960;-11.288513;-11.086098;,\n      -25.202858;-6.770294;-11.086082;,\n      -25.391960;-2.288490;-11.086067;,\n      -24.684654; 1.833748;-11.086052;,\n      -25.391960; 6.711510;-11.086037;,\n      -24.684654;10.833786;-11.086021;,\n      -25.391960;15.711487;-11.086006;,\n      -24.684654;19.833786;-11.085991;,\n      -25.391960;24.711487;-11.085968;,\n      -24.684654;28.833786;-11.085960;,\n      -25.662056; 3.059021;-11.086052;,\n      -25.662056;12.058987;-11.086014;,\n      -25.662056;21.058990;-11.085983;,\n      -25.662056;30.058990;-11.085953;,\n      -26.011757;-31.410812;-11.086174;,\n      -26.011757;-22.410812;-11.086143;,\n      -26.011757;-13.410812;-11.086105;,\n      -26.011757;-4.410812;-11.086075;,\n      -26.011757; 4.589188;-11.086044;,\n      -26.011757;13.589188;-11.086014;,\n      -26.011757;22.589188;-11.085976;,\n      -26.011757;31.589188;-11.085945;,\n      -27.961754;-31.410812;-11.086174;,\n      -28.311455;-29.880615;-11.086166;,\n      -27.961754;-22.410812;-11.086143;,\n      -28.581551;-24.533112;-11.086151;,\n      -28.311455;-20.880615;-11.086136;,\n      -27.961754;-13.410812;-11.086105;,\n      -28.581551;-15.533112;-11.086113;,\n      -28.311455;-11.880615;-11.086105;,\n      -27.961754;-4.410812;-11.086075;,\n      -28.581551;-6.533134;-11.086082;,\n      -28.311455;-2.880646;-11.086067;,\n      -27.961754; 4.589188;-11.086044;,\n      -28.581551; 2.466866;-11.086052;,\n      -28.770653; 6.948669;-11.086037;,\n      -27.961754;13.589188;-11.086014;,\n      -28.581551;11.466888;-11.086021;,\n      -28.770653;15.948685;-11.086006;,\n      -27.961754;22.589188;-11.085976;,\n      -28.581551;20.466888;-11.085983;,\n      -28.770653;24.948685;-11.085968;,\n      -27.961754;31.589188;-11.085945;,\n      -28.581551;29.466888;-11.085953;,\n      -29.288857;-28.655411;-11.086159;,\n      -29.288857;-19.655411;-11.086128;,\n      -29.288857;-10.655411;-11.086098;,\n      -29.288857;-1.655373;-11.086067;,\n      -30.701454;-27.974510;-11.086159;,\n      -30.701454;-25.847115;-11.086151;,\n      -30.701454;-18.974510;-11.086128;,\n      -30.701454;-16.847115;-11.086121;,\n      -30.701454;-9.974510;-11.086098;,\n      -30.701454;-7.847130;-11.086090;,\n      -30.701454;-0.974480;-11.086060;,\n      -30.701454; 1.152855;-11.086060;,\n      -30.701454; 8.025509;-11.086029;,\n      -30.701454;10.152889;-11.086021;,\n      -30.701454;17.025490;-11.085999;,\n      -30.701454;19.152885;-11.085991;,\n      -30.701454;26.025490;-11.085968;,\n      -30.701454;28.152885;-11.085960;,\n      -32.272057;-27.974510;-11.086159;,\n      -32.272057;-25.847115;-11.086151;,\n      -32.272057;-18.974510;-11.086128;,\n      -32.272057;-16.847115;-11.086121;,\n      -32.272057;-9.974510;-11.086098;,\n      -32.272057;-7.847130;-11.086090;,\n      -32.272057;-0.974480;-11.086060;,\n      -32.272057; 1.152855;-11.086060;,\n      -32.272057; 8.025509;-11.086029;,\n      -32.272057;10.152889;-11.086021;,\n      -32.272057;17.025490;-11.085999;,\n      -32.272057;19.152885;-11.085991;,\n      -32.272057;26.025490;-11.085968;,\n      -32.272057;28.152885;-11.085960;,\n      -34.391960;-29.288513;-11.086166;,\n      -34.202858;-24.770309;-11.086151;,\n      -34.391960;-20.288513;-11.086136;,\n      -34.202858;-15.770309;-11.086113;,\n      -34.391960;-11.288513;-11.086098;,\n      -34.202858;-6.770294;-11.086082;,\n      -34.391960;-2.288490;-11.086067;,\n      -34.202858; 2.229698;-11.086052;,\n      -34.391960; 6.711510;-11.086037;,\n      -34.202858;11.229687;-11.086021;,\n      -34.391960;15.711487;-11.086006;,\n      -34.202858;20.229691;-11.085991;,\n      -34.391960;24.711487;-11.085968;,\n      -34.202858;29.229691;-11.085953;,\n      -35.011757;-31.410812;-11.086174;,\n      -35.011757;-22.410812;-11.086143;,\n      -35.011757;-13.410812;-11.086105;,\n      -35.011757;-4.410812;-11.086075;,\n      -35.011757; 4.589188;-11.086044;,\n      -35.011757;13.589188;-11.086014;,\n      -35.011757;22.589188;-11.085976;,\n      -35.011757;31.589188;-11.085945;,\n      -36.961754;-31.410812;-11.086174;,\n      -37.770653;-29.051315;-11.086166;,\n      -36.961754;-22.410812;-11.086143;,\n      -37.581551;-24.533112;-11.086151;,\n      -37.770653;-20.051315;-11.086128;,\n      -36.961754;-13.410812;-11.086105;,\n      -37.581551;-15.533112;-11.086113;,\n      -37.770653;-11.051315;-11.086098;,\n      -36.961754;-4.410812;-11.086075;,\n      -37.581551;-6.533134;-11.086082;,\n      -37.770653;-2.051323;-11.086067;,\n      -36.961754; 4.589188;-11.086044;,\n      -37.581551; 2.466858;-11.086052;,\n      -37.770653; 6.948669;-11.086037;,\n      -36.961754;13.589188;-11.086014;,\n      -37.581551;11.466888;-11.086021;,\n      -37.770653;15.948685;-11.086006;,\n      -36.961754;22.589188;-11.085976;,\n      -37.581551;20.466888;-11.085983;,\n      -37.770653;24.948685;-11.085968;,\n      -36.961754;31.589188;-11.085945;,\n      -37.581551;29.466888;-11.085953;,\n      -39.701454;-27.974510;-11.086159;,\n      -39.701454;-25.847115;-11.086151;,\n      -39.701454;-18.974510;-11.086128;,\n      -39.701454;-16.847115;-11.086121;,\n      -39.701454;-9.974510;-11.086098;,\n      -39.701454;-7.847130;-11.086090;,\n      -39.701454;-0.974480;-11.086060;,\n      -39.701454; 1.152855;-11.086060;,\n      -39.701454; 8.025509;-11.086029;,\n      -39.701454;10.152889;-11.086021;,\n      -39.701454;17.025490;-11.085999;,\n      -39.701454;19.152885;-11.085991;,\n      -39.701454;26.025490;-11.085968;,\n      -39.701454;28.152885;-11.085960;,\n      -41.272057;-27.974510;-11.086159;,\n      -41.272057;-25.847115;-11.086151;,\n      -41.272057;-18.974510;-11.086128;,\n      -41.272057;-16.847115;-11.086121;,\n      -41.272057;-9.974510;-11.086098;,\n      -41.272057;-7.847130;-11.086090;,\n      -41.272057;-0.974480;-11.086060;,\n      -41.272057; 1.152855;-11.086060;,\n      -41.272057; 8.025509;-11.086029;,\n      -41.272057;10.152889;-11.086021;,\n      -41.272057;17.025490;-11.085999;,\n      -41.272057;19.152885;-11.085991;,\n      -41.272057;26.025490;-11.085968;,\n      -41.272057;28.152885;-11.085960;,\n      -43.391960;-29.288513;-11.086166;,\n      -43.202858;-24.770309;-11.086151;,\n      -43.391960;-20.288513;-11.086136;,\n      -43.202858;-15.770309;-11.086113;,\n      -43.391960;-11.288513;-11.086098;,\n      -43.202858;-6.770294;-11.086082;,\n      -43.391960;-2.288483;-11.086067;,\n      -43.202858; 2.229698;-11.086052;,\n      -43.391960; 6.711510;-11.086037;,\n      -43.202858;11.229687;-11.086021;,\n      -43.391960;15.711487;-11.086006;,\n      -43.202858;20.229691;-11.085991;,\n      -43.391960;24.711487;-11.085968;,\n      -43.202858;29.229691;-11.085953;,\n      -44.011757;-31.410812;-11.086174;,\n      -44.011757;-22.410812;-11.086143;,\n      -44.011757;-13.410812;-11.086105;,\n      -44.011757;-4.410812;-11.086075;,\n      -44.011757; 4.589188;-11.086044;,\n      -44.011757;13.589188;-11.086014;,\n      -44.011757;22.589188;-11.085976;,\n      -44.011757;31.589188;-11.085945;,\n      -45.961754;-31.410812;-11.086174;,\n      -46.770653;-29.051315;-11.086166;,\n      -45.961754;-22.410812;-11.086143;,\n      -46.581551;-24.533112;-11.086151;,\n      -46.770653;-20.051315;-11.086128;,\n      -45.961754;-13.410812;-11.086105;,\n      -46.581551;-15.533112;-11.086113;,\n      -46.770653;-11.051315;-11.086098;,\n      -45.961754;-4.410812;-11.086075;,\n      -46.581551;-6.533134;-11.086082;,\n      -46.770653;-2.051323;-11.086067;,\n      -45.961754; 4.589188;-11.086044;,\n      -46.581551; 2.466858;-11.086052;,\n      -46.770653; 6.948669;-11.086037;,\n      -45.961754;13.589188;-11.086014;,\n      -46.581551;11.466888;-11.086021;,\n      -46.770653;15.948685;-11.086006;,\n      -45.961754;22.589188;-11.085976;,\n      -46.581551;20.466888;-11.085983;,\n      -46.770653;24.948685;-11.085968;,\n      -45.961754;31.589188;-11.085945;,\n      -46.581551;29.466888;-11.085953;,\n      -48.701454;-27.974510;-11.086159;,\n      -48.701454;-25.847115;-11.086151;,\n      -48.701454;-18.974510;-11.086128;,\n      -48.701454;-16.847115;-11.086121;,\n      -48.701454;-9.974510;-11.086098;,\n      -48.701454;-7.847130;-11.086090;,\n      -48.701454;-0.974480;-11.086060;,\n      -48.701454; 1.152855;-11.086060;,\n      -48.701454; 8.025509;-11.086029;,\n      -48.701454;10.152889;-11.086021;,\n      -48.701454;17.025490;-11.085999;,\n      -48.701454;19.152885;-11.085991;,\n      -48.701454;26.025490;-11.085968;,\n      -48.701454;28.152885;-11.085960;,\n      -50.272057;-27.974510;-11.086159;,\n      -50.272057;-25.847115;-11.086151;,\n      -50.272057;-18.974510;-11.086128;,\n      -50.272057;-16.847115;-11.086121;,\n      -50.272057;-9.974510;-11.086098;,\n      -50.272057;-7.847130;-11.086090;,\n      -50.272057;-0.974480;-11.086060;,\n      -50.272057; 1.152855;-11.086060;,\n      -50.272057; 8.025509;-11.086029;,\n      -50.272057;10.152889;-11.086021;,\n      -50.272057;17.025490;-11.085999;,\n      -50.272057;19.152885;-11.085991;,\n      -50.272057;26.025490;-11.085968;,\n      -50.272057;28.152885;-11.085960;,\n      -52.391960;-29.288513;-11.086166;,\n      -52.202858;-24.770309;-11.086151;,\n      -52.391960;-20.288513;-11.086136;,\n      -52.202858;-15.770309;-11.086113;,\n      -52.391960;-11.288513;-11.086098;,\n      -52.202858;-6.770294;-11.086082;,\n      -52.391960;-2.288483;-11.086067;,\n      -52.202858; 2.229698;-11.086052;,\n      -52.391960; 6.711510;-11.086037;,\n      -52.202858;11.229687;-11.086021;,\n      -52.391960;15.711487;-11.086006;,\n      -52.202858;20.229691;-11.085991;,\n      -52.391960;24.711487;-11.085968;,\n      -52.202858;29.229691;-11.085953;,\n      -52.436760;-36.860817;-11.086189;,\n      -52.202858;-33.770309;-11.086182;,\n      -50.272057;-34.847115;-11.086182;,\n      -48.701454;-34.847115;-11.086182;,\n      -47.288857;-34.166214;-11.086182;,\n      -46.311455;-32.941017;-11.086182;,\n      -43.202858;-33.770309;-11.086182;,\n      -41.272057;-34.847115;-11.086182;,\n      -39.701454;-34.847115;-11.086182;,\n      -37.581551;-33.533112;-11.086182;,\n      -34.662056;-32.941017;-11.086182;,\n      -33.684654;-34.166214;-11.086182;,\n      -32.272057;-34.847115;-11.086182;,\n      -30.701454;-34.847115;-11.086182;,\n      -28.581551;-33.533112;-11.086182;,\n      -25.202858;-33.770309;-11.086182;,\n      -23.272057;-34.847115;-11.086182;,\n      -21.701454;-34.847115;-11.086182;,\n      -19.581551;-33.533112;-11.086182;,\n      -16.202858;-33.770309;-11.086182;,\n      -14.272057;-34.847115;-11.086182;,\n      -12.701454;-34.847115;-11.086182;,\n      -10.581566;-33.533112;-11.086182;,\n      -7.202843;-33.770309;-11.086182;,\n      -5.272026;-34.847115;-11.086182;,\n      -3.701485;-34.847115;-11.086182;,\n      -1.581566;-33.533112;-11.086182;,\n       1.797142;-33.770309;-11.086182;,\n       3.727970;-34.847115;-11.086182;,\n       5.298500;-34.847115;-11.086182;,\n       7.418430;-33.533112;-11.086182;,\n      10.797138;-33.770309;-11.086182;,\n      12.727940;-34.847115;-11.086182;,\n      14.298542;-34.847115;-11.086182;,\n      16.418442;-33.533112;-11.086182;,\n      19.797138;-33.770309;-11.086182;,\n      21.727940;-34.847115;-11.086182;,\n      23.298542;-34.847115;-11.086182;,\n      25.418442;-33.533112;-11.086182;,\n      28.797142;-33.770309;-11.086182;,\n      30.727942;-34.847115;-11.086182;,\n      32.298538;-34.847115;-11.086182;,\n      34.418442;-33.533112;-11.086182;,\n      37.797138;-33.770309;-11.086182;,\n      39.727943;-34.847115;-11.086182;,\n      41.298538;-34.847115;-11.086182;,\n      43.418442;-33.533112;-11.086182;,\n      46.797142;-33.770309;-11.086182;,\n      48.727943;-34.847115;-11.086182;,\n      50.298538;-34.847115;-11.086182;,\n      50.298538;35.025490;-11.085938;,\n      48.727943;35.025490;-11.085938;,\n      47.315342;34.344589;-11.085938;,\n      46.337940;33.119389;-11.085938;,\n      43.229343;33.948685;-11.085938;,\n      41.298538;35.025490;-11.085938;,\n      39.727943;35.025490;-11.085938;,\n      37.608040;33.711487;-11.085938;,\n      34.688541;33.119389;-11.085938;,\n      33.711140;34.344589;-11.085938;,\n      32.298538;35.025490;-11.085938;,\n      30.727942;35.025490;-11.085938;,\n      28.608040;33.711487;-11.085938;,\n      25.229343;33.948685;-11.085938;,\n      23.298542;35.025490;-11.085938;,\n      21.727940;35.025490;-11.085938;,\n      19.608040;33.711487;-11.085938;,\n      16.229340;33.948685;-11.085938;,\n      14.298542;35.025490;-11.085938;,\n      12.727940;35.025490;-11.085938;,\n      10.608040;33.711487;-11.085938;,\n       7.229332;33.948685;-11.085938;,\n       5.298500;35.025490;-11.085938;,\n       3.727970;35.025490;-11.085938;,\n       1.608040;33.711487;-11.085938;,\n      -1.770653;33.948685;-11.085938;,\n      -3.701485;35.025490;-11.085938;,\n      -5.272026;35.025490;-11.085938;,\n      -7.391945;33.711487;-11.085938;,\n      -10.311455;33.119389;-11.085938;,\n      -11.288857;34.344589;-11.085938;,\n      -12.701454;35.025490;-11.085938;,\n      -14.272057;35.025490;-11.085938;,\n      -16.391960;33.711487;-11.085938;,\n      -19.770653;33.948685;-11.085938;,\n      -21.701454;35.025490;-11.085938;,\n      -23.272057;35.025490;-11.085938;,\n      -25.391960;33.711487;-11.085938;,\n      -28.770653;33.948685;-11.085938;,\n      -30.701454;35.025490;-11.085938;,\n      -32.272057;35.025490;-11.085938;,\n      -34.391960;33.711487;-11.085938;,\n      -37.770653;33.948685;-11.085938;,\n      -39.701454;35.025490;-11.085938;,\n      -41.272057;35.025490;-11.085938;,\n      -43.391960;33.711487;-11.085938;,\n      -46.770653;33.948685;-11.085938;,\n      -48.701454;35.025490;-11.085938;,\n      -50.272057;35.025490;-11.085938;,\n      -52.391960;33.711487;-11.085938;,\n      -52.436760;37.039188;-11.085930;,\n      -53.011757;-31.410812;-11.086174;,\n      -53.011757;-22.410812;-11.086143;,\n      -53.011757;-13.410812;-11.086105;,\n      -53.011757;-4.410812;-11.086075;,\n      -53.011757; 4.589188;-11.086044;,\n      -53.011757;13.589188;-11.086014;,\n      -53.011757;22.589188;-11.085976;,\n      -53.011757;31.589188;-11.085945;,\n      -57.436760;-31.860817;-11.086174;,\n      -57.436760;32.039188;-11.085945;,\n      53.038242;31.589111;10.914055;,\n      52.229343;29.229607;10.914047;,\n      53.038242;22.589111;10.914017;,\n      52.418442;24.711411;10.914032;,\n      52.229343;20.229610;10.914017;,\n      53.038242;13.589111;10.913986;,\n      52.418442;15.711411;10.913994;,\n      52.229343;11.229607;10.913979;,\n      53.038242; 4.589111;10.913956;,\n      52.418442; 6.711430;10.913963;,\n      52.229343; 2.229622;10.913948;,\n      53.038242;-4.410889;10.913925;,\n      52.418442;-2.288559;10.913933;,\n      52.229343;-6.770370;10.913918;,\n      53.038242;-13.410889;10.913895;,\n      52.418442;-11.288589;10.913902;,\n      52.229343;-15.770393;10.913879;,\n      53.038242;-22.410896;10.913864;,\n      52.418442;-20.288589;10.913864;,\n      52.229343;-24.770393;10.913849;,\n      53.038242;-31.410896;10.913826;,\n      52.418442;-29.288589;10.913834;,\n      50.298538;28.152809;10.914040;,\n      50.298538;26.025406;10.914032;,\n      50.298538;19.152809;10.914009;,\n      50.298538;17.025410;10.914001;,\n      50.298538;10.152809;10.913979;,\n      50.298538; 8.025429;10.913971;,\n      50.298538; 1.152779;10.913940;,\n      50.298538;-0.974564;10.913940;,\n      50.298538;-7.847214;10.913910;,\n      50.298538;-9.974594;10.913902;,\n      50.298538;-16.847191;10.913879;,\n      50.298538;-18.974586;10.913872;,\n      50.298538;-25.847191;10.913849;,\n      50.298538;-27.974586;10.913841;,\n      48.727943;28.152809;10.914040;,\n      48.727943;26.025406;10.914032;,\n      48.727943;19.152809;10.914009;,\n      48.727943;17.025410;10.914001;,\n      48.727943;10.152809;10.913979;,\n      48.727943; 8.025429;10.913971;,\n      48.727943; 1.152779;10.913940;,\n      48.727943;-0.974564;10.913940;,\n      48.727943;-7.847214;10.913910;,\n      48.727943;-9.974594;10.913902;,\n      48.727943;-16.847191;10.913879;,\n      48.727943;-18.974586;10.913872;,\n      48.727943;-25.847191;10.913849;,\n      48.727943;-27.974586;10.913841;,\n      46.608040;29.466812;10.914047;,\n      46.797142;24.948608;10.914032;,\n      46.608040;20.466808;10.914017;,\n      46.797142;15.948608;10.914001;,\n      46.608040;11.466808;10.913979;,\n      46.797142; 6.948589;10.913963;,\n      46.608040; 2.466782;10.913948;,\n      46.797142;-2.051399;10.913933;,\n      46.608040;-6.533211;10.913918;,\n      46.797142;-11.051392;10.913902;,\n      46.608040;-15.533195;10.913887;,\n      46.797142;-20.051392;10.913864;,\n      46.608040;-24.533195;10.913849;,\n      46.797142;-29.051392;10.913834;,\n      45.988239;31.589111;10.914055;,\n      45.988239;22.589111;10.914017;,\n      45.988239;13.589111;10.913986;,\n      45.988239; 4.589111;10.913956;,\n      45.988239;-4.410889;10.913925;,\n      45.988239;-13.410889;10.913895;,\n      45.988239;-22.410896;10.913864;,\n      45.988239;-31.410896;10.913826;,\n      44.038242;31.589111;10.914055;,\n      43.229343;29.229607;10.914047;,\n      44.038242;22.589111;10.914017;,\n      43.418442;24.711411;10.914032;,\n      43.229343;20.229610;10.914017;,\n      44.038242;13.589111;10.913986;,\n      43.418442;15.711411;10.913994;,\n      43.229343;11.229607;10.913979;,\n      44.038242; 4.589111;10.913956;,\n      43.418442; 6.711430;10.913963;,\n      43.229343; 2.229622;10.913948;,\n      44.038242;-4.410889;10.913925;,\n      43.418442;-2.288559;10.913933;,\n      43.229343;-6.770370;10.913918;,\n      44.038242;-13.410889;10.913895;,\n      43.418442;-11.288589;10.913902;,\n      43.229343;-15.770393;10.913879;,\n      44.038242;-22.410896;10.913864;,\n      43.418442;-20.288589;10.913864;,\n      43.229343;-24.770393;10.913849;,\n      44.038242;-31.410896;10.913826;,\n      43.418442;-29.288589;10.913834;,\n      41.298538;28.152809;10.914040;,\n      41.298538;26.025406;10.914032;,\n      41.298538;19.152809;10.914009;,\n      41.298538;17.025410;10.914001;,\n      41.298538;10.152809;10.913979;,\n      41.298538; 8.025429;10.913971;,\n      41.298538; 1.152779;10.913940;,\n      41.298538;-0.974564;10.913940;,\n      41.298538;-7.847214;10.913910;,\n      41.298538;-9.974594;10.913902;,\n      41.298538;-16.847191;10.913879;,\n      41.298538;-18.974586;10.913872;,\n      41.298538;-25.847191;10.913849;,\n      41.298538;-27.974586;10.913841;,\n      39.727943;28.152809;10.914040;,\n      39.727943;26.025406;10.914032;,\n      39.727943;19.152809;10.914009;,\n      39.727943;17.025410;10.914001;,\n      39.727943;10.152809;10.913979;,\n      39.727943; 8.025429;10.913971;,\n      39.727943; 1.152779;10.913940;,\n      39.727943;-0.974564;10.913940;,\n      39.727943;-7.847214;10.913910;,\n      39.727943;-9.974594;10.913902;,\n      39.727943;-16.847191;10.913879;,\n      39.727943;-18.974586;10.913872;,\n      39.727943;-25.847191;10.913849;,\n      39.727943;-27.974586;10.913841;,\n      37.608040;29.466812;10.914047;,\n      37.797138;24.948608;10.914032;,\n      37.608040;20.466808;10.914017;,\n      37.797138;15.948608;10.914001;,\n      37.608040;11.466808;10.913979;,\n      37.797138; 6.948589;10.913963;,\n      37.608040; 2.466782;10.913948;,\n      37.797138;-2.051399;10.913933;,\n      37.608040;-6.533211;10.913918;,\n      37.797138;-11.051392;10.913902;,\n      37.608040;-15.533195;10.913887;,\n      37.797138;-20.051392;10.913864;,\n      37.608040;-24.533195;10.913849;,\n      37.797138;-29.051392;10.913834;,\n      36.988239;31.589111;10.914055;,\n      36.988239;22.589111;10.914017;,\n      36.988239;13.589111;10.913986;,\n      36.988239; 4.589111;10.913956;,\n      36.988239;-4.410889;10.913925;,\n      36.988239;-13.410889;10.913895;,\n      36.988239;-22.410896;10.913864;,\n      36.988239;-31.410896;10.913826;,\n      35.038242;31.589111;10.914055;,\n      34.229340;29.229607;10.914047;,\n      35.038242;22.589111;10.914017;,\n      34.418442;24.711411;10.914032;,\n      34.688541;21.058910;10.914017;,\n      35.038242;13.589111;10.913986;,\n      34.418442;15.711411;10.913994;,\n      34.229340;11.229607;10.913979;,\n      35.038242; 4.589111;10.913956;,\n      34.418442; 6.711430;10.913963;,\n      34.229340; 2.229622;10.913948;,\n      35.038242;-4.410889;10.913925;,\n      34.418442;-2.288574;10.913933;,\n      34.229340;-6.770370;10.913918;,\n      35.038242;-13.410889;10.913895;,\n      34.418442;-11.288589;10.913902;,\n      34.229340;-15.770393;10.913879;,\n      35.038242;-22.410896;10.913864;,\n      34.418442;-20.288589;10.913864;,\n      34.229340;-24.770393;10.913849;,\n      35.038242;-31.410896;10.913826;,\n      34.418442;-29.288589;10.913834;,\n      33.711140;19.833710;10.914009;,\n      32.298538;28.152809;10.914040;,\n      32.298538;26.025406;10.914032;,\n      32.298538;19.152809;10.914009;,\n      32.298538;17.025410;10.914001;,\n      32.298538;10.152809;10.913979;,\n      32.298538; 8.025429;10.913971;,\n      32.298538; 1.152779;10.913940;,\n      32.298538;-0.974564;10.913940;,\n      32.298538;-7.847214;10.913910;,\n      32.298538;-9.974594;10.913902;,\n      32.298538;-16.847191;10.913879;,\n      32.298538;-18.974586;10.913872;,\n      32.298538;-25.847191;10.913849;,\n      32.298538;-27.974586;10.913841;,\n      30.727942;28.152809;10.914040;,\n      30.727942;26.025406;10.914032;,\n      30.727942;19.152809;10.914009;,\n      30.727942;17.025410;10.914001;,\n      30.727942;10.152809;10.913979;,\n      30.727942; 8.025429;10.913971;,\n      30.727942; 1.152779;10.913940;,\n      30.727942;-0.974564;10.913940;,\n      30.727942;-7.847214;10.913910;,\n      30.727942;-9.974594;10.913902;,\n      30.727942;-16.847191;10.913879;,\n      30.727942;-18.974586;10.913872;,\n      30.727942;-25.847191;10.913849;,\n      30.727942;-27.974586;10.913841;,\n      28.608040;29.466812;10.914047;,\n      29.315342;25.344509;10.914032;,\n      28.608040;20.466808;10.914017;,\n      29.315342;16.344505;10.914001;,\n      28.608040;11.466808;10.913979;,\n      28.797142; 6.948589;10.913963;,\n      28.608040; 2.466789;10.913948;,\n      29.315342;-1.655449;10.913933;,\n      28.608040;-6.533211;10.913918;,\n      29.315342;-10.655495;10.913902;,\n      28.608040;-15.533195;10.913887;,\n      29.315342;-19.655495;10.913872;,\n      28.608040;-24.533195;10.913849;,\n      29.315342;-28.655495;10.913834;,\n      28.337940;24.119308;10.914024;,\n      28.337940;15.119308;10.913994;,\n      28.337940;-2.880722;10.913925;,\n      28.337940;-11.880692;10.913895;,\n      28.337940;-20.880692;10.913864;,\n      28.337940;-29.880692;10.913834;,\n      27.988239;31.589111;10.914055;,\n      27.988239;22.589111;10.914017;,\n      27.988239;13.589111;10.913986;,\n      27.988239; 4.589111;10.913956;,\n      27.988239;-4.410889;10.913925;,\n      27.988239;-13.410889;10.913895;,\n      27.988239;-22.410896;10.913864;,\n      27.988239;-31.410896;10.913826;,\n      26.038242;31.589111;10.914055;,\n      25.688541;30.058907;10.914047;,\n      26.038242;22.589111;10.914017;,\n      25.418442;24.711411;10.914032;,\n      25.688541;21.058910;10.914017;,\n      26.038242;13.589111;10.913986;,\n      25.418442;15.711411;10.913994;,\n      25.688541;12.058907;10.913986;,\n      26.038242; 4.589111;10.913956;,\n      25.418442; 6.711430;10.913963;,\n      25.688541; 3.058937;10.913956;,\n      26.038242;-4.410889;10.913925;,\n      25.418442;-2.288574;10.913933;,\n      25.229343;-6.770370;10.913918;,\n      26.038242;-13.410889;10.913895;,\n      25.418442;-11.288589;10.913902;,\n      25.688541;-14.941093;10.913887;,\n      26.038242;-22.410896;10.913864;,\n      25.418442;-20.288589;10.913864;,\n      25.688541;-23.941093;10.913857;,\n      26.038242;-31.410896;10.913826;,\n      25.418442;-29.288589;10.913834;,\n      24.711140;28.833710;10.914047;,\n      24.711140;19.833710;10.914009;,\n      24.711140;10.833710;10.913979;,\n      24.711140; 1.833672;10.913948;,\n      24.711140;-16.166290;10.913879;,\n      24.711140;-25.166290;10.913849;,\n      23.298542;28.152809;10.914040;,\n      23.298542;26.025406;10.914032;,\n      23.298542;19.152809;10.914009;,\n      23.298542;17.025410;10.914001;,\n      23.298542;10.152809;10.913979;,\n      23.298542; 8.025429;10.913971;,\n      23.298542; 1.152779;10.913940;,\n      23.298542;-0.974564;10.913940;,\n      23.298542;-7.847214;10.913910;,\n      23.298542;-9.974594;10.913902;,\n      23.298542;-16.847191;10.913879;,\n      23.298542;-18.974586;10.913872;,\n      23.298542;-25.847191;10.913849;,\n      23.298542;-27.974586;10.913841;,\n      21.727940;28.152809;10.914040;,\n      21.727940;26.025406;10.914032;,\n      21.727940;19.152809;10.914009;,\n      21.727940;17.025410;10.914001;,\n      21.727940;10.152809;10.913979;,\n      21.727940; 8.025429;10.913971;,\n      21.727940; 1.152779;10.913940;,\n      21.727940;-0.974564;10.913940;,\n      21.727940;-7.847214;10.913910;,\n      21.727940;-9.974594;10.913902;,\n      21.727940;-16.847191;10.913879;,\n      21.727940;-18.974586;10.913872;,\n      21.727940;-25.847191;10.913849;,\n      21.727940;-27.974586;10.913841;,\n      19.608040;29.466812;10.914047;,\n      20.315342;25.344509;10.914032;,\n      19.608040;20.466808;10.914017;,\n      20.315342;16.344505;10.914001;,\n      19.608040;11.466808;10.913979;,\n      19.797138; 6.948589;10.913963;,\n      19.608040; 2.466789;10.913948;,\n      20.315342;-1.655449;10.913933;,\n      19.608040;-6.533211;10.913918;,\n      20.315342;-10.655495;10.913902;,\n      19.608040;-15.533195;10.913887;,\n      20.315342;-19.655495;10.913872;,\n      19.608040;-24.533195;10.913849;,\n      20.315342;-28.655495;10.913834;,\n      19.337940;24.119308;10.914024;,\n      19.337940;15.119308;10.913994;,\n      19.337940;-2.880722;10.913925;,\n      19.337940;-11.880692;10.913895;,\n      19.337940;-20.880692;10.913864;,\n      19.337940;-29.880692;10.913834;,\n      18.988239;31.589111;10.914055;,\n      18.988239;22.589111;10.914017;,\n      18.988239;13.589111;10.913986;,\n      18.988239; 4.589111;10.913956;,\n      18.988239;-4.410889;10.913925;,\n      18.988239;-13.410889;10.913895;,\n      18.988239;-22.410896;10.913864;,\n      18.988239;-31.410896;10.913826;,\n      17.038242;31.589111;10.914055;,\n      16.688541;30.058907;10.914047;,\n      17.038242;22.589111;10.914017;,\n      16.418442;24.711411;10.914032;,\n      16.688541;21.058910;10.914017;,\n      17.038242;13.589111;10.913986;,\n      16.418442;15.711411;10.913994;,\n      16.688541;12.058907;10.913986;,\n      17.038242; 4.589111;10.913956;,\n      16.418442; 6.711418;10.913963;,\n      16.688541; 3.058937;10.913956;,\n      17.038242;-4.410889;10.913925;,\n      16.418442;-2.288574;10.913933;,\n      16.688541;-5.941048;10.913918;,\n      17.038242;-13.410889;10.913895;,\n      16.418442;-11.288589;10.913902;,\n      16.688541;-14.941093;10.913887;,\n      17.038242;-22.410896;10.913864;,\n      16.418442;-20.288589;10.913864;,\n      16.688541;-23.941093;10.913857;,\n      17.038242;-31.410896;10.913826;,\n      16.418442;-29.288589;10.913834;,\n      15.711140;28.833710;10.914047;,\n      15.711140;19.833710;10.914009;,\n      15.711140;10.833710;10.913979;,\n      15.711140; 1.833672;10.913948;,\n      15.711140;-7.166321;10.913910;,\n      15.711140;-16.166290;10.913879;,\n      15.711140;-25.166290;10.913849;,\n      14.298542;28.152809;10.914040;,\n      14.298542;26.025406;10.914032;,\n      14.298542;19.152809;10.914009;,\n      14.298542;17.025410;10.914001;,\n      14.298542;10.152809;10.913979;,\n      14.298542; 8.025429;10.913971;,\n      14.298542; 1.152779;10.913940;,\n      14.298542;-0.974564;10.913940;,\n      14.298542;-7.847214;10.913910;,\n      14.298542;-9.974594;10.913902;,\n      14.298542;-16.847191;10.913879;,\n      14.298542;-18.974586;10.913872;,\n      14.298542;-25.847191;10.913849;,\n      14.298542;-27.974586;10.913841;,\n      12.727940;28.152809;10.914040;,\n      12.727940;26.025406;10.914032;,\n      12.727940;19.152809;10.914009;,\n      12.727940;17.025410;10.914001;,\n      12.727940;10.152809;10.913979;,\n      12.727940; 8.025429;10.913971;,\n      12.727940; 1.152779;10.913940;,\n      12.727940;-0.974564;10.913940;,\n      12.727940;-7.847214;10.913910;,\n      12.727940;-9.974594;10.913902;,\n      12.727940;-16.847191;10.913879;,\n      12.727940;-18.974586;10.913872;,\n      12.727940;-25.847191;10.913849;,\n      12.727940;-27.974586;10.913841;,\n      10.608040;29.466812;10.914047;,\n      11.315342;25.344509;10.914032;,\n      10.608040;20.466808;10.914017;,\n      11.315342;16.344505;10.914001;,\n      10.608040;11.466808;10.913979;,\n      11.315342; 7.344540;10.913971;,\n      10.608040; 2.466789;10.913948;,\n      11.315342;-1.655449;10.913933;,\n      10.608040;-6.533203;10.913918;,\n      11.315342;-10.655495;10.913902;,\n      10.608040;-15.533195;10.913887;,\n      11.315342;-19.655495;10.913872;,\n      10.608040;-24.533195;10.913849;,\n      11.315342;-28.655495;10.913834;,\n      10.337940;24.119308;10.914024;,\n      10.337940;15.119308;10.913994;,\n      10.337940; 6.119270;10.913963;,\n      10.337940;-2.880722;10.913925;,\n      10.337940;-11.880692;10.913895;,\n      10.337940;-20.880692;10.913864;,\n      10.337940;-29.880692;10.913834;,\n       9.988239;31.589111;10.914055;,\n       9.988239;22.589111;10.914017;,\n       9.988239;13.589111;10.913986;,\n       9.988239; 4.589111;10.913956;,\n       9.988239;-4.410889;10.913925;,\n       9.988239;-13.410889;10.913895;,\n       9.988239;-22.410896;10.913864;,\n       9.988239;-31.410896;10.913826;,\n       8.038231;31.589111;10.914055;,\n       7.688519;30.058907;10.914047;,\n       8.038231;22.589111;10.914017;,\n       7.418423;24.711411;10.914032;,\n       7.688519;21.058910;10.914017;,\n       8.038231;13.589111;10.913986;,\n       7.418423;15.711411;10.913994;,\n       7.688519;12.058907;10.913986;,\n       8.038231; 4.589111;10.913956;,\n       7.418430; 6.711430;10.913963;,\n       7.688519; 3.058937;10.913956;,\n       8.038231;-4.410889;10.913925;,\n       7.418430;-2.288574;10.913933;,\n       7.688519;-5.941048;10.913918;,\n       8.038231;-13.410889;10.913895;,\n       7.418430;-11.288589;10.913902;,\n       7.688519;-14.941093;10.913887;,\n       8.038231;-22.410896;10.913864;,\n       7.418430;-20.288589;10.913864;,\n       7.688519;-23.941093;10.913857;,\n       8.038231;-31.410896;10.913826;,\n       7.418430;-29.288589;10.913834;,\n       6.711102;28.833710;10.914047;,\n       6.711102;19.833710;10.914009;,\n       6.711102;10.833710;10.913979;,\n       6.711102; 1.833672;10.913948;,\n       6.711102;-7.166321;10.913910;,\n       6.711102;-16.166290;10.913879;,\n       6.711102;-25.166290;10.913849;,\n       5.298500;28.152809;10.914040;,\n       5.298500;26.025406;10.914032;,\n       5.298500;19.152809;10.914009;,\n       5.298500;17.025410;10.914001;,\n       5.298500;10.152809;10.913979;,\n       5.298500; 8.025429;10.913971;,\n       5.298500; 1.152779;10.913940;,\n       5.298500;-0.974564;10.913940;,\n       5.298500;-7.847214;10.913910;,\n       5.298500;-9.974594;10.913902;,\n       5.298500;-16.847191;10.913879;,\n       5.298500;-18.974586;10.913872;,\n       5.298500;-25.847191;10.913849;,\n       5.298500;-27.974586;10.913841;,\n       3.727970;28.152809;10.914040;,\n       3.727970;26.025406;10.914032;,\n       3.727970;19.152809;10.914009;,\n       3.727970;17.025410;10.914001;,\n       3.727970;10.152809;10.913979;,\n       3.727970; 8.025429;10.913971;,\n       3.727970; 1.152779;10.913940;,\n       3.727970;-0.974564;10.913940;,\n       3.727970;-7.847214;10.913910;,\n       3.727970;-9.974594;10.913902;,\n       3.727970;-16.847191;10.913879;,\n       3.727970;-18.974586;10.913872;,\n       3.727970;-25.847191;10.913849;,\n       3.727970;-27.974586;10.913841;,\n       1.608040;29.466812;10.914047;,\n       2.315372;25.344509;10.914032;,\n       1.608040;20.466808;10.914017;,\n       2.315372;16.344505;10.914001;,\n       1.608040;11.466808;10.913979;,\n       2.315372; 7.344540;10.913971;,\n       1.608040; 2.466789;10.913948;,\n       2.315372;-1.655449;10.913933;,\n       1.608040;-6.533211;10.913918;,\n       2.315372;-10.655495;10.913902;,\n       1.608051;-15.533195;10.913887;,\n       2.315372;-19.655495;10.913872;,\n       1.608051;-24.533195;10.913849;,\n       2.315372;-28.655495;10.913834;,\n       1.337952;24.119308;10.914024;,\n       1.337952;15.119308;10.913994;,\n       1.337952; 6.119270;10.913963;,\n       1.337952;-2.880722;10.913925;,\n       1.337952;-11.880692;10.913895;,\n       1.337952;-20.880692;10.913864;,\n       1.337952;-29.880692;10.913834;,\n       0.988239;31.589111;10.914055;,\n       0.988239;22.589111;10.914017;,\n       0.988239;13.589111;10.913986;,\n       0.988239; 4.589111;10.913956;,\n       0.988239;-4.410889;10.913925;,\n       0.988239;-13.410889;10.913895;,\n       0.988239;-22.410896;10.913864;,\n       0.988239;-31.410896;10.913826;,\n      -0.961758;31.589111;10.914055;,\n      -1.311470;30.058907;10.914047;,\n      -0.961758;22.589111;10.914017;,\n      -1.581566;24.711411;10.914032;,\n      -1.311470;21.058910;10.914017;,\n      -0.961758;13.589111;10.913986;,\n      -1.581566;15.711411;10.913994;,\n      -1.311470;12.058907;10.913986;,\n      -0.961758; 4.589111;10.913956;,\n      -1.581566; 6.711430;10.913963;,\n      -1.311470; 3.058937;10.913956;,\n      -0.961758;-4.410889;10.913925;,\n      -1.581566;-2.288574;10.913933;,\n      -1.311470;-5.941048;10.913918;,\n      -0.961758;-13.410889;10.913895;,\n      -1.581566;-11.288589;10.913902;,\n      -1.311470;-14.941093;10.913887;,\n      -0.961758;-22.410896;10.913864;,\n      -1.581566;-20.288589;10.913864;,\n      -1.311470;-23.941093;10.913857;,\n      -0.961758;-31.410896;10.913826;,\n      -1.581566;-29.288589;10.913834;,\n      -2.288887;28.833710;10.914047;,\n      -2.288887;19.833710;10.914009;,\n      -2.288887;10.833710;10.913979;,\n      -2.288887; 1.833672;10.913948;,\n      -2.288887;-7.166321;10.913910;,\n      -2.288887;-16.166290;10.913879;,\n      -2.288887;-25.166290;10.913849;,\n      -3.701485;28.152809;10.914040;,\n      -3.701485;26.025406;10.914032;,\n      -3.701485;19.152809;10.914009;,\n      -3.701485;17.025410;10.914001;,\n      -3.701485;10.152809;10.913979;,\n      -3.701485; 8.025429;10.913971;,\n      -3.701485; 1.152779;10.913940;,\n      -3.701485;-0.974564;10.913940;,\n      -3.701485;-7.847214;10.913910;,\n      -3.701485;-9.974594;10.913902;,\n      -3.701485;-16.847191;10.913879;,\n      -3.701485;-18.974586;10.913872;,\n      -3.701485;-25.847191;10.913849;,\n      -3.701485;-27.974586;10.913841;,\n      -5.272026;28.152809;10.914040;,\n      -5.272026;26.025406;10.914032;,\n      -5.272026;19.152809;10.914009;,\n      -5.272026;17.025410;10.914001;,\n      -5.272026;10.152809;10.913979;,\n      -5.272026; 8.025429;10.913971;,\n      -5.272026; 1.152779;10.913940;,\n      -5.272026;-0.974564;10.913940;,\n      -5.272026;-7.847214;10.913910;,\n      -5.272026;-9.974594;10.913902;,\n      -5.272026;-16.847191;10.913879;,\n      -5.272026;-18.974586;10.913872;,\n      -5.272026;-25.847191;10.913849;,\n      -5.272026;-27.974586;10.913841;,\n      -7.391945;29.466812;10.914047;,\n      -6.684624;25.344509;10.914032;,\n      -7.391945;20.466808;10.914017;,\n      -6.684624;16.344505;10.914001;,\n      -7.391945;11.466808;10.913979;,\n      -6.684624; 7.344540;10.913971;,\n      -7.391945; 2.466789;10.913948;,\n      -6.684624;-1.655449;10.913933;,\n      -7.391945;-6.533211;10.913918;,\n      -6.684624;-10.655495;10.913902;,\n      -7.391945;-15.533195;10.913887;,\n      -6.684624;-19.655495;10.913872;,\n      -7.391945;-24.533195;10.913849;,\n      -6.684624;-28.655495;10.913834;,\n      -7.662041;24.119308;10.914024;,\n      -7.662041;15.119308;10.913994;,\n      -7.662041; 6.119270;10.913963;,\n      -7.662041;-2.880722;10.913925;,\n      -7.662041;-11.880692;10.913895;,\n      -7.662041;-20.880692;10.913864;,\n      -7.662041;-29.880692;10.913834;,\n      -8.011742;31.589111;10.914055;,\n      -8.011742;22.589111;10.914017;,\n      -8.011742;13.589111;10.913986;,\n      -8.011742; 4.589111;10.913956;,\n      -8.011742;-4.410889;10.913925;,\n      -8.011742;-13.410889;10.913895;,\n      -8.011742;-22.410896;10.913864;,\n      -8.011742;-31.410896;10.913826;,\n      -9.961754;31.589111;10.914055;,\n      -10.311455;30.058907;10.914047;,\n      -9.961754;22.589111;10.914017;,\n      -10.581566;24.711411;10.914032;,\n      -10.311455;21.058910;10.914017;,\n      -9.961754;13.589111;10.913986;,\n      -10.581566;15.711411;10.913994;,\n      -10.311455;12.058907;10.913986;,\n      -9.961754; 4.589111;10.913956;,\n      -10.581566; 6.711418;10.913963;,\n      -10.311455; 3.058937;10.913956;,\n      -9.961754;-4.410889;10.913925;,\n      -10.581566;-2.288574;10.913933;,\n      -10.311455;-5.941048;10.913918;,\n      -9.961754;-13.410889;10.913895;,\n      -10.581566;-11.288589;10.913902;,\n      -10.311455;-14.941093;10.913887;,\n      -9.961754;-22.410896;10.913864;,\n      -10.581566;-20.288589;10.913864;,\n      -10.311455;-23.941093;10.913857;,\n      -9.961754;-31.410896;10.913826;,\n      -10.581566;-29.288589;10.913834;,\n      -11.288857;28.833710;10.914047;,\n      -11.288857;19.833710;10.914009;,\n      -11.288857;10.833710;10.913979;,\n      -11.288857; 1.833672;10.913948;,\n      -11.288857;-7.166321;10.913910;,\n      -11.288857;-16.166290;10.913879;,\n      -11.288857;-25.166290;10.913849;,\n      -12.701454;28.152809;10.914040;,\n      -12.701454;26.025406;10.914032;,\n      -12.701454;19.152809;10.914009;,\n      -12.701454;17.025410;10.914001;,\n      -12.701454;10.152809;10.913979;,\n      -12.701454; 8.025429;10.913971;,\n      -12.701454; 1.152779;10.913940;,\n      -12.701454;-0.974564;10.913940;,\n      -12.701454;-7.847214;10.913910;,\n      -12.701454;-9.974594;10.913902;,\n      -12.701454;-16.847191;10.913879;,\n      -12.701454;-18.974586;10.913872;,\n      -12.701454;-25.847191;10.913849;,\n      -12.701454;-27.974586;10.913841;,\n      -14.272057;28.152809;10.914040;,\n      -14.272057;26.025406;10.914032;,\n      -14.272057;19.152809;10.914009;,\n      -14.272057;17.025410;10.914001;,\n      -14.272057;10.152809;10.913979;,\n      -14.272057; 8.025429;10.913971;,\n      -14.272057; 1.152779;10.913940;,\n      -14.272057;-0.974564;10.913940;,\n      -14.272057;-7.847214;10.913910;,\n      -14.272057;-9.974594;10.913902;,\n      -14.272057;-16.847191;10.913879;,\n      -14.272057;-18.974586;10.913872;,\n      -14.272057;-25.847191;10.913849;,\n      -14.272057;-27.974586;10.913841;,\n      -16.391960;29.466812;10.914047;,\n      -15.684654;25.344509;10.914032;,\n      -16.391960;20.466808;10.914017;,\n      -15.684654;16.344505;10.914001;,\n      -16.391960;11.466808;10.913979;,\n      -15.684654; 7.344540;10.913971;,\n      -16.391960; 2.466789;10.913948;,\n      -15.684654;-1.655449;10.913933;,\n      -16.391960;-6.533203;10.913918;,\n      -15.684654;-10.655495;10.913902;,\n      -16.391960;-15.533195;10.913887;,\n      -15.684654;-19.655495;10.913872;,\n      -16.391960;-24.533195;10.913849;,\n      -15.684654;-28.655495;10.913834;,\n      -16.662056;24.119308;10.914024;,\n      -16.662056;15.119308;10.913994;,\n      -16.662056; 6.119270;10.913963;,\n      -16.662056;-2.880722;10.913925;,\n      -16.662056;-11.880692;10.913895;,\n      -16.662056;-20.880692;10.913864;,\n      -16.662056;-29.880692;10.913834;,\n      -17.011757;31.589111;10.914055;,\n      -17.011757;22.589111;10.914017;,\n      -17.011757;13.589111;10.913986;,\n      -17.011757; 4.589111;10.913956;,\n      -17.011757;-4.410889;10.913925;,\n      -17.011757;-13.410889;10.913895;,\n      -17.011757;-22.410896;10.913864;,\n      -17.011757;-31.410896;10.913826;,\n      -18.961754;31.589111;10.914055;,\n      -19.311455;30.058907;10.914047;,\n      -18.961754;22.589111;10.914017;,\n      -19.581551;24.711411;10.914032;,\n      -19.311455;21.058910;10.914017;,\n      -18.961754;13.589111;10.913986;,\n      -19.581551;15.711411;10.913994;,\n      -19.311455;12.058907;10.913986;,\n      -18.961754; 4.589111;10.913956;,\n      -19.581551; 6.711430;10.913963;,\n      -19.311455; 3.058937;10.913956;,\n      -18.961754;-4.410889;10.913925;,\n      -19.581551;-2.288574;10.913933;,\n      -19.770653;-6.770370;10.913918;,\n      -18.961754;-13.410889;10.913895;,\n      -19.581551;-11.288589;10.913902;,\n      -19.311455;-14.941093;10.913887;,\n      -18.961754;-22.410896;10.913864;,\n      -19.581551;-20.288589;10.913864;,\n      -19.311455;-23.941093;10.913857;,\n      -18.961754;-31.410896;10.913826;,\n      -19.581551;-29.288589;10.913834;,\n      -20.288857;28.833710;10.914047;,\n      -20.288857;19.833710;10.914009;,\n      -20.288857;10.833710;10.913979;,\n      -20.288857; 1.833672;10.913948;,\n      -20.288857;-16.166290;10.913879;,\n      -20.288857;-25.166290;10.913849;,\n      -21.701454;28.152809;10.914040;,\n      -21.701454;26.025406;10.914032;,\n      -21.701454;19.152809;10.914009;,\n      -21.701454;17.025410;10.914001;,\n      -21.701454;10.152809;10.913979;,\n      -21.701454; 8.025429;10.913971;,\n      -21.701454; 1.152779;10.913940;,\n      -21.701454;-0.974564;10.913940;,\n      -21.701454;-7.847214;10.913910;,\n      -21.701454;-9.974594;10.913902;,\n      -21.701454;-16.847191;10.913879;,\n      -21.701454;-18.974586;10.913872;,\n      -21.701454;-25.847191;10.913849;,\n      -21.701454;-27.974586;10.913841;,\n      -23.272057;28.152809;10.914040;,\n      -23.272057;26.025406;10.914032;,\n      -23.272057;19.152809;10.914009;,\n      -23.272057;17.025410;10.914001;,\n      -23.272057;10.152809;10.913979;,\n      -23.272057; 8.025429;10.913971;,\n      -23.272057; 1.152779;10.913940;,\n      -23.272057;-0.974564;10.913940;,\n      -23.272057;-7.847214;10.913910;,\n      -23.272057;-9.974594;10.913902;,\n      -23.272057;-16.847191;10.913879;,\n      -23.272057;-18.974586;10.913872;,\n      -23.272057;-25.847191;10.913849;,\n      -23.272057;-27.974586;10.913841;,\n      -25.391960;29.466812;10.914047;,\n      -24.684654;25.344509;10.914032;,\n      -25.391960;20.466808;10.914017;,\n      -24.684654;16.344505;10.914001;,\n      -25.391960;11.466808;10.913979;,\n      -25.202858; 6.948589;10.913963;,\n      -25.391960; 2.466789;10.913948;,\n      -24.684654;-1.655449;10.913933;,\n      -25.391960;-6.533211;10.913918;,\n      -24.684654;-10.655495;10.913902;,\n      -25.391960;-15.533195;10.913887;,\n      -24.684654;-19.655495;10.913872;,\n      -25.391960;-24.533195;10.913849;,\n      -24.684654;-28.655495;10.913834;,\n      -25.662056;24.119308;10.914024;,\n      -25.662056;15.119308;10.913994;,\n      -25.662056;-2.880722;10.913925;,\n      -25.662056;-11.880692;10.913895;,\n      -25.662056;-20.880692;10.913864;,\n      -25.662056;-29.880692;10.913834;,\n      -26.011757;31.589111;10.914055;,\n      -26.011757;22.589111;10.914017;,\n      -26.011757;13.589111;10.913986;,\n      -26.011757; 4.589111;10.913956;,\n      -26.011757;-4.410889;10.913925;,\n      -26.011757;-13.410889;10.913895;,\n      -26.011757;-22.410896;10.913864;,\n      -26.011757;-31.410896;10.913826;,\n      -27.961754;31.589111;10.914055;,\n      -28.311455;30.058907;10.914047;,\n      -27.961754;22.589111;10.914017;,\n      -28.581551;24.711411;10.914032;,\n      -28.311455;21.058910;10.914017;,\n      -27.961754;13.589111;10.913986;,\n      -28.581551;15.711411;10.913994;,\n      -28.311455;12.058907;10.913986;,\n      -27.961754; 4.589111;10.913956;,\n      -28.581551; 6.711430;10.913963;,\n      -28.311455; 3.058937;10.913956;,\n      -27.961754;-4.410889;10.913925;,\n      -28.581551;-2.288574;10.913933;,\n      -28.770653;-6.770370;10.913918;,\n      -27.961754;-13.410889;10.913895;,\n      -28.581551;-11.288589;10.913902;,\n      -28.311455;-14.941093;10.913887;,\n      -27.961754;-22.410896;10.913864;,\n      -28.581551;-20.288589;10.913864;,\n      -28.311455;-23.941093;10.913857;,\n      -27.961754;-31.410896;10.913826;,\n      -28.581551;-29.288589;10.913834;,\n      -29.288857;28.833710;10.914047;,\n      -29.288857;19.833710;10.914009;,\n      -29.288857;10.833710;10.913979;,\n      -29.288857; 1.833672;10.913948;,\n      -29.288857;-16.166290;10.913879;,\n      -29.288857;-25.166290;10.913849;,\n      -30.701454;28.152809;10.914040;,\n      -30.701454;26.025406;10.914032;,\n      -30.701454;19.152809;10.914009;,\n      -30.701454;17.025410;10.914001;,\n      -30.701454;10.152809;10.913979;,\n      -30.701454; 8.025429;10.913971;,\n      -30.701454; 1.152779;10.913940;,\n      -30.701454;-0.974564;10.913940;,\n      -30.701454;-7.847214;10.913910;,\n      -30.701454;-9.974594;10.913902;,\n      -30.701454;-16.847191;10.913879;,\n      -30.701454;-18.974586;10.913872;,\n      -30.701454;-25.847191;10.913849;,\n      -30.701454;-27.974586;10.913841;,\n      -32.272057;28.152809;10.914040;,\n      -32.272057;26.025406;10.914032;,\n      -32.272057;19.152809;10.914009;,\n      -32.272057;17.025410;10.914001;,\n      -32.272057;10.152809;10.913979;,\n      -32.272057; 8.025429;10.913971;,\n      -32.272057; 1.152779;10.913940;,\n      -32.272057;-0.974564;10.913940;,\n      -32.272057;-7.847214;10.913910;,\n      -32.272057;-9.974594;10.913902;,\n      -32.272057;-16.847191;10.913879;,\n      -32.272057;-18.974586;10.913872;,\n      -32.272057;-25.847191;10.913849;,\n      -32.272057;-27.974586;10.913841;,\n      -34.391960;29.466812;10.914047;,\n      -34.202858;24.948608;10.914032;,\n      -34.391960;20.466808;10.914017;,\n      -34.202858;15.948608;10.914001;,\n      -34.391960;11.466808;10.913979;,\n      -34.202858; 6.948589;10.913963;,\n      -34.391960; 2.466789;10.913948;,\n      -34.202858;-2.051399;10.913933;,\n      -34.391960;-6.533211;10.913918;,\n      -34.202858;-11.051392;10.913902;,\n      -34.391960;-15.533195;10.913887;,\n      -33.684654;-19.655495;10.913872;,\n      -34.391960;-24.533195;10.913849;,\n      -34.202858;-29.051392;10.913834;,\n      -34.662056;-20.880692;10.913864;,\n      -35.011757;31.589111;10.914055;,\n      -35.011757;22.589111;10.914017;,\n      -35.011757;13.589111;10.913986;,\n      -35.011757; 4.589111;10.913956;,\n      -35.011757;-4.410889;10.913925;,\n      -35.011757;-13.410889;10.913895;,\n      -35.011757;-22.410896;10.913864;,\n      -35.011757;-31.410896;10.913826;,\n      -36.961754;31.589111;10.914055;,\n      -37.770653;29.229607;10.914047;,\n      -36.961754;22.589111;10.914017;,\n      -37.581551;24.711411;10.914032;,\n      -37.770653;20.229610;10.914017;,\n      -36.961754;13.589111;10.913986;,\n      -37.581551;15.711411;10.913994;,\n      -37.770653;11.229607;10.913979;,\n      -36.961754; 4.589111;10.913956;,\n      -37.581551; 6.711430;10.913963;,\n      -37.770653; 2.229622;10.913948;,\n      -36.961754;-4.410889;10.913925;,\n      -37.581551;-2.288559;10.913933;,\n      -37.770653;-6.770370;10.913918;,\n      -36.961754;-13.410889;10.913895;,\n      -37.581551;-11.288589;10.913902;,\n      -37.770653;-15.770393;10.913879;,\n      -36.961754;-22.410896;10.913864;,\n      -37.581551;-20.288589;10.913864;,\n      -37.770653;-24.770393;10.913849;,\n      -36.961754;-31.410896;10.913826;,\n      -37.581551;-29.288589;10.913834;,\n      -39.701454;28.152809;10.914040;,\n      -39.701454;26.025406;10.914032;,\n      -39.701454;19.152809;10.914009;,\n      -39.701454;17.025410;10.914001;,\n      -39.701454;10.152809;10.913979;,\n      -39.701454; 8.025429;10.913971;,\n      -39.701454; 1.152779;10.913940;,\n      -39.701454;-0.974564;10.913940;,\n      -39.701454;-7.847214;10.913910;,\n      -39.701454;-9.974594;10.913902;,\n      -39.701454;-16.847191;10.913879;,\n      -39.701454;-18.974586;10.913872;,\n      -39.701454;-25.847191;10.913849;,\n      -39.701454;-27.974586;10.913841;,\n      -41.272057;28.152809;10.914040;,\n      -41.272057;26.025406;10.914032;,\n      -41.272057;19.152809;10.914009;,\n      -41.272057;17.025410;10.914001;,\n      -41.272057;10.152809;10.913979;,\n      -41.272057; 8.025429;10.913971;,\n      -41.272057; 1.152779;10.913940;,\n      -41.272057;-0.974564;10.913940;,\n      -41.272057;-7.847214;10.913910;,\n      -41.272057;-9.974594;10.913902;,\n      -41.272057;-16.847191;10.913879;,\n      -41.272057;-18.974586;10.913872;,\n      -41.272057;-25.847191;10.913849;,\n      -41.272057;-27.974586;10.913841;,\n      -43.391960;29.466812;10.914047;,\n      -43.202858;24.948608;10.914032;,\n      -43.391960;20.466808;10.914017;,\n      -43.202858;15.948608;10.914001;,\n      -43.391960;11.466808;10.913979;,\n      -43.202858; 6.948589;10.913963;,\n      -43.391960; 2.466782;10.913948;,\n      -43.202858;-2.051399;10.913933;,\n      -43.391960;-6.533211;10.913918;,\n      -43.202858;-11.051392;10.913902;,\n      -43.391960;-15.533195;10.913887;,\n      -43.202858;-20.051392;10.913864;,\n      -43.391960;-24.533195;10.913849;,\n      -43.202858;-29.051392;10.913834;,\n      -44.011757;31.589111;10.914055;,\n      -44.011757;22.589111;10.914017;,\n      -44.011757;13.589111;10.913986;,\n      -44.011757; 4.589111;10.913956;,\n      -44.011757;-4.410889;10.913925;,\n      -44.011757;-13.410889;10.913895;,\n      -44.011757;-22.410896;10.913864;,\n      -44.011757;-31.410896;10.913826;,\n      -45.961754;31.589111;10.914055;,\n      -46.770653;29.229607;10.914047;,\n      -45.961754;22.589111;10.914017;,\n      -46.581551;24.711411;10.914032;,\n      -46.770653;20.229610;10.914017;,\n      -45.961754;13.589111;10.913986;,\n      -46.581551;15.711411;10.913994;,\n      -46.770653;11.229607;10.913979;,\n      -45.961754; 4.589111;10.913956;,\n      -46.581551; 6.711430;10.913963;,\n      -46.770653; 2.229622;10.913948;,\n      -45.961754;-4.410889;10.913925;,\n      -46.581551;-2.288559;10.913933;,\n      -46.770653;-6.770370;10.913918;,\n      -45.961754;-13.410889;10.913895;,\n      -46.581551;-11.288589;10.913902;,\n      -46.770653;-15.770393;10.913879;,\n      -45.961754;-22.410896;10.913864;,\n      -46.581551;-20.288589;10.913864;,\n      -46.770653;-24.770393;10.913849;,\n      -45.961754;-31.410896;10.913826;,\n      -46.581551;-29.288589;10.913834;,\n      -48.701454;28.152809;10.914040;,\n      -48.701454;26.025406;10.914032;,\n      -48.701454;19.152809;10.914009;,\n      -48.701454;17.025410;10.914001;,\n      -48.701454;10.152809;10.913979;,\n      -48.701454; 8.025429;10.913971;,\n      -48.701454; 1.152779;10.913940;,\n      -48.701454;-0.974564;10.913940;,\n      -48.701454;-7.847214;10.913910;,\n      -48.701454;-9.974594;10.913902;,\n      -48.701454;-16.847191;10.913879;,\n      -48.701454;-18.974586;10.913872;,\n      -48.701454;-25.847191;10.913849;,\n      -48.701454;-27.974586;10.913841;,\n      -50.272057;28.152809;10.914040;,\n      -50.272057;26.025406;10.914032;,\n      -50.272057;19.152809;10.914009;,\n      -50.272057;17.025410;10.914001;,\n      -50.272057;10.152809;10.913979;,\n      -50.272057; 8.025429;10.913971;,\n      -50.272057; 1.152779;10.913940;,\n      -50.272057;-0.974564;10.913940;,\n      -50.272057;-7.847214;10.913910;,\n      -50.272057;-9.974594;10.913902;,\n      -50.272057;-16.847191;10.913879;,\n      -50.272057;-18.974586;10.913872;,\n      -50.272057;-25.847191;10.913849;,\n      -50.272057;-27.974586;10.913841;,\n      -52.391960;29.466812;10.914047;,\n      -52.202858;24.948608;10.914032;,\n      -52.391960;20.466808;10.914017;,\n      -52.202858;15.948608;10.914001;,\n      -52.391960;11.466808;10.913979;,\n      -52.202858; 6.948589;10.913963;,\n      -52.391960; 2.466782;10.913948;,\n      -52.202858;-2.051399;10.913933;,\n      -52.391960;-6.533211;10.913918;,\n      -52.202858;-11.051392;10.913902;,\n      -52.391960;-15.533195;10.913887;,\n      -52.202858;-20.051392;10.913864;,\n      -52.391960;-24.533195;10.913849;,\n      -52.202858;-29.051392;10.913834;,\n      -53.011757;31.589111;10.914055;,\n      -53.011757;22.589111;10.914017;,\n      -53.011757;13.589111;10.913986;,\n      -53.011757; 4.589111;10.913956;,\n      -53.011757;-4.410889;10.913925;,\n      -53.011757;-13.410889;10.913895;,\n      -53.011757;-22.410896;10.913864;,\n      -53.011757;-31.410896;10.913826;,\n      -53.986763;36.089108;10.914070;,\n      -52.202858;33.948608;10.914062;,\n      -50.272057;35.025410;10.914062;,\n      -48.701454;35.025410;10.914062;,\n      -46.581551;33.711407;10.914062;,\n      -43.202858;33.948608;10.914062;,\n      -41.272057;35.025410;10.914062;,\n      -39.701454;35.025410;10.914062;,\n      -37.581551;33.711407;10.914062;,\n      -34.202858;33.948608;10.914062;,\n      -32.272057;35.025410;10.914062;,\n      -30.701454;35.025410;10.914062;,\n      -28.581551;33.711407;10.914062;,\n      -25.202858;33.948608;10.914062;,\n      -23.272057;35.025410;10.914062;,\n      -21.701454;35.025410;10.914062;,\n      -19.581551;33.711407;10.914062;,\n      -16.202858;33.948608;10.914062;,\n      -14.272057;35.025410;10.914062;,\n      -12.701454;35.025410;10.914062;,\n      -10.581566;33.711407;10.914062;,\n      -7.202843;33.948608;10.914062;,\n      -5.272026;35.025410;10.914062;,\n      -3.701485;35.025410;10.914062;,\n      -1.581566;33.711407;10.914062;,\n       1.797142;33.948608;10.914062;,\n       3.727970;35.025410;10.914062;,\n       5.298500;35.025410;10.914062;,\n       7.418423;33.711407;10.914062;,\n      10.337940;33.119308;10.914062;,\n      11.315342;34.344509;10.914062;,\n      12.727940;35.025410;10.914062;,\n      14.298542;35.025410;10.914062;,\n      16.418442;33.711407;10.914062;,\n      19.797138;33.948608;10.914062;,\n      21.727940;35.025410;10.914062;,\n      23.298542;35.025410;10.914062;,\n      25.418442;33.711407;10.914062;,\n      28.797142;33.948608;10.914062;,\n      30.727942;35.025410;10.914062;,\n      32.298538;35.025410;10.914062;,\n      34.418442;33.711407;10.914062;,\n      37.797138;33.948608;10.914062;,\n      39.727943;35.025410;10.914062;,\n      41.298538;35.025410;10.914062;,\n      43.418442;33.711407;10.914062;,\n      46.797142;33.948608;10.914062;,\n      48.727943;35.025410;10.914062;,\n      50.298538;35.025410;10.914062;,\n      54.013241;-35.910889;10.913811;,\n      54.013241;36.089108;10.914070;,\n      52.418442;33.711407;10.914062;,\n      52.229343;-33.770393;10.913818;,\n      50.298538;-34.847191;10.913818;,\n      48.727943;-34.847191;10.913818;,\n      46.608040;-33.533188;10.913818;,\n      43.229343;-33.770393;10.913818;,\n      41.298538;-34.847191;10.913818;,\n      39.727943;-34.847191;10.913818;,\n      37.608040;-33.533188;10.913818;,\n      34.229340;-33.770393;10.913818;,\n      32.298538;-34.847191;10.913818;,\n      30.727942;-34.847191;10.913818;,\n      28.608040;-33.533188;10.913818;,\n      25.688541;-32.941093;10.913818;,\n      24.711140;-34.166290;10.913818;,\n      23.298542;-34.847191;10.913818;,\n      21.727940;-34.847191;10.913818;,\n      19.608040;-33.533188;10.913818;,\n      16.688541;-32.941093;10.913818;,\n      15.711140;-34.166290;10.913818;,\n      14.298542;-34.847191;10.913818;,\n      12.727940;-34.847191;10.913818;,\n      10.608040;-33.533188;10.913818;,\n       7.688519;-32.941093;10.913818;,\n       6.711102;-34.166290;10.913818;,\n       5.298500;-34.847191;10.913818;,\n       3.727970;-34.847191;10.913818;,\n       1.608051;-33.533188;10.913818;,\n      -1.311470;-32.941093;10.913818;,\n      -2.288887;-34.166290;10.913818;,\n      -3.701485;-34.847191;10.913818;,\n      -5.272026;-34.847191;10.913818;,\n      -7.391945;-33.533188;10.913818;,\n      -10.311455;-32.941093;10.913818;,\n      -11.288857;-34.166290;10.913818;,\n      -12.701454;-34.847191;10.913818;,\n      -14.272057;-34.847191;10.913818;,\n      -16.391960;-33.533188;10.913818;,\n      -19.311455;-32.941093;10.913818;,\n      -20.288857;-34.166290;10.913818;,\n      -21.701454;-34.847191;10.913818;,\n      -23.272057;-34.847191;10.913818;,\n      -25.391960;-33.533188;10.913818;,\n      -28.311455;-32.941093;10.913818;,\n      -29.288857;-34.166290;10.913818;,\n      -30.701454;-34.847191;10.913818;,\n      -32.272057;-34.847191;10.913818;,\n      -34.391960;-33.533188;10.913818;,\n      -37.770653;-33.770393;10.913818;,\n      -39.701454;-34.847191;10.913818;,\n      -41.272057;-34.847191;10.913818;,\n      -43.391960;-33.533188;10.913818;,\n      -46.770653;-33.770393;10.913818;,\n      -48.701454;-34.847191;10.913818;,\n      -50.272057;-34.847191;10.913818;,\n      -53.986763;-35.910889;10.913811;,\n      -52.391960;-33.533188;10.913818;,\n      -60.986763;-39.210869; 5.913803;,\n      -60.986763;39.389126; 5.914078;,\n      -60.986763;-39.210846;-1.586197;,\n      -60.986763;39.389153;-1.585922;,\n      61.013241;-39.210869; 5.913803;,\n      61.013241;-39.210846;-1.586197;,\n      61.013241;39.389126; 5.914078;,\n      61.013241;39.389153;-1.585922;,\n      -57.436760;32.039154;-1.585945;,\n      -57.436760;-31.860847;-1.586174;,\n      -52.436760;-36.860847;-1.586189;,\n      52.463242;-36.860847;-1.586189;,\n      57.463242;-31.860847;-1.586174;,\n      57.463242;32.039154;-1.585945;,\n      52.463242;37.039154;-1.585930;,\n      -52.436760;37.039154;-1.585930;,\n      -53.986763;-35.910873; 5.913811;,\n      -53.986763;36.089127; 5.914070;,\n      54.013241;36.089127; 5.914070;,\n      54.013241;-35.910873; 5.913811;;\n      4656;\n      3;2,1,0;,\n      3;1,2,3;,\n      3;5,4,2;,\n      3;4,5,6;,\n      3;8,7,5;,\n      3;7,8,9;,\n      3;11,10,8;,\n      3;10,11,12;,\n      3;14,13,11;,\n      3;13,14,15;,\n      3;17,16,14;,\n      3;16,17,18;,\n      3;20,19,17;,\n      3;19,20,21;,\n      3;23,22,0;,\n      3;25,24,0;,\n      3;22,25,0;,\n      3;2,0,24;,\n      3;5,2,24;,\n      3;8,5,24;,\n      3;11,8,24;,\n      3;14,11,24;,\n      3;17,14,24;,\n      3;20,17,24;,\n      3;26,20,24;,\n      3;26,24,27;,\n      3;3,28,1;,\n      3;28,3,29;,\n      3;6,30,4;,\n      3;30,6,31;,\n      3;9,32,7;,\n      3;32,9,33;,\n      3;12,34,10;,\n      3;34,12,35;,\n      3;15,36,13;,\n      3;36,15,37;,\n      3;18,38,16;,\n      3;38,18,39;,\n      3;21,40,19;,\n      3;40,21,41;,\n      3;29,42,28;,\n      3;42,29,43;,\n      3;31,44,30;,\n      3;44,31,45;,\n      3;33,46,32;,\n      3;46,33,47;,\n      3;35,48,34;,\n      3;48,35,49;,\n      3;37,50,36;,\n      3;50,37,51;,\n      3;39,52,38;,\n      3;52,39,53;,\n      3;41,54,40;,\n      3;54,41,55;,\n      3;43,56,42;,\n      3;56,43,57;,\n      3;45,58,44;,\n      3;58,45,59;,\n      3;47,60,46;,\n      3;60,47,61;,\n      3;49,62,48;,\n      3;62,49,63;,\n      3;51,64,50;,\n      3;64,51,65;,\n      3;53,66,52;,\n      3;66,53,67;,\n      3;55,68,54;,\n      3;68,55,69;,\n      3;57,70,56;,\n      3;70,57,71;,\n      3;59,71,58;,\n      3;71,59,72;,\n      3;61,72,60;,\n      3;72,61,73;,\n      3;63,73,62;,\n      3;73,63,74;,\n      3;65,74,64;,\n      3;74,65,75;,\n      3;67,75,66;,\n      3;75,67,76;,\n      3;69,76,68;,\n      3;76,69,77;,\n      3;80,79,78;,\n      3;79,80,81;,\n      3;83,82,80;,\n      3;82,83,84;,\n      3;86,85,83;,\n      3;85,86,87;,\n      3;89,88,86;,\n      3;88,89,90;,\n      3;92,91,89;,\n      3;91,92,93;,\n      3;95,94,92;,\n      3;94,95,96;,\n      3;98,97,95;,\n      3;97,98,99;,\n      3;81,100,79;,\n      3;100,81,101;,\n      3;84,102,82;,\n      3;102,84,103;,\n      3;87,104,85;,\n      3;104,87,105;,\n      3;90,106,88;,\n      3;106,90,107;,\n      3;93,108,91;,\n      3;108,93,109;,\n      3;96,110,94;,\n      3;110,96,111;,\n      3;99,112,97;,\n      3;112,99,113;,\n      3;101,114,100;,\n      3;114,101,115;,\n      3;103,116,102;,\n      3;116,103,117;,\n      3;105,118,104;,\n      3;118,105,119;,\n      3;107,120,106;,\n      3;120,107,121;,\n      3;109,122,108;,\n      3;122,109,123;,\n      3;111,124,110;,\n      3;124,111,125;,\n      3;113,126,112;,\n      3;126,113,127;,\n      3;115,128,114;,\n      3;128,115,129;,\n      3;117,130,116;,\n      3;130,117,131;,\n      3;119,132,118;,\n      3;132,119,133;,\n      3;121,134,120;,\n      3;134,121,135;,\n      3;123,136,122;,\n      3;136,123,137;,\n      3;125,138,124;,\n      3;138,125,139;,\n      3;127,140,126;,\n      3;140,127,141;,\n      3;129,142,128;,\n      3;142,129,143;,\n      3;131,143,130;,\n      3;143,131,144;,\n      3;133,144,132;,\n      3;144,133,145;,\n      3;135,145,134;,\n      3;145,135,146;,\n      3;137,146,136;,\n      3;146,137,147;,\n      3;139,147,138;,\n      3;147,139,148;,\n      3;141,148,140;,\n      3;148,141,149;,\n      3;152,151,150;,\n      3;151,152,153;,\n      3;155,154,152;,\n      3;154,155,156;,\n      3;158,157,155;,\n      3;157,158,159;,\n      3;161,160,158;,\n      3;160,161,162;,\n      3;164,163,161;,\n      3;163,164,165;,\n      3;167,166,164;,\n      3;166,167,168;,\n      3;170,169,167;,\n      3;169,170,171;,\n      3;153,172,151;,\n      3;172,153,173;,\n      3;156,174,154;,\n      3;174,156,175;,\n      3;159,176,157;,\n      3;176,159,177;,\n      3;162,178,160;,\n      3;178,162,179;,\n      3;165,180,163;,\n      3;180,165,181;,\n      3;168,182,166;,\n      3;182,168,183;,\n      3;171,184,169;,\n      3;184,171,185;,\n      3;173,186,172;,\n      3;186,173,187;,\n      3;175,188,174;,\n      3;188,175,189;,\n      3;177,190,176;,\n      3;190,177,191;,\n      3;179,192,178;,\n      3;192,179,193;,\n      3;181,194,180;,\n      3;194,181,195;,\n      3;183,196,182;,\n      3;196,183,197;,\n      3;185,198,184;,\n      3;198,185,199;,\n      3;187,200,186;,\n      3;200,187,201;,\n      3;189,202,188;,\n      3;202,189,203;,\n      3;191,204,190;,\n      3;204,191,205;,\n      3;193,206,192;,\n      3;206,193,207;,\n      3;195,208,194;,\n      3;208,195,209;,\n      3;197,210,196;,\n      3;210,197,211;,\n      3;199,212,198;,\n      3;212,199,213;,\n      3;206,207,214;,\n      3;208,209,215;,\n      3;210,211,216;,\n      3;212,213,217;,\n      3;201,218,200;,\n      3;218,201,219;,\n      3;203,219,202;,\n      3;219,203,220;,\n      3;205,220,204;,\n      3;220,205,221;,\n      3;214,221,206;,\n      3;221,214,222;,\n      3;215,222,208;,\n      3;222,215,223;,\n      3;216,223,210;,\n      3;223,216,224;,\n      3;217,224,212;,\n      3;224,217,225;,\n      3;228,227,226;,\n      3;227,228,229;,\n      3;231,230,228;,\n      3;230,231,232;,\n      3;234,233,231;,\n      3;233,234,235;,\n      3;237,236,234;,\n      3;236,237,238;,\n      3;240,239,237;,\n      3;239,240,241;,\n      3;243,242,240;,\n      3;242,243,244;,\n      3;246,245,243;,\n      3;245,246,247;,\n      3;229,248,227;,\n      3;232,249,230;,\n      3;235,250,233;,\n      3;238,251,236;,\n      3;229,252,248;,\n      3;252,229,253;,\n      3;232,254,249;,\n      3;254,232,255;,\n      3;235,256,250;,\n      3;256,235,257;,\n      3;238,258,251;,\n      3;258,238,259;,\n      3;241,260,239;,\n      3;260,241,261;,\n      3;244,262,242;,\n      3;262,244,263;,\n      3;247,264,245;,\n      3;264,247,265;,\n      3;253,266,252;,\n      3;266,253,267;,\n      3;255,268,254;,\n      3;268,255,269;,\n      3;257,270,256;,\n      3;270,257,271;,\n      3;259,272,258;,\n      3;272,259,273;,\n      3;261,274,260;,\n      3;274,261,275;,\n      3;263,276,262;,\n      3;276,263,277;,\n      3;265,278,264;,\n      3;278,265,279;,\n      3;267,280,266;,\n      3;280,267,281;,\n      3;269,282,268;,\n      3;282,269,283;,\n      3;271,284,270;,\n      3;284,271,285;,\n      3;273,286,272;,\n      3;286,273,287;,\n      3;275,288,274;,\n      3;288,275,289;,\n      3;277,290,276;,\n      3;290,277,291;,\n      3;279,292,278;,\n      3;292,279,293;,\n      3;286,287,294;,\n      3;288,289,295;,\n      3;290,291,296;,\n      3;292,293,297;,\n      3;281,298,280;,\n      3;298,281,299;,\n      3;283,299,282;,\n      3;299,283,300;,\n      3;285,300,284;,\n      3;300,285,301;,\n      3;294,301,286;,\n      3;301,294,302;,\n      3;295,302,288;,\n      3;302,295,303;,\n      3;296,303,290;,\n      3;303,296,304;,\n      3;297,304,292;,\n      3;304,297,305;,\n      3;308,307,306;,\n      3;307,308,309;,\n      3;311,310,308;,\n      3;310,311,312;,\n      3;314,313,311;,\n      3;313,314,315;,\n      3;317,316,314;,\n      3;316,317,318;,\n      3;320,319,317;,\n      3;319,320,321;,\n      3;323,322,320;,\n      3;322,323,324;,\n      3;326,325,323;,\n      3;325,326,327;,\n      3;309,328,307;,\n      3;312,329,310;,\n      3;315,330,313;,\n      3;318,331,316;,\n      3;321,332,319;,\n      3;324,333,322;,\n      3;309,334,328;,\n      3;334,309,335;,\n      3;312,336,329;,\n      3;336,312,337;,\n      3;315,338,330;,\n      3;338,315,339;,\n      3;318,340,331;,\n      3;340,318,341;,\n      3;321,342,332;,\n      3;342,321,343;,\n      3;324,344,333;,\n      3;344,324,345;,\n      3;327,346,325;,\n      3;346,327,347;,\n      3;335,348,334;,\n      3;348,335,349;,\n      3;337,350,336;,\n      3;350,337,351;,\n      3;339,352,338;,\n      3;352,339,353;,\n      3;341,354,340;,\n      3;354,341,355;,\n      3;343,356,342;,\n      3;356,343,357;,\n      3;345,358,344;,\n      3;358,345,359;,\n      3;347,360,346;,\n      3;360,347,361;,\n      3;349,362,348;,\n      3;362,349,363;,\n      3;351,364,350;,\n      3;364,351,365;,\n      3;353,366,352;,\n      3;366,353,367;,\n      3;355,368,354;,\n      3;368,355,369;,\n      3;357,370,356;,\n      3;370,357,371;,\n      3;359,372,358;,\n      3;372,359,373;,\n      3;361,374,360;,\n      3;374,361,375;,\n      3;362,363,376;,\n      3;364,365,377;,\n      3;366,367,378;,\n      3;368,369,379;,\n      3;370,371,380;,\n      3;372,373,381;,\n      3;374,375,382;,\n      3;376,383,362;,\n      3;383,376,384;,\n      3;377,384,364;,\n      3;384,377,385;,\n      3;378,385,366;,\n      3;385,378,386;,\n      3;379,386,368;,\n      3;386,379,387;,\n      3;380,387,370;,\n      3;387,380,388;,\n      3;381,388,372;,\n      3;388,381,389;,\n      3;382,389,374;,\n      3;389,382,390;,\n      3;393,392,391;,\n      3;392,393,394;,\n      3;396,395,393;,\n      3;395,396,397;,\n      3;399,398,396;,\n      3;398,399,400;,\n      3;402,401,399;,\n      3;401,402,403;,\n      3;405,404,402;,\n      3;404,405,406;,\n      3;408,407,405;,\n      3;407,408,409;,\n      3;411,410,408;,\n      3;410,411,412;,\n      3;394,413,392;,\n      3;397,414,395;,\n      3;400,415,398;,\n      3;403,416,401;,\n      3;406,417,404;,\n      3;409,418,407;,\n      3;412,419,410;,\n      3;394,420,413;,\n      3;420,394,421;,\n      3;397,422,414;,\n      3;422,397,423;,\n      3;400,424,415;,\n      3;424,400,425;,\n      3;403,426,416;,\n      3;426,403,427;,\n      3;406,428,417;,\n      3;428,406,429;,\n      3;409,430,418;,\n      3;430,409,431;,\n      3;412,432,419;,\n      3;432,412,433;,\n      3;421,434,420;,\n      3;434,421,435;,\n      3;423,436,422;,\n      3;436,423,437;,\n      3;425,438,424;,\n      3;438,425,439;,\n      3;427,440,426;,\n      3;440,427,441;,\n      3;429,442,428;,\n      3;442,429,443;,\n      3;431,444,430;,\n      3;444,431,445;,\n      3;433,446,432;,\n      3;446,433,447;,\n      3;435,448,434;,\n      3;448,435,449;,\n      3;437,450,436;,\n      3;450,437,451;,\n      3;439,452,438;,\n      3;452,439,453;,\n      3;441,454,440;,\n      3;454,441,455;,\n      3;443,456,442;,\n      3;456,443,457;,\n      3;445,458,444;,\n      3;458,445,459;,\n      3;447,460,446;,\n      3;460,447,461;,\n      3;448,449,462;,\n      3;450,451,463;,\n      3;452,453,464;,\n      3;454,455,465;,\n      3;456,457,466;,\n      3;458,459,467;,\n      3;460,461,468;,\n      3;462,469,448;,\n      3;469,462,470;,\n      3;463,470,450;,\n      3;470,463,471;,\n      3;464,471,452;,\n      3;471,464,472;,\n      3;465,472,454;,\n      3;472,465,473;,\n      3;466,473,456;,\n      3;473,466,474;,\n      3;467,474,458;,\n      3;474,467,475;,\n      3;468,475,460;,\n      3;475,468,476;,\n      3;479,478,477;,\n      3;478,479,480;,\n      3;482,481,479;,\n      3;481,482,483;,\n      3;485,484,482;,\n      3;484,485,486;,\n      3;488,487,485;,\n      3;487,488,489;,\n      3;491,490,488;,\n      3;490,491,492;,\n      3;494,493,491;,\n      3;493,494,495;,\n      3;497,496,494;,\n      3;496,497,498;,\n      3;480,499,478;,\n      3;483,500,481;,\n      3;486,501,484;,\n      3;489,502,487;,\n      3;492,503,490;,\n      3;495,504,493;,\n      3;498,505,496;,\n      3;480,506,499;,\n      3;506,480,507;,\n      3;483,508,500;,\n      3;508,483,509;,\n      3;486,510,501;,\n      3;510,486,511;,\n      3;489,512,502;,\n      3;512,489,513;,\n      3;492,514,503;,\n      3;514,492,515;,\n      3;495,516,504;,\n      3;516,495,517;,\n      3;498,518,505;,\n      3;518,498,519;,\n      3;507,520,506;,\n      3;520,507,521;,\n      3;509,522,508;,\n      3;522,509,523;,\n      3;511,524,510;,\n      3;524,511,525;,\n      3;513,526,512;,\n      3;526,513,527;,\n      3;515,528,514;,\n      3;528,515,529;,\n      3;517,530,516;,\n      3;530,517,531;,\n      3;519,532,518;,\n      3;532,519,533;,\n      3;521,534,520;,\n      3;534,521,535;,\n      3;523,536,522;,\n      3;536,523,537;,\n      3;525,538,524;,\n      3;538,525,539;,\n      3;527,540,526;,\n      3;540,527,541;,\n      3;529,542,528;,\n      3;542,529,543;,\n      3;531,544,530;,\n      3;544,531,545;,\n      3;533,546,532;,\n      3;546,533,547;,\n      3;534,535,548;,\n      3;536,537,549;,\n      3;538,539,550;,\n      3;540,541,551;,\n      3;542,543,552;,\n      3;544,545,553;,\n      3;546,547,554;,\n      3;548,555,534;,\n      3;555,548,556;,\n      3;549,556,536;,\n      3;556,549,557;,\n      3;550,557,538;,\n      3;557,550,558;,\n      3;551,558,540;,\n      3;558,551,559;,\n      3;552,559,542;,\n      3;559,552,560;,\n      3;553,560,544;,\n      3;560,553,561;,\n      3;554,561,546;,\n      3;561,554,562;,\n      3;565,564,563;,\n      3;564,565,566;,\n      3;568,567,565;,\n      3;567,568,569;,\n      3;571,570,568;,\n      3;570,571,572;,\n      3;574,573,571;,\n      3;573,574,575;,\n      3;577,576,574;,\n      3;576,577,578;,\n      3;580,579,577;,\n      3;579,580,581;,\n      3;583,582,580;,\n      3;582,583,584;,\n      3;566,585,564;,\n      3;569,586,567;,\n      3;572,587,570;,\n      3;575,588,573;,\n      3;578,589,576;,\n      3;581,590,579;,\n      3;584,591,582;,\n      3;566,592,585;,\n      3;592,566,593;,\n      3;569,594,586;,\n      3;594,569,595;,\n      3;572,596,587;,\n      3;596,572,597;,\n      3;575,598,588;,\n      3;598,575,599;,\n      3;578,600,589;,\n      3;600,578,601;,\n      3;581,602,590;,\n      3;602,581,603;,\n      3;584,604,591;,\n      3;604,584,605;,\n      3;593,606,592;,\n      3;606,593,607;,\n      3;595,608,594;,\n      3;608,595,609;,\n      3;597,610,596;,\n      3;610,597,611;,\n      3;599,612,598;,\n      3;612,599,613;,\n      3;601,614,600;,\n      3;614,601,615;,\n      3;603,616,602;,\n      3;616,603,617;,\n      3;605,618,604;,\n      3;618,605,619;,\n      3;607,620,606;,\n      3;620,607,621;,\n      3;609,622,608;,\n      3;622,609,623;,\n      3;611,624,610;,\n      3;624,611,625;,\n      3;613,626,612;,\n      3;626,613,627;,\n      3;615,628,614;,\n      3;628,615,629;,\n      3;617,630,616;,\n      3;630,617,631;,\n      3;619,632,618;,\n      3;632,619,633;,\n      3;620,621,634;,\n      3;622,623,635;,\n      3;624,625,636;,\n      3;626,627,637;,\n      3;628,629,638;,\n      3;630,631,639;,\n      3;632,633,640;,\n      3;634,641,620;,\n      3;641,634,642;,\n      3;635,642,622;,\n      3;642,635,643;,\n      3;636,643,624;,\n      3;643,636,644;,\n      3;637,644,626;,\n      3;644,637,645;,\n      3;638,645,628;,\n      3;645,638,646;,\n      3;639,646,630;,\n      3;646,639,647;,\n      3;640,647,632;,\n      3;647,640,648;,\n      3;651,650,649;,\n      3;650,651,652;,\n      3;654,653,651;,\n      3;653,654,655;,\n      3;657,656,654;,\n      3;656,657,658;,\n      3;660,659,657;,\n      3;659,660,661;,\n      3;663,662,660;,\n      3;662,663,664;,\n      3;666,665,663;,\n      3;665,666,667;,\n      3;669,668,666;,\n      3;668,669,670;,\n      3;652,671,650;,\n      3;655,672,653;,\n      3;658,673,656;,\n      3;661,674,659;,\n      3;652,675,671;,\n      3;675,652,676;,\n      3;655,677,672;,\n      3;677,655,678;,\n      3;658,679,673;,\n      3;679,658,680;,\n      3;661,681,674;,\n      3;681,661,682;,\n      3;664,683,662;,\n      3;683,664,684;,\n      3;667,685,665;,\n      3;685,667,686;,\n      3;670,687,668;,\n      3;687,670,688;,\n      3;676,689,675;,\n      3;689,676,690;,\n      3;678,691,677;,\n      3;691,678,692;,\n      3;680,693,679;,\n      3;693,680,694;,\n      3;682,695,681;,\n      3;695,682,696;,\n      3;684,697,683;,\n      3;697,684,698;,\n      3;686,699,685;,\n      3;699,686,700;,\n      3;688,701,687;,\n      3;701,688,702;,\n      3;690,703,689;,\n      3;703,690,704;,\n      3;692,705,691;,\n      3;705,692,706;,\n      3;694,707,693;,\n      3;707,694,708;,\n      3;696,709,695;,\n      3;709,696,710;,\n      3;698,711,697;,\n      3;711,698,712;,\n      3;700,713,699;,\n      3;713,700,714;,\n      3;702,715,701;,\n      3;715,702,716;,\n      3;709,710,717;,\n      3;711,712,718;,\n      3;713,714,719;,\n      3;715,716,720;,\n      3;704,721,703;,\n      3;721,704,722;,\n      3;706,722,705;,\n      3;722,706,723;,\n      3;708,723,707;,\n      3;723,708,724;,\n      3;717,724,709;,\n      3;724,717,725;,\n      3;718,725,711;,\n      3;725,718,726;,\n      3;719,726,713;,\n      3;726,719,727;,\n      3;720,727,715;,\n      3;727,720,728;,\n      3;731,730,729;,\n      3;730,731,732;,\n      3;734,733,731;,\n      3;733,734,735;,\n      3;737,736,734;,\n      3;736,737,738;,\n      3;740,739,737;,\n      3;739,740,741;,\n      3;743,742,740;,\n      3;742,743,744;,\n      3;746,745,743;,\n      3;745,746,747;,\n      3;749,748,746;,\n      3;748,749,750;,\n      3;732,751,730;,\n      3;735,752,733;,\n      3;738,753,736;,\n      3;741,754,739;,\n      3;732,755,751;,\n      3;755,732,756;,\n      3;735,757,752;,\n      3;757,735,758;,\n      3;738,759,753;,\n      3;759,738,760;,\n      3;741,761,754;,\n      3;761,741,762;,\n      3;744,763,742;,\n      3;763,744,764;,\n      3;747,765,745;,\n      3;765,747,766;,\n      3;750,767,748;,\n      3;767,750,768;,\n      3;756,769,755;,\n      3;769,756,770;,\n      3;758,771,757;,\n      3;771,758,772;,\n      3;760,773,759;,\n      3;773,760,774;,\n      3;762,775,761;,\n      3;775,762,776;,\n      3;764,777,763;,\n      3;777,764,778;,\n      3;766,779,765;,\n      3;779,766,780;,\n      3;768,781,767;,\n      3;781,768,782;,\n      3;770,783,769;,\n      3;783,770,784;,\n      3;772,785,771;,\n      3;785,772,786;,\n      3;774,787,773;,\n      3;787,774,788;,\n      3;776,789,775;,\n      3;789,776,790;,\n      3;778,791,777;,\n      3;791,778,792;,\n      3;780,793,779;,\n      3;793,780,794;,\n      3;782,795,781;,\n      3;795,782,796;,\n      3;784,797,783;,\n      3;797,784,798;,\n      3;786,798,785;,\n      3;798,786,799;,\n      3;788,799,787;,\n      3;799,788,800;,\n      3;790,800,789;,\n      3;800,790,801;,\n      3;792,801,791;,\n      3;801,792,802;,\n      3;794,802,793;,\n      3;802,794,803;,\n      3;796,803,795;,\n      3;803,796,804;,\n      3;807,806,805;,\n      3;806,807,808;,\n      3;810,809,807;,\n      3;809,810,811;,\n      3;813,812,810;,\n      3;812,813,814;,\n      3;816,815,813;,\n      3;815,816,817;,\n      3;819,818,816;,\n      3;818,819,820;,\n      3;822,821,819;,\n      3;821,822,823;,\n      3;825,824,822;,\n      3;824,825,826;,\n      3;808,827,806;,\n      3;827,808,828;,\n      3;811,829,809;,\n      3;829,811,830;,\n      3;814,831,812;,\n      3;831,814,832;,\n      3;817,833,815;,\n      3;833,817,834;,\n      3;820,835,818;,\n      3;835,820,836;,\n      3;823,837,821;,\n      3;837,823,838;,\n      3;826,839,824;,\n      3;839,826,840;,\n      3;828,841,827;,\n      3;841,828,842;,\n      3;830,843,829;,\n      3;843,830,844;,\n      3;832,845,831;,\n      3;845,832,846;,\n      3;834,847,833;,\n      3;847,834,848;,\n      3;836,849,835;,\n      3;849,836,850;,\n      3;838,851,837;,\n      3;851,838,852;,\n      3;840,853,839;,\n      3;853,840,854;,\n      3;842,855,841;,\n      3;855,842,856;,\n      3;844,857,843;,\n      3;857,844,858;,\n      3;846,859,845;,\n      3;859,846,860;,\n      3;848,861,847;,\n      3;861,848,862;,\n      3;850,863,849;,\n      3;863,850,864;,\n      3;852,865,851;,\n      3;865,852,866;,\n      3;854,867,853;,\n      3;867,854,868;,\n      3;856,869,855;,\n      3;869,856,870;,\n      3;858,870,857;,\n      3;870,858,871;,\n      3;860,871,859;,\n      3;871,860,872;,\n      3;862,872,861;,\n      3;872,862,873;,\n      3;864,873,863;,\n      3;873,864,874;,\n      3;866,874,865;,\n      3;874,866,875;,\n      3;868,875,867;,\n      3;875,868,876;,\n      3;879,878,877;,\n      3;878,879,880;,\n      3;882,881,879;,\n      3;881,882,883;,\n      3;885,884,882;,\n      3;884,885,886;,\n      3;888,887,885;,\n      3;887,888,889;,\n      3;891,890,888;,\n      3;890,891,892;,\n      3;894,893,891;,\n      3;893,894,895;,\n      3;897,896,894;,\n      3;896,897,898;,\n      3;880,899,878;,\n      3;899,880,900;,\n      3;883,901,881;,\n      3;901,883,902;,\n      3;886,903,884;,\n      3;903,886,904;,\n      3;889,905,887;,\n      3;905,889,906;,\n      3;892,907,890;,\n      3;907,892,908;,\n      3;895,909,893;,\n      3;909,895,910;,\n      3;898,911,896;,\n      3;911,898,912;,\n      3;900,913,899;,\n      3;913,900,914;,\n      3;902,915,901;,\n      3;915,902,916;,\n      3;904,917,903;,\n      3;917,904,918;,\n      3;906,919,905;,\n      3;919,906,920;,\n      3;908,921,907;,\n      3;921,908,922;,\n      3;910,923,909;,\n      3;923,910,924;,\n      3;912,925,911;,\n      3;925,912,926;,\n      3;914,927,913;,\n      3;927,914,928;,\n      3;916,929,915;,\n      3;929,916,930;,\n      3;918,931,917;,\n      3;931,918,932;,\n      3;920,933,919;,\n      3;933,920,934;,\n      3;922,935,921;,\n      3;935,922,936;,\n      3;924,937,923;,\n      3;937,924,938;,\n      3;926,939,925;,\n      3;939,926,940;,\n      3;943,942,941;,\n      3;944,943,941;,\n      3;945,944,941;,\n      3;875,876,877;,\n      3;874,875,877;,\n      3;873,874,877;,\n      3;872,873,877;,\n      3;871,872,877;,\n      3;870,871,877;,\n      3;869,870,877;,\n      3;869,877,946;,\n      3;869,946,945;,\n      3;947,869,945;,\n      3;947,945,941;,\n      3;948,947,941;,\n      3;949,948,941;,\n      3;803,804,805;,\n      3;802,803,805;,\n      3;801,802,805;,\n      3;800,801,805;,\n      3;799,800,805;,\n      3;798,799,805;,\n      3;797,798,805;,\n      3;797,805,950;,\n      3;951,797,950;,\n      3;951,950,949;,\n      3;952,951,949;,\n      3;952,949,941;,\n      3;953,952,941;,\n      3;954,953,941;,\n      3;727,728,729;,\n      3;726,727,729;,\n      3;725,726,729;,\n      3;724,725,729;,\n      3;723,724,729;,\n      3;722,723,729;,\n      3;721,722,729;,\n      3;721,729,955;,\n      3;956,721,955;,\n      3;956,955,954;,\n      3;957,956,954;,\n      3;957,954,941;,\n      3;958,957,941;,\n      3;647,648,649;,\n      3;646,647,649;,\n      3;645,646,649;,\n      3;644,645,649;,\n      3;643,644,649;,\n      3;642,643,649;,\n      3;641,642,649;,\n      3;641,649,959;,\n      3;960,641,959;,\n      3;960,959,958;,\n      3;961,960,958;,\n      3;961,958,941;,\n      3;962,961,941;,\n      3;561,562,563;,\n      3;560,561,563;,\n      3;559,560,563;,\n      3;558,559,563;,\n      3;557,558,563;,\n      3;556,557,563;,\n      3;555,556,563;,\n      3;555,563,963;,\n      3;964,555,963;,\n      3;964,963,962;,\n      3;965,964,962;,\n      3;965,962,941;,\n      3;966,965,941;,\n      3;475,476,477;,\n      3;474,475,477;,\n      3;473,474,477;,\n      3;472,473,477;,\n      3;471,472,477;,\n      3;470,471,477;,\n      3;469,470,477;,\n      3;469,477,967;,\n      3;968,469,967;,\n      3;968,967,966;,\n      3;969,968,966;,\n      3;969,966,941;,\n      3;970,969,941;,\n      3;389,390,391;,\n      3;388,389,391;,\n      3;387,388,391;,\n      3;386,387,391;,\n      3;385,386,391;,\n      3;384,385,391;,\n      3;383,384,391;,\n      3;383,391,971;,\n      3;972,383,971;,\n      3;972,971,970;,\n      3;973,972,970;,\n      3;973,970,941;,\n      3;974,973,941;,\n      3;304,305,306;,\n      3;303,304,306;,\n      3;302,303,306;,\n      3;301,302,306;,\n      3;300,301,306;,\n      3;299,300,306;,\n      3;298,299,306;,\n      3;298,306,975;,\n      3;976,298,975;,\n      3;976,975,974;,\n      3;977,976,974;,\n      3;977,974,941;,\n      3;978,977,941;,\n      3;224,225,226;,\n      3;223,224,226;,\n      3;222,223,226;,\n      3;221,222,226;,\n      3;220,221,226;,\n      3;219,220,226;,\n      3;218,219,226;,\n      3;218,226,979;,\n      3;980,218,979;,\n      3;980,979,978;,\n      3;981,980,978;,\n      3;981,978,941;,\n      3;982,981,941;,\n      3;148,149,150;,\n      3;147,148,150;,\n      3;146,147,150;,\n      3;145,146,150;,\n      3;144,145,150;,\n      3;143,144,150;,\n      3;142,143,150;,\n      3;142,150,983;,\n      3;984,142,983;,\n      3;984,983,982;,\n      3;985,984,982;,\n      3;985,982,941;,\n      3;986,985,941;,\n      3;76,77,78;,\n      3;75,76,78;,\n      3;74,75,78;,\n      3;73,74,78;,\n      3;72,73,78;,\n      3;71,72,78;,\n      3;70,71,78;,\n      3;70,78,987;,\n      3;988,70,987;,\n      3;988,987,986;,\n      3;989,988,986;,\n      3;989,986,941;,\n      3;990,989,941;,\n      3;22,23,990;,\n      3;990,941,22;,\n      3;991,26,27;,\n      3;992,991,27;,\n      3;993,992,27;,\n      3;80,78,77;,\n      3;83,80,77;,\n      3;86,83,77;,\n      3;89,86,77;,\n      3;92,89,77;,\n      3;95,92,77;,\n      3;98,95,77;,\n      3;98,77,994;,\n      3;98,994,993;,\n      3;995,98,993;,\n      3;995,993,27;,\n      3;996,995,27;,\n      3;997,996,27;,\n      3;152,150,149;,\n      3;155,152,149;,\n      3;158,155,149;,\n      3;161,158,149;,\n      3;164,161,149;,\n      3;167,164,149;,\n      3;170,167,149;,\n      3;170,149,998;,\n      3;999,170,998;,\n      3;999,998,997;,\n      3;1000,999,997;,\n      3;1000,997,27;,\n      3;1001,1000,27;,\n      3;1002,1001,27;,\n      3;228,226,225;,\n      3;231,228,225;,\n      3;234,231,225;,\n      3;237,234,225;,\n      3;240,237,225;,\n      3;243,240,225;,\n      3;246,243,225;,\n      3;246,225,1003;,\n      3;1004,246,1003;,\n      3;1004,1003,1002;,\n      3;1005,1004,1002;,\n      3;1005,1002,27;,\n      3;1006,1005,27;,\n      3;308,306,305;,\n      3;311,308,305;,\n      3;314,311,305;,\n      3;317,314,305;,\n      3;320,317,305;,\n      3;323,320,305;,\n      3;326,323,305;,\n      3;326,305,1007;,\n      3;1008,326,1007;,\n      3;1008,1007,1006;,\n      3;1009,1008,1006;,\n      3;1009,1006,27;,\n      3;1010,1009,27;,\n      3;393,391,390;,\n      3;396,393,390;,\n      3;399,396,390;,\n      3;402,399,390;,\n      3;405,402,390;,\n      3;408,405,390;,\n      3;411,408,390;,\n      3;411,390,1011;,\n      3;1012,411,1011;,\n      3;1012,1011,1010;,\n      3;1013,1012,1010;,\n      3;1013,1010,27;,\n      3;1014,1013,27;,\n      3;479,477,476;,\n      3;482,479,476;,\n      3;485,482,476;,\n      3;488,485,476;,\n      3;491,488,476;,\n      3;494,491,476;,\n      3;497,494,476;,\n      3;497,476,1015;,\n      3;1016,497,1015;,\n      3;1016,1015,1014;,\n      3;1017,1016,1014;,\n      3;1017,1014,27;,\n      3;1018,1017,27;,\n      3;565,563,562;,\n      3;568,565,562;,\n      3;571,568,562;,\n      3;574,571,562;,\n      3;577,574,562;,\n      3;580,577,562;,\n      3;583,580,562;,\n      3;583,562,1019;,\n      3;1020,583,1019;,\n      3;1020,1019,1018;,\n      3;1021,1020,1018;,\n      3;1022,1021,1018;,\n      3;1022,1018,27;,\n      3;1023,1022,27;,\n      3;651,649,648;,\n      3;654,651,648;,\n      3;657,654,648;,\n      3;660,657,648;,\n      3;663,660,648;,\n      3;666,663,648;,\n      3;669,666,648;,\n      3;669,648,1024;,\n      3;1025,669,1024;,\n      3;1025,1024,1023;,\n      3;1026,1025,1023;,\n      3;1026,1023,27;,\n      3;1027,1026,27;,\n      3;731,729,728;,\n      3;734,731,728;,\n      3;737,734,728;,\n      3;740,737,728;,\n      3;743,740,728;,\n      3;746,743,728;,\n      3;749,746,728;,\n      3;749,728,1028;,\n      3;1029,749,1028;,\n      3;1029,1028,1027;,\n      3;1030,1029,1027;,\n      3;1030,1027,27;,\n      3;1031,1030,27;,\n      3;807,805,804;,\n      3;810,807,804;,\n      3;813,810,804;,\n      3;816,813,804;,\n      3;819,816,804;,\n      3;822,819,804;,\n      3;825,822,804;,\n      3;825,804,1032;,\n      3;1033,825,1032;,\n      3;1033,1032,1031;,\n      3;1034,1033,1031;,\n      3;1034,1031,27;,\n      3;1035,1034,27;,\n      3;879,877,876;,\n      3;882,879,876;,\n      3;885,882,876;,\n      3;888,885,876;,\n      3;891,888,876;,\n      3;894,891,876;,\n      3;897,894,876;,\n      3;897,876,1036;,\n      3;1037,897,1036;,\n      3;1037,1036,1035;,\n      3;1038,1037,1035;,\n      3;1038,1035,27;,\n      3;1039,1038,27;,\n      3;1041,1040,1039;,\n      3;1039,27,1041;,\n      3;928,1042,927;,\n      3;1042,928,1043;,\n      3;930,1043,929;,\n      3;1043,930,1044;,\n      3;932,1044,931;,\n      3;1044,932,1045;,\n      3;934,1045,933;,\n      3;1045,934,1046;,\n      3;936,1046,935;,\n      3;1046,936,1047;,\n      3;938,1047,937;,\n      3;1047,938,1048;,\n      3;940,1048,939;,\n      3;1048,940,1049;,\n      3;1048,1049,1050;,\n      3;1047,1048,1050;,\n      3;1046,1047,1050;,\n      3;1045,1046,1050;,\n      3;1044,1045,1050;,\n      3;1043,1044,1050;,\n      3;1042,1043,1050;,\n      3;942,1042,1050;,\n      3;942,1050,941;,\n      3;1049,1040,1041;,\n      3;1051,1050,1049;,\n      3;1049,1041,1051;,\n      3;1054,1053,1052;,\n      3;1053,1054,1055;,\n      3;1057,1056,1054;,\n      3;1056,1057,1058;,\n      3;1060,1059,1057;,\n      3;1059,1060,1061;,\n      3;1063,1062,1060;,\n      3;1062,1063,1064;,\n      3;1066,1065,1063;,\n      3;1065,1066,1067;,\n      3;1069,1068,1066;,\n      3;1068,1069,1070;,\n      3;1072,1071,1069;,\n      3;1071,1072,1073;,\n      3;1055,1074,1053;,\n      3;1074,1055,1075;,\n      3;1058,1076,1056;,\n      3;1076,1058,1077;,\n      3;1061,1078,1059;,\n      3;1078,1061,1079;,\n      3;1064,1080,1062;,\n      3;1080,1064,1081;,\n      3;1067,1082,1065;,\n      3;1082,1067,1083;,\n      3;1070,1084,1068;,\n      3;1084,1070,1085;,\n      3;1073,1086,1071;,\n      3;1086,1073,1087;,\n      3;1075,1088,1074;,\n      3;1088,1075,1089;,\n      3;1077,1090,1076;,\n      3;1090,1077,1091;,\n      3;1079,1092,1078;,\n      3;1092,1079,1093;,\n      3;1081,1094,1080;,\n      3;1094,1081,1095;,\n      3;1083,1096,1082;,\n      3;1096,1083,1097;,\n      3;1085,1098,1084;,\n      3;1098,1085,1099;,\n      3;1087,1100,1086;,\n      3;1100,1087,1101;,\n      3;1089,1102,1088;,\n      3;1102,1089,1103;,\n      3;1091,1104,1090;,\n      3;1104,1091,1105;,\n      3;1093,1106,1092;,\n      3;1106,1093,1107;,\n      3;1095,1108,1094;,\n      3;1108,1095,1109;,\n      3;1097,1110,1096;,\n      3;1110,1097,1111;,\n      3;1099,1112,1098;,\n      3;1112,1099,1113;,\n      3;1101,1114,1100;,\n      3;1114,1101,1115;,\n      3;1103,1116,1102;,\n      3;1116,1103,1117;,\n      3;1105,1117,1104;,\n      3;1117,1105,1118;,\n      3;1107,1118,1106;,\n      3;1118,1107,1119;,\n      3;1109,1119,1108;,\n      3;1119,1109,1120;,\n      3;1111,1120,1110;,\n      3;1120,1111,1121;,\n      3;1113,1121,1112;,\n      3;1121,1113,1122;,\n      3;1115,1122,1114;,\n      3;1122,1115,1123;,\n      3;1126,1125,1124;,\n      3;1125,1126,1127;,\n      3;1129,1128,1126;,\n      3;1128,1129,1130;,\n      3;1132,1131,1129;,\n      3;1131,1132,1133;,\n      3;1135,1134,1132;,\n      3;1134,1135,1136;,\n      3;1138,1137,1135;,\n      3;1137,1138,1139;,\n      3;1141,1140,1138;,\n      3;1140,1141,1142;,\n      3;1144,1143,1141;,\n      3;1143,1144,1145;,\n      3;1127,1146,1125;,\n      3;1146,1127,1147;,\n      3;1130,1148,1128;,\n      3;1148,1130,1149;,\n      3;1133,1150,1131;,\n      3;1150,1133,1151;,\n      3;1136,1152,1134;,\n      3;1152,1136,1153;,\n      3;1139,1154,1137;,\n      3;1154,1139,1155;,\n      3;1142,1156,1140;,\n      3;1156,1142,1157;,\n      3;1145,1158,1143;,\n      3;1158,1145,1159;,\n      3;1147,1160,1146;,\n      3;1160,1147,1161;,\n      3;1149,1162,1148;,\n      3;1162,1149,1163;,\n      3;1151,1164,1150;,\n      3;1164,1151,1165;,\n      3;1153,1166,1152;,\n      3;1166,1153,1167;,\n      3;1155,1168,1154;,\n      3;1168,1155,1169;,\n      3;1157,1170,1156;,\n      3;1170,1157,1171;,\n      3;1159,1172,1158;,\n      3;1172,1159,1173;,\n      3;1161,1174,1160;,\n      3;1174,1161,1175;,\n      3;1163,1176,1162;,\n      3;1176,1163,1177;,\n      3;1165,1178,1164;,\n      3;1178,1165,1179;,\n      3;1167,1180,1166;,\n      3;1180,1167,1181;,\n      3;1169,1182,1168;,\n      3;1182,1169,1183;,\n      3;1171,1184,1170;,\n      3;1184,1171,1185;,\n      3;1173,1186,1172;,\n      3;1186,1173,1187;,\n      3;1175,1188,1174;,\n      3;1188,1175,1189;,\n      3;1177,1189,1176;,\n      3;1189,1177,1190;,\n      3;1179,1190,1178;,\n      3;1190,1179,1191;,\n      3;1181,1191,1180;,\n      3;1191,1181,1192;,\n      3;1183,1192,1182;,\n      3;1192,1183,1193;,\n      3;1185,1193,1184;,\n      3;1193,1185,1194;,\n      3;1187,1194,1186;,\n      3;1194,1187,1195;,\n      3;1198,1197,1196;,\n      3;1197,1198,1199;,\n      3;1201,1200,1198;,\n      3;1200,1201,1202;,\n      3;1204,1203,1201;,\n      3;1203,1204,1205;,\n      3;1207,1206,1204;,\n      3;1206,1207,1208;,\n      3;1210,1209,1207;,\n      3;1209,1210,1211;,\n      3;1213,1212,1210;,\n      3;1212,1213,1214;,\n      3;1216,1215,1213;,\n      3;1215,1216,1217;,\n      3;1202,1218,1200;,\n      3;1199,1219,1197;,\n      3;1219,1199,1220;,\n      3;1202,1221,1218;,\n      3;1221,1202,1222;,\n      3;1205,1223,1203;,\n      3;1223,1205,1224;,\n      3;1208,1225,1206;,\n      3;1225,1208,1226;,\n      3;1211,1227,1209;,\n      3;1227,1211,1228;,\n      3;1214,1229,1212;,\n      3;1229,1214,1230;,\n      3;1217,1231,1215;,\n      3;1231,1217,1232;,\n      3;1220,1233,1219;,\n      3;1233,1220,1234;,\n      3;1222,1235,1221;,\n      3;1235,1222,1236;,\n      3;1224,1237,1223;,\n      3;1237,1224,1238;,\n      3;1226,1239,1225;,\n      3;1239,1226,1240;,\n      3;1228,1241,1227;,\n      3;1241,1228,1242;,\n      3;1230,1243,1229;,\n      3;1243,1230,1244;,\n      3;1232,1245,1231;,\n      3;1245,1232,1246;,\n      3;1234,1247,1233;,\n      3;1247,1234,1248;,\n      3;1236,1249,1235;,\n      3;1249,1236,1250;,\n      3;1238,1251,1237;,\n      3;1251,1238,1252;,\n      3;1240,1253,1239;,\n      3;1253,1240,1254;,\n      3;1242,1255,1241;,\n      3;1255,1242,1256;,\n      3;1244,1257,1243;,\n      3;1257,1244,1258;,\n      3;1246,1259,1245;,\n      3;1259,1246,1260;,\n      3;1247,1248,1261;,\n      3;1249,1250,1262;,\n      3;1253,1254,1263;,\n      3;1255,1256,1264;,\n      3;1257,1258,1265;,\n      3;1259,1260,1266;,\n      3;1261,1267,1247;,\n      3;1267,1261,1268;,\n      3;1262,1268,1249;,\n      3;1268,1262,1269;,\n      3;1252,1269,1251;,\n      3;1269,1252,1270;,\n      3;1263,1270,1253;,\n      3;1270,1263,1271;,\n      3;1264,1271,1255;,\n      3;1271,1264,1272;,\n      3;1265,1272,1257;,\n      3;1272,1265,1273;,\n      3;1266,1273,1259;,\n      3;1273,1266,1274;,\n      3;1277,1276,1275;,\n      3;1276,1277,1278;,\n      3;1280,1279,1277;,\n      3;1279,1280,1281;,\n      3;1283,1282,1280;,\n      3;1282,1283,1284;,\n      3;1286,1285,1283;,\n      3;1285,1286,1287;,\n      3;1289,1288,1286;,\n      3;1288,1289,1290;,\n      3;1292,1291,1289;,\n      3;1291,1292,1293;,\n      3;1295,1294,1292;,\n      3;1294,1295,1296;,\n      3;1278,1297,1276;,\n      3;1281,1298,1279;,\n      3;1284,1299,1282;,\n      3;1287,1300,1285;,\n      3;1293,1301,1291;,\n      3;1296,1302,1294;,\n      3;1278,1303,1297;,\n      3;1303,1278,1304;,\n      3;1281,1305,1298;,\n      3;1305,1281,1306;,\n      3;1284,1307,1299;,\n      3;1307,1284,1308;,\n      3;1287,1309,1300;,\n      3;1309,1287,1310;,\n      3;1290,1311,1288;,\n      3;1311,1290,1312;,\n      3;1293,1313,1301;,\n      3;1313,1293,1314;,\n      3;1296,1315,1302;,\n      3;1315,1296,1316;,\n      3;1304,1317,1303;,\n      3;1317,1304,1318;,\n      3;1306,1319,1305;,\n      3;1319,1306,1320;,\n      3;1308,1321,1307;,\n      3;1321,1308,1322;,\n      3;1310,1323,1309;,\n      3;1323,1310,1324;,\n      3;1312,1325,1311;,\n      3;1325,1312,1326;,\n      3;1314,1327,1313;,\n      3;1327,1314,1328;,\n      3;1316,1329,1315;,\n      3;1329,1316,1330;,\n      3;1318,1331,1317;,\n      3;1331,1318,1332;,\n      3;1320,1333,1319;,\n      3;1333,1320,1334;,\n      3;1322,1335,1321;,\n      3;1335,1322,1336;,\n      3;1324,1337,1323;,\n      3;1337,1324,1338;,\n      3;1326,1339,1325;,\n      3;1339,1326,1340;,\n      3;1328,1341,1327;,\n      3;1341,1328,1342;,\n      3;1330,1343,1329;,\n      3;1343,1330,1344;,\n      3;1331,1332,1345;,\n      3;1333,1334,1346;,\n      3;1337,1338,1347;,\n      3;1339,1340,1348;,\n      3;1341,1342,1349;,\n      3;1343,1344,1350;,\n      3;1345,1351,1331;,\n      3;1351,1345,1352;,\n      3;1346,1352,1333;,\n      3;1352,1346,1353;,\n      3;1336,1353,1335;,\n      3;1353,1336,1354;,\n      3;1347,1354,1337;,\n      3;1354,1347,1355;,\n      3;1348,1355,1339;,\n      3;1355,1348,1356;,\n      3;1349,1356,1341;,\n      3;1356,1349,1357;,\n      3;1350,1357,1343;,\n      3;1357,1350,1358;,\n      3;1361,1360,1359;,\n      3;1360,1361,1362;,\n      3;1364,1363,1361;,\n      3;1363,1364,1365;,\n      3;1367,1366,1364;,\n      3;1366,1367,1368;,\n      3;1370,1369,1367;,\n      3;1369,1370,1371;,\n      3;1373,1372,1370;,\n      3;1372,1373,1374;,\n      3;1376,1375,1373;,\n      3;1375,1376,1377;,\n      3;1379,1378,1376;,\n      3;1378,1379,1380;,\n      3;1362,1381,1360;,\n      3;1365,1382,1363;,\n      3;1368,1383,1366;,\n      3;1371,1384,1369;,\n      3;1374,1385,1372;,\n      3;1377,1386,1375;,\n      3;1380,1387,1378;,\n      3;1362,1388,1381;,\n      3;1388,1362,1389;,\n      3;1365,1390,1382;,\n      3;1390,1365,1391;,\n      3;1368,1392,1383;,\n      3;1392,1368,1393;,\n      3;1371,1394,1384;,\n      3;1394,1371,1395;,\n      3;1374,1396,1385;,\n      3;1396,1374,1397;,\n      3;1377,1398,1386;,\n      3;1398,1377,1399;,\n      3;1380,1400,1387;,\n      3;1400,1380,1401;,\n      3;1389,1402,1388;,\n      3;1402,1389,1403;,\n      3;1391,1404,1390;,\n      3;1404,1391,1405;,\n      3;1393,1406,1392;,\n      3;1406,1393,1407;,\n      3;1395,1408,1394;,\n      3;1408,1395,1409;,\n      3;1397,1410,1396;,\n      3;1410,1397,1411;,\n      3;1399,1412,1398;,\n      3;1412,1399,1413;,\n      3;1401,1414,1400;,\n      3;1414,1401,1415;,\n      3;1403,1416,1402;,\n      3;1416,1403,1417;,\n      3;1405,1418,1404;,\n      3;1418,1405,1419;,\n      3;1407,1420,1406;,\n      3;1420,1407,1421;,\n      3;1409,1422,1408;,\n      3;1422,1409,1423;,\n      3;1411,1424,1410;,\n      3;1424,1411,1425;,\n      3;1413,1426,1412;,\n      3;1426,1413,1427;,\n      3;1415,1428,1414;,\n      3;1428,1415,1429;,\n      3;1416,1417,1430;,\n      3;1418,1419,1431;,\n      3;1420,1421,1432;,\n      3;1422,1423,1433;,\n      3;1424,1425,1434;,\n      3;1426,1427,1435;,\n      3;1428,1429,1436;,\n      3;1430,1437,1416;,\n      3;1437,1430,1438;,\n      3;1431,1438,1418;,\n      3;1438,1431,1439;,\n      3;1432,1439,1420;,\n      3;1439,1432,1440;,\n      3;1433,1440,1422;,\n      3;1440,1433,1441;,\n      3;1434,1441,1424;,\n      3;1441,1434,1442;,\n      3;1435,1442,1426;,\n      3;1442,1435,1443;,\n      3;1436,1443,1428;,\n      3;1443,1436,1444;,\n      3;1447,1446,1445;,\n      3;1446,1447,1448;,\n      3;1450,1449,1447;,\n      3;1449,1450,1451;,\n      3;1453,1452,1450;,\n      3;1452,1453,1454;,\n      3;1456,1455,1453;,\n      3;1455,1456,1457;,\n      3;1459,1458,1456;,\n      3;1458,1459,1460;,\n      3;1462,1461,1459;,\n      3;1461,1462,1463;,\n      3;1465,1464,1462;,\n      3;1464,1465,1466;,\n      3;1448,1467,1446;,\n      3;1451,1468,1449;,\n      3;1454,1469,1452;,\n      3;1457,1470,1455;,\n      3;1460,1471,1458;,\n      3;1463,1472,1461;,\n      3;1466,1473,1464;,\n      3;1448,1474,1467;,\n      3;1474,1448,1475;,\n      3;1451,1476,1468;,\n      3;1476,1451,1477;,\n      3;1454,1478,1469;,\n      3;1478,1454,1479;,\n      3;1457,1480,1470;,\n      3;1480,1457,1481;,\n      3;1460,1482,1471;,\n      3;1482,1460,1483;,\n      3;1463,1484,1472;,\n      3;1484,1463,1485;,\n      3;1466,1486,1473;,\n      3;1486,1466,1487;,\n      3;1475,1488,1474;,\n      3;1488,1475,1489;,\n      3;1477,1490,1476;,\n      3;1490,1477,1491;,\n      3;1479,1492,1478;,\n      3;1492,1479,1493;,\n      3;1481,1494,1480;,\n      3;1494,1481,1495;,\n      3;1483,1496,1482;,\n      3;1496,1483,1497;,\n      3;1485,1498,1484;,\n      3;1498,1485,1499;,\n      3;1487,1500,1486;,\n      3;1500,1487,1501;,\n      3;1489,1502,1488;,\n      3;1502,1489,1503;,\n      3;1491,1504,1490;,\n      3;1504,1491,1505;,\n      3;1493,1506,1492;,\n      3;1506,1493,1507;,\n      3;1495,1508,1494;,\n      3;1508,1495,1509;,\n      3;1497,1510,1496;,\n      3;1510,1497,1511;,\n      3;1499,1512,1498;,\n      3;1512,1499,1513;,\n      3;1501,1514,1500;,\n      3;1514,1501,1515;,\n      3;1502,1503,1516;,\n      3;1504,1505,1517;,\n      3;1506,1507,1518;,\n      3;1508,1509,1519;,\n      3;1510,1511,1520;,\n      3;1512,1513,1521;,\n      3;1514,1515,1522;,\n      3;1516,1523,1502;,\n      3;1523,1516,1524;,\n      3;1517,1524,1504;,\n      3;1524,1517,1525;,\n      3;1518,1525,1506;,\n      3;1525,1518,1526;,\n      3;1519,1526,1508;,\n      3;1526,1519,1527;,\n      3;1520,1527,1510;,\n      3;1527,1520,1528;,\n      3;1521,1528,1512;,\n      3;1528,1521,1529;,\n      3;1522,1529,1514;,\n      3;1529,1522,1530;,\n      3;1533,1532,1531;,\n      3;1532,1533,1534;,\n      3;1536,1535,1533;,\n      3;1535,1536,1537;,\n      3;1539,1538,1536;,\n      3;1538,1539,1540;,\n      3;1542,1541,1539;,\n      3;1541,1542,1543;,\n      3;1545,1544,1542;,\n      3;1544,1545,1546;,\n      3;1548,1547,1545;,\n      3;1547,1548,1549;,\n      3;1551,1550,1548;,\n      3;1550,1551,1552;,\n      3;1534,1553,1532;,\n      3;1537,1554,1535;,\n      3;1540,1555,1538;,\n      3;1543,1556,1541;,\n      3;1546,1557,1544;,\n      3;1549,1558,1547;,\n      3;1552,1559,1550;,\n      3;1534,1560,1553;,\n      3;1560,1534,1561;,\n      3;1537,1562,1554;,\n      3;1562,1537,1563;,\n      3;1540,1564,1555;,\n      3;1564,1540,1565;,\n      3;1543,1566,1556;,\n      3;1566,1543,1567;,\n      3;1546,1568,1557;,\n      3;1568,1546,1569;,\n      3;1549,1570,1558;,\n      3;1570,1549,1571;,\n      3;1552,1572,1559;,\n      3;1572,1552,1573;,\n      3;1561,1574,1560;,\n      3;1574,1561,1575;,\n      3;1563,1576,1562;,\n      3;1576,1563,1577;,\n      3;1565,1578,1564;,\n      3;1578,1565,1579;,\n      3;1567,1580,1566;,\n      3;1580,1567,1581;,\n      3;1569,1582,1568;,\n      3;1582,1569,1583;,\n      3;1571,1584,1570;,\n      3;1584,1571,1585;,\n      3;1573,1586,1572;,\n      3;1586,1573,1587;,\n      3;1575,1588,1574;,\n      3;1588,1575,1589;,\n      3;1577,1590,1576;,\n      3;1590,1577,1591;,\n      3;1579,1592,1578;,\n      3;1592,1579,1593;,\n      3;1581,1594,1580;,\n      3;1594,1581,1595;,\n      3;1583,1596,1582;,\n      3;1596,1583,1597;,\n      3;1585,1598,1584;,\n      3;1598,1585,1599;,\n      3;1587,1600,1586;,\n      3;1600,1587,1601;,\n      3;1588,1589,1602;,\n      3;1590,1591,1603;,\n      3;1592,1593,1604;,\n      3;1594,1595,1605;,\n      3;1596,1597,1606;,\n      3;1598,1599,1607;,\n      3;1600,1601,1608;,\n      3;1602,1609,1588;,\n      3;1609,1602,1610;,\n      3;1603,1610,1590;,\n      3;1610,1603,1611;,\n      3;1604,1611,1592;,\n      3;1611,1604,1612;,\n      3;1605,1612,1594;,\n      3;1612,1605,1613;,\n      3;1606,1613,1596;,\n      3;1613,1606,1614;,\n      3;1607,1614,1598;,\n      3;1614,1607,1615;,\n      3;1608,1615,1600;,\n      3;1615,1608,1616;,\n      3;1619,1618,1617;,\n      3;1618,1619,1620;,\n      3;1622,1621,1619;,\n      3;1621,1622,1623;,\n      3;1625,1624,1622;,\n      3;1624,1625,1626;,\n      3;1628,1627,1625;,\n      3;1627,1628,1629;,\n      3;1631,1630,1628;,\n      3;1630,1631,1632;,\n      3;1634,1633,1631;,\n      3;1633,1634,1635;,\n      3;1637,1636,1634;,\n      3;1636,1637,1638;,\n      3;1620,1639,1618;,\n      3;1623,1640,1621;,\n      3;1626,1641,1624;,\n      3;1629,1642,1627;,\n      3;1632,1643,1630;,\n      3;1635,1644,1633;,\n      3;1638,1645,1636;,\n      3;1620,1646,1639;,\n      3;1646,1620,1647;,\n      3;1623,1648,1640;,\n      3;1648,1623,1649;,\n      3;1626,1650,1641;,\n      3;1650,1626,1651;,\n      3;1629,1652,1642;,\n      3;1652,1629,1653;,\n      3;1632,1654,1643;,\n      3;1654,1632,1655;,\n      3;1635,1656,1644;,\n      3;1656,1635,1657;,\n      3;1638,1658,1645;,\n      3;1658,1638,1659;,\n      3;1647,1660,1646;,\n      3;1660,1647,1661;,\n      3;1649,1662,1648;,\n      3;1662,1649,1663;,\n      3;1651,1664,1650;,\n      3;1664,1651,1665;,\n      3;1653,1666,1652;,\n      3;1666,1653,1667;,\n      3;1655,1668,1654;,\n      3;1668,1655,1669;,\n      3;1657,1670,1656;,\n      3;1670,1657,1671;,\n      3;1659,1672,1658;,\n      3;1672,1659,1673;,\n      3;1661,1674,1660;,\n      3;1674,1661,1675;,\n      3;1663,1676,1662;,\n      3;1676,1663,1677;,\n      3;1665,1678,1664;,\n      3;1678,1665,1679;,\n      3;1667,1680,1666;,\n      3;1680,1667,1681;,\n      3;1669,1682,1668;,\n      3;1682,1669,1683;,\n      3;1671,1684,1670;,\n      3;1684,1671,1685;,\n      3;1673,1686,1672;,\n      3;1686,1673,1687;,\n      3;1674,1675,1688;,\n      3;1676,1677,1689;,\n      3;1678,1679,1690;,\n      3;1680,1681,1691;,\n      3;1682,1683,1692;,\n      3;1684,1685,1693;,\n      3;1686,1687,1694;,\n      3;1688,1695,1674;,\n      3;1695,1688,1696;,\n      3;1689,1696,1676;,\n      3;1696,1689,1697;,\n      3;1690,1697,1678;,\n      3;1697,1690,1698;,\n      3;1691,1698,1680;,\n      3;1698,1691,1699;,\n      3;1692,1699,1682;,\n      3;1699,1692,1700;,\n      3;1693,1700,1684;,\n      3;1700,1693,1701;,\n      3;1694,1701,1686;,\n      3;1701,1694,1702;,\n      3;1705,1704,1703;,\n      3;1704,1705,1706;,\n      3;1708,1707,1705;,\n      3;1707,1708,1709;,\n      3;1711,1710,1708;,\n      3;1710,1711,1712;,\n      3;1714,1713,1711;,\n      3;1713,1714,1715;,\n      3;1717,1716,1714;,\n      3;1716,1717,1718;,\n      3;1720,1719,1717;,\n      3;1719,1720,1721;,\n      3;1723,1722,1720;,\n      3;1722,1723,1724;,\n      3;1706,1725,1704;,\n      3;1709,1726,1707;,\n      3;1712,1727,1710;,\n      3;1715,1728,1713;,\n      3;1721,1729,1719;,\n      3;1724,1730,1722;,\n      3;1706,1731,1725;,\n      3;1731,1706,1732;,\n      3;1709,1733,1726;,\n      3;1733,1709,1734;,\n      3;1712,1735,1727;,\n      3;1735,1712,1736;,\n      3;1715,1737,1728;,\n      3;1737,1715,1738;,\n      3;1718,1739,1716;,\n      3;1739,1718,1740;,\n      3;1721,1741,1729;,\n      3;1741,1721,1742;,\n      3;1724,1743,1730;,\n      3;1743,1724,1744;,\n      3;1732,1745,1731;,\n      3;1745,1732,1746;,\n      3;1734,1747,1733;,\n      3;1747,1734,1748;,\n      3;1736,1749,1735;,\n      3;1749,1736,1750;,\n      3;1738,1751,1737;,\n      3;1751,1738,1752;,\n      3;1740,1753,1739;,\n      3;1753,1740,1754;,\n      3;1742,1755,1741;,\n      3;1755,1742,1756;,\n      3;1744,1757,1743;,\n      3;1757,1744,1758;,\n      3;1746,1759,1745;,\n      3;1759,1746,1760;,\n      3;1748,1761,1747;,\n      3;1761,1748,1762;,\n      3;1750,1763,1749;,\n      3;1763,1750,1764;,\n      3;1752,1765,1751;,\n      3;1765,1752,1766;,\n      3;1754,1767,1753;,\n      3;1767,1754,1768;,\n      3;1756,1769,1755;,\n      3;1769,1756,1770;,\n      3;1758,1771,1757;,\n      3;1771,1758,1772;,\n      3;1759,1760,1773;,\n      3;1761,1762,1774;,\n      3;1765,1766,1775;,\n      3;1767,1768,1776;,\n      3;1769,1770,1777;,\n      3;1771,1772,1778;,\n      3;1773,1779,1759;,\n      3;1779,1773,1780;,\n      3;1774,1780,1761;,\n      3;1780,1774,1781;,\n      3;1764,1781,1763;,\n      3;1781,1764,1782;,\n      3;1775,1782,1765;,\n      3;1782,1775,1783;,\n      3;1776,1783,1767;,\n      3;1783,1776,1784;,\n      3;1777,1784,1769;,\n      3;1784,1777,1785;,\n      3;1778,1785,1771;,\n      3;1785,1778,1786;,\n      3;1789,1788,1787;,\n      3;1788,1789,1790;,\n      3;1792,1791,1789;,\n      3;1791,1792,1793;,\n      3;1795,1794,1792;,\n      3;1794,1795,1796;,\n      3;1798,1797,1795;,\n      3;1797,1798,1799;,\n      3;1801,1800,1798;,\n      3;1800,1801,1802;,\n      3;1804,1803,1801;,\n      3;1803,1804,1805;,\n      3;1807,1806,1804;,\n      3;1806,1807,1808;,\n      3;1790,1809,1788;,\n      3;1793,1810,1791;,\n      3;1796,1811,1794;,\n      3;1799,1812,1797;,\n      3;1805,1813,1803;,\n      3;1808,1814,1806;,\n      3;1790,1815,1809;,\n      3;1815,1790,1816;,\n      3;1793,1817,1810;,\n      3;1817,1793,1818;,\n      3;1796,1819,1811;,\n      3;1819,1796,1820;,\n      3;1799,1821,1812;,\n      3;1821,1799,1822;,\n      3;1802,1823,1800;,\n      3;1823,1802,1824;,\n      3;1805,1825,1813;,\n      3;1825,1805,1826;,\n      3;1808,1827,1814;,\n      3;1827,1808,1828;,\n      3;1816,1829,1815;,\n      3;1829,1816,1830;,\n      3;1818,1831,1817;,\n      3;1831,1818,1832;,\n      3;1820,1833,1819;,\n      3;1833,1820,1834;,\n      3;1822,1835,1821;,\n      3;1835,1822,1836;,\n      3;1824,1837,1823;,\n      3;1837,1824,1838;,\n      3;1826,1839,1825;,\n      3;1839,1826,1840;,\n      3;1828,1841,1827;,\n      3;1841,1828,1842;,\n      3;1830,1843,1829;,\n      3;1843,1830,1844;,\n      3;1832,1845,1831;,\n      3;1845,1832,1846;,\n      3;1834,1847,1833;,\n      3;1847,1834,1848;,\n      3;1836,1849,1835;,\n      3;1849,1836,1850;,\n      3;1838,1851,1837;,\n      3;1851,1838,1852;,\n      3;1840,1853,1839;,\n      3;1853,1840,1854;,\n      3;1842,1855,1841;,\n      3;1855,1842,1856;,\n      3;1853,1854,1857;,\n      3;1844,1858,1843;,\n      3;1858,1844,1859;,\n      3;1846,1859,1845;,\n      3;1859,1846,1860;,\n      3;1848,1860,1847;,\n      3;1860,1848,1861;,\n      3;1850,1861,1849;,\n      3;1861,1850,1862;,\n      3;1852,1862,1851;,\n      3;1862,1852,1863;,\n      3;1857,1863,1853;,\n      3;1863,1857,1864;,\n      3;1856,1864,1855;,\n      3;1864,1856,1865;,\n      3;1868,1867,1866;,\n      3;1867,1868,1869;,\n      3;1871,1870,1868;,\n      3;1870,1871,1872;,\n      3;1874,1873,1871;,\n      3;1873,1874,1875;,\n      3;1877,1876,1874;,\n      3;1876,1877,1878;,\n      3;1880,1879,1877;,\n      3;1879,1880,1881;,\n      3;1883,1882,1880;,\n      3;1882,1883,1884;,\n      3;1886,1885,1883;,\n      3;1885,1886,1887;,\n      3;1869,1888,1867;,\n      3;1888,1869,1889;,\n      3;1872,1890,1870;,\n      3;1890,1872,1891;,\n      3;1875,1892,1873;,\n      3;1892,1875,1893;,\n      3;1878,1894,1876;,\n      3;1894,1878,1895;,\n      3;1881,1896,1879;,\n      3;1896,1881,1897;,\n      3;1884,1898,1882;,\n      3;1898,1884,1899;,\n      3;1887,1900,1885;,\n      3;1900,1887,1901;,\n      3;1889,1902,1888;,\n      3;1902,1889,1903;,\n      3;1891,1904,1890;,\n      3;1904,1891,1905;,\n      3;1893,1906,1892;,\n      3;1906,1893,1907;,\n      3;1895,1908,1894;,\n      3;1908,1895,1909;,\n      3;1897,1910,1896;,\n      3;1910,1897,1911;,\n      3;1899,1912,1898;,\n      3;1912,1899,1913;,\n      3;1901,1914,1900;,\n      3;1914,1901,1915;,\n      3;1903,1916,1902;,\n      3;1916,1903,1917;,\n      3;1905,1918,1904;,\n      3;1918,1905,1919;,\n      3;1907,1920,1906;,\n      3;1920,1907,1921;,\n      3;1909,1922,1908;,\n      3;1922,1909,1923;,\n      3;1911,1924,1910;,\n      3;1924,1911,1925;,\n      3;1913,1926,1912;,\n      3;1926,1913,1927;,\n      3;1915,1928,1914;,\n      3;1928,1915,1929;,\n      3;1917,1930,1916;,\n      3;1930,1917,1931;,\n      3;1919,1931,1918;,\n      3;1931,1919,1932;,\n      3;1921,1932,1920;,\n      3;1932,1921,1933;,\n      3;1923,1933,1922;,\n      3;1933,1923,1934;,\n      3;1925,1934,1924;,\n      3;1934,1925,1935;,\n      3;1927,1935,1926;,\n      3;1935,1927,1936;,\n      3;1929,1936,1928;,\n      3;1936,1929,1937;,\n      3;1940,1939,1938;,\n      3;1939,1940,1941;,\n      3;1943,1942,1940;,\n      3;1942,1943,1944;,\n      3;1946,1945,1943;,\n      3;1945,1946,1947;,\n      3;1949,1948,1946;,\n      3;1948,1949,1950;,\n      3;1952,1951,1949;,\n      3;1951,1952,1953;,\n      3;1955,1954,1952;,\n      3;1954,1955,1956;,\n      3;1958,1957,1955;,\n      3;1957,1958,1959;,\n      3;1941,1960,1939;,\n      3;1960,1941,1961;,\n      3;1944,1962,1942;,\n      3;1962,1944,1963;,\n      3;1947,1964,1945;,\n      3;1964,1947,1965;,\n      3;1950,1966,1948;,\n      3;1966,1950,1967;,\n      3;1953,1968,1951;,\n      3;1968,1953,1969;,\n      3;1956,1970,1954;,\n      3;1970,1956,1971;,\n      3;1959,1972,1957;,\n      3;1972,1959,1973;,\n      3;1961,1974,1960;,\n      3;1974,1961,1975;,\n      3;1963,1976,1962;,\n      3;1976,1963,1977;,\n      3;1965,1978,1964;,\n      3;1978,1965,1979;,\n      3;1967,1980,1966;,\n      3;1980,1967,1981;,\n      3;1969,1982,1968;,\n      3;1982,1969,1983;,\n      3;1971,1984,1970;,\n      3;1984,1971,1985;,\n      3;1973,1986,1972;,\n      3;1986,1973,1987;,\n      3;1975,1988,1974;,\n      3;1988,1975,1989;,\n      3;1977,1990,1976;,\n      3;1990,1977,1991;,\n      3;1979,1992,1978;,\n      3;1992,1979,1993;,\n      3;1981,1994,1980;,\n      3;1994,1981,1995;,\n      3;1983,1996,1982;,\n      3;1996,1983,1997;,\n      3;1985,1998,1984;,\n      3;1998,1985,1999;,\n      3;1987,2000,1986;,\n      3;2000,1987,2001;,\n      3;1989,2002,1988;,\n      3;2002,1989,2003;,\n      3;1991,2003,1990;,\n      3;2003,1991,2004;,\n      3;1993,2004,1992;,\n      3;2004,1993,2005;,\n      3;1995,2005,1994;,\n      3;2005,1995,2006;,\n      3;1997,2006,1996;,\n      3;2006,1997,2007;,\n      3;1999,2007,1998;,\n      3;2007,1999,2008;,\n      3;2001,2008,2000;,\n      3;2008,2001,2009;,\n      3;2008,2009,2010;,\n      3;2007,2008,2010;,\n      3;2006,2007,2010;,\n      3;2005,2006,2010;,\n      3;2004,2005,2010;,\n      3;2003,2004,2010;,\n      3;2002,2003,2010;,\n      3;2011,2002,2010;,\n      3;2012,2011,2010;,\n      3;2013,2012,2010;,\n      3;1936,1937,1938;,\n      3;1935,1936,1938;,\n      3;1934,1935,1938;,\n      3;1933,1934,1938;,\n      3;1932,1933,1938;,\n      3;1931,1932,1938;,\n      3;1930,1931,1938;,\n      3;1930,1938,2014;,\n      3;2015,1930,2014;,\n      3;2015,2014,2013;,\n      3;2015,2013,2010;,\n      3;2016,2015,2010;,\n      3;2017,2016,2010;,\n      3;1864,1865,1866;,\n      3;1863,1864,1866;,\n      3;1862,1863,1866;,\n      3;1861,1862,1866;,\n      3;1860,1861,1866;,\n      3;1859,1860,1866;,\n      3;1858,1859,1866;,\n      3;1858,1866,2018;,\n      3;2019,1858,2018;,\n      3;2019,2018,2017;,\n      3;2020,2019,2017;,\n      3;2020,2017,2010;,\n      3;2021,2020,2010;,\n      3;1785,1786,1787;,\n      3;1784,1785,1787;,\n      3;1783,1784,1787;,\n      3;1782,1783,1787;,\n      3;1781,1782,1787;,\n      3;1780,1781,1787;,\n      3;1779,1780,1787;,\n      3;1779,1787,2022;,\n      3;2023,1779,2022;,\n      3;2023,2022,2021;,\n      3;2024,2023,2021;,\n      3;2024,2021,2010;,\n      3;2025,2024,2010;,\n      3;1701,1702,1703;,\n      3;1700,1701,1703;,\n      3;1699,1700,1703;,\n      3;1698,1699,1703;,\n      3;1697,1698,1703;,\n      3;1696,1697,1703;,\n      3;1695,1696,1703;,\n      3;1695,1703,2026;,\n      3;2027,1695,2026;,\n      3;2027,2026,2025;,\n      3;2028,2027,2025;,\n      3;2028,2025,2010;,\n      3;2029,2028,2010;,\n      3;1615,1616,1617;,\n      3;1614,1615,1617;,\n      3;1613,1614,1617;,\n      3;1612,1613,1617;,\n      3;1611,1612,1617;,\n      3;1610,1611,1617;,\n      3;1609,1610,1617;,\n      3;1609,1617,2030;,\n      3;2031,1609,2030;,\n      3;2031,2030,2029;,\n      3;2032,2031,2029;,\n      3;2032,2029,2010;,\n      3;2033,2032,2010;,\n      3;1529,1530,1531;,\n      3;1528,1529,1531;,\n      3;1527,1528,1531;,\n      3;1526,1527,1531;,\n      3;1525,1526,1531;,\n      3;1524,1525,1531;,\n      3;1523,1524,1531;,\n      3;1523,1531,2034;,\n      3;2035,1523,2034;,\n      3;2035,2034,2033;,\n      3;2036,2035,2033;,\n      3;2036,2033,2010;,\n      3;2037,2036,2010;,\n      3;1443,1444,1445;,\n      3;1442,1443,1445;,\n      3;1441,1442,1445;,\n      3;1440,1441,1445;,\n      3;1439,1440,1445;,\n      3;1438,1439,1445;,\n      3;1437,1438,1445;,\n      3;1437,1445,2038;,\n      3;2039,1437,2038;,\n      3;2039,2038,2037;,\n      3;2040,2039,2037;,\n      3;2041,2040,2037;,\n      3;2041,2037,2010;,\n      3;2042,2041,2010;,\n      3;1357,1358,1359;,\n      3;1356,1357,1359;,\n      3;1355,1356,1359;,\n      3;1354,1355,1359;,\n      3;1353,1354,1359;,\n      3;1352,1353,1359;,\n      3;1351,1352,1359;,\n      3;1351,1359,2043;,\n      3;2044,1351,2043;,\n      3;2044,2043,2042;,\n      3;2045,2044,2042;,\n      3;2045,2042,2010;,\n      3;2046,2045,2010;,\n      3;1273,1274,1275;,\n      3;1272,1273,1275;,\n      3;1271,1272,1275;,\n      3;1270,1271,1275;,\n      3;1269,1270,1275;,\n      3;1268,1269,1275;,\n      3;1267,1268,1275;,\n      3;1267,1275,2047;,\n      3;2048,1267,2047;,\n      3;2048,2047,2046;,\n      3;2049,2048,2046;,\n      3;2049,2046,2010;,\n      3;2050,2049,2010;,\n      3;1194,1195,1196;,\n      3;1193,1194,1196;,\n      3;1192,1193,1196;,\n      3;1191,1192,1196;,\n      3;1190,1191,1196;,\n      3;1189,1190,1196;,\n      3;1188,1189,1196;,\n      3;1188,1196,2051;,\n      3;2052,1188,2051;,\n      3;2052,2051,2050;,\n      3;2053,2052,2050;,\n      3;2053,2050,2010;,\n      3;2054,2053,2010;,\n      3;1122,1123,1124;,\n      3;1121,1122,1124;,\n      3;1120,1121,1124;,\n      3;1119,1120,1124;,\n      3;1118,1119,1124;,\n      3;1117,1118,1124;,\n      3;1116,1117,1124;,\n      3;1116,1124,2055;,\n      3;2056,1116,2055;,\n      3;2056,2055,2054;,\n      3;2057,2056,2054;,\n      3;2057,2054,2010;,\n      3;2058,2057,2010;,\n      3;2060,2059,1052;,\n      3;2060,1052,2061;,\n      3;2060,2061,2058;,\n      3;2058,2010,2060;,\n      3;1054,1052,2059;,\n      3;1057,1054,2059;,\n      3;1060,1057,2059;,\n      3;1063,1060,2059;,\n      3;1066,1063,2059;,\n      3;1069,1066,2059;,\n      3;1072,1069,2059;,\n      3;2062,1072,2059;,\n      3;2063,2062,2059;,\n      3;2064,2063,2059;,\n      3;1126,1124,1123;,\n      3;1129,1126,1123;,\n      3;1132,1129,1123;,\n      3;1135,1132,1123;,\n      3;1138,1135,1123;,\n      3;1141,1138,1123;,\n      3;1144,1141,1123;,\n      3;1144,1123,2065;,\n      3;2066,1144,2065;,\n      3;2066,2065,2064;,\n      3;2066,2064,2059;,\n      3;2067,2066,2059;,\n      3;2068,2067,2059;,\n      3;1198,1196,1195;,\n      3;1201,1198,1195;,\n      3;1204,1201,1195;,\n      3;1207,1204,1195;,\n      3;1210,1207,1195;,\n      3;1213,1210,1195;,\n      3;1216,1213,1195;,\n      3;1216,1195,2069;,\n      3;2070,1216,2069;,\n      3;2070,2069,2068;,\n      3;2071,2070,2068;,\n      3;2071,2068,2059;,\n      3;2072,2071,2059;,\n      3;1277,1275,1274;,\n      3;1280,1277,1274;,\n      3;1283,1280,1274;,\n      3;1286,1283,1274;,\n      3;1289,1286,1274;,\n      3;1292,1289,1274;,\n      3;1295,1292,1274;,\n      3;1295,1274,2073;,\n      3;2074,1295,2073;,\n      3;2074,2073,2072;,\n      3;2075,2074,2072;,\n      3;2076,2075,2072;,\n      3;2076,2072,2059;,\n      3;2077,2076,2059;,\n      3;1361,1359,1358;,\n      3;1364,1361,1358;,\n      3;1367,1364,1358;,\n      3;1370,1367,1358;,\n      3;1373,1370,1358;,\n      3;1376,1373,1358;,\n      3;1379,1376,1358;,\n      3;1379,1358,2078;,\n      3;2079,1379,2078;,\n      3;2079,2078,2077;,\n      3;2080,2079,2077;,\n      3;2081,2080,2077;,\n      3;2081,2077,2059;,\n      3;2082,2081,2059;,\n      3;1447,1445,1444;,\n      3;1450,1447,1444;,\n      3;1453,1450,1444;,\n      3;1456,1453,1444;,\n      3;1459,1456,1444;,\n      3;1462,1459,1444;,\n      3;1465,1462,1444;,\n      3;1465,1444,2083;,\n      3;2084,1465,2083;,\n      3;2084,2083,2082;,\n      3;2085,2084,2082;,\n      3;2086,2085,2082;,\n      3;2086,2082,2059;,\n      3;2087,2086,2059;,\n      3;1533,1531,1530;,\n      3;1536,1533,1530;,\n      3;1539,1536,1530;,\n      3;1542,1539,1530;,\n      3;1545,1542,1530;,\n      3;1548,1545,1530;,\n      3;1551,1548,1530;,\n      3;1551,1530,2088;,\n      3;2089,1551,2088;,\n      3;2089,2088,2087;,\n      3;2090,2089,2087;,\n      3;2091,2090,2087;,\n      3;2091,2087,2059;,\n      3;2092,2091,2059;,\n      3;1619,1617,1616;,\n      3;1622,1619,1616;,\n      3;1625,1622,1616;,\n      3;1628,1625,1616;,\n      3;1631,1628,1616;,\n      3;1634,1631,1616;,\n      3;1637,1634,1616;,\n      3;1637,1616,2093;,\n      3;2094,1637,2093;,\n      3;2094,2093,2092;,\n      3;2095,2094,2092;,\n      3;2096,2095,2092;,\n      3;2096,2092,2059;,\n      3;2097,2096,2059;,\n      3;1705,1703,1702;,\n      3;1708,1705,1702;,\n      3;1711,1708,1702;,\n      3;1714,1711,1702;,\n      3;1717,1714,1702;,\n      3;1720,1717,1702;,\n      3;1723,1720,1702;,\n      3;1723,1702,2098;,\n      3;2099,1723,2098;,\n      3;2099,2098,2097;,\n      3;2100,2099,2097;,\n      3;2101,2100,2097;,\n      3;2101,2097,2059;,\n      3;2102,2101,2059;,\n      3;1789,1787,1786;,\n      3;1792,1789,1786;,\n      3;1795,1792,1786;,\n      3;1798,1795,1786;,\n      3;1801,1798,1786;,\n      3;1804,1801,1786;,\n      3;1807,1804,1786;,\n      3;1807,1786,2103;,\n      3;2104,1807,2103;,\n      3;2104,2103,2102;,\n      3;2105,2104,2102;,\n      3;2106,2105,2102;,\n      3;2106,2102,2059;,\n      3;2107,2106,2059;,\n      3;1868,1866,1865;,\n      3;1871,1868,1865;,\n      3;1874,1871,1865;,\n      3;1877,1874,1865;,\n      3;1880,1877,1865;,\n      3;1883,1880,1865;,\n      3;1886,1883,1865;,\n      3;1886,1865,2108;,\n      3;2109,1886,2108;,\n      3;2109,2108,2107;,\n      3;2110,2109,2107;,\n      3;2110,2107,2059;,\n      3;2111,2110,2059;,\n      3;1940,1938,1937;,\n      3;1943,1940,1937;,\n      3;1946,1943,1937;,\n      3;1949,1946,1937;,\n      3;1952,1949,1937;,\n      3;1955,1952,1937;,\n      3;1958,1955,1937;,\n      3;1958,1937,2112;,\n      3;2113,1958,2112;,\n      3;2113,2112,2111;,\n      3;2114,2113,2111;,\n      3;2114,2111,2059;,\n      3;2115,2114,2059;,\n      3;2116,2010,2009;,\n      3;2116,2009,2117;,\n      3;2116,2117,2115;,\n      3;2115,2059,2116;,\n      3;2120,2119,2118;,\n      3;2119,2120,2121;,\n      3;2123,2118,2122;,\n      3;2118,2123,2120;,\n      3;2125,2122,2124;,\n      3;2122,2125,2123;,\n      3;2121,2124,2119;,\n      3;2124,2121,2125;,\n      3;2127,2126,2120;,\n      3;2128,2127,2120;,\n      3;2129,2128,2120;,\n      3;2123,2125,2130;,\n      3;2123,2130,2129;,\n      3;2129,2120,2123;,\n      3;2131,2130,2125;,\n      3;2132,2131,2125;,\n      3;2133,2132,2125;,\n      3;2121,2120,2126;,\n      3;2121,2126,2133;,\n      3;2133,2125,2121;,\n      3;22,2128,2129;,\n      3;2128,22,941;,\n      3;2130,22,2129;,\n      3;22,2130,25;,\n      3;24,2130,2131;,\n      3;2130,24,25;,\n      3;2132,24,2131;,\n      3;24,2132,27;,\n      3;1041,2132,2133;,\n      3;2132,1041,27;,\n      3;2126,1041,2133;,\n      3;1041,2126,1051;,\n      3;1050,2126,2127;,\n      3;2126,1050,1051;,\n      3;2128,1050,2127;,\n      3;1050,2128,941;,\n      3;2135,2134,2119;,\n      3;2136,2135,2119;,\n      3;2124,2122,2136;,\n      3;2136,2119,2124;,\n      3;2137,2136,2122;,\n      3;2134,2137,2122;,\n      3;2118,2119,2134;,\n      3;2134,2122,2118;,\n      3;2059,2136,2137;,\n      3;2136,2059,2060;,\n      3;2116,2137,2134;,\n      3;2137,2116,2059;,\n      3;2010,2134,2135;,\n      3;2134,2010,2116;,\n      3;2060,2135,2136;,\n      3;2135,2060,2010;,\n      3;70,2065,1123;,\n      3;2065,70,988;,\n      3;988,2064,2065;,\n      3;2064,988,989;,\n      3;989,2063,2064;,\n      3;2063,989,990;,\n      3;990,2062,2063;,\n      3;2062,990,23;,\n      3;23,1072,2062;,\n      3;1072,23,0;,\n      3;1073,1072,0;,\n      3;1073,0,1;,\n      3;1,1087,1073;,\n      3;1087,1,28;,\n      3;28,1101,1087;,\n      3;1101,28,42;,\n      3;42,1115,1101;,\n      3;1115,42,56;,\n      3;56,1123,1115;,\n      3;1123,56,70;,\n      3;142,2069,1195;,\n      3;2069,142,984;,\n      3;984,2068,2069;,\n      3;2068,984,985;,\n      3;985,2067,2068;,\n      3;2067,985,986;,\n      3;986,2066,2067;,\n      3;2066,986,987;,\n      3;987,1144,2066;,\n      3;1144,987,78;,\n      3;78,1145,1144;,\n      3;1145,78,79;,\n      3;79,1159,1145;,\n      3;1159,79,100;,\n      3;100,1173,1159;,\n      3;1173,100,114;,\n      3;114,1187,1173;,\n      3;1187,114,128;,\n      3;128,1195,1187;,\n      3;1195,128,142;,\n      3;218,2073,1274;,\n      3;2073,218,980;,\n      3;980,2072,2073;,\n      3;2072,980,981;,\n      3;981,2071,2072;,\n      3;2071,981,982;,\n      3;982,2070,2071;,\n      3;2070,982,983;,\n      3;983,1216,2070;,\n      3;1216,983,150;,\n      3;150,1217,1216;,\n      3;1217,150,151;,\n      3;151,1232,1217;,\n      3;1232,151,172;,\n      3;172,1246,1232;,\n      3;1246,172,186;,\n      3;186,1260,1246;,\n      3;1260,186,200;,\n      3;200,1266,1260;,\n      3;200,1274,1266;,\n      3;1274,200,218;,\n      3;298,2078,1358;,\n      3;2078,298,976;,\n      3;976,2077,2078;,\n      3;2077,976,977;,\n      3;977,2076,2077;,\n      3;2076,977,978;,\n      3;978,2075,2076;,\n      3;2075,978,979;,\n      3;979,2074,2075;,\n      3;979,1295,2074;,\n      3;1295,979,226;,\n      3;226,1296,1295;,\n      3;1296,226,227;,\n      3;1296,227,248;,\n      3;248,1316,1296;,\n      3;1316,248,252;,\n      3;252,1330,1316;,\n      3;1330,252,266;,\n      3;266,1344,1330;,\n      3;1344,266,280;,\n      3;280,1350,1344;,\n      3;280,1358,1350;,\n      3;1358,280,298;,\n      3;383,2083,1444;,\n      3;2083,383,972;,\n      3;972,2082,2083;,\n      3;2082,972,973;,\n      3;973,2081,2082;,\n      3;2081,973,974;,\n      3;974,2080,2081;,\n      3;2080,974,975;,\n      3;975,2079,2080;,\n      3;975,1379,2079;,\n      3;1379,975,306;,\n      3;306,1380,1379;,\n      3;1380,306,307;,\n      3;1380,307,328;,\n      3;328,1401,1380;,\n      3;1401,328,334;,\n      3;334,1415,1401;,\n      3;1415,334,348;,\n      3;348,1429,1415;,\n      3;1429,348,362;,\n      3;362,1436,1429;,\n      3;362,1444,1436;,\n      3;1444,362,383;,\n      3;469,2088,1530;,\n      3;2088,469,968;,\n      3;968,2087,2088;,\n      3;2087,968,969;,\n      3;969,2086,2087;,\n      3;2086,969,970;,\n      3;970,2085,2086;,\n      3;2085,970,971;,\n      3;971,2084,2085;,\n      3;971,1465,2084;,\n      3;1465,971,391;,\n      3;391,1466,1465;,\n      3;1466,391,392;,\n      3;1466,392,413;,\n      3;413,1487,1466;,\n      3;1487,413,420;,\n      3;420,1501,1487;,\n      3;1501,420,434;,\n      3;434,1515,1501;,\n      3;1515,434,448;,\n      3;448,1522,1515;,\n      3;448,1530,1522;,\n      3;1530,448,469;,\n      3;555,2093,1616;,\n      3;2093,555,964;,\n      3;964,2092,2093;,\n      3;2092,964,965;,\n      3;965,2091,2092;,\n      3;2091,965,966;,\n      3;966,2090,2091;,\n      3;2090,966,967;,\n      3;967,2089,2090;,\n      3;967,1551,2089;,\n      3;1551,967,477;,\n      3;477,1552,1551;,\n      3;1552,477,478;,\n      3;1552,478,499;,\n      3;499,1573,1552;,\n      3;1573,499,506;,\n      3;506,1587,1573;,\n      3;1587,506,520;,\n      3;520,1601,1587;,\n      3;1601,520,534;,\n      3;534,1608,1601;,\n      3;534,1616,1608;,\n      3;1616,534,555;,\n      3;641,2098,1702;,\n      3;2098,641,960;,\n      3;960,2097,2098;,\n      3;2097,960,961;,\n      3;961,2096,2097;,\n      3;2096,961,962;,\n      3;962,2095,2096;,\n      3;2095,962,963;,\n      3;963,2094,2095;,\n      3;963,1637,2094;,\n      3;1637,963,563;,\n      3;563,1638,1637;,\n      3;1638,563,564;,\n      3;1638,564,585;,\n      3;585,1659,1638;,\n      3;1659,585,592;,\n      3;592,1673,1659;,\n      3;1673,592,606;,\n      3;606,1687,1673;,\n      3;1687,606,620;,\n      3;620,1694,1687;,\n      3;620,1702,1694;,\n      3;1702,620,641;,\n      3;721,2103,1786;,\n      3;2103,721,956;,\n      3;956,2102,2103;,\n      3;2102,956,957;,\n      3;957,2101,2102;,\n      3;2101,957,958;,\n      3;958,2100,2101;,\n      3;2100,958,959;,\n      3;959,2099,2100;,\n      3;959,1723,2099;,\n      3;1723,959,649;,\n      3;649,1724,1723;,\n      3;1724,649,650;,\n      3;1724,650,671;,\n      3;671,1744,1724;,\n      3;1744,671,675;,\n      3;675,1758,1744;,\n      3;1758,675,689;,\n      3;689,1772,1758;,\n      3;1772,689,703;,\n      3;703,1778,1772;,\n      3;703,1786,1778;,\n      3;1786,703,721;,\n      3;797,2108,1865;,\n      3;2108,797,951;,\n      3;2108,951,952;,\n      3;952,2107,2108;,\n      3;2107,952,953;,\n      3;953,2106,2107;,\n      3;2106,953,954;,\n      3;954,2105,2106;,\n      3;2105,954,955;,\n      3;955,2104,2105;,\n      3;955,1807,2104;,\n      3;1807,955,729;,\n      3;729,1808,1807;,\n      3;1808,729,730;,\n      3;1808,730,751;,\n      3;751,1828,1808;,\n      3;1828,751,755;,\n      3;755,1842,1828;,\n      3;1842,755,769;,\n      3;769,1856,1842;,\n      3;1856,769,783;,\n      3;783,1865,1856;,\n      3;1865,783,797;,\n      3;869,2112,1937;,\n      3;2112,869,947;,\n      3;947,2111,2112;,\n      3;2111,947,948;,\n      3;948,2110,2111;,\n      3;2110,948,949;,\n      3;949,2109,2110;,\n      3;2109,949,950;,\n      3;950,1886,2109;,\n      3;1886,950,805;,\n      3;805,1887,1886;,\n      3;1887,805,806;,\n      3;806,1901,1887;,\n      3;1901,806,827;,\n      3;827,1915,1901;,\n      3;1915,827,841;,\n      3;841,1929,1915;,\n      3;1929,841,855;,\n      3;855,1937,1929;,\n      3;1937,855,869;,\n      3;1042,2117,2009;,\n      3;2117,1042,942;,\n      3;942,2115,2117;,\n      3;2115,942,943;,\n      3;943,2114,2115;,\n      3;2114,943,944;,\n      3;944,2113,2114;,\n      3;2113,944,945;,\n      3;2113,945,946;,\n      3;946,1958,2113;,\n      3;1958,946,877;,\n      3;877,1959,1958;,\n      3;1959,877,878;,\n      3;878,1973,1959;,\n      3;1973,878,899;,\n      3;899,1987,1973;,\n      3;1987,899,913;,\n      3;913,2001,1987;,\n      3;2001,913,927;,\n      3;927,2009,2001;,\n      3;2009,927,1042;,\n      3;71,1114,1122;,\n      3;1114,71,57;,\n      3;57,1100,1114;,\n      3;1100,57,43;,\n      3;43,1086,1100;,\n      3;1086,43,29;,\n      3;29,1071,1086;,\n      3;1071,29,3;,\n      3;3,1069,1071;,\n      3;1069,3,2;,\n      3;2,1070,1069;,\n      3;1070,2,4;,\n      3;4,1085,1070;,\n      3;1085,4,30;,\n      3;30,1099,1085;,\n      3;1099,30,44;,\n      3;44,1113,1099;,\n      3;1113,44,58;,\n      3;58,1122,1113;,\n      3;1122,58,71;,\n      3;143,1186,1194;,\n      3;1186,143,129;,\n      3;129,1172,1186;,\n      3;1172,129,115;,\n      3;115,1158,1172;,\n      3;1158,115,101;,\n      3;101,1143,1158;,\n      3;1143,101,81;,\n      3;81,1141,1143;,\n      3;1141,81,80;,\n      3;80,1142,1141;,\n      3;1142,80,82;,\n      3;82,1157,1142;,\n      3;1157,82,102;,\n      3;102,1171,1157;,\n      3;1171,102,116;,\n      3;116,1185,1171;,\n      3;1185,116,130;,\n      3;130,1194,1185;,\n      3;1194,130,143;,\n      3;219,1259,1273;,\n      3;1259,219,201;,\n      3;201,1245,1259;,\n      3;1245,201,187;,\n      3;187,1231,1245;,\n      3;1231,187,173;,\n      3;173,1215,1231;,\n      3;1215,173,153;,\n      3;153,1213,1215;,\n      3;1213,153,152;,\n      3;152,1214,1213;,\n      3;1214,152,154;,\n      3;154,1230,1214;,\n      3;1230,154,174;,\n      3;174,1244,1230;,\n      3;1244,174,188;,\n      3;188,1258,1244;,\n      3;1258,188,202;,\n      3;202,1265,1258;,\n      3;202,1273,1265;,\n      3;1273,202,219;,\n      3;299,1343,1357;,\n      3;1343,299,281;,\n      3;281,1329,1343;,\n      3;1329,281,267;,\n      3;267,1315,1329;,\n      3;1315,267,253;,\n      3;253,1302,1315;,\n      3;1302,253,229;,\n      3;229,1294,1302;,\n      3;229,1292,1294;,\n      3;1292,229,228;,\n      3;228,1293,1292;,\n      3;1293,228,230;,\n      3;1293,230,249;,\n      3;249,1314,1293;,\n      3;1314,249,254;,\n      3;254,1328,1314;,\n      3;1328,254,268;,\n      3;268,1342,1328;,\n      3;1342,268,282;,\n      3;282,1349,1342;,\n      3;282,1357,1349;,\n      3;1357,282,299;,\n      3;384,1428,1443;,\n      3;1428,384,376;,\n      3;1428,376,363;,\n      3;363,1414,1428;,\n      3;1414,363,349;,\n      3;349,1400,1414;,\n      3;1400,349,335;,\n      3;335,1387,1400;,\n      3;1387,335,309;,\n      3;309,1378,1387;,\n      3;309,1376,1378;,\n      3;1376,309,308;,\n      3;308,1377,1376;,\n      3;1377,308,310;,\n      3;1377,310,329;,\n      3;329,1399,1377;,\n      3;1399,329,336;,\n      3;336,1413,1399;,\n      3;1413,336,350;,\n      3;350,1427,1413;,\n      3;1427,350,364;,\n      3;364,1435,1427;,\n      3;364,1443,1435;,\n      3;1443,364,384;,\n      3;470,1514,1529;,\n      3;1514,470,462;,\n      3;1514,462,449;,\n      3;449,1500,1514;,\n      3;1500,449,435;,\n      3;435,1486,1500;,\n      3;1486,435,421;,\n      3;421,1473,1486;,\n      3;1473,421,394;,\n      3;394,1464,1473;,\n      3;394,1462,1464;,\n      3;1462,394,393;,\n      3;393,1463,1462;,\n      3;1463,393,395;,\n      3;1463,395,414;,\n      3;414,1485,1463;,\n      3;1485,414,422;,\n      3;422,1499,1485;,\n      3;1499,422,436;,\n      3;436,1513,1499;,\n      3;1513,436,450;,\n      3;450,1521,1513;,\n      3;450,1529,1521;,\n      3;1529,450,470;,\n      3;556,1600,1615;,\n      3;1600,556,548;,\n      3;1600,548,535;,\n      3;535,1586,1600;,\n      3;1586,535,521;,\n      3;521,1572,1586;,\n      3;1572,521,507;,\n      3;507,1559,1572;,\n      3;1559,507,480;,\n      3;480,1550,1559;,\n      3;480,1548,1550;,\n      3;1548,480,479;,\n      3;479,1549,1548;,\n      3;1549,479,481;,\n      3;1549,481,500;,\n      3;500,1571,1549;,\n      3;1571,500,508;,\n      3;508,1585,1571;,\n      3;1585,508,522;,\n      3;522,1599,1585;,\n      3;1599,522,536;,\n      3;536,1607,1599;,\n      3;536,1615,1607;,\n      3;1615,536,556;,\n      3;642,1686,1701;,\n      3;1686,642,634;,\n      3;1686,634,621;,\n      3;621,1672,1686;,\n      3;1672,621,607;,\n      3;607,1658,1672;,\n      3;1658,607,593;,\n      3;593,1645,1658;,\n      3;1645,593,566;,\n      3;566,1636,1645;,\n      3;566,1634,1636;,\n      3;1634,566,565;,\n      3;565,1635,1634;,\n      3;1635,565,567;,\n      3;1635,567,586;,\n      3;586,1657,1635;,\n      3;1657,586,594;,\n      3;594,1671,1657;,\n      3;1671,594,608;,\n      3;608,1685,1671;,\n      3;1685,608,622;,\n      3;622,1693,1685;,\n      3;622,1701,1693;,\n      3;1701,622,642;,\n      3;722,1771,1785;,\n      3;1771,722,704;,\n      3;704,1757,1771;,\n      3;1757,704,690;,\n      3;690,1743,1757;,\n      3;1743,690,676;,\n      3;676,1730,1743;,\n      3;1730,676,652;,\n      3;652,1722,1730;,\n      3;652,1720,1722;,\n      3;1720,652,651;,\n      3;651,1721,1720;,\n      3;1721,651,653;,\n      3;1721,653,672;,\n      3;672,1742,1721;,\n      3;1742,672,677;,\n      3;677,1756,1742;,\n      3;1756,677,691;,\n      3;691,1770,1756;,\n      3;1770,691,705;,\n      3;705,1777,1770;,\n      3;705,1785,1777;,\n      3;1785,705,722;,\n      3;798,1855,1864;,\n      3;1855,798,784;,\n      3;784,1841,1855;,\n      3;1841,784,770;,\n      3;770,1827,1841;,\n      3;1827,770,756;,\n      3;756,1814,1827;,\n      3;1814,756,732;,\n      3;732,1806,1814;,\n      3;732,1804,1806;,\n      3;1804,732,731;,\n      3;731,1805,1804;,\n      3;1805,731,733;,\n      3;1805,733,752;,\n      3;752,1826,1805;,\n      3;1826,752,757;,\n      3;757,1840,1826;,\n      3;1840,757,771;,\n      3;771,1854,1840;,\n      3;1854,771,785;,\n      3;785,1857,1854;,\n      3;785,1864,1857;,\n      3;1864,785,798;,\n      3;870,1928,1936;,\n      3;1928,870,856;,\n      3;856,1914,1928;,\n      3;1914,856,842;,\n      3;842,1900,1914;,\n      3;1900,842,828;,\n      3;828,1885,1900;,\n      3;1885,828,808;,\n      3;808,1883,1885;,\n      3;1883,808,807;,\n      3;807,1884,1883;,\n      3;1884,807,809;,\n      3;809,1899,1884;,\n      3;1899,809,829;,\n      3;829,1913,1899;,\n      3;1913,829,843;,\n      3;843,1927,1913;,\n      3;1927,843,857;,\n      3;857,1936,1927;,\n      3;1936,857,870;,\n      3;1043,2000,2008;,\n      3;2000,1043,928;,\n      3;928,1986,2000;,\n      3;1986,928,914;,\n      3;914,1972,1986;,\n      3;1972,914,900;,\n      3;900,1957,1972;,\n      3;1957,900,880;,\n      3;880,1955,1957;,\n      3;1955,880,879;,\n      3;879,1956,1955;,\n      3;1956,879,881;,\n      3;881,1971,1956;,\n      3;1971,881,901;,\n      3;901,1985,1971;,\n      3;1985,901,915;,\n      3;915,1999,1985;,\n      3;1999,915,929;,\n      3;929,2008,1999;,\n      3;2008,929,1043;,\n      3;72,1112,1121;,\n      3;1112,72,59;,\n      3;59,1098,1112;,\n      3;1098,59,45;,\n      3;45,1084,1098;,\n      3;1084,45,31;,\n      3;31,1068,1084;,\n      3;1068,31,6;,\n      3;6,1066,1068;,\n      3;1066,6,5;,\n      3;5,1067,1066;,\n      3;1067,5,7;,\n      3;7,1083,1067;,\n      3;1083,7,32;,\n      3;32,1097,1083;,\n      3;1097,32,46;,\n      3;46,1111,1097;,\n      3;1111,46,60;,\n      3;60,1121,1111;,\n      3;1121,60,72;,\n      3;144,1184,1193;,\n      3;1184,144,131;,\n      3;131,1170,1184;,\n      3;1170,131,117;,\n      3;117,1156,1170;,\n      3;1156,117,103;,\n      3;103,1140,1156;,\n      3;1140,103,84;,\n      3;84,1138,1140;,\n      3;1138,84,83;,\n      3;83,1139,1138;,\n      3;1139,83,85;,\n      3;85,1155,1139;,\n      3;1155,85,104;,\n      3;104,1169,1155;,\n      3;1169,104,118;,\n      3;118,1183,1169;,\n      3;1183,118,132;,\n      3;132,1193,1183;,\n      3;1193,132,144;,\n      3;220,1257,1272;,\n      3;1257,220,203;,\n      3;203,1243,1257;,\n      3;1243,203,189;,\n      3;189,1229,1243;,\n      3;1229,189,175;,\n      3;175,1212,1229;,\n      3;1212,175,156;,\n      3;156,1210,1212;,\n      3;1210,156,155;,\n      3;155,1211,1210;,\n      3;1211,155,157;,\n      3;157,1228,1211;,\n      3;1228,157,176;,\n      3;176,1242,1228;,\n      3;1242,176,190;,\n      3;190,1256,1242;,\n      3;1256,190,204;,\n      3;204,1264,1256;,\n      3;204,1272,1264;,\n      3;1272,204,220;,\n      3;300,1341,1356;,\n      3;1341,300,283;,\n      3;283,1327,1341;,\n      3;1327,283,269;,\n      3;269,1313,1327;,\n      3;1313,269,255;,\n      3;255,1301,1313;,\n      3;1301,255,232;,\n      3;232,1291,1301;,\n      3;232,1289,1291;,\n      3;1289,232,231;,\n      3;231,1290,1289;,\n      3;1290,231,233;,\n      3;1290,233,250;,\n      3;250,1312,1290;,\n      3;1312,250,256;,\n      3;256,1326,1312;,\n      3;1326,256,270;,\n      3;270,1340,1326;,\n      3;1340,270,284;,\n      3;284,1348,1340;,\n      3;284,1356,1348;,\n      3;1356,284,300;,\n      3;385,1426,1442;,\n      3;1426,385,377;,\n      3;1426,377,365;,\n      3;365,1412,1426;,\n      3;1412,365,351;,\n      3;351,1398,1412;,\n      3;1398,351,337;,\n      3;337,1386,1398;,\n      3;1386,337,312;,\n      3;312,1375,1386;,\n      3;312,1373,1375;,\n      3;1373,312,311;,\n      3;311,1374,1373;,\n      3;1374,311,313;,\n      3;1374,313,330;,\n      3;330,1397,1374;,\n      3;1397,330,338;,\n      3;338,1411,1397;,\n      3;1411,338,352;,\n      3;352,1425,1411;,\n      3;1425,352,366;,\n      3;366,1434,1425;,\n      3;366,1442,1434;,\n      3;1442,366,385;,\n      3;471,1512,1528;,\n      3;1512,471,463;,\n      3;1512,463,451;,\n      3;451,1498,1512;,\n      3;1498,451,437;,\n      3;437,1484,1498;,\n      3;1484,437,423;,\n      3;423,1472,1484;,\n      3;1472,423,397;,\n      3;397,1461,1472;,\n      3;397,1459,1461;,\n      3;1459,397,396;,\n      3;396,1460,1459;,\n      3;1460,396,398;,\n      3;1460,398,415;,\n      3;415,1483,1460;,\n      3;1483,415,424;,\n      3;424,1497,1483;,\n      3;1497,424,438;,\n      3;438,1511,1497;,\n      3;1511,438,452;,\n      3;452,1520,1511;,\n      3;452,1528,1520;,\n      3;1528,452,471;,\n      3;557,1598,1614;,\n      3;1598,557,549;,\n      3;1598,549,537;,\n      3;537,1584,1598;,\n      3;1584,537,523;,\n      3;523,1570,1584;,\n      3;1570,523,509;,\n      3;509,1558,1570;,\n      3;1558,509,483;,\n      3;483,1547,1558;,\n      3;483,1545,1547;,\n      3;1545,483,482;,\n      3;482,1546,1545;,\n      3;1546,482,484;,\n      3;1546,484,501;,\n      3;501,1569,1546;,\n      3;1569,501,510;,\n      3;510,1583,1569;,\n      3;1583,510,524;,\n      3;524,1597,1583;,\n      3;1597,524,538;,\n      3;538,1606,1597;,\n      3;538,1614,1606;,\n      3;1614,538,557;,\n      3;643,1684,1700;,\n      3;1684,643,635;,\n      3;1684,635,623;,\n      3;623,1670,1684;,\n      3;1670,623,609;,\n      3;609,1656,1670;,\n      3;1656,609,595;,\n      3;595,1644,1656;,\n      3;1644,595,569;,\n      3;569,1633,1644;,\n      3;569,1631,1633;,\n      3;1631,569,568;,\n      3;568,1632,1631;,\n      3;1632,568,570;,\n      3;1632,570,587;,\n      3;587,1655,1632;,\n      3;1655,587,596;,\n      3;596,1669,1655;,\n      3;1669,596,610;,\n      3;610,1683,1669;,\n      3;1683,610,624;,\n      3;624,1692,1683;,\n      3;624,1700,1692;,\n      3;1700,624,643;,\n      3;723,1769,1784;,\n      3;1769,723,706;,\n      3;706,1755,1769;,\n      3;1755,706,692;,\n      3;692,1741,1755;,\n      3;1741,692,678;,\n      3;678,1729,1741;,\n      3;1729,678,655;,\n      3;655,1719,1729;,\n      3;655,1717,1719;,\n      3;1717,655,654;,\n      3;654,1718,1717;,\n      3;1718,654,656;,\n      3;1718,656,673;,\n      3;673,1740,1718;,\n      3;1740,673,679;,\n      3;679,1754,1740;,\n      3;1754,679,693;,\n      3;693,1768,1754;,\n      3;1768,693,707;,\n      3;707,1776,1768;,\n      3;707,1784,1776;,\n      3;1784,707,723;,\n      3;799,1853,1863;,\n      3;1853,799,786;,\n      3;786,1839,1853;,\n      3;1839,786,772;,\n      3;772,1825,1839;,\n      3;1825,772,758;,\n      3;758,1813,1825;,\n      3;1813,758,735;,\n      3;735,1803,1813;,\n      3;735,1801,1803;,\n      3;1801,735,734;,\n      3;734,1802,1801;,\n      3;1802,734,736;,\n      3;1802,736,753;,\n      3;753,1824,1802;,\n      3;1824,753,759;,\n      3;759,1838,1824;,\n      3;1838,759,773;,\n      3;773,1852,1838;,\n      3;1852,773,787;,\n      3;787,1863,1852;,\n      3;1863,787,799;,\n      3;871,1926,1935;,\n      3;1926,871,858;,\n      3;858,1912,1926;,\n      3;1912,858,844;,\n      3;844,1898,1912;,\n      3;1898,844,830;,\n      3;830,1882,1898;,\n      3;1882,830,811;,\n      3;811,1880,1882;,\n      3;1880,811,810;,\n      3;810,1881,1880;,\n      3;1881,810,812;,\n      3;812,1897,1881;,\n      3;1897,812,831;,\n      3;831,1911,1897;,\n      3;1911,831,845;,\n      3;845,1925,1911;,\n      3;1925,845,859;,\n      3;859,1935,1925;,\n      3;1935,859,871;,\n      3;1044,1998,2007;,\n      3;1998,1044,930;,\n      3;930,1984,1998;,\n      3;1984,930,916;,\n      3;916,1970,1984;,\n      3;1970,916,902;,\n      3;902,1954,1970;,\n      3;1954,902,883;,\n      3;883,1952,1954;,\n      3;1952,883,882;,\n      3;882,1953,1952;,\n      3;1953,882,884;,\n      3;884,1969,1953;,\n      3;1969,884,903;,\n      3;903,1983,1969;,\n      3;1983,903,917;,\n      3;917,1997,1983;,\n      3;1997,917,931;,\n      3;931,2007,1997;,\n      3;2007,931,1044;,\n      3;73,1110,1120;,\n      3;1110,73,61;,\n      3;61,1096,1110;,\n      3;1096,61,47;,\n      3;47,1082,1096;,\n      3;1082,47,33;,\n      3;33,1065,1082;,\n      3;1065,33,9;,\n      3;9,1063,1065;,\n      3;1063,9,8;,\n      3;8,1064,1063;,\n      3;1064,8,10;,\n      3;10,1081,1064;,\n      3;1081,10,34;,\n      3;34,1095,1081;,\n      3;1095,34,48;,\n      3;48,1109,1095;,\n      3;1109,48,62;,\n      3;62,1120,1109;,\n      3;1120,62,73;,\n      3;145,1182,1192;,\n      3;1182,145,133;,\n      3;133,1168,1182;,\n      3;1168,133,119;,\n      3;119,1154,1168;,\n      3;1154,119,105;,\n      3;105,1137,1154;,\n      3;1137,105,87;,\n      3;87,1135,1137;,\n      3;1135,87,86;,\n      3;86,1136,1135;,\n      3;1136,86,88;,\n      3;88,1153,1136;,\n      3;1153,88,106;,\n      3;106,1167,1153;,\n      3;1167,106,120;,\n      3;120,1181,1167;,\n      3;1181,120,134;,\n      3;134,1192,1181;,\n      3;1192,134,145;,\n      3;221,1255,1271;,\n      3;1255,221,205;,\n      3;205,1241,1255;,\n      3;1241,205,191;,\n      3;191,1227,1241;,\n      3;1227,191,177;,\n      3;177,1209,1227;,\n      3;1209,177,159;,\n      3;159,1207,1209;,\n      3;1207,159,158;,\n      3;158,1208,1207;,\n      3;1208,158,160;,\n      3;160,1226,1208;,\n      3;1226,160,178;,\n      3;178,1240,1226;,\n      3;1240,178,192;,\n      3;192,1254,1240;,\n      3;1254,192,206;,\n      3;206,1263,1254;,\n      3;206,1271,1263;,\n      3;1271,206,221;,\n      3;301,1339,1355;,\n      3;1339,301,285;,\n      3;285,1325,1339;,\n      3;1325,285,271;,\n      3;271,1311,1325;,\n      3;1311,271,257;,\n      3;257,1288,1311;,\n      3;1288,257,235;,\n      3;235,1286,1288;,\n      3;1286,235,234;,\n      3;234,1287,1286;,\n      3;1287,234,236;,\n      3;1287,236,251;,\n      3;251,1310,1287;,\n      3;1310,251,258;,\n      3;258,1324,1310;,\n      3;1324,258,272;,\n      3;272,1338,1324;,\n      3;1338,272,286;,\n      3;286,1347,1338;,\n      3;286,1355,1347;,\n      3;1355,286,301;,\n      3;386,1424,1441;,\n      3;1424,386,378;,\n      3;1424,378,367;,\n      3;367,1410,1424;,\n      3;1410,367,353;,\n      3;353,1396,1410;,\n      3;1396,353,339;,\n      3;339,1385,1396;,\n      3;1385,339,315;,\n      3;315,1372,1385;,\n      3;315,1370,1372;,\n      3;1370,315,314;,\n      3;314,1371,1370;,\n      3;1371,314,316;,\n      3;1371,316,331;,\n      3;331,1395,1371;,\n      3;1395,331,340;,\n      3;340,1409,1395;,\n      3;1409,340,354;,\n      3;354,1423,1409;,\n      3;1423,354,368;,\n      3;368,1433,1423;,\n      3;368,1441,1433;,\n      3;1441,368,386;,\n      3;472,1510,1527;,\n      3;1510,472,464;,\n      3;1510,464,453;,\n      3;453,1496,1510;,\n      3;1496,453,439;,\n      3;439,1482,1496;,\n      3;1482,439,425;,\n      3;425,1471,1482;,\n      3;1471,425,400;,\n      3;400,1458,1471;,\n      3;400,1456,1458;,\n      3;1456,400,399;,\n      3;399,1457,1456;,\n      3;1457,399,401;,\n      3;1457,401,416;,\n      3;416,1481,1457;,\n      3;1481,416,426;,\n      3;426,1495,1481;,\n      3;1495,426,440;,\n      3;440,1509,1495;,\n      3;1509,440,454;,\n      3;454,1519,1509;,\n      3;454,1527,1519;,\n      3;1527,454,472;,\n      3;558,1596,1613;,\n      3;1596,558,550;,\n      3;1596,550,539;,\n      3;539,1582,1596;,\n      3;1582,539,525;,\n      3;525,1568,1582;,\n      3;1568,525,511;,\n      3;511,1557,1568;,\n      3;1557,511,486;,\n      3;486,1544,1557;,\n      3;486,1542,1544;,\n      3;1542,486,485;,\n      3;485,1543,1542;,\n      3;1543,485,487;,\n      3;1543,487,502;,\n      3;502,1567,1543;,\n      3;1567,502,512;,\n      3;512,1581,1567;,\n      3;1581,512,526;,\n      3;526,1595,1581;,\n      3;1595,526,540;,\n      3;540,1605,1595;,\n      3;540,1613,1605;,\n      3;1613,540,558;,\n      3;644,1682,1699;,\n      3;1682,644,636;,\n      3;1682,636,625;,\n      3;625,1668,1682;,\n      3;1668,625,611;,\n      3;611,1654,1668;,\n      3;1654,611,597;,\n      3;597,1643,1654;,\n      3;1643,597,572;,\n      3;572,1630,1643;,\n      3;572,1628,1630;,\n      3;1628,572,571;,\n      3;571,1629,1628;,\n      3;1629,571,573;,\n      3;1629,573,588;,\n      3;588,1653,1629;,\n      3;1653,588,598;,\n      3;598,1667,1653;,\n      3;1667,598,612;,\n      3;612,1681,1667;,\n      3;1681,612,626;,\n      3;626,1691,1681;,\n      3;626,1699,1691;,\n      3;1699,626,644;,\n      3;724,1767,1783;,\n      3;1767,724,708;,\n      3;708,1753,1767;,\n      3;1753,708,694;,\n      3;694,1739,1753;,\n      3;1739,694,680;,\n      3;680,1716,1739;,\n      3;1716,680,658;,\n      3;658,1714,1716;,\n      3;1714,658,657;,\n      3;657,1715,1714;,\n      3;1715,657,659;,\n      3;1715,659,674;,\n      3;674,1738,1715;,\n      3;1738,674,681;,\n      3;681,1752,1738;,\n      3;1752,681,695;,\n      3;695,1766,1752;,\n      3;1766,695,709;,\n      3;709,1775,1766;,\n      3;709,1783,1775;,\n      3;1783,709,724;,\n      3;800,1851,1862;,\n      3;1851,800,788;,\n      3;788,1837,1851;,\n      3;1837,788,774;,\n      3;774,1823,1837;,\n      3;1823,774,760;,\n      3;760,1800,1823;,\n      3;1800,760,738;,\n      3;738,1798,1800;,\n      3;1798,738,737;,\n      3;737,1799,1798;,\n      3;1799,737,739;,\n      3;1799,739,754;,\n      3;754,1822,1799;,\n      3;1822,754,761;,\n      3;761,1836,1822;,\n      3;1836,761,775;,\n      3;775,1850,1836;,\n      3;1850,775,789;,\n      3;789,1862,1850;,\n      3;1862,789,800;,\n      3;872,1924,1934;,\n      3;1924,872,860;,\n      3;860,1910,1924;,\n      3;1910,860,846;,\n      3;846,1896,1910;,\n      3;1896,846,832;,\n      3;832,1879,1896;,\n      3;1879,832,814;,\n      3;814,1877,1879;,\n      3;1877,814,813;,\n      3;813,1878,1877;,\n      3;1878,813,815;,\n      3;815,1895,1878;,\n      3;1895,815,833;,\n      3;833,1909,1895;,\n      3;1909,833,847;,\n      3;847,1923,1909;,\n      3;1923,847,861;,\n      3;861,1934,1923;,\n      3;1934,861,872;,\n      3;1045,1996,2006;,\n      3;1996,1045,932;,\n      3;932,1982,1996;,\n      3;1982,932,918;,\n      3;918,1968,1982;,\n      3;1968,918,904;,\n      3;904,1951,1968;,\n      3;1951,904,886;,\n      3;886,1949,1951;,\n      3;1949,886,885;,\n      3;885,1950,1949;,\n      3;1950,885,887;,\n      3;887,1967,1950;,\n      3;1967,887,905;,\n      3;905,1981,1967;,\n      3;1981,905,919;,\n      3;919,1995,1981;,\n      3;1995,919,933;,\n      3;933,2006,1995;,\n      3;2006,933,1045;,\n      3;74,1108,1119;,\n      3;1108,74,63;,\n      3;63,1094,1108;,\n      3;1094,63,49;,\n      3;49,1080,1094;,\n      3;1080,49,35;,\n      3;35,1062,1080;,\n      3;1062,35,12;,\n      3;12,1060,1062;,\n      3;1060,12,11;,\n      3;11,1061,1060;,\n      3;1061,11,13;,\n      3;13,1079,1061;,\n      3;1079,13,36;,\n      3;36,1093,1079;,\n      3;1093,36,50;,\n      3;50,1107,1093;,\n      3;1107,50,64;,\n      3;64,1119,1107;,\n      3;1119,64,74;,\n      3;146,1180,1191;,\n      3;1180,146,135;,\n      3;135,1166,1180;,\n      3;1166,135,121;,\n      3;121,1152,1166;,\n      3;1152,121,107;,\n      3;107,1134,1152;,\n      3;1134,107,90;,\n      3;90,1132,1134;,\n      3;1132,90,89;,\n      3;89,1133,1132;,\n      3;1133,89,91;,\n      3;91,1151,1133;,\n      3;1151,91,108;,\n      3;108,1165,1151;,\n      3;1165,108,122;,\n      3;122,1179,1165;,\n      3;1179,122,136;,\n      3;136,1191,1179;,\n      3;1191,136,146;,\n      3;222,1253,1270;,\n      3;1253,222,214;,\n      3;1253,214,207;,\n      3;207,1239,1253;,\n      3;1239,207,193;,\n      3;193,1225,1239;,\n      3;1225,193,179;,\n      3;179,1206,1225;,\n      3;1206,179,162;,\n      3;162,1204,1206;,\n      3;1204,162,161;,\n      3;161,1205,1204;,\n      3;1205,161,163;,\n      3;163,1224,1205;,\n      3;1224,163,180;,\n      3;180,1238,1224;,\n      3;1238,180,194;,\n      3;194,1252,1238;,\n      3;1252,194,208;,\n      3;208,1270,1252;,\n      3;1270,208,222;,\n      3;302,1337,1354;,\n      3;1337,302,294;,\n      3;1337,294,287;,\n      3;287,1323,1337;,\n      3;1323,287,273;,\n      3;273,1309,1323;,\n      3;1309,273,259;,\n      3;259,1300,1309;,\n      3;1300,259,238;,\n      3;238,1285,1300;,\n      3;238,1283,1285;,\n      3;1283,238,237;,\n      3;237,1284,1283;,\n      3;1284,237,239;,\n      3;239,1308,1284;,\n      3;1308,239,260;,\n      3;260,1322,1308;,\n      3;1322,260,274;,\n      3;274,1336,1322;,\n      3;1336,274,288;,\n      3;288,1354,1336;,\n      3;1354,288,302;,\n      3;387,1422,1440;,\n      3;1422,387,379;,\n      3;1422,379,369;,\n      3;369,1408,1422;,\n      3;1408,369,355;,\n      3;355,1394,1408;,\n      3;1394,355,341;,\n      3;341,1384,1394;,\n      3;1384,341,318;,\n      3;318,1369,1384;,\n      3;318,1367,1369;,\n      3;1367,318,317;,\n      3;317,1368,1367;,\n      3;1368,317,319;,\n      3;1368,319,332;,\n      3;332,1393,1368;,\n      3;1393,332,342;,\n      3;342,1407,1393;,\n      3;1407,342,356;,\n      3;356,1421,1407;,\n      3;1421,356,370;,\n      3;370,1432,1421;,\n      3;370,1440,1432;,\n      3;1440,370,387;,\n      3;473,1508,1526;,\n      3;1508,473,465;,\n      3;1508,465,455;,\n      3;455,1494,1508;,\n      3;1494,455,441;,\n      3;441,1480,1494;,\n      3;1480,441,427;,\n      3;427,1470,1480;,\n      3;1470,427,403;,\n      3;403,1455,1470;,\n      3;403,1453,1455;,\n      3;1453,403,402;,\n      3;402,1454,1453;,\n      3;1454,402,404;,\n      3;1454,404,417;,\n      3;417,1479,1454;,\n      3;1479,417,428;,\n      3;428,1493,1479;,\n      3;1493,428,442;,\n      3;442,1507,1493;,\n      3;1507,442,456;,\n      3;456,1518,1507;,\n      3;456,1526,1518;,\n      3;1526,456,473;,\n      3;559,1594,1612;,\n      3;1594,559,551;,\n      3;1594,551,541;,\n      3;541,1580,1594;,\n      3;1580,541,527;,\n      3;527,1566,1580;,\n      3;1566,527,513;,\n      3;513,1556,1566;,\n      3;1556,513,489;,\n      3;489,1541,1556;,\n      3;489,1539,1541;,\n      3;1539,489,488;,\n      3;488,1540,1539;,\n      3;1540,488,490;,\n      3;1540,490,503;,\n      3;503,1565,1540;,\n      3;1565,503,514;,\n      3;514,1579,1565;,\n      3;1579,514,528;,\n      3;528,1593,1579;,\n      3;1593,528,542;,\n      3;542,1604,1593;,\n      3;542,1612,1604;,\n      3;1612,542,559;,\n      3;645,1680,1698;,\n      3;1680,645,637;,\n      3;1680,637,627;,\n      3;627,1666,1680;,\n      3;1666,627,613;,\n      3;613,1652,1666;,\n      3;1652,613,599;,\n      3;599,1642,1652;,\n      3;1642,599,575;,\n      3;575,1627,1642;,\n      3;575,1625,1627;,\n      3;1625,575,574;,\n      3;574,1626,1625;,\n      3;1626,574,576;,\n      3;1626,576,589;,\n      3;589,1651,1626;,\n      3;1651,589,600;,\n      3;600,1665,1651;,\n      3;1665,600,614;,\n      3;614,1679,1665;,\n      3;1679,614,628;,\n      3;628,1690,1679;,\n      3;628,1698,1690;,\n      3;1698,628,645;,\n      3;725,1765,1782;,\n      3;1765,725,717;,\n      3;1765,717,710;,\n      3;710,1751,1765;,\n      3;1751,710,696;,\n      3;696,1737,1751;,\n      3;1737,696,682;,\n      3;682,1728,1737;,\n      3;1728,682,661;,\n      3;661,1713,1728;,\n      3;661,1711,1713;,\n      3;1711,661,660;,\n      3;660,1712,1711;,\n      3;1712,660,662;,\n      3;662,1736,1712;,\n      3;1736,662,683;,\n      3;683,1750,1736;,\n      3;1750,683,697;,\n      3;697,1764,1750;,\n      3;1764,697,711;,\n      3;711,1782,1764;,\n      3;1782,711,725;,\n      3;801,1849,1861;,\n      3;1849,801,790;,\n      3;790,1835,1849;,\n      3;1835,790,776;,\n      3;776,1821,1835;,\n      3;1821,776,762;,\n      3;762,1812,1821;,\n      3;1812,762,741;,\n      3;741,1797,1812;,\n      3;741,1795,1797;,\n      3;1795,741,740;,\n      3;740,1796,1795;,\n      3;1796,740,742;,\n      3;742,1820,1796;,\n      3;1820,742,763;,\n      3;763,1834,1820;,\n      3;1834,763,777;,\n      3;777,1848,1834;,\n      3;1848,777,791;,\n      3;791,1861,1848;,\n      3;1861,791,801;,\n      3;873,1922,1933;,\n      3;1922,873,862;,\n      3;862,1908,1922;,\n      3;1908,862,848;,\n      3;848,1894,1908;,\n      3;1894,848,834;,\n      3;834,1876,1894;,\n      3;1876,834,817;,\n      3;817,1874,1876;,\n      3;1874,817,816;,\n      3;816,1875,1874;,\n      3;1875,816,818;,\n      3;818,1893,1875;,\n      3;1893,818,835;,\n      3;835,1907,1893;,\n      3;1907,835,849;,\n      3;849,1921,1907;,\n      3;1921,849,863;,\n      3;863,1933,1921;,\n      3;1933,863,873;,\n      3;1046,1994,2005;,\n      3;1994,1046,934;,\n      3;934,1980,1994;,\n      3;1980,934,920;,\n      3;920,1966,1980;,\n      3;1966,920,906;,\n      3;906,1948,1966;,\n      3;1948,906,889;,\n      3;889,1946,1948;,\n      3;1946,889,888;,\n      3;888,1947,1946;,\n      3;1947,888,890;,\n      3;890,1965,1947;,\n      3;1965,890,907;,\n      3;907,1979,1965;,\n      3;1979,907,921;,\n      3;921,1993,1979;,\n      3;1993,921,935;,\n      3;935,2005,1993;,\n      3;2005,935,1046;,\n      3;75,1106,1118;,\n      3;1106,75,65;,\n      3;65,1092,1106;,\n      3;1092,65,51;,\n      3;51,1078,1092;,\n      3;1078,51,37;,\n      3;37,1059,1078;,\n      3;1059,37,15;,\n      3;15,1057,1059;,\n      3;1057,15,14;,\n      3;14,1058,1057;,\n      3;1058,14,16;,\n      3;16,1077,1058;,\n      3;1077,16,38;,\n      3;38,1091,1077;,\n      3;1091,38,52;,\n      3;52,1105,1091;,\n      3;1105,52,66;,\n      3;66,1118,1105;,\n      3;1118,66,75;,\n      3;147,1178,1190;,\n      3;1178,147,137;,\n      3;137,1164,1178;,\n      3;1164,137,123;,\n      3;123,1150,1164;,\n      3;1150,123,109;,\n      3;109,1131,1150;,\n      3;1131,109,93;,\n      3;93,1129,1131;,\n      3;1129,93,92;,\n      3;92,1130,1129;,\n      3;1130,92,94;,\n      3;94,1149,1130;,\n      3;1149,94,110;,\n      3;110,1163,1149;,\n      3;1163,110,124;,\n      3;124,1177,1163;,\n      3;1177,124,138;,\n      3;138,1190,1177;,\n      3;1190,138,147;,\n      3;223,1251,1269;,\n      3;1251,223,215;,\n      3;1251,215,209;,\n      3;209,1237,1251;,\n      3;1237,209,195;,\n      3;195,1223,1237;,\n      3;1223,195,181;,\n      3;181,1203,1223;,\n      3;1203,181,165;,\n      3;165,1201,1203;,\n      3;1201,165,164;,\n      3;164,1202,1201;,\n      3;1202,164,166;,\n      3;166,1222,1202;,\n      3;1222,166,182;,\n      3;182,1236,1222;,\n      3;1236,182,196;,\n      3;196,1250,1236;,\n      3;1250,196,210;,\n      3;210,1262,1250;,\n      3;210,1269,1262;,\n      3;1269,210,223;,\n      3;303,1335,1353;,\n      3;1335,303,295;,\n      3;1335,295,289;,\n      3;289,1321,1335;,\n      3;1321,289,275;,\n      3;275,1307,1321;,\n      3;1307,275,261;,\n      3;261,1299,1307;,\n      3;1299,261,241;,\n      3;241,1282,1299;,\n      3;241,1280,1282;,\n      3;1280,241,240;,\n      3;240,1281,1280;,\n      3;1281,240,242;,\n      3;242,1306,1281;,\n      3;1306,242,262;,\n      3;262,1320,1306;,\n      3;1320,262,276;,\n      3;276,1334,1320;,\n      3;1334,276,290;,\n      3;290,1346,1334;,\n      3;290,1353,1346;,\n      3;1353,290,303;,\n      3;388,1420,1439;,\n      3;1420,388,380;,\n      3;1420,380,371;,\n      3;371,1406,1420;,\n      3;1406,371,357;,\n      3;357,1392,1406;,\n      3;1392,357,343;,\n      3;343,1383,1392;,\n      3;1383,343,321;,\n      3;321,1366,1383;,\n      3;321,1364,1366;,\n      3;1364,321,320;,\n      3;320,1365,1364;,\n      3;1365,320,322;,\n      3;1365,322,333;,\n      3;333,1391,1365;,\n      3;1391,333,344;,\n      3;344,1405,1391;,\n      3;1405,344,358;,\n      3;358,1419,1405;,\n      3;1419,358,372;,\n      3;372,1431,1419;,\n      3;372,1439,1431;,\n      3;1439,372,388;,\n      3;474,1506,1525;,\n      3;1506,474,466;,\n      3;1506,466,457;,\n      3;457,1492,1506;,\n      3;1492,457,443;,\n      3;443,1478,1492;,\n      3;1478,443,429;,\n      3;429,1469,1478;,\n      3;1469,429,406;,\n      3;406,1452,1469;,\n      3;406,1450,1452;,\n      3;1450,406,405;,\n      3;405,1451,1450;,\n      3;1451,405,407;,\n      3;1451,407,418;,\n      3;418,1477,1451;,\n      3;1477,418,430;,\n      3;430,1491,1477;,\n      3;1491,430,444;,\n      3;444,1505,1491;,\n      3;1505,444,458;,\n      3;458,1517,1505;,\n      3;458,1525,1517;,\n      3;1525,458,474;,\n      3;560,1592,1611;,\n      3;1592,560,552;,\n      3;1592,552,543;,\n      3;543,1578,1592;,\n      3;1578,543,529;,\n      3;529,1564,1578;,\n      3;1564,529,515;,\n      3;515,1555,1564;,\n      3;1555,515,492;,\n      3;492,1538,1555;,\n      3;492,1536,1538;,\n      3;1536,492,491;,\n      3;491,1537,1536;,\n      3;1537,491,493;,\n      3;1537,493,504;,\n      3;504,1563,1537;,\n      3;1563,504,516;,\n      3;516,1577,1563;,\n      3;1577,516,530;,\n      3;530,1591,1577;,\n      3;1591,530,544;,\n      3;544,1603,1591;,\n      3;544,1611,1603;,\n      3;1611,544,560;,\n      3;646,1678,1697;,\n      3;1678,646,638;,\n      3;1678,638,629;,\n      3;629,1664,1678;,\n      3;1664,629,615;,\n      3;615,1650,1664;,\n      3;1650,615,601;,\n      3;601,1641,1650;,\n      3;1641,601,578;,\n      3;578,1624,1641;,\n      3;578,1622,1624;,\n      3;1622,578,577;,\n      3;577,1623,1622;,\n      3;1623,577,579;,\n      3;1623,579,590;,\n      3;590,1649,1623;,\n      3;1649,590,602;,\n      3;602,1663,1649;,\n      3;1663,602,616;,\n      3;616,1677,1663;,\n      3;1677,616,630;,\n      3;630,1689,1677;,\n      3;630,1697,1689;,\n      3;1697,630,646;,\n      3;726,1763,1781;,\n      3;1763,726,718;,\n      3;1763,718,712;,\n      3;712,1749,1763;,\n      3;1749,712,698;,\n      3;698,1735,1749;,\n      3;1735,698,684;,\n      3;684,1727,1735;,\n      3;1727,684,664;,\n      3;664,1710,1727;,\n      3;664,1708,1710;,\n      3;1708,664,663;,\n      3;663,1709,1708;,\n      3;1709,663,665;,\n      3;665,1734,1709;,\n      3;1734,665,685;,\n      3;685,1748,1734;,\n      3;1748,685,699;,\n      3;699,1762,1748;,\n      3;1762,699,713;,\n      3;713,1774,1762;,\n      3;713,1781,1774;,\n      3;1781,713,726;,\n      3;802,1847,1860;,\n      3;1847,802,792;,\n      3;792,1833,1847;,\n      3;1833,792,778;,\n      3;778,1819,1833;,\n      3;1819,778,764;,\n      3;764,1811,1819;,\n      3;1811,764,744;,\n      3;744,1794,1811;,\n      3;744,1792,1794;,\n      3;1792,744,743;,\n      3;743,1793,1792;,\n      3;1793,743,745;,\n      3;745,1818,1793;,\n      3;1818,745,765;,\n      3;765,1832,1818;,\n      3;1832,765,779;,\n      3;779,1846,1832;,\n      3;1846,779,793;,\n      3;793,1860,1846;,\n      3;1860,793,802;,\n      3;874,1920,1932;,\n      3;1920,874,864;,\n      3;864,1906,1920;,\n      3;1906,864,850;,\n      3;850,1892,1906;,\n      3;1892,850,836;,\n      3;836,1873,1892;,\n      3;1873,836,820;,\n      3;820,1871,1873;,\n      3;1871,820,819;,\n      3;819,1872,1871;,\n      3;1872,819,821;,\n      3;821,1891,1872;,\n      3;1891,821,837;,\n      3;837,1905,1891;,\n      3;1905,837,851;,\n      3;851,1919,1905;,\n      3;1919,851,865;,\n      3;865,1932,1919;,\n      3;1932,865,874;,\n      3;1047,1992,2004;,\n      3;1992,1047,936;,\n      3;936,1978,1992;,\n      3;1978,936,922;,\n      3;922,1964,1978;,\n      3;1964,922,908;,\n      3;908,1945,1964;,\n      3;1945,908,892;,\n      3;892,1943,1945;,\n      3;1943,892,891;,\n      3;891,1944,1943;,\n      3;1944,891,893;,\n      3;893,1963,1944;,\n      3;1963,893,909;,\n      3;909,1977,1963;,\n      3;1977,909,923;,\n      3;923,1991,1977;,\n      3;1991,923,937;,\n      3;937,2004,1991;,\n      3;2004,937,1047;,\n      3;76,1104,1117;,\n      3;1104,76,67;,\n      3;67,1090,1104;,\n      3;1090,67,53;,\n      3;53,1076,1090;,\n      3;1076,53,39;,\n      3;39,1056,1076;,\n      3;1056,39,18;,\n      3;18,1054,1056;,\n      3;1054,18,17;,\n      3;17,1055,1054;,\n      3;1055,17,19;,\n      3;19,1075,1055;,\n      3;1075,19,40;,\n      3;40,1089,1075;,\n      3;1089,40,54;,\n      3;54,1103,1089;,\n      3;1103,54,68;,\n      3;68,1117,1103;,\n      3;1117,68,76;,\n      3;148,1176,1189;,\n      3;1176,148,139;,\n      3;139,1162,1176;,\n      3;1162,139,125;,\n      3;125,1148,1162;,\n      3;1148,125,111;,\n      3;111,1128,1148;,\n      3;1128,111,96;,\n      3;96,1126,1128;,\n      3;1126,96,95;,\n      3;95,1127,1126;,\n      3;1127,95,97;,\n      3;97,1147,1127;,\n      3;1147,97,112;,\n      3;112,1161,1147;,\n      3;1161,112,126;,\n      3;126,1175,1161;,\n      3;1175,126,140;,\n      3;140,1189,1175;,\n      3;1189,140,148;,\n      3;224,1249,1268;,\n      3;1249,224,216;,\n      3;1249,216,211;,\n      3;211,1235,1249;,\n      3;1235,211,197;,\n      3;197,1221,1235;,\n      3;1221,197,183;,\n      3;183,1218,1221;,\n      3;1218,183,168;,\n      3;168,1200,1218;,\n      3;168,1198,1200;,\n      3;1198,168,167;,\n      3;167,1199,1198;,\n      3;1199,167,169;,\n      3;169,1220,1199;,\n      3;1220,169,184;,\n      3;184,1234,1220;,\n      3;1234,184,198;,\n      3;198,1248,1234;,\n      3;1248,198,212;,\n      3;212,1261,1248;,\n      3;212,1268,1261;,\n      3;1268,212,224;,\n      3;304,1333,1352;,\n      3;1333,304,296;,\n      3;1333,296,291;,\n      3;291,1319,1333;,\n      3;1319,291,277;,\n      3;277,1305,1319;,\n      3;1305,277,263;,\n      3;263,1298,1305;,\n      3;1298,263,244;,\n      3;244,1279,1298;,\n      3;244,1277,1279;,\n      3;1277,244,243;,\n      3;243,1278,1277;,\n      3;1278,243,245;,\n      3;245,1304,1278;,\n      3;1304,245,264;,\n      3;264,1318,1304;,\n      3;1318,264,278;,\n      3;278,1332,1318;,\n      3;1332,278,292;,\n      3;292,1345,1332;,\n      3;292,1352,1345;,\n      3;1352,292,304;,\n      3;389,1418,1438;,\n      3;1418,389,381;,\n      3;1418,381,373;,\n      3;373,1404,1418;,\n      3;1404,373,359;,\n      3;359,1390,1404;,\n      3;1390,359,345;,\n      3;345,1382,1390;,\n      3;1382,345,324;,\n      3;324,1363,1382;,\n      3;324,1361,1363;,\n      3;1361,324,323;,\n      3;323,1362,1361;,\n      3;1362,323,325;,\n      3;325,1389,1362;,\n      3;1389,325,346;,\n      3;346,1403,1389;,\n      3;1403,346,360;,\n      3;360,1417,1403;,\n      3;1417,360,374;,\n      3;374,1430,1417;,\n      3;374,1438,1430;,\n      3;1438,374,389;,\n      3;475,1504,1524;,\n      3;1504,475,467;,\n      3;1504,467,459;,\n      3;459,1490,1504;,\n      3;1490,459,445;,\n      3;445,1476,1490;,\n      3;1476,445,431;,\n      3;431,1468,1476;,\n      3;1468,431,409;,\n      3;409,1449,1468;,\n      3;409,1447,1449;,\n      3;1447,409,408;,\n      3;408,1448,1447;,\n      3;1448,408,410;,\n      3;1448,410,419;,\n      3;419,1475,1448;,\n      3;1475,419,432;,\n      3;432,1489,1475;,\n      3;1489,432,446;,\n      3;446,1503,1489;,\n      3;1503,446,460;,\n      3;460,1516,1503;,\n      3;460,1524,1516;,\n      3;1524,460,475;,\n      3;561,1590,1610;,\n      3;1590,561,553;,\n      3;1590,553,545;,\n      3;545,1576,1590;,\n      3;1576,545,531;,\n      3;531,1562,1576;,\n      3;1562,531,517;,\n      3;517,1554,1562;,\n      3;1554,517,495;,\n      3;495,1535,1554;,\n      3;495,1533,1535;,\n      3;1533,495,494;,\n      3;494,1534,1533;,\n      3;1534,494,496;,\n      3;1534,496,505;,\n      3;505,1561,1534;,\n      3;1561,505,518;,\n      3;518,1575,1561;,\n      3;1575,518,532;,\n      3;532,1589,1575;,\n      3;1589,532,546;,\n      3;546,1602,1589;,\n      3;546,1610,1602;,\n      3;1610,546,561;,\n      3;647,1676,1696;,\n      3;1676,647,639;,\n      3;1676,639,631;,\n      3;631,1662,1676;,\n      3;1662,631,617;,\n      3;617,1648,1662;,\n      3;1648,617,603;,\n      3;603,1640,1648;,\n      3;1640,603,581;,\n      3;581,1621,1640;,\n      3;581,1619,1621;,\n      3;1619,581,580;,\n      3;580,1620,1619;,\n      3;1620,580,582;,\n      3;1620,582,591;,\n      3;591,1647,1620;,\n      3;1647,591,604;,\n      3;604,1661,1647;,\n      3;1661,604,618;,\n      3;618,1675,1661;,\n      3;1675,618,632;,\n      3;632,1688,1675;,\n      3;632,1696,1688;,\n      3;1696,632,647;,\n      3;727,1761,1780;,\n      3;1761,727,719;,\n      3;1761,719,714;,\n      3;714,1747,1761;,\n      3;1747,714,700;,\n      3;700,1733,1747;,\n      3;1733,700,686;,\n      3;686,1726,1733;,\n      3;1726,686,667;,\n      3;667,1707,1726;,\n      3;667,1705,1707;,\n      3;1705,667,666;,\n      3;666,1706,1705;,\n      3;1706,666,668;,\n      3;668,1732,1706;,\n      3;1732,668,687;,\n      3;687,1746,1732;,\n      3;1746,687,701;,\n      3;701,1760,1746;,\n      3;1760,701,715;,\n      3;715,1773,1760;,\n      3;715,1780,1773;,\n      3;1780,715,727;,\n      3;803,1845,1859;,\n      3;1845,803,794;,\n      3;794,1831,1845;,\n      3;1831,794,780;,\n      3;780,1817,1831;,\n      3;1817,780,766;,\n      3;766,1810,1817;,\n      3;1810,766,747;,\n      3;747,1791,1810;,\n      3;747,1789,1791;,\n      3;1789,747,746;,\n      3;746,1790,1789;,\n      3;1790,746,748;,\n      3;748,1816,1790;,\n      3;1816,748,767;,\n      3;767,1830,1816;,\n      3;1830,767,781;,\n      3;781,1844,1830;,\n      3;1844,781,795;,\n      3;795,1859,1844;,\n      3;1859,795,803;,\n      3;875,1918,1931;,\n      3;1918,875,866;,\n      3;866,1904,1918;,\n      3;1904,866,852;,\n      3;852,1890,1904;,\n      3;1890,852,838;,\n      3;838,1870,1890;,\n      3;1870,838,823;,\n      3;823,1868,1870;,\n      3;1868,823,822;,\n      3;822,1869,1868;,\n      3;1869,822,824;,\n      3;824,1889,1869;,\n      3;1889,824,839;,\n      3;839,1903,1889;,\n      3;1903,839,853;,\n      3;853,1917,1903;,\n      3;1917,853,867;,\n      3;867,1931,1917;,\n      3;1931,867,875;,\n      3;1048,1990,2003;,\n      3;1990,1048,938;,\n      3;938,1976,1990;,\n      3;1976,938,924;,\n      3;924,1962,1976;,\n      3;1962,924,910;,\n      3;910,1942,1962;,\n      3;1942,910,895;,\n      3;895,1940,1942;,\n      3;1940,895,894;,\n      3;894,1941,1940;,\n      3;1941,894,896;,\n      3;896,1961,1941;,\n      3;1961,896,911;,\n      3;911,1975,1961;,\n      3;1975,911,925;,\n      3;925,1989,1975;,\n      3;1989,925,939;,\n      3;939,2003,1989;,\n      3;2003,939,1048;,\n      3;77,1102,1116;,\n      3;1102,77,69;,\n      3;69,1088,1102;,\n      3;1088,69,55;,\n      3;55,1074,1088;,\n      3;1074,55,41;,\n      3;41,1053,1074;,\n      3;1053,41,21;,\n      3;21,1052,1053;,\n      3;1052,21,20;,\n      3;20,2061,1052;,\n      3;2061,20,26;,\n      3;26,2058,2061;,\n      3;2058,26,991;,\n      3;991,2057,2058;,\n      3;2057,991,992;,\n      3;992,2056,2057;,\n      3;2056,992,993;,\n      3;2056,993,994;,\n      3;994,1116,2056;,\n      3;1116,994,77;,\n      3;149,1174,1188;,\n      3;1174,149,141;,\n      3;141,1160,1174;,\n      3;1160,141,127;,\n      3;127,1146,1160;,\n      3;1146,127,113;,\n      3;113,1125,1146;,\n      3;1125,113,99;,\n      3;99,1124,1125;,\n      3;1124,99,98;,\n      3;98,2055,1124;,\n      3;2055,98,995;,\n      3;995,2054,2055;,\n      3;2054,995,996;,\n      3;996,2053,2054;,\n      3;2053,996,997;,\n      3;997,2052,2053;,\n      3;2052,997,998;,\n      3;998,1188,2052;,\n      3;1188,998,149;,\n      3;225,1247,1267;,\n      3;1247,225,217;,\n      3;1247,217,213;,\n      3;213,1233,1247;,\n      3;1233,213,199;,\n      3;199,1219,1233;,\n      3;1219,199,185;,\n      3;185,1197,1219;,\n      3;1197,185,171;,\n      3;171,1196,1197;,\n      3;1196,171,170;,\n      3;170,2051,1196;,\n      3;2051,170,999;,\n      3;2051,999,1000;,\n      3;1000,2050,2051;,\n      3;2050,1000,1001;,\n      3;1001,2049,2050;,\n      3;2049,1001,1002;,\n      3;1002,2048,2049;,\n      3;2048,1002,1003;,\n      3;1003,1267,2048;,\n      3;1267,1003,225;,\n      3;305,1331,1351;,\n      3;1331,305,297;,\n      3;1331,297,293;,\n      3;293,1317,1331;,\n      3;1317,293,279;,\n      3;279,1303,1317;,\n      3;1303,279,265;,\n      3;265,1297,1303;,\n      3;1297,265,247;,\n      3;247,1276,1297;,\n      3;247,1275,1276;,\n      3;1275,247,246;,\n      3;246,2047,1275;,\n      3;2047,246,1004;,\n      3;1004,2046,2047;,\n      3;2046,1004,1005;,\n      3;1005,2045,2046;,\n      3;2045,1005,1006;,\n      3;1006,2044,2045;,\n      3;2044,1006,1007;,\n      3;1007,1351,2044;,\n      3;1351,1007,305;,\n      3;390,1416,1437;,\n      3;1416,390,382;,\n      3;1416,382,375;,\n      3;375,1402,1416;,\n      3;1402,375,361;,\n      3;361,1388,1402;,\n      3;1388,361,347;,\n      3;347,1381,1388;,\n      3;1381,347,327;,\n      3;327,1360,1381;,\n      3;327,1359,1360;,\n      3;1359,327,326;,\n      3;326,2043,1359;,\n      3;2043,326,1008;,\n      3;1008,2042,2043;,\n      3;2042,1008,1009;,\n      3;1009,2041,2042;,\n      3;2041,1009,1010;,\n      3;1010,2040,2041;,\n      3;2040,1010,1011;,\n      3;1011,2039,2040;,\n      3;1011,1437,2039;,\n      3;1437,1011,390;,\n      3;476,1502,1523;,\n      3;1502,476,468;,\n      3;1502,468,461;,\n      3;461,1488,1502;,\n      3;1488,461,447;,\n      3;447,1474,1488;,\n      3;1474,447,433;,\n      3;433,1467,1474;,\n      3;1467,433,412;,\n      3;412,1446,1467;,\n      3;412,1445,1446;,\n      3;1445,412,411;,\n      3;411,2038,1445;,\n      3;2038,411,1012;,\n      3;1012,2037,2038;,\n      3;2037,1012,1013;,\n      3;1013,2036,2037;,\n      3;2036,1013,1014;,\n      3;1014,2035,2036;,\n      3;2035,1014,1015;,\n      3;1015,1523,2035;,\n      3;1523,1015,476;,\n      3;562,1588,1609;,\n      3;1588,562,554;,\n      3;1588,554,547;,\n      3;547,1574,1588;,\n      3;1574,547,533;,\n      3;533,1560,1574;,\n      3;1560,533,519;,\n      3;519,1553,1560;,\n      3;1553,519,498;,\n      3;498,1532,1553;,\n      3;498,1531,1532;,\n      3;1531,498,497;,\n      3;497,2034,1531;,\n      3;2034,497,1016;,\n      3;1016,2033,2034;,\n      3;2033,1016,1017;,\n      3;1017,2032,2033;,\n      3;2032,1017,1018;,\n      3;1018,2031,2032;,\n      3;2031,1018,1019;,\n      3;1019,1609,2031;,\n      3;1609,1019,562;,\n      3;648,1674,1695;,\n      3;1674,648,640;,\n      3;1674,640,633;,\n      3;633,1660,1674;,\n      3;1660,633,619;,\n      3;619,1646,1660;,\n      3;1646,619,605;,\n      3;605,1639,1646;,\n      3;1639,605,584;,\n      3;584,1618,1639;,\n      3;584,1617,1618;,\n      3;1617,584,583;,\n      3;583,2030,1617;,\n      3;2030,583,1020;,\n      3;2030,1020,1021;,\n      3;1021,2029,2030;,\n      3;2029,1021,1022;,\n      3;1022,2028,2029;,\n      3;2028,1022,1023;,\n      3;1023,2027,2028;,\n      3;2027,1023,1024;,\n      3;1024,1695,2027;,\n      3;1695,1024,648;,\n      3;728,1759,1779;,\n      3;1759,728,720;,\n      3;1759,720,716;,\n      3;716,1745,1759;,\n      3;1745,716,702;,\n      3;702,1731,1745;,\n      3;1731,702,688;,\n      3;688,1725,1731;,\n      3;1725,688,670;,\n      3;670,1704,1725;,\n      3;670,1703,1704;,\n      3;1703,670,669;,\n      3;669,2026,1703;,\n      3;2026,669,1025;,\n      3;1025,2025,2026;,\n      3;2025,1025,1026;,\n      3;1026,2024,2025;,\n      3;2024,1026,1027;,\n      3;1027,2023,2024;,\n      3;2023,1027,1028;,\n      3;1028,1779,2023;,\n      3;1779,1028,728;,\n      3;804,1843,1858;,\n      3;1843,804,796;,\n      3;796,1829,1843;,\n      3;1829,796,782;,\n      3;782,1815,1829;,\n      3;1815,782,768;,\n      3;768,1809,1815;,\n      3;1809,768,750;,\n      3;750,1788,1809;,\n      3;750,1787,1788;,\n      3;1787,750,749;,\n      3;749,2022,1787;,\n      3;2022,749,1029;,\n      3;1029,2021,2022;,\n      3;2021,1029,1030;,\n      3;1030,2020,2021;,\n      3;2020,1030,1031;,\n      3;1031,2019,2020;,\n      3;2019,1031,1032;,\n      3;1032,1858,2019;,\n      3;1858,1032,804;,\n      3;876,1916,1930;,\n      3;1916,876,868;,\n      3;868,1902,1916;,\n      3;1902,868,854;,\n      3;854,1888,1902;,\n      3;1888,854,840;,\n      3;840,1867,1888;,\n      3;1867,840,826;,\n      3;826,1866,1867;,\n      3;1866,826,825;,\n      3;825,2018,1866;,\n      3;2018,825,1033;,\n      3;1033,2017,2018;,\n      3;2017,1033,1034;,\n      3;1034,2016,2017;,\n      3;2016,1034,1035;,\n      3;1035,2015,2016;,\n      3;2015,1035,1036;,\n      3;1036,1930,2015;,\n      3;1930,1036,876;,\n      3;1049,1988,2002;,\n      3;1988,1049,940;,\n      3;940,1974,1988;,\n      3;1974,940,926;,\n      3;926,1960,1974;,\n      3;1960,926,912;,\n      3;912,1939,1960;,\n      3;1939,912,898;,\n      3;898,1938,1939;,\n      3;1938,898,897;,\n      3;897,2014,1938;,\n      3;2014,897,1037;,\n      3;1037,2013,2014;,\n      3;2013,1037,1038;,\n      3;1038,2012,2013;,\n      3;2012,1038,1039;,\n      3;1039,2011,2012;,\n      3;2011,1039,1040;,\n      3;1040,2002,2011;,\n      3;2002,1040,1049;;\n      MeshNormals { // co_nim1 normals\n        4656;\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000004; 0.000002;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000003; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n        -0.000001; 0.000003;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000015; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000007; 0.000003;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000005; 0.000003;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000003; 0.000004;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000;-0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000004; 0.000000;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000004;-1.000000;,\n         0.000002; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000002; 0.000003;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n        -0.000017; 0.000036;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000005;-1.000000;,\n         0.000007;-0.000006;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000001;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000002; 0.000013;-1.000000;,\n         0.000000; 0.000001;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n        -0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n        -0.000001; 0.000002;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000002;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n        -0.000017; 0.000036;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000005;-1.000000;,\n         0.000007;-0.000006;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000001;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n        -0.000002; 0.000013;-1.000000;,\n         0.000000; 0.000001;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n        -0.000001; 0.000005;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000008; 0.000003;-1.000000;,\n        -0.000016; 0.000004;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n         0.000004; 0.000003;-1.000000;,\n        -0.000004; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000000;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n        -0.000001; 0.000002;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000006; 0.000005;-1.000000;,\n         0.000003; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000003; 0.000003;-1.000000;,\n        -0.000007; 0.000004;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000002; 0.000004;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n        -0.000001; 0.000003;-1.000000;,\n         0.000004; 0.000002;-1.000000;,\n         0.000000; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000010;-0.000003; 1.000000;,\n        -0.000006;-0.000005; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000006;-0.000005; 1.000000;,\n         0.000010;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000010;-0.000003; 1.000000;,\n        -0.000006;-0.000005; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000006;-0.000005; 1.000000;,\n         0.000010;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000005;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000005;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000005;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000005;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000005;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000005;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000005;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000005;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000013;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000007;-0.000003; 1.000000;,\n        -0.000012;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000003;-0.000004; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000010;-0.000003; 1.000000;,\n        -0.000006;-0.000005; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000006;-0.000005; 1.000000;,\n         0.000010;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000010;-0.000003; 1.000000;,\n        -0.000006;-0.000005; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000004; 0.000000; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n        -0.000002;-0.000004; 1.000000;,\n        -0.000002;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n        -0.000007;-0.000004; 1.000000;,\n        -0.000013;-0.000004; 1.000000;,\n        -0.000009;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000006;-0.000005; 1.000000;,\n         0.000010;-0.000003; 1.000000;,\n         0.000015;-0.000003; 1.000000;,\n         0.000003;-0.000004; 1.000000;,\n        -0.000043;-0.000004; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n        -0.000004;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n        -0.000052;-0.000266; 1.000000;,\n         0.000001;-0.000001; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000001;-0.000002; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000043;-0.000004; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n         0.000008;-0.000003; 1.000000;,\n        -0.000004;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n         0.000001;-0.000002; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000052;-0.000266; 1.000000;,\n         0.000001;-0.000001; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n        -0.000001;-0.000005; 1.000000;,\n         0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -0.000020;-0.000004; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000004;-0.000003; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n        -0.000000; 0.000000; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n         0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000003; 1.000000;,\n        -0.000001;-0.000002; 1.000000;,\n         0.000000;-0.000007; 1.000000;,\n        -1.000000;-0.000000; 0.000000;,\n        -1.000000; 0.000000;-0.000000;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         1.000000; 0.000000;-0.000000;,\n         1.000000; 0.000000; 0.000000;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n        -0.000001; 0.000004;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000001; 0.000003;-1.000000;,\n        -0.000000; 0.000003;-1.000000;,\n         0.000000; 0.000003;-1.000000;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.707107;-0.707107;-0.000002;,\n         0.707107;-0.707107;-0.000002;,\n         1.000000; 0.000000;-0.000000;,\n         1.000000; 0.000000; 0.000000;,\n         0.707107; 0.707107; 0.000003;,\n         0.707107; 0.707107; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.707107; 0.707107; 0.000003;,\n        -0.707107; 0.707107; 0.000003;,\n        -1.000000;-0.000000; 0.000000;,\n        -1.000000; 0.000000;-0.000000;,\n        -0.707107;-0.707107;-0.000002;,\n        -0.707107;-0.707107;-0.000002;,\n        -0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000002; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000002; 1.000000;,\n        -0.000001;-0.000004; 1.000000;,\n         0.000000;-0.000002; 1.000000;,\n         0.000001;-0.000003; 1.000000;,\n         0.000000;-0.000002; 1.000000;,\n         1.000000; 0.000000; 0.000000;,\n         1.000000; 0.000000;-0.000000;,\n        -0.000000;-1.000000;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -1.000000; 0.000000;-0.000000;,\n        -1.000000;-0.000000; 0.000000;,\n        -0.000000; 1.000000; 0.000004;,\n         0.000000; 1.000000; 0.000004;,\n         0.959903; 0.280333; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945944;-0.324296;-0.004636;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280333; 0.000001;,\n         0.945945; 0.324295; 0.004635;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324294;-0.004635;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280333; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526837; 0.849954;-0.004633;,\n         0.487073; 0.873361; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945944; 0.324297;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945944;-0.324297; 0.004633;,\n        -0.526836;-0.849954;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280333; 0.000001;,\n         0.945945; 0.324295; 0.004635;,\n         0.526837; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526828;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280333; 0.000001;,\n         0.945945; 0.324295; 0.004635;,\n         0.526837; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526828;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959901; 0.280338; 0.000001;,\n         0.945944; 0.324297; 0.004635;,\n         0.526834; 0.849956;-0.004633;,\n         0.487067; 0.873364; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434209; 0.900812; 0.000003;,\n        -0.526822; 0.849942; 0.007524;,\n        -0.781701; 0.623612;-0.007185;,\n        -0.974848; 0.222792; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781703;-0.623610; 0.007185;,\n        -0.526822;-0.849942;-0.007524;,\n        -0.434209;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526822;-0.849942; 0.007518;,\n         0.781700;-0.623614;-0.007189;,\n         0.974848;-0.222791; 0.005971;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849956;-0.004633;,\n         0.487070; 0.873363; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526824; 0.849941; 0.007524;,\n        -0.781701; 0.623612;-0.007184;,\n        -0.974848; 0.222792; 0.005973;,\n        -0.959902; 0.280335; 0.000001;,\n        -0.959902;-0.280334;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781703;-0.623610; 0.007184;,\n        -0.526824;-0.849941;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526824;-0.849941; 0.007518;,\n         0.781701;-0.623612;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526830; 0.849937; 0.007525;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005974;,\n        -0.959902; 0.280337; 0.000001;,\n        -0.959902;-0.280336;-0.000001;,\n        -0.974849;-0.222785;-0.005974;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526830;-0.849938;-0.007525;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526827;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.974849; 0.222784;-0.005972;,\n         0.781706; 0.623606; 0.007188;,\n         0.526827; 0.849939;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526827;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324294;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324294;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.434202; 0.900796;-0.005979;,\n        -0.781706; 0.623606; 0.007193;,\n        -0.945928; 0.324290;-0.007519;,\n        -0.974867; 0.222788; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324294;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945944;-0.324296;-0.004636;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324294;-0.004635;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487073; 0.873361; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945944; 0.324297;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945944;-0.324297; 0.004633;,\n        -0.526836;-0.849954;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526835; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526828;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222785;-0.005972;,\n         0.781707; 0.623604; 0.007189;,\n         0.526826; 0.849940;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526828;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959902; 0.280337; 0.000001;,\n         0.974848; 0.222792;-0.005971;,\n         0.781702; 0.623611; 0.007189;,\n         0.526822; 0.849942;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434209; 0.900812; 0.000003;,\n        -0.526822; 0.849942; 0.007524;,\n        -0.781701; 0.623612;-0.007185;,\n        -0.974848; 0.222792; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781703;-0.623610; 0.007185;,\n        -0.526822;-0.849942;-0.007524;,\n        -0.434209;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526822;-0.849942; 0.007518;,\n         0.781700;-0.623614;-0.007189;,\n         0.974848;-0.222791; 0.005971;,\n         0.959903;-0.280332;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222785;-0.005971;,\n         0.781703; 0.623610; 0.007189;,\n         0.526822; 0.849942;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526824; 0.849941; 0.007524;,\n        -0.781701; 0.623612;-0.007184;,\n        -0.974848; 0.222792; 0.005973;,\n        -0.959902; 0.280335; 0.000001;,\n        -0.959902;-0.280334;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781703;-0.623610; 0.007184;,\n        -0.526824;-0.849941;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526824;-0.849941; 0.007518;,\n         0.781701;-0.623612;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222785;-0.005971;,\n         0.781707; 0.623604; 0.007189;,\n         0.526825; 0.849941;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526830; 0.849937; 0.007525;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005974;,\n        -0.959902; 0.280337; 0.000001;,\n        -0.959902;-0.280336;-0.000001;,\n        -0.974849;-0.222785;-0.005974;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526830;-0.849938;-0.007525;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959904; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526827;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959904; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526827;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.434213;-0.900810;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222784; 0.005972;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959904; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324294;-0.004636;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959904; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000003;,\n        -0.000000;-1.000000;-0.000003;,\n         0.487072;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324294;-0.004636;,\n         0.959904;-0.280330;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945944;-0.324297;-0.004636;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487069;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004635;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487073; 0.873361; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945944; 0.324296;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945944;-0.324297; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434209;-0.900812;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526835; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526826;-0.849940;-0.007525;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434210;-0.900812;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280331; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007189;,\n         0.526826; 0.849940;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526826;-0.849940;-0.007525;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434210;-0.900812;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959902; 0.280336; 0.000001;,\n         0.974848; 0.222792;-0.005971;,\n         0.781702; 0.623611; 0.007189;,\n         0.526822; 0.849942;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434209; 0.900812; 0.000003;,\n        -0.526822; 0.849942; 0.007524;,\n        -0.781701; 0.623612;-0.007185;,\n        -0.974848; 0.222791; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781703;-0.623610; 0.007185;,\n        -0.526820;-0.849944;-0.007524;,\n        -0.434209;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434210;-0.900812;-0.000003;,\n         0.526822;-0.849942; 0.007518;,\n         0.781700;-0.623614;-0.007189;,\n         0.974848;-0.222792; 0.005971;,\n         0.959903;-0.280332;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222786;-0.005971;,\n         0.781703; 0.623610; 0.007189;,\n         0.526822; 0.849942;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526824; 0.849941; 0.007524;,\n        -0.781701; 0.623612;-0.007184;,\n        -0.974848; 0.222791; 0.005973;,\n        -0.959902; 0.280335; 0.000001;,\n        -0.959902;-0.280335;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781703;-0.623610; 0.007184;,\n        -0.526822;-0.849942;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434210;-0.900812;-0.000003;,\n         0.526824;-0.849941; 0.007518;,\n         0.781701;-0.623612;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222786;-0.005971;,\n         0.781708; 0.623604; 0.007189;,\n         0.526825; 0.849941;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526830; 0.849938; 0.007525;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005974;,\n        -0.959902; 0.280337; 0.000001;,\n        -0.959902;-0.280337;-0.000001;,\n        -0.974849;-0.222785;-0.005974;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526828;-0.849939;-0.007525;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434210;-0.900812;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280330;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526825;-0.849941;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434210;-0.900812;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280330;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526825;-0.849941;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526834; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.945943; 0.324298; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487083; 0.873356; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487085; 0.873355; 0.000003;,\n        -0.526834; 0.849955; 0.004637;,\n        -0.945944; 0.324297;-0.004634;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959904;-0.280328;-0.000001;,\n        -0.945944;-0.324296; 0.004634;,\n        -0.526834;-0.849955;-0.004637;,\n        -0.487085;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487083;-0.873356;-0.000003;,\n         0.526836;-0.849954; 0.004631;,\n         0.945944;-0.324297;-0.004636;,\n         0.959904;-0.280328;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487082; 0.873356; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487085; 0.873355; 0.000003;,\n        -0.526834; 0.849955; 0.004637;,\n        -0.945944; 0.324297;-0.004634;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959904;-0.280328;-0.000001;,\n        -0.945944;-0.324296; 0.004634;,\n        -0.526834;-0.849955;-0.004637;,\n        -0.487085;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487082;-0.873356;-0.000003;,\n         0.526836;-0.849954; 0.004631;,\n         0.945944;-0.324296;-0.004636;,\n         0.959904;-0.280328;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.945943; 0.324298; 0.004636;,\n         0.526837; 0.849954;-0.004631;,\n         0.487083; 0.873356; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526834; 0.849955; 0.004637;,\n        -0.945943; 0.324298;-0.004634;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945944;-0.324298; 0.004634;,\n        -0.526839;-0.849953;-0.004638;,\n        -0.487086;-0.873354;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434201;-0.900816;-0.000003;,\n         0.526830;-0.849938; 0.007519;,\n         0.781725;-0.623583;-0.007189;,\n         0.974848;-0.222790; 0.005971;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526837; 0.849954;-0.004631;,\n         0.487083; 0.873356; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526835; 0.849955; 0.004637;,\n        -0.945944; 0.324297;-0.004634;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.974848;-0.222790;-0.005973;,\n        -0.781725;-0.623583; 0.007185;,\n        -0.526830;-0.849937;-0.007525;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434202;-0.900816;-0.000003;,\n         0.526830;-0.849937; 0.007519;,\n         0.781725;-0.623583;-0.007189;,\n         0.974848;-0.222790; 0.005971;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974848; 0.222791;-0.005971;,\n         0.781725; 0.623583; 0.007189;,\n         0.526830; 0.849937;-0.007519;,\n         0.434202; 0.900816; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526830; 0.849937; 0.007525;,\n        -0.781725; 0.623583;-0.007185;,\n        -0.974848; 0.222791; 0.005973;,\n        -0.959903; 0.280331; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.974848;-0.222790;-0.005973;,\n        -0.781725;-0.623583; 0.007185;,\n        -0.526830;-0.849937;-0.007525;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434202;-0.900816;-0.000003;,\n         0.526830;-0.849937; 0.007519;,\n         0.781725;-0.623583;-0.007189;,\n         0.974848;-0.222790; 0.005971;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.974846; 0.222798;-0.005970;,\n         0.781719; 0.623590; 0.007190;,\n         0.526822; 0.849942;-0.007518;,\n         0.434202; 0.900816; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434205; 0.900814; 0.000003;,\n        -0.526820; 0.849944; 0.007524;,\n        -0.781720; 0.623589;-0.007186;,\n        -0.974847; 0.222798; 0.005972;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.974847;-0.222797;-0.005972;,\n        -0.781720;-0.623588; 0.007185;,\n        -0.526824;-0.849941;-0.007525;,\n        -0.434205;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434202;-0.900816;-0.000003;,\n         0.526824;-0.849941; 0.007519;,\n         0.781719;-0.623590;-0.007190;,\n         0.974847;-0.222797; 0.005970;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.974848; 0.222791;-0.005971;,\n         0.781720; 0.623588; 0.007190;,\n         0.526824; 0.849941;-0.007519;,\n         0.434202; 0.900816; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526822; 0.849942; 0.007525;,\n        -0.781720; 0.623589;-0.007185;,\n        -0.974847; 0.222798; 0.005972;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280333;-0.000001;,\n        -0.974847;-0.222797;-0.005972;,\n        -0.781720;-0.623588; 0.007185;,\n        -0.526827;-0.849939;-0.007525;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434202;-0.900816;-0.000003;,\n         0.526827;-0.849940; 0.007519;,\n         0.781720;-0.623588;-0.007190;,\n         0.974848;-0.222790; 0.005971;,\n         0.959904;-0.280328;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.974848; 0.222791;-0.005971;,\n         0.781725; 0.623583; 0.007189;,\n         0.526829; 0.849938;-0.007519;,\n         0.434202; 0.900816; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526832; 0.849936; 0.007525;,\n        -0.781725; 0.623583;-0.007184;,\n        -0.974848; 0.222791; 0.005973;,\n        -0.959902; 0.280336; 0.000001;,\n        -0.959902;-0.280335;-0.000001;,\n        -0.974848;-0.222790;-0.005973;,\n        -0.781725;-0.623583; 0.007184;,\n        -0.526832;-0.849936;-0.007525;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434202;-0.900816;-0.000003;,\n         0.526829;-0.849938; 0.007519;,\n         0.781725;-0.623583;-0.007189;,\n         0.974848;-0.222790; 0.005971;,\n         0.959904;-0.280328;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487083; 0.873356; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526834; 0.849955; 0.004637;,\n        -0.945944; 0.324297;-0.004634;,\n        -0.959904; 0.280328; 0.000001;,\n        -0.959904;-0.280329;-0.000001;,\n        -0.974848;-0.222790;-0.005973;,\n        -0.781725;-0.623583; 0.007185;,\n        -0.526829;-0.849938;-0.007525;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434202;-0.900816;-0.000003;,\n         0.526829;-0.849938; 0.007519;,\n         0.781725;-0.623583;-0.007189;,\n         0.974848;-0.222790; 0.005971;,\n         0.959904;-0.280328;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487083; 0.873356; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526834; 0.849955; 0.004637;,\n        -0.945944; 0.324297;-0.004634;,\n        -0.959904; 0.280328; 0.000001;,\n        -0.959904;-0.280329;-0.000001;,\n        -0.974848;-0.222790;-0.005973;,\n        -0.781725;-0.623583; 0.007185;,\n        -0.526829;-0.849938;-0.007525;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487083;-0.873356;-0.000003;,\n         0.526838;-0.849953; 0.004631;,\n         0.945944;-0.324296;-0.004636;,\n         0.959904;-0.280328;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487083; 0.873356; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526834; 0.849955; 0.004637;,\n        -0.945944; 0.324297;-0.004634;,\n        -0.959904; 0.280328; 0.000001;,\n        -0.959905;-0.280327;-0.000001;,\n        -0.945944;-0.324296; 0.004634;,\n        -0.526834;-0.849955;-0.004637;,\n        -0.487086;-0.873354;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487083;-0.873356;-0.000003;,\n         0.526836;-0.849954; 0.004631;,\n         0.945944;-0.324296;-0.004636;,\n         0.959905;-0.280327;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487083; 0.873356; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526834; 0.849955; 0.004637;,\n        -0.945944; 0.324297;-0.004634;,\n        -0.959904; 0.280328; 0.000001;,\n        -0.959905;-0.280327;-0.000001;,\n        -0.945944;-0.324296; 0.004634;,\n        -0.526834;-0.849955;-0.004637;,\n        -0.487086;-0.873354;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487083;-0.873356;-0.000003;,\n         0.526836;-0.849954; 0.004631;,\n         0.945944;-0.324296;-0.004636;,\n         0.959905;-0.280327;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487086; 0.873354; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487085; 0.873355; 0.000003;,\n        -0.526836; 0.849954; 0.004637;,\n        -0.945944; 0.324296;-0.004634;,\n        -0.959904; 0.280328; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945944;-0.324297; 0.004634;,\n        -0.526835;-0.849955;-0.004637;,\n        -0.487084;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487084;-0.873355;-0.000003;,\n         0.526835;-0.849955; 0.004631;,\n         0.945943;-0.324299;-0.004636;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.945944; 0.324296; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487085; 0.873355; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487085; 0.873355; 0.000003;,\n        -0.526836; 0.849954; 0.004637;,\n        -0.945944; 0.324296;-0.004634;,\n        -0.959904; 0.280328; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945944;-0.324297; 0.004634;,\n        -0.526835;-0.849955;-0.004637;,\n        -0.487084;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487084;-0.873355;-0.000003;,\n         0.526835;-0.849955; 0.004631;,\n         0.945944;-0.324298;-0.004636;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.974848; 0.222790;-0.005971;,\n         0.781725; 0.623583; 0.007189;,\n         0.526830; 0.849938;-0.007519;,\n         0.434205; 0.900814; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526839; 0.849953; 0.004637;,\n        -0.945944; 0.324298;-0.004634;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945943;-0.324298; 0.004634;,\n        -0.526835;-0.849955;-0.004637;,\n        -0.487084;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487085;-0.873355;-0.000003;,\n         0.526836;-0.849955; 0.004631;,\n         0.945943;-0.324299;-0.004636;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.974848; 0.222790;-0.005971;,\n         0.781725; 0.623583; 0.007189;,\n         0.526830; 0.849937;-0.007519;,\n         0.434206; 0.900814; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526830; 0.849937; 0.007525;,\n        -0.781723; 0.623585;-0.007185;,\n        -0.974849; 0.222789; 0.005973;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945944;-0.324297; 0.004634;,\n        -0.526836;-0.849954;-0.004637;,\n        -0.487084;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487084;-0.873355;-0.000003;,\n         0.526836;-0.849954; 0.004631;,\n         0.945944;-0.324298;-0.004636;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.974848; 0.222790;-0.005971;,\n         0.781725; 0.623583; 0.007189;,\n         0.526830; 0.849937;-0.007519;,\n         0.434206; 0.900814; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526830; 0.849937; 0.007525;,\n        -0.781723; 0.623585;-0.007185;,\n        -0.974849; 0.222789; 0.005973;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.974848;-0.222791;-0.005973;,\n        -0.781724;-0.623584; 0.007185;,\n        -0.526830;-0.849937;-0.007525;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434204;-0.900815;-0.000003;,\n         0.526830;-0.849937; 0.007519;,\n         0.781724;-0.623584;-0.007189;,\n         0.974848;-0.222791; 0.005971;,\n         0.959904;-0.280331;-0.000001;,\n         0.959904; 0.280329; 0.000001;,\n         0.974847; 0.222797;-0.005970;,\n         0.781719; 0.623590; 0.007190;,\n         0.526824; 0.849941;-0.007519;,\n         0.434206; 0.900814; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434205; 0.900814; 0.000003;,\n        -0.526824; 0.849941; 0.007525;,\n        -0.781718; 0.623591;-0.007185;,\n        -0.974847; 0.222796; 0.005972;,\n        -0.959904; 0.280329; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.974847;-0.222798;-0.005972;,\n        -0.781719;-0.623590; 0.007186;,\n        -0.526821;-0.849943;-0.007524;,\n        -0.434205;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434204;-0.900815;-0.000003;,\n         0.526821;-0.849943; 0.007518;,\n         0.781718;-0.623591;-0.007190;,\n         0.974846;-0.222798; 0.005970;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.974848; 0.222790;-0.005971;,\n         0.781720; 0.623588; 0.007190;,\n         0.526827; 0.849940;-0.007519;,\n         0.434206; 0.900814; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526827; 0.849939; 0.007525;,\n        -0.781718; 0.623591;-0.007185;,\n        -0.974847; 0.222796; 0.005972;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280333;-0.000001;,\n        -0.974847;-0.222798;-0.005972;,\n        -0.781719;-0.623590; 0.007185;,\n        -0.526823;-0.849942;-0.007524;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434204;-0.900815;-0.000003;,\n         0.526823;-0.849942; 0.007518;,\n         0.781719;-0.623590;-0.007190;,\n         0.974848;-0.222791; 0.005971;,\n         0.959904;-0.280328;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.974848; 0.222790;-0.005971;,\n         0.781725; 0.623583; 0.007189;,\n         0.526829; 0.849938;-0.007519;,\n         0.434206; 0.900814; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526832; 0.849936; 0.007525;,\n        -0.781723; 0.623585;-0.007184;,\n        -0.974849; 0.222789; 0.005973;,\n        -0.959903; 0.280334; 0.000001;,\n        -0.959902;-0.280336;-0.000001;,\n        -0.974848;-0.222791;-0.005973;,\n        -0.781724;-0.623584; 0.007184;,\n        -0.526832;-0.849936;-0.007525;,\n        -0.434206;-0.900814;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434204;-0.900815;-0.000003;,\n         0.526829;-0.849938; 0.007519;,\n         0.781724;-0.623584;-0.007189;,\n         0.974848;-0.222791; 0.005971;,\n         0.959904;-0.280329;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.974848; 0.222790;-0.005971;,\n         0.781725; 0.623583; 0.007189;,\n         0.526829; 0.849938;-0.007519;,\n         0.434206; 0.900814; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526829; 0.849938; 0.007525;,\n        -0.781723; 0.623585;-0.007185;,\n        -0.974849; 0.222789; 0.005973;,\n        -0.959904; 0.280328; 0.000001;,\n        -0.959904;-0.280328;-0.000001;,\n        -0.945944;-0.324297; 0.004634;,\n        -0.526835;-0.849955;-0.004637;,\n        -0.487084;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487084;-0.873355;-0.000003;,\n         0.526835;-0.849955; 0.004631;,\n         0.945944;-0.324298;-0.004636;,\n         0.959904;-0.280328;-0.000001;,\n         0.959904; 0.280328; 0.000001;,\n         0.945944; 0.324296; 0.004636;,\n         0.526838; 0.849953;-0.004631;,\n         0.487086; 0.873354; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434206; 0.900814; 0.000003;,\n        -0.526829; 0.849938; 0.007525;,\n        -0.781723; 0.623585;-0.007185;,\n        -0.974849; 0.222789; 0.005973;,\n        -0.959904; 0.280328; 0.000001;,\n        -0.959904;-0.280328;-0.000001;,\n        -0.945944;-0.324297; 0.004634;,\n        -0.526835;-0.849955;-0.004637;,\n        -0.487084;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487084;-0.873355;-0.000003;,\n         0.526835;-0.849955; 0.004631;,\n         0.945944;-0.324298;-0.004636;,\n         0.959904;-0.280328;-0.000001;,\n         0.959905; 0.280327; 0.000001;,\n         0.945944; 0.324296; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487086; 0.873354; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526836; 0.849954; 0.004637;,\n        -0.945944; 0.324296;-0.004634;,\n        -0.959905; 0.280327; 0.000001;,\n        -0.959904;-0.280328;-0.000001;,\n        -0.945944;-0.324297; 0.004634;,\n        -0.526835;-0.849955;-0.004637;,\n        -0.487084;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487084;-0.873355;-0.000003;,\n         0.526835;-0.849955; 0.004631;,\n         0.945944;-0.324298;-0.004636;,\n         0.959904;-0.280328;-0.000001;,\n         0.959905; 0.280327; 0.000001;,\n         0.945944; 0.324296; 0.004636;,\n         0.526836; 0.849954;-0.004631;,\n         0.487086; 0.873354; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487086; 0.873354; 0.000003;,\n        -0.526836; 0.849954; 0.004637;,\n        -0.945944; 0.324296;-0.004634;,\n        -0.959905; 0.280327; 0.000001;,\n        -0.959904;-0.280328;-0.000001;,\n        -0.945944;-0.324297; 0.004634;,\n        -0.526835;-0.849955;-0.004637;,\n        -0.487084;-0.873355;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487084;-0.873355;-0.000003;,\n         0.526835;-0.849955; 0.004631;,\n         0.945944;-0.324298;-0.004636;,\n         0.959904;-0.280328;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945944; 0.324296; 0.004636;,\n         0.526835; 0.849955;-0.004633;,\n         0.487070; 0.873363; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526835; 0.849955; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526835;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945944;-0.324297;-0.004636;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945945; 0.324295; 0.004635;,\n         0.526835; 0.849955;-0.004633;,\n         0.487069; 0.873363; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526835; 0.849955; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526835;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004635;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222785;-0.005972;,\n         0.781707; 0.623605; 0.007188;,\n         0.526826; 0.849940;-0.007518;,\n         0.434207; 0.900813; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526835; 0.849955; 0.004639;,\n        -0.945944; 0.324296;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945944;-0.324297; 0.004633;,\n        -0.526835;-0.849955;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434211;-0.900811;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222786; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222785;-0.005972;,\n         0.781707; 0.623605; 0.007188;,\n         0.526827; 0.849939;-0.007518;,\n         0.434208; 0.900813; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434211;-0.900811;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222786; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222785;-0.005972;,\n         0.781707; 0.623605; 0.007188;,\n         0.526827; 0.849939;-0.007518;,\n         0.434208; 0.900813; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781706;-0.623605; 0.007184;,\n        -0.526827;-0.849939;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434211;-0.900811;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222786; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974848; 0.222792;-0.005971;,\n         0.781701; 0.623612; 0.007189;,\n         0.526821; 0.849943;-0.007518;,\n         0.434208; 0.900813; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434209; 0.900812; 0.000003;,\n        -0.526821; 0.849943; 0.007524;,\n        -0.781701; 0.623612;-0.007185;,\n        -0.974848; 0.222791; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959902;-0.280335;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781702;-0.623611; 0.007184;,\n        -0.526823;-0.849942;-0.007524;,\n        -0.434209;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434211;-0.900811;-0.000003;,\n         0.526822;-0.849942; 0.007518;,\n         0.781700;-0.623614;-0.007189;,\n         0.974848;-0.222792; 0.005971;,\n         0.959903;-0.280332;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222785;-0.005972;,\n         0.781702; 0.623611; 0.007189;,\n         0.526823; 0.849942;-0.007518;,\n         0.434208; 0.900813; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526823; 0.849942; 0.007524;,\n        -0.781701; 0.623612;-0.007184;,\n        -0.974848; 0.222791; 0.005973;,\n        -0.959902; 0.280335; 0.000001;,\n        -0.959902;-0.280335;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781702;-0.623611; 0.007184;,\n        -0.526823;-0.849942;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434211;-0.900811;-0.000003;,\n         0.526824;-0.849941; 0.007518;,\n         0.781701;-0.623612;-0.007189;,\n         0.974849;-0.222786; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222785;-0.005972;,\n         0.781707; 0.623605; 0.007189;,\n         0.526826; 0.849940;-0.007518;,\n         0.434208; 0.900813; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526829; 0.849938; 0.007525;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005974;,\n        -0.959902; 0.280337; 0.000001;,\n        -0.959902;-0.280337;-0.000001;,\n        -0.974849;-0.222785;-0.005974;,\n        -0.781706;-0.623605; 0.007184;,\n        -0.526829;-0.849938;-0.007525;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434211;-0.900811;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222786; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222785;-0.005972;,\n         0.781707; 0.623605; 0.007189;,\n         0.526826; 0.849940;-0.007518;,\n         0.434208; 0.900813; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526826; 0.849940; 0.007524;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526835;-0.849955;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434211;-0.900811;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781706;-0.623606;-0.007189;,\n         0.974849;-0.222786; 0.005972;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526835; 0.849955;-0.004633;,\n         0.487070; 0.873363; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526826; 0.849940; 0.007524;,\n        -0.781705; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526835;-0.849955;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526835; 0.849955;-0.004633;,\n         0.487070; 0.873363; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526835; 0.849955; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526835;-0.849955;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526835; 0.849955;-0.004633;,\n         0.487070; 0.873363; 0.000003;,\n         0.000000; 1.000000; 0.000004;,\n        -0.000000; 1.000000; 0.000004;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526835; 0.849955; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526835;-0.849955;-0.004638;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526835; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945944;-0.324297;-0.004636;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945945; 0.324295; 0.004635;,\n         0.526835; 0.849955;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487069;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004635;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007189;,\n         0.526826; 0.849940;-0.007518;,\n         0.434209; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434209; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623605;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945944;-0.324297; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434207;-0.900813;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781707;-0.623605;-0.007188;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007189;,\n         0.526827; 0.849939;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781706; 0.623605;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526835;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434208;-0.900813;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781707;-0.623605;-0.007188;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007189;,\n         0.526827; 0.849939;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781706; 0.623605;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280332;-0.000001;,\n        -0.945944;-0.324297; 0.004633;,\n        -0.526835;-0.849955;-0.004638;,\n        -0.487073;-0.873361;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434208;-0.900813;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781707;-0.623605;-0.007188;,\n         0.974849;-0.222785; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974848; 0.222792;-0.005971;,\n         0.781702; 0.623611; 0.007189;,\n         0.526821; 0.849943;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434209; 0.900812; 0.000003;,\n        -0.526822; 0.849942; 0.007524;,\n        -0.781702; 0.623611;-0.007185;,\n        -0.974848; 0.222792; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959902;-0.280335;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781703;-0.623610; 0.007184;,\n        -0.526821;-0.849943;-0.007524;,\n        -0.434209;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434208;-0.900813;-0.000003;,\n         0.526822;-0.849942; 0.007518;,\n         0.781701;-0.623612;-0.007189;,\n         0.974848;-0.222792; 0.005971;,\n         0.959903;-0.280332;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781703; 0.623610; 0.007189;,\n         0.526823; 0.849942;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526824; 0.849941; 0.007524;,\n        -0.781702; 0.623611;-0.007184;,\n        -0.974848; 0.222792; 0.005973;,\n        -0.959902; 0.280335; 0.000001;,\n        -0.959902;-0.280335;-0.000001;,\n        -0.974848;-0.222792;-0.005973;,\n        -0.781703;-0.623610; 0.007184;,\n        -0.526822;-0.849942;-0.007524;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434208;-0.900813;-0.000003;,\n         0.526824;-0.849941; 0.007518;,\n         0.781702;-0.623611;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007189;,\n         0.526826; 0.849940;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526830; 0.849938; 0.007525;,\n        -0.781706; 0.623605;-0.007184;,\n        -0.974849; 0.222785; 0.005974;,\n        -0.959902; 0.280337; 0.000001;,\n        -0.959902;-0.280337;-0.000001;,\n        -0.974849;-0.222785;-0.005974;,\n        -0.781707;-0.623604; 0.007184;,\n        -0.526828;-0.849939;-0.007525;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434208;-0.900813;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781707;-0.623605;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007189;,\n         0.526826; 0.849940;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623605;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959904; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434208;-0.900813;-0.000003;,\n         0.526827;-0.849939; 0.007518;,\n         0.781707;-0.623605;-0.007189;,\n         0.974849;-0.222785; 0.005972;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526835; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623605;-0.007184;,\n        -0.974849; 0.222785; 0.005973;,\n        -0.959904; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526835; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487071; 0.873362; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959904; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959904;-0.280330;-0.000001;,\n         0.959904; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526835; 0.849955;-0.004632;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487071; 0.873362; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324295;-0.004633;,\n        -0.959904; 0.280330; 0.000001;,\n        -0.959904;-0.280330;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526834;-0.849955;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959904;-0.280330;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945944; 0.324297; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280333;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.434201;-0.900796;-0.005986;,\n         0.781707;-0.623605; 0.007188;,\n         0.945927;-0.324291;-0.007521;,\n         0.974867;-0.222789;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.945945; 0.324295; 0.004635;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487069; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280333;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487070;-0.873363;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004635;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007188;,\n         0.526827; 0.849939;-0.007519;,\n         0.434209; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945944; 0.324296;-0.004633;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280333;-0.000001;,\n        -0.974849;-0.222785;-0.005973;,\n        -0.781707;-0.623605; 0.007184;,\n        -0.526827;-0.849939;-0.007525;,\n        -0.434209;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487072;-0.873362;-0.000003;,\n         0.526837;-0.849954; 0.004633;,\n         0.945944;-0.324297;-0.004636;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007188;,\n         0.526828; 0.849939;-0.007519;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280333;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526837;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526837;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004635;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007188;,\n         0.526828; 0.849939;-0.007519;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526828; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959903;-0.280333;-0.000001;,\n        -0.945944;-0.324297; 0.004633;,\n        -0.526837;-0.849954;-0.004639;,\n        -0.487073;-0.873361;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.434210;-0.900812;-0.000003;,\n         0.526828;-0.849939; 0.007518;,\n         0.781707;-0.623605;-0.007188;,\n         0.974849;-0.222786; 0.005972;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280332; 0.000001;,\n         0.974848; 0.222792;-0.005971;,\n         0.781702; 0.623611; 0.007189;,\n         0.526822; 0.849942;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434209; 0.900812; 0.000003;,\n        -0.526822; 0.849942; 0.007524;,\n        -0.781701; 0.623612;-0.007185;,\n        -0.974848; 0.222791; 0.005973;,\n        -0.959903; 0.280332; 0.000001;,\n        -0.959902;-0.280336;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526833;-0.849956;-0.004639;,\n        -0.487067;-0.873365;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487066;-0.873365;-0.000003;,\n         0.526832;-0.849957; 0.004633;,\n         0.945944;-0.324297;-0.004636;,\n         0.959903;-0.280332;-0.000001;,\n         0.959903; 0.280330; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781703; 0.623610; 0.007189;,\n         0.526824; 0.849941;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526824; 0.849941; 0.007524;,\n        -0.781701; 0.623612;-0.007184;,\n        -0.974848; 0.222791; 0.005973;,\n        -0.959902; 0.280335; 0.000001;,\n        -0.959902;-0.280336;-0.000001;,\n        -0.945945;-0.324294; 0.004633;,\n        -0.526834;-0.849956;-0.004639;,\n        -0.487067;-0.873365;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487068;-0.873364;-0.000003;,\n         0.526834;-0.849956; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280330; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007189;,\n         0.526827; 0.849939;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526830; 0.849937; 0.007525;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005974;,\n        -0.959902; 0.280337; 0.000001;,\n        -0.959902;-0.280337;-0.000001;,\n        -0.974849;-0.222785;-0.005974;,\n        -0.781707;-0.623605; 0.007184;,\n        -0.526830;-0.849937;-0.007525;,\n        -0.434210;-0.900812;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280330; 0.000001;,\n         0.974849; 0.222786;-0.005972;,\n         0.781708; 0.623604; 0.007189;,\n         0.526827; 0.849939;-0.007518;,\n         0.434210; 0.900812; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.434210; 0.900812; 0.000003;,\n        -0.526827; 0.849939; 0.007524;,\n        -0.781706; 0.623606;-0.007184;,\n        -0.974849; 0.222784; 0.005973;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;,\n         0.959903; 0.280330; 0.000001;,\n         0.945945; 0.324295; 0.004636;,\n         0.526836; 0.849954;-0.004633;,\n         0.487072; 0.873362; 0.000003;,\n         0.000000; 1.000000; 0.000003;,\n        -0.000000; 1.000000; 0.000003;,\n        -0.487070; 0.873363; 0.000003;,\n        -0.526836; 0.849954; 0.004639;,\n        -0.945945; 0.324294;-0.004633;,\n        -0.959903; 0.280330; 0.000001;,\n        -0.959903;-0.280331;-0.000001;,\n        -0.945945;-0.324295; 0.004633;,\n        -0.526836;-0.849954;-0.004639;,\n        -0.487072;-0.873362;-0.000003;,\n         0.000000;-1.000000;-0.000004;,\n        -0.000000;-1.000000;-0.000004;,\n         0.487071;-0.873362;-0.000003;,\n         0.526836;-0.849954; 0.004633;,\n         0.945945;-0.324295;-0.004636;,\n         0.959903;-0.280330;-0.000001;;\n        4656;\n        3;0,0,0;,\n        3;1,1,1;,\n        3;2,2,2;,\n        3;3,3,3;,\n        3;4,4,4;,\n        3;5,5,5;,\n        3;6,6,6;,\n        3;7,7,7;,\n        3;8,8,8;,\n        3;9,9,9;,\n        3;10,10,10;,\n        3;11,11,11;,\n        3;12,12,12;,\n        3;13,13,13;,\n        3;14,14,14;,\n        3;15,15,15;,\n        3;16,16,16;,\n        3;17,17,17;,\n        3;18,18,18;,\n        3;19,19,19;,\n        3;20,20,20;,\n        3;21,21,21;,\n        3;22,22,22;,\n        3;23,23,23;,\n        3;24,24,24;,\n        3;25,25,25;,\n        3;26,26,26;,\n        3;27,27,27;,\n        3;28,28,28;,\n        3;29,29,29;,\n        3;30,30,30;,\n        3;31,31,31;,\n        3;32,32,32;,\n        3;33,33,33;,\n        3;34,34,34;,\n        3;35,35,35;,\n        3;36,36,36;,\n        3;37,37,37;,\n        3;38,38,38;,\n        3;39,39,39;,\n        3;40,40,40;,\n        3;41,41,41;,\n        3;42,42,42;,\n        3;43,43,43;,\n        3;44,44,44;,\n        3;45,45,45;,\n        3;46,46,46;,\n        3;47,47,47;,\n        3;48,48,48;,\n        3;49,49,49;,\n        3;50,50,50;,\n        3;51,51,51;,\n        3;52,52,52;,\n        3;53,53,53;,\n        3;54,54,54;,\n        3;55,55,55;,\n        3;56,56,56;,\n        3;57,57,57;,\n        3;58,58,58;,\n        3;59,59,59;,\n        3;60,60,60;,\n        3;61,61,61;,\n        3;62,62,62;,\n        3;63,63,63;,\n        3;64,64,64;,\n        3;65,65,65;,\n        3;66,66,66;,\n        3;67,67,67;,\n        3;68,68,68;,\n        3;69,69,69;,\n        3;70,70,70;,\n        3;71,71,71;,\n        3;72,72,72;,\n        3;73,73,73;,\n        3;74,74,74;,\n        3;75,75,75;,\n        3;76,76,76;,\n        3;77,77,77;,\n        3;78,78,78;,\n        3;79,79,79;,\n        3;80,80,80;,\n        3;81,81,81;,\n        3;82,82,82;,\n        3;83,83,83;,\n        3;84,84,84;,\n        3;85,85,85;,\n        3;86,86,86;,\n        3;87,87,87;,\n        3;88,88,88;,\n        3;89,89,89;,\n        3;90,90,90;,\n        3;91,91,91;,\n        3;92,92,92;,\n        3;93,93,93;,\n        3;94,94,94;,\n        3;95,95,95;,\n        3;96,96,96;,\n        3;97,97,97;,\n        3;98,98,98;,\n        3;99,99,99;,\n        3;100,100,100;,\n        3;101,101,101;,\n        3;102,102,102;,\n        3;103,103,103;,\n        3;104,104,104;,\n        3;105,105,105;,\n        3;106,106,106;,\n        3;107,107,107;,\n        3;108,108,108;,\n        3;109,109,109;,\n        3;110,110,110;,\n        3;111,111,111;,\n        3;112,112,112;,\n        3;113,113,113;,\n        3;114,114,114;,\n        3;115,115,115;,\n        3;116,116,116;,\n        3;117,117,117;,\n        3;118,118,118;,\n        3;119,119,119;,\n        3;120,120,120;,\n        3;121,121,121;,\n        3;122,122,122;,\n        3;123,123,123;,\n        3;124,124,124;,\n        3;125,125,125;,\n        3;126,126,126;,\n        3;127,127,127;,\n        3;128,128,128;,\n        3;129,129,129;,\n        3;130,130,130;,\n        3;131,131,131;,\n        3;132,132,132;,\n        3;133,133,133;,\n        3;134,134,134;,\n        3;135,135,135;,\n        3;136,136,136;,\n        3;137,137,137;,\n        3;138,138,138;,\n        3;139,139,139;,\n        3;140,140,140;,\n        3;141,141,141;,\n        3;142,142,142;,\n        3;143,143,143;,\n        3;144,144,144;,\n        3;145,145,145;,\n        3;146,146,146;,\n        3;147,147,147;,\n        3;148,148,148;,\n        3;149,149,149;,\n        3;150,150,150;,\n        3;151,151,151;,\n        3;152,152,152;,\n        3;153,153,153;,\n        3;154,154,154;,\n        3;155,155,155;,\n        3;156,156,156;,\n        3;157,157,157;,\n        3;158,158,158;,\n        3;159,159,159;,\n        3;160,160,160;,\n        3;161,161,161;,\n        3;162,162,162;,\n        3;163,163,163;,\n        3;164,164,164;,\n        3;165,165,165;,\n        3;166,166,166;,\n        3;167,167,167;,\n        3;168,168,168;,\n        3;169,169,169;,\n        3;170,170,170;,\n        3;171,171,171;,\n        3;172,172,172;,\n        3;173,173,173;,\n        3;174,174,174;,\n        3;175,175,175;,\n        3;176,176,176;,\n        3;177,177,177;,\n        3;178,178,178;,\n        3;179,179,179;,\n        3;180,180,180;,\n        3;181,181,181;,\n        3;182,182,182;,\n        3;183,183,183;,\n        3;184,184,184;,\n        3;185,185,185;,\n        3;186,186,186;,\n        3;187,187,187;,\n        3;188,188,188;,\n        3;189,189,189;,\n        3;190,190,190;,\n        3;191,191,191;,\n        3;192,192,192;,\n        3;193,193,193;,\n        3;194,194,194;,\n        3;195,195,195;,\n        3;196,196,196;,\n        3;197,197,197;,\n        3;198,198,198;,\n        3;199,199,199;,\n        3;200,200,200;,\n        3;201,201,201;,\n        3;202,202,202;,\n        3;203,203,203;,\n        3;204,204,204;,\n        3;205,205,205;,\n        3;206,206,206;,\n        3;207,207,207;,\n        3;208,208,208;,\n        3;209,209,209;,\n        3;210,210,210;,\n        3;211,211,211;,\n        3;212,212,212;,\n        3;213,213,213;,\n        3;214,214,214;,\n        3;215,215,215;,\n        3;216,216,216;,\n        3;217,217,217;,\n        3;218,218,218;,\n        3;219,219,219;,\n        3;220,220,220;,\n        3;221,221,221;,\n        3;222,222,222;,\n        3;223,223,223;,\n        3;224,224,224;,\n        3;225,225,225;,\n        3;226,226,226;,\n        3;227,227,227;,\n        3;228,228,228;,\n        3;229,229,229;,\n        3;230,230,230;,\n        3;231,231,231;,\n        3;232,232,232;,\n        3;233,233,233;,\n        3;234,234,234;,\n        3;235,235,235;,\n        3;236,236,236;,\n        3;237,237,237;,\n        3;238,238,238;,\n        3;239,239,239;,\n        3;240,240,240;,\n        3;241,241,241;,\n        3;242,242,242;,\n        3;243,243,243;,\n        3;244,244,244;,\n        3;245,245,245;,\n        3;246,246,246;,\n        3;247,247,247;,\n        3;248,248,248;,\n        3;249,249,249;,\n        3;250,250,250;,\n        3;251,251,251;,\n        3;252,252,252;,\n        3;253,253,253;,\n        3;254,254,254;,\n        3;255,255,255;,\n        3;256,256,256;,\n        3;257,257,257;,\n        3;258,258,258;,\n        3;259,259,259;,\n        3;260,260,260;,\n        3;261,261,261;,\n        3;262,262,262;,\n        3;263,263,263;,\n        3;264,264,264;,\n        3;265,265,265;,\n        3;266,266,266;,\n        3;267,267,267;,\n        3;268,268,268;,\n        3;269,269,269;,\n        3;270,270,270;,\n        3;271,271,271;,\n        3;272,272,272;,\n        3;273,273,273;,\n        3;274,274,274;,\n        3;275,275,275;,\n        3;276,276,276;,\n        3;277,277,277;,\n        3;278,278,278;,\n        3;279,279,279;,\n        3;280,280,280;,\n        3;281,281,281;,\n        3;282,282,282;,\n        3;283,283,283;,\n        3;284,284,284;,\n        3;285,285,285;,\n        3;286,286,286;,\n        3;287,287,287;,\n        3;288,288,288;,\n        3;289,289,289;,\n        3;290,290,290;,\n        3;291,291,291;,\n        3;292,292,292;,\n        3;293,293,293;,\n        3;294,294,294;,\n        3;295,295,295;,\n        3;296,296,296;,\n        3;297,297,297;,\n        3;298,298,298;,\n        3;299,299,299;,\n        3;300,300,300;,\n        3;301,301,301;,\n        3;302,302,302;,\n        3;303,303,303;,\n        3;304,304,304;,\n        3;305,305,305;,\n        3;306,306,306;,\n        3;307,307,307;,\n        3;308,308,308;,\n        3;309,309,309;,\n        3;310,310,310;,\n        3;311,311,311;,\n        3;312,312,312;,\n        3;313,313,313;,\n        3;314,314,314;,\n        3;315,315,315;,\n        3;316,316,316;,\n        3;317,317,317;,\n        3;318,318,318;,\n        3;319,319,319;,\n        3;320,320,320;,\n        3;321,321,321;,\n        3;322,322,322;,\n        3;323,323,323;,\n        3;324,324,324;,\n        3;325,325,325;,\n        3;326,326,326;,\n        3;327,327,327;,\n        3;328,328,328;,\n        3;329,329,329;,\n        3;330,330,330;,\n        3;331,331,331;,\n        3;332,332,332;,\n        3;333,333,333;,\n        3;334,334,334;,\n        3;335,335,335;,\n        3;336,336,336;,\n        3;337,337,337;,\n        3;338,338,338;,\n        3;339,339,339;,\n        3;340,340,340;,\n        3;341,341,341;,\n        3;342,342,342;,\n        3;343,343,343;,\n        3;344,344,344;,\n        3;345,345,345;,\n        3;346,346,346;,\n        3;347,347,347;,\n        3;348,348,348;,\n        3;349,349,349;,\n        3;350,350,350;,\n        3;351,351,351;,\n        3;352,352,352;,\n        3;353,353,353;,\n        3;354,354,354;,\n        3;355,355,355;,\n        3;356,356,356;,\n        3;357,357,357;,\n        3;358,358,358;,\n        3;359,359,359;,\n        3;360,360,360;,\n        3;361,361,361;,\n        3;362,362,362;,\n        3;363,363,363;,\n        3;364,364,364;,\n        3;365,365,365;,\n        3;366,366,366;,\n        3;367,367,367;,\n        3;368,368,368;,\n        3;369,369,369;,\n        3;370,370,370;,\n        3;371,371,371;,\n        3;372,372,372;,\n        3;373,373,373;,\n        3;374,374,374;,\n        3;375,375,375;,\n        3;376,376,376;,\n        3;377,377,377;,\n        3;378,378,378;,\n        3;379,379,379;,\n        3;380,380,380;,\n        3;381,381,381;,\n        3;382,382,382;,\n        3;383,383,383;,\n        3;384,384,384;,\n        3;385,385,385;,\n        3;386,386,386;,\n        3;387,387,387;,\n        3;388,388,388;,\n        3;389,389,389;,\n        3;390,390,390;,\n        3;391,391,391;,\n        3;392,392,392;,\n        3;393,393,393;,\n        3;394,394,394;,\n        3;395,395,395;,\n        3;396,396,396;,\n        3;397,397,397;,\n        3;398,398,398;,\n        3;399,399,399;,\n        3;400,400,400;,\n        3;401,401,401;,\n        3;402,402,402;,\n        3;403,403,403;,\n        3;404,404,404;,\n        3;405,405,405;,\n        3;406,406,406;,\n        3;407,407,407;,\n        3;408,408,408;,\n        3;409,409,409;,\n        3;410,410,410;,\n        3;411,411,411;,\n        3;412,412,412;,\n        3;413,413,413;,\n        3;414,414,414;,\n        3;415,415,415;,\n        3;416,416,416;,\n        3;417,417,417;,\n        3;418,418,418;,\n        3;419,419,419;,\n        3;420,420,420;,\n        3;421,421,421;,\n        3;422,422,422;,\n        3;423,423,423;,\n        3;424,424,424;,\n        3;425,425,425;,\n        3;426,426,426;,\n        3;427,427,427;,\n        3;428,428,428;,\n        3;429,429,429;,\n        3;430,430,430;,\n        3;431,431,431;,\n        3;432,432,432;,\n        3;433,433,433;,\n        3;434,434,434;,\n        3;435,435,435;,\n        3;436,436,436;,\n        3;437,437,437;,\n        3;438,438,438;,\n        3;439,439,439;,\n        3;440,440,440;,\n        3;441,441,441;,\n        3;442,442,442;,\n        3;443,443,443;,\n        3;444,444,444;,\n        3;445,445,445;,\n        3;446,446,446;,\n        3;447,447,447;,\n        3;448,448,448;,\n        3;449,449,449;,\n        3;450,450,450;,\n        3;451,451,451;,\n        3;452,452,452;,\n        3;453,453,453;,\n        3;454,454,454;,\n        3;455,455,455;,\n        3;456,456,456;,\n        3;457,457,457;,\n        3;458,458,458;,\n        3;459,459,459;,\n        3;460,460,460;,\n        3;461,461,461;,\n        3;462,462,462;,\n        3;463,463,463;,\n        3;464,464,464;,\n        3;465,465,465;,\n        3;466,466,466;,\n        3;467,467,467;,\n        3;468,468,468;,\n        3;469,469,469;,\n        3;470,470,470;,\n        3;471,471,471;,\n        3;472,472,472;,\n        3;473,473,473;,\n        3;474,474,474;,\n        3;475,475,475;,\n        3;476,476,476;,\n        3;477,477,477;,\n        3;478,478,478;,\n        3;479,479,479;,\n        3;480,480,480;,\n        3;481,481,481;,\n        3;482,482,482;,\n        3;483,483,483;,\n        3;484,484,484;,\n        3;485,485,485;,\n        3;486,486,486;,\n        3;487,487,487;,\n        3;488,488,488;,\n        3;489,489,489;,\n        3;490,490,490;,\n        3;491,491,491;,\n        3;492,492,492;,\n        3;493,493,493;,\n        3;494,494,494;,\n        3;495,495,495;,\n        3;496,496,496;,\n        3;497,497,497;,\n        3;498,498,498;,\n        3;499,499,499;,\n        3;500,500,500;,\n        3;501,501,501;,\n        3;502,502,502;,\n        3;503,503,503;,\n        3;504,504,504;,\n        3;505,505,505;,\n        3;506,506,506;,\n        3;507,507,507;,\n        3;508,508,508;,\n        3;509,509,509;,\n        3;510,510,510;,\n        3;511,511,511;,\n        3;512,512,512;,\n        3;513,513,513;,\n        3;514,514,514;,\n        3;515,515,515;,\n        3;516,516,516;,\n        3;517,517,517;,\n        3;518,518,518;,\n        3;519,519,519;,\n        3;520,520,520;,\n        3;521,521,521;,\n        3;522,522,522;,\n        3;523,523,523;,\n        3;524,524,524;,\n        3;525,525,525;,\n        3;526,526,526;,\n        3;527,527,527;,\n        3;528,528,528;,\n        3;529,529,529;,\n        3;530,530,530;,\n        3;531,531,531;,\n        3;532,532,532;,\n        3;533,533,533;,\n        3;534,534,534;,\n        3;535,535,535;,\n        3;536,536,536;,\n        3;537,537,537;,\n        3;538,538,538;,\n        3;539,539,539;,\n        3;540,540,540;,\n        3;541,541,541;,\n        3;542,542,542;,\n        3;543,543,543;,\n        3;544,544,544;,\n        3;545,545,545;,\n        3;546,546,546;,\n        3;547,547,547;,\n        3;548,548,548;,\n        3;549,549,549;,\n        3;550,550,550;,\n        3;551,551,551;,\n        3;552,552,552;,\n        3;553,553,553;,\n        3;554,554,554;,\n        3;555,555,555;,\n        3;556,556,556;,\n        3;557,557,557;,\n        3;558,558,558;,\n        3;559,559,559;,\n        3;560,560,560;,\n        3;561,561,561;,\n        3;562,562,562;,\n        3;563,563,563;,\n        3;564,564,564;,\n        3;565,565,565;,\n        3;566,566,566;,\n        3;567,567,567;,\n        3;568,568,568;,\n        3;569,569,569;,\n        3;570,570,570;,\n        3;571,571,571;,\n        3;572,572,572;,\n        3;573,573,573;,\n        3;574,574,574;,\n        3;575,575,575;,\n        3;576,576,576;,\n        3;577,577,577;,\n        3;578,578,578;,\n        3;579,579,579;,\n        3;580,580,580;,\n        3;581,581,581;,\n        3;582,582,582;,\n        3;583,583,583;,\n        3;584,584,584;,\n        3;585,585,585;,\n        3;586,586,586;,\n        3;587,587,587;,\n        3;588,588,588;,\n        3;589,589,589;,\n        3;590,590,590;,\n        3;591,591,591;,\n        3;592,592,592;,\n        3;593,593,593;,\n        3;594,594,594;,\n        3;595,595,595;,\n        3;596,596,596;,\n        3;597,597,597;,\n        3;598,598,598;,\n        3;599,599,599;,\n        3;600,600,600;,\n        3;601,601,601;,\n        3;602,602,602;,\n        3;603,603,603;,\n        3;604,604,604;,\n        3;605,605,605;,\n        3;606,606,606;,\n        3;607,607,607;,\n        3;608,608,608;,\n        3;609,609,609;,\n        3;610,610,610;,\n        3;611,611,611;,\n        3;612,612,612;,\n        3;613,613,613;,\n        3;614,614,614;,\n        3;615,615,615;,\n        3;616,616,616;,\n        3;617,617,617;,\n        3;618,618,618;,\n        3;619,619,619;,\n        3;620,620,620;,\n        3;621,621,621;,\n        3;622,622,622;,\n        3;623,623,623;,\n        3;624,624,624;,\n        3;625,625,625;,\n        3;626,626,626;,\n        3;627,627,627;,\n        3;628,628,628;,\n        3;629,629,629;,\n        3;630,630,630;,\n        3;631,631,631;,\n        3;632,632,632;,\n        3;633,633,633;,\n        3;634,634,634;,\n        3;635,635,635;,\n        3;636,636,636;,\n        3;637,637,637;,\n        3;638,638,638;,\n        3;639,639,639;,\n        3;640,640,640;,\n        3;641,641,641;,\n        3;642,642,642;,\n        3;643,643,643;,\n        3;644,644,644;,\n        3;645,645,645;,\n        3;646,646,646;,\n        3;647,647,647;,\n        3;648,648,648;,\n        3;649,649,649;,\n        3;650,650,650;,\n        3;651,651,651;,\n        3;652,652,652;,\n        3;653,653,653;,\n        3;654,654,654;,\n        3;655,655,655;,\n        3;656,656,656;,\n        3;657,657,657;,\n        3;658,658,658;,\n        3;659,659,659;,\n        3;660,660,660;,\n        3;661,661,661;,\n        3;662,662,662;,\n        3;663,663,663;,\n        3;664,664,664;,\n        3;665,665,665;,\n        3;666,666,666;,\n        3;667,667,667;,\n        3;668,668,668;,\n        3;669,669,669;,\n        3;670,670,670;,\n        3;671,671,671;,\n        3;672,672,672;,\n        3;673,673,673;,\n        3;674,674,674;,\n        3;675,675,675;,\n        3;676,676,676;,\n        3;677,677,677;,\n        3;678,678,678;,\n        3;679,679,679;,\n        3;680,680,680;,\n        3;681,681,681;,\n        3;682,682,682;,\n        3;683,683,683;,\n        3;684,684,684;,\n        3;685,685,685;,\n        3;686,686,686;,\n        3;687,687,687;,\n        3;688,688,688;,\n        3;689,689,689;,\n        3;690,690,690;,\n        3;691,691,691;,\n        3;692,692,692;,\n        3;693,693,693;,\n        3;694,694,694;,\n        3;695,695,695;,\n        3;696,696,696;,\n        3;697,697,697;,\n        3;698,698,698;,\n        3;699,699,699;,\n        3;700,700,700;,\n        3;701,701,701;,\n        3;702,702,702;,\n        3;703,703,703;,\n        3;704,704,704;,\n        3;705,705,705;,\n        3;706,706,706;,\n        3;707,707,707;,\n        3;708,708,708;,\n        3;709,709,709;,\n        3;710,710,710;,\n        3;711,711,711;,\n        3;712,712,712;,\n        3;713,713,713;,\n        3;714,714,714;,\n        3;715,715,715;,\n        3;716,716,716;,\n        3;717,717,717;,\n        3;718,718,718;,\n        3;719,719,719;,\n        3;720,720,720;,\n        3;721,721,721;,\n        3;722,722,722;,\n        3;723,723,723;,\n        3;724,724,724;,\n        3;725,725,725;,\n        3;726,726,726;,\n        3;727,727,727;,\n        3;728,728,728;,\n        3;729,729,729;,\n        3;730,730,730;,\n        3;731,731,731;,\n        3;732,732,732;,\n        3;733,733,733;,\n        3;734,734,734;,\n        3;735,735,735;,\n        3;736,736,736;,\n        3;737,737,737;,\n        3;738,738,738;,\n        3;739,739,739;,\n        3;740,740,740;,\n        3;741,741,741;,\n        3;742,742,742;,\n        3;743,743,743;,\n        3;744,744,744;,\n        3;745,745,745;,\n        3;746,746,746;,\n        3;747,747,747;,\n        3;748,748,748;,\n        3;749,749,749;,\n        3;750,750,750;,\n        3;751,751,751;,\n        3;752,752,752;,\n        3;753,753,753;,\n        3;754,754,754;,\n        3;755,755,755;,\n        3;756,756,756;,\n        3;757,757,757;,\n        3;758,758,758;,\n        3;759,759,759;,\n        3;760,760,760;,\n        3;761,761,761;,\n        3;762,762,762;,\n        3;763,763,763;,\n        3;764,764,764;,\n        3;765,765,765;,\n        3;766,766,766;,\n        3;767,767,767;,\n        3;768,768,768;,\n        3;769,769,769;,\n        3;770,770,770;,\n        3;771,771,771;,\n        3;772,772,772;,\n        3;773,773,773;,\n        3;774,774,774;,\n        3;775,775,775;,\n        3;776,776,776;,\n        3;777,777,777;,\n        3;778,778,778;,\n        3;779,779,779;,\n        3;780,780,780;,\n        3;781,781,781;,\n        3;782,782,782;,\n        3;783,783,783;,\n        3;784,784,784;,\n        3;785,785,785;,\n        3;786,786,786;,\n        3;787,787,787;,\n        3;788,788,788;,\n        3;789,789,789;,\n        3;790,790,790;,\n        3;791,791,791;,\n        3;792,792,792;,\n        3;793,793,793;,\n        3;794,794,794;,\n        3;795,795,795;,\n        3;796,796,796;,\n        3;797,797,797;,\n        3;798,798,798;,\n        3;799,799,799;,\n        3;800,800,800;,\n        3;801,801,801;,\n        3;802,802,802;,\n        3;803,803,803;,\n        3;804,804,804;,\n        3;805,805,805;,\n        3;806,806,806;,\n        3;807,807,807;,\n        3;808,808,808;,\n        3;809,809,809;,\n        3;810,810,810;,\n        3;811,811,811;,\n        3;812,812,812;,\n        3;813,813,813;,\n        3;814,814,814;,\n        3;815,815,815;,\n        3;816,816,816;,\n        3;817,817,817;,\n        3;818,818,818;,\n        3;819,819,819;,\n        3;820,820,820;,\n        3;821,821,821;,\n        3;822,822,822;,\n        3;823,823,823;,\n        3;824,824,824;,\n        3;825,825,825;,\n        3;826,826,826;,\n        3;827,827,827;,\n        3;828,828,828;,\n        3;829,829,829;,\n        3;830,830,830;,\n        3;831,831,831;,\n        3;832,832,832;,\n        3;833,833,833;,\n        3;834,834,834;,\n        3;835,835,835;,\n        3;836,836,836;,\n        3;837,837,837;,\n        3;838,838,838;,\n        3;839,839,839;,\n        3;840,840,840;,\n        3;841,841,841;,\n        3;842,842,842;,\n        3;843,843,843;,\n        3;844,844,844;,\n        3;845,845,845;,\n        3;846,846,846;,\n        3;847,847,847;,\n        3;848,848,848;,\n        3;849,849,849;,\n        3;850,850,850;,\n        3;851,851,851;,\n        3;852,852,852;,\n        3;853,853,853;,\n        3;854,854,854;,\n        3;855,855,855;,\n        3;856,856,856;,\n        3;857,857,857;,\n        3;858,858,858;,\n        3;859,859,859;,\n        3;860,860,860;,\n        3;861,861,861;,\n        3;862,862,862;,\n        3;863,863,863;,\n        3;864,864,864;,\n        3;865,865,865;,\n        3;866,866,866;,\n        3;867,867,867;,\n        3;868,868,868;,\n        3;869,869,869;,\n        3;870,870,870;,\n        3;871,871,871;,\n        3;872,872,872;,\n        3;873,873,873;,\n        3;874,874,874;,\n        3;875,875,875;,\n        3;876,876,876;,\n        3;877,877,877;,\n        3;878,878,878;,\n        3;879,879,879;,\n        3;880,880,880;,\n        3;881,881,881;,\n        3;882,882,882;,\n        3;883,883,883;,\n        3;884,884,884;,\n        3;885,885,885;,\n        3;886,886,886;,\n        3;887,887,887;,\n        3;888,888,888;,\n        3;889,889,889;,\n        3;890,890,890;,\n        3;891,891,891;,\n        3;892,892,892;,\n        3;893,893,893;,\n        3;894,894,894;,\n        3;895,895,895;,\n        3;896,896,896;,\n        3;897,897,897;,\n        3;898,898,898;,\n        3;899,899,899;,\n        3;900,900,900;,\n        3;901,901,901;,\n        3;902,902,902;,\n        3;903,903,903;,\n        3;904,904,904;,\n        3;905,905,905;,\n        3;906,906,906;,\n        3;907,907,907;,\n        3;908,908,908;,\n        3;909,909,909;,\n        3;910,910,910;,\n        3;911,911,911;,\n        3;912,912,912;,\n        3;913,913,913;,\n        3;914,914,914;,\n        3;915,915,915;,\n        3;916,916,916;,\n        3;917,917,917;,\n        3;918,918,918;,\n        3;919,919,919;,\n        3;920,920,920;,\n        3;921,921,921;,\n        3;922,922,922;,\n        3;923,923,923;,\n        3;924,924,924;,\n        3;925,925,925;,\n        3;926,926,926;,\n        3;927,927,927;,\n        3;928,928,928;,\n        3;929,929,929;,\n        3;930,930,930;,\n        3;931,931,931;,\n        3;932,932,932;,\n        3;933,933,933;,\n        3;934,934,934;,\n        3;935,935,935;,\n        3;936,936,936;,\n        3;937,937,937;,\n        3;938,938,938;,\n        3;939,939,939;,\n        3;940,940,940;,\n        3;941,941,941;,\n        3;942,942,942;,\n        3;943,943,943;,\n        3;944,944,944;,\n        3;945,945,945;,\n        3;946,946,946;,\n        3;947,947,947;,\n        3;948,948,948;,\n        3;949,949,949;,\n        3;950,950,950;,\n        3;951,951,951;,\n        3;952,952,952;,\n        3;953,953,953;,\n        3;954,954,954;,\n        3;955,955,955;,\n        3;956,956,956;,\n        3;957,957,957;,\n        3;958,958,958;,\n        3;959,959,959;,\n        3;960,960,960;,\n        3;961,961,961;,\n        3;962,962,962;,\n        3;963,963,963;,\n        3;964,964,964;,\n        3;965,965,965;,\n        3;966,966,966;,\n        3;967,967,967;,\n        3;968,968,968;,\n        3;969,969,969;,\n        3;970,970,970;,\n        3;971,971,971;,\n        3;972,972,972;,\n        3;973,973,973;,\n        3;974,974,974;,\n        3;975,975,975;,\n        3;976,976,976;,\n        3;977,977,977;,\n        3;978,978,978;,\n        3;979,979,979;,\n        3;980,980,980;,\n        3;981,981,981;,\n        3;982,982,982;,\n        3;983,983,983;,\n        3;984,984,984;,\n        3;985,985,985;,\n        3;986,986,986;,\n        3;987,987,987;,\n        3;988,988,988;,\n        3;989,989,989;,\n        3;990,990,990;,\n        3;991,991,991;,\n        3;992,992,992;,\n        3;993,993,993;,\n        3;994,994,994;,\n        3;995,995,995;,\n        3;996,996,996;,\n        3;997,997,997;,\n        3;998,998,998;,\n        3;999,999,999;,\n        3;1000,1000,1000;,\n        3;1001,1001,1001;,\n        3;1002,1002,1002;,\n        3;1003,1003,1003;,\n        3;1004,1004,1004;,\n        3;1005,1005,1005;,\n        3;1006,1006,1006;,\n        3;1007,1007,1007;,\n        3;1008,1008,1008;,\n        3;1009,1009,1009;,\n        3;1010,1010,1010;,\n        3;1011,1011,1011;,\n        3;1012,1012,1012;,\n        3;1013,1013,1013;,\n        3;1014,1014,1014;,\n        3;1015,1015,1015;,\n        3;1016,1016,1016;,\n        3;1017,1017,1017;,\n        3;1018,1018,1018;,\n        3;1019,1019,1019;,\n        3;1020,1020,1020;,\n        3;1021,1021,1021;,\n        3;1022,1022,1022;,\n        3;1023,1023,1023;,\n        3;1024,1024,1024;,\n        3;1025,1025,1025;,\n        3;1026,1026,1026;,\n        3;1027,1027,1027;,\n        3;1028,1028,1028;,\n        3;1029,1029,1029;,\n        3;1030,1030,1030;,\n        3;1031,1031,1031;,\n        3;1032,1032,1032;,\n        3;1033,1033,1033;,\n        3;1034,1034,1034;,\n        3;1035,1035,1035;,\n        3;1036,1036,1036;,\n        3;1037,1037,1037;,\n        3;1038,1038,1038;,\n        3;1039,1039,1039;,\n        3;1040,1040,1040;,\n        3;1041,1041,1041;,\n        3;1042,1042,1042;,\n        3;1043,1043,1043;,\n        3;1044,1044,1044;,\n        3;1045,1045,1045;,\n        3;1046,1046,1046;,\n        3;1047,1047,1047;,\n        3;1048,1048,1048;,\n        3;1049,1049,1049;,\n        3;1050,1050,1050;,\n        3;1051,1051,1051;,\n        3;1052,1052,1052;,\n        3;1053,1053,1053;,\n        3;1054,1054,1054;,\n        3;1055,1055,1055;,\n        3;1056,1056,1056;,\n        3;1057,1057,1057;,\n        3;1058,1058,1058;,\n        3;1059,1059,1059;,\n        3;1060,1060,1060;,\n        3;1061,1061,1061;,\n        3;1062,1062,1062;,\n        3;1063,1063,1063;,\n        3;1064,1064,1064;,\n        3;1065,1065,1065;,\n        3;1066,1066,1066;,\n        3;1067,1067,1067;,\n        3;1068,1068,1068;,\n        3;1069,1069,1069;,\n        3;1070,1070,1070;,\n        3;1071,1071,1071;,\n        3;1072,1072,1072;,\n        3;1073,1073,1073;,\n        3;1074,1074,1074;,\n        3;1075,1075,1075;,\n        3;1076,1076,1076;,\n        3;1077,1077,1077;,\n        3;1078,1078,1078;,\n        3;1079,1079,1079;,\n        3;1080,1080,1080;,\n        3;1081,1081,1081;,\n        3;1082,1082,1082;,\n        3;1083,1083,1083;,\n        3;1084,1084,1084;,\n        3;1085,1085,1085;,\n        3;1086,1086,1086;,\n        3;1087,1087,1087;,\n        3;1088,1088,1088;,\n        3;1089,1089,1089;,\n        3;1090,1090,1090;,\n        3;1091,1091,1091;,\n        3;1092,1092,1092;,\n        3;1093,1093,1093;,\n        3;1094,1094,1094;,\n        3;1095,1095,1095;,\n        3;1096,1096,1096;,\n        3;1097,1097,1097;,\n        3;1098,1098,1098;,\n        3;1099,1099,1099;,\n        3;1100,1100,1100;,\n        3;1101,1101,1101;,\n        3;1102,1102,1102;,\n        3;1103,1103,1103;,\n        3;1104,1104,1104;,\n        3;1105,1105,1105;,\n        3;1106,1106,1106;,\n        3;1107,1107,1107;,\n        3;1108,1108,1108;,\n        3;1109,1109,1109;,\n        3;1110,1110,1110;,\n        3;1111,1111,1111;,\n        3;1112,1112,1112;,\n        3;1113,1113,1113;,\n        3;1114,1114,1114;,\n        3;1115,1115,1115;,\n        3;1116,1116,1116;,\n        3;1117,1117,1117;,\n        3;1118,1118,1118;,\n        3;1119,1119,1119;,\n        3;1120,1120,1120;,\n        3;1121,1121,1121;,\n        3;1122,1122,1122;,\n        3;1123,1123,1123;,\n        3;1124,1124,1124;,\n        3;1125,1125,1125;,\n        3;1126,1126,1126;,\n        3;1127,1127,1127;,\n        3;1128,1128,1128;,\n        3;1129,1129,1129;,\n        3;1130,1130,1130;,\n        3;1131,1131,1131;,\n        3;1132,1132,1132;,\n        3;1133,1133,1133;,\n        3;1134,1134,1134;,\n        3;1135,1135,1135;,\n        3;1136,1136,1136;,\n        3;1137,1137,1137;,\n        3;1138,1138,1138;,\n        3;1139,1139,1139;,\n        3;1140,1140,1140;,\n        3;1141,1141,1141;,\n        3;1142,1142,1142;,\n        3;1143,1143,1143;,\n        3;1144,1144,1144;,\n        3;1145,1145,1145;,\n        3;1146,1146,1146;,\n        3;1147,1147,1147;,\n        3;1148,1148,1148;,\n        3;1149,1149,1149;,\n        3;1150,1150,1150;,\n        3;1151,1151,1151;,\n        3;1152,1152,1152;,\n        3;1153,1153,1153;,\n        3;1154,1154,1154;,\n        3;1155,1155,1155;,\n        3;1156,1156,1156;,\n        3;1157,1157,1157;,\n        3;1158,1158,1158;,\n        3;1159,1159,1159;,\n        3;1160,1160,1160;,\n        3;1161,1161,1161;,\n        3;1162,1162,1162;,\n        3;1163,1163,1163;,\n        3;1164,1164,1164;,\n        3;1165,1165,1165;,\n        3;1166,1166,1166;,\n        3;1167,1167,1167;,\n        3;1168,1168,1168;,\n        3;1169,1169,1169;,\n        3;1170,1170,1170;,\n        3;1171,1171,1171;,\n        3;1172,1172,1172;,\n        3;1173,1173,1173;,\n        3;1174,1174,1174;,\n        3;1175,1175,1175;,\n        3;1176,1176,1176;,\n        3;1177,1177,1177;,\n        3;1178,1178,1178;,\n        3;1179,1179,1179;,\n        3;1180,1180,1180;,\n        3;1181,1181,1181;,\n        3;1182,1182,1182;,\n        3;1183,1183,1183;,\n        3;1184,1184,1184;,\n        3;1185,1185,1185;,\n        3;1186,1186,1186;,\n        3;1187,1187,1187;,\n        3;1188,1188,1188;,\n        3;1189,1189,1189;,\n        3;1190,1190,1190;,\n        3;1191,1191,1191;,\n        3;1192,1192,1192;,\n        3;1193,1193,1193;,\n        3;1194,1194,1194;,\n        3;1195,1195,1195;,\n        3;1196,1196,1196;,\n        3;1197,1197,1197;,\n        3;1198,1198,1198;,\n        3;1199,1199,1199;,\n        3;1200,1200,1200;,\n        3;1201,1201,1201;,\n        3;1202,1202,1202;,\n        3;1203,1203,1203;,\n        3;1204,1204,1204;,\n        3;1205,1205,1205;,\n        3;1206,1206,1206;,\n        3;1207,1207,1207;,\n        3;1208,1208,1208;,\n        3;1209,1209,1209;,\n        3;1210,1210,1210;,\n        3;1211,1211,1211;,\n        3;1212,1212,1212;,\n        3;1213,1213,1213;,\n        3;1214,1214,1214;,\n        3;1215,1215,1215;,\n        3;1216,1216,1216;,\n        3;1217,1217,1217;,\n        3;1218,1218,1218;,\n        3;1219,1219,1219;,\n        3;1220,1220,1220;,\n        3;1221,1221,1221;,\n        3;1222,1222,1222;,\n        3;1223,1223,1223;,\n        3;1224,1224,1224;,\n        3;1225,1225,1225;,\n        3;1226,1226,1226;,\n        3;1227,1227,1227;,\n        3;1228,1228,1228;,\n        3;1229,1229,1229;,\n        3;1230,1230,1230;,\n        3;1231,1231,1231;,\n        3;1232,1232,1232;,\n        3;1233,1233,1233;,\n        3;1234,1234,1234;,\n        3;1235,1235,1235;,\n        3;1236,1236,1236;,\n        3;1237,1237,1237;,\n        3;1238,1238,1238;,\n        3;1239,1239,1239;,\n        3;1240,1240,1240;,\n        3;1241,1241,1241;,\n        3;1242,1242,1242;,\n        3;1243,1243,1243;,\n        3;1244,1244,1244;,\n        3;1245,1245,1245;,\n        3;1246,1246,1246;,\n        3;1247,1247,1247;,\n        3;1248,1248,1248;,\n        3;1249,1249,1249;,\n        3;1250,1250,1250;,\n        3;1251,1251,1251;,\n        3;1252,1252,1252;,\n        3;1253,1253,1253;,\n        3;1254,1254,1254;,\n        3;1255,1255,1255;,\n        3;1256,1256,1256;,\n        3;1257,1257,1257;,\n        3;1258,1258,1258;,\n        3;1259,1259,1259;,\n        3;1260,1260,1260;,\n        3;1261,1261,1261;,\n        3;1262,1262,1262;,\n        3;1263,1263,1263;,\n        3;1264,1264,1264;,\n        3;1265,1265,1265;,\n        3;1266,1266,1266;,\n        3;1267,1267,1267;,\n        3;1268,1268,1268;,\n        3;1269,1269,1269;,\n        3;1270,1270,1270;,\n        3;1271,1271,1271;,\n        3;1272,1272,1272;,\n        3;1273,1273,1273;,\n        3;1274,1274,1274;,\n        3;1275,1275,1275;,\n        3;1276,1276,1276;,\n        3;1277,1277,1277;,\n        3;1278,1278,1278;,\n        3;1279,1279,1279;,\n        3;1280,1280,1280;,\n        3;1281,1281,1281;,\n        3;1282,1282,1282;,\n        3;1283,1283,1283;,\n        3;1284,1284,1284;,\n        3;1285,1285,1285;,\n        3;1286,1286,1286;,\n        3;1287,1287,1287;,\n        3;1288,1288,1288;,\n        3;1289,1289,1289;,\n        3;1290,1290,1290;,\n        3;1291,1291,1291;,\n        3;1292,1292,1292;,\n        3;1293,1293,1293;,\n        3;1294,1294,1294;,\n        3;1295,1295,1295;,\n        3;1296,1296,1296;,\n        3;1297,1297,1297;,\n        3;1298,1298,1298;,\n        3;1299,1299,1299;,\n        3;1300,1300,1300;,\n        3;1301,1301,1301;,\n        3;1302,1302,1302;,\n        3;1303,1303,1303;,\n        3;1304,1304,1304;,\n        3;1305,1305,1305;,\n        3;1306,1306,1306;,\n        3;1307,1307,1307;,\n        3;1308,1308,1308;,\n        3;1309,1309,1309;,\n        3;1310,1310,1310;,\n        3;1311,1311,1311;,\n        3;1312,1312,1312;,\n        3;1313,1313,1313;,\n        3;1314,1314,1314;,\n        3;1315,1315,1315;,\n        3;1316,1316,1316;,\n        3;1317,1317,1317;,\n        3;1318,1318,1318;,\n        3;1319,1319,1319;,\n        3;1320,1320,1320;,\n        3;1321,1321,1321;,\n        3;1322,1322,1322;,\n        3;1323,1323,1323;,\n        3;1324,1324,1324;,\n        3;1325,1325,1325;,\n        3;1326,1326,1326;,\n        3;1327,1327,1327;,\n        3;1328,1328,1328;,\n        3;1329,1329,1329;,\n        3;1330,1330,1330;,\n        3;1331,1331,1331;,\n        3;1332,1332,1332;,\n        3;1333,1333,1333;,\n        3;1334,1334,1334;,\n        3;1335,1335,1335;,\n        3;1336,1336,1336;,\n        3;1337,1337,1337;,\n        3;1338,1338,1338;,\n        3;1339,1339,1339;,\n        3;1340,1340,1340;,\n        3;1341,1341,1341;,\n        3;1342,1342,1342;,\n        3;1343,1343,1343;,\n        3;1344,1344,1344;,\n        3;1345,1345,1345;,\n        3;1346,1346,1346;,\n        3;1347,1347,1347;,\n        3;1348,1348,1348;,\n        3;1349,1349,1349;,\n        3;1350,1350,1350;,\n        3;1351,1351,1351;,\n        3;1352,1352,1352;,\n        3;1353,1353,1353;,\n        3;1354,1354,1354;,\n        3;1355,1355,1355;,\n        3;1356,1356,1356;,\n        3;1357,1357,1357;,\n        3;1358,1358,1358;,\n        3;1359,1359,1359;,\n        3;1360,1360,1360;,\n        3;1361,1361,1361;,\n        3;1362,1362,1362;,\n        3;1363,1363,1363;,\n        3;1364,1364,1364;,\n        3;1365,1365,1365;,\n        3;1366,1366,1366;,\n        3;1367,1367,1367;,\n        3;1368,1368,1368;,\n        3;1369,1369,1369;,\n        3;1370,1370,1370;,\n        3;1371,1371,1371;,\n        3;1372,1372,1372;,\n        3;1373,1373,1373;,\n        3;1374,1374,1374;,\n        3;1375,1375,1375;,\n        3;1376,1376,1376;,\n        3;1377,1377,1377;,\n        3;1378,1378,1378;,\n        3;1379,1379,1379;,\n        3;1380,1380,1380;,\n        3;1381,1381,1381;,\n        3;1382,1382,1382;,\n        3;1383,1383,1383;,\n        3;1384,1384,1384;,\n        3;1385,1385,1385;,\n        3;1386,1386,1386;,\n        3;1387,1387,1387;,\n        3;1388,1388,1388;,\n        3;1389,1389,1389;,\n        3;1390,1390,1390;,\n        3;1391,1391,1391;,\n        3;1392,1392,1392;,\n        3;1393,1393,1393;,\n        3;1394,1394,1394;,\n        3;1395,1395,1395;,\n        3;1396,1396,1396;,\n        3;1397,1397,1397;,\n        3;1398,1398,1398;,\n        3;1399,1399,1399;,\n        3;1400,1400,1400;,\n        3;1401,1401,1401;,\n        3;1402,1402,1402;,\n        3;1403,1403,1403;,\n        3;1404,1404,1404;,\n        3;1405,1405,1405;,\n        3;1406,1406,1406;,\n        3;1407,1407,1407;,\n        3;1408,1408,1408;,\n        3;1409,1409,1409;,\n        3;1410,1410,1410;,\n        3;1411,1411,1411;,\n        3;1412,1412,1412;,\n        3;1413,1413,1413;,\n        3;1414,1414,1414;,\n        3;1415,1415,1415;,\n        3;1416,1416,1416;,\n        3;1417,1417,1417;,\n        3;1418,1418,1418;,\n        3;1419,1419,1419;,\n        3;1420,1420,1420;,\n        3;1421,1421,1421;,\n        3;1422,1422,1422;,\n        3;1423,1423,1423;,\n        3;1424,1424,1424;,\n        3;1425,1425,1425;,\n        3;1426,1426,1426;,\n        3;1427,1427,1427;,\n        3;1428,1428,1428;,\n        3;1429,1429,1429;,\n        3;1430,1430,1430;,\n        3;1431,1431,1431;,\n        3;1432,1432,1432;,\n        3;1433,1433,1433;,\n        3;1434,1434,1434;,\n        3;1435,1435,1435;,\n        3;1436,1436,1436;,\n        3;1437,1437,1437;,\n        3;1438,1438,1438;,\n        3;1439,1439,1439;,\n        3;1440,1440,1440;,\n        3;1441,1441,1441;,\n        3;1442,1442,1442;,\n        3;1443,1443,1443;,\n        3;1444,1444,1444;,\n        3;1445,1445,1445;,\n        3;1446,1446,1446;,\n        3;1447,1447,1447;,\n        3;1448,1448,1448;,\n        3;1449,1449,1449;,\n        3;1450,1450,1450;,\n        3;1451,1451,1451;,\n        3;1452,1452,1452;,\n        3;1453,1453,1453;,\n        3;1454,1454,1454;,\n        3;1455,1455,1455;,\n        3;1456,1456,1456;,\n        3;1457,1457,1457;,\n        3;1458,1458,1458;,\n        3;1459,1459,1459;,\n        3;1460,1460,1460;,\n        3;1461,1461,1461;,\n        3;1462,1462,1462;,\n        3;1463,1463,1463;,\n        3;1464,1464,1464;,\n        3;1465,1465,1465;,\n        3;1466,1466,1466;,\n        3;1467,1467,1467;,\n        3;1468,1468,1468;,\n        3;1469,1469,1469;,\n        3;1470,1470,1470;,\n        3;1471,1471,1471;,\n        3;1472,1472,1472;,\n        3;1473,1473,1473;,\n        3;1474,1474,1474;,\n        3;1475,1475,1475;,\n        3;1476,1476,1476;,\n        3;1477,1477,1477;,\n        3;1478,1478,1478;,\n        3;1479,1479,1479;,\n        3;1480,1480,1480;,\n        3;1481,1481,1481;,\n        3;1482,1482,1482;,\n        3;1483,1483,1483;,\n        3;1484,1484,1484;,\n        3;1485,1485,1485;,\n        3;1486,1486,1486;,\n        3;1487,1487,1487;,\n        3;1488,1488,1488;,\n        3;1489,1489,1489;,\n        3;1490,1490,1490;,\n        3;1491,1491,1491;,\n        3;1492,1492,1492;,\n        3;1493,1493,1493;,\n        3;1494,1494,1494;,\n        3;1495,1495,1495;,\n        3;1496,1496,1496;,\n        3;1497,1497,1497;,\n        3;1498,1498,1498;,\n        3;1499,1499,1499;,\n        3;1500,1500,1500;,\n        3;1501,1501,1501;,\n        3;1502,1502,1502;,\n        3;1503,1503,1503;,\n        3;1504,1504,1504;,\n        3;1505,1505,1505;,\n        3;1506,1506,1506;,\n        3;1507,1507,1507;,\n        3;1508,1508,1508;,\n        3;1509,1509,1509;,\n        3;1510,1510,1510;,\n        3;1511,1511,1511;,\n        3;1512,1512,1512;,\n        3;1513,1513,1513;,\n        3;1514,1514,1514;,\n        3;1515,1515,1515;,\n        3;1516,1516,1516;,\n        3;1517,1517,1517;,\n        3;1518,1518,1518;,\n        3;1519,1519,1519;,\n        3;1520,1520,1520;,\n        3;1521,1521,1521;,\n        3;1522,1522,1522;,\n        3;1523,1523,1523;,\n        3;1524,1524,1524;,\n        3;1525,1525,1525;,\n        3;1526,1526,1526;,\n        3;1527,1527,1527;,\n        3;1528,1528,1528;,\n        3;1529,1529,1529;,\n        3;1530,1530,1530;,\n        3;1531,1531,1531;,\n        3;1532,1532,1532;,\n        3;1533,1533,1533;,\n        3;1534,1534,1534;,\n        3;1535,1535,1535;,\n        3;1536,1536,1536;,\n        3;1537,1537,1537;,\n        3;1538,1538,1538;,\n        3;1539,1539,1539;,\n        3;1540,1540,1540;,\n        3;1541,1541,1541;,\n        3;1542,1542,1542;,\n        3;1543,1543,1543;,\n        3;1544,1544,1544;,\n        3;1545,1545,1545;,\n        3;1546,1546,1546;,\n        3;1547,1547,1547;,\n        3;1548,1548,1548;,\n        3;1549,1549,1549;,\n        3;1550,1550,1550;,\n        3;1551,1551,1551;,\n        3;1552,1552,1552;,\n        3;1553,1553,1553;,\n        3;1554,1554,1554;,\n        3;1555,1555,1555;,\n        3;1556,1556,1556;,\n        3;1557,1557,1557;,\n        3;1558,1558,1558;,\n        3;1559,1559,1559;,\n        3;1560,1560,1560;,\n        3;1561,1561,1561;,\n        3;1562,1562,1562;,\n        3;1563,1563,1563;,\n        3;1564,1564,1564;,\n        3;1565,1565,1565;,\n        3;1566,1566,1566;,\n        3;1567,1567,1567;,\n        3;1568,1568,1568;,\n        3;1569,1569,1569;,\n        3;1570,1570,1570;,\n        3;1571,1571,1571;,\n        3;1572,1572,1572;,\n        3;1573,1573,1573;,\n        3;1574,1574,1574;,\n        3;1575,1575,1575;,\n        3;1576,1576,1576;,\n        3;1577,1577,1577;,\n        3;1578,1578,1578;,\n        3;1579,1579,1579;,\n        3;1580,1580,1580;,\n        3;1581,1581,1581;,\n        3;1582,1582,1582;,\n        3;1583,1583,1583;,\n        3;1584,1584,1584;,\n        3;1585,1585,1585;,\n        3;1586,1586,1586;,\n        3;1587,1587,1587;,\n        3;1588,1588,1588;,\n        3;1589,1589,1589;,\n        3;1590,1590,1590;,\n        3;1591,1591,1591;,\n        3;1592,1592,1592;,\n        3;1593,1593,1593;,\n        3;1594,1594,1594;,\n        3;1595,1595,1595;,\n        3;1596,1596,1596;,\n        3;1597,1597,1597;,\n        3;1598,1598,1598;,\n        3;1599,1599,1599;,\n        3;1600,1600,1600;,\n        3;1601,1601,1601;,\n        3;1602,1602,1602;,\n        3;1603,1603,1603;,\n        3;1604,1604,1604;,\n        3;1605,1605,1605;,\n        3;1606,1606,1606;,\n        3;1607,1607,1607;,\n        3;1608,1608,1608;,\n        3;1609,1609,1609;,\n        3;1610,1610,1610;,\n        3;1611,1611,1611;,\n        3;1612,1612,1612;,\n        3;1613,1613,1613;,\n        3;1614,1614,1614;,\n        3;1615,1615,1615;,\n        3;1616,1616,1616;,\n        3;1617,1617,1617;,\n        3;1618,1618,1618;,\n        3;1619,1619,1619;,\n        3;1620,1620,1620;,\n        3;1621,1621,1621;,\n        3;1622,1622,1622;,\n        3;1623,1623,1623;,\n        3;1624,1624,1624;,\n        3;1625,1625,1625;,\n        3;1626,1626,1626;,\n        3;1627,1627,1627;,\n        3;1628,1628,1628;,\n        3;1629,1629,1629;,\n        3;1630,1630,1630;,\n        3;1631,1631,1631;,\n        3;1632,1632,1632;,\n        3;1633,1633,1633;,\n        3;1634,1634,1634;,\n        3;1635,1635,1635;,\n        3;1636,1636,1636;,\n        3;1637,1637,1637;,\n        3;1638,1638,1638;,\n        3;1639,1639,1639;,\n        3;1640,1640,1640;,\n        3;1641,1641,1641;,\n        3;1642,1642,1642;,\n        3;1643,1643,1643;,\n        3;1644,1644,1644;,\n        3;1645,1645,1645;,\n        3;1646,1646,1646;,\n        3;1647,1647,1647;,\n        3;1648,1648,1648;,\n        3;1649,1649,1649;,\n        3;1650,1650,1650;,\n        3;1651,1651,1651;,\n        3;1652,1652,1652;,\n        3;1653,1653,1653;,\n        3;1654,1654,1654;,\n        3;1655,1655,1655;,\n        3;1656,1656,1656;,\n        3;1657,1657,1657;,\n        3;1658,1658,1658;,\n        3;1659,1659,1659;,\n        3;1660,1660,1660;,\n        3;1661,1661,1661;,\n        3;1662,1662,1662;,\n        3;1663,1663,1663;,\n        3;1664,1664,1664;,\n        3;1665,1665,1665;,\n        3;1666,1666,1666;,\n        3;1667,1667,1667;,\n        3;1668,1668,1668;,\n        3;1669,1669,1669;,\n        3;1670,1670,1670;,\n        3;1671,1671,1671;,\n        3;1672,1672,1672;,\n        3;1673,1673,1673;,\n        3;1674,1674,1674;,\n        3;1675,1675,1675;,\n        3;1676,1676,1676;,\n        3;1677,1677,1677;,\n        3;1678,1678,1678;,\n        3;1679,1679,1679;,\n        3;1680,1680,1680;,\n        3;1681,1681,1681;,\n        3;1682,1682,1682;,\n        3;1683,1683,1683;,\n        3;1684,1684,1684;,\n        3;1685,1685,1685;,\n        3;1686,1686,1686;,\n        3;1687,1687,1687;,\n        3;1688,1688,1688;,\n        3;1689,1689,1689;,\n        3;1690,1690,1690;,\n        3;1691,1691,1691;,\n        3;1692,1692,1692;,\n        3;1693,1693,1693;,\n        3;1694,1694,1694;,\n        3;1695,1695,1695;,\n        3;1696,1696,1696;,\n        3;1697,1697,1697;,\n        3;1698,1698,1698;,\n        3;1699,1699,1699;,\n        3;1700,1700,1700;,\n        3;1701,1701,1701;,\n        3;1702,1702,1702;,\n        3;1703,1703,1703;,\n        3;1704,1704,1704;,\n        3;1705,1705,1705;,\n        3;1706,1706,1706;,\n        3;1707,1707,1707;,\n        3;1708,1708,1708;,\n        3;1709,1709,1709;,\n        3;1710,1710,1710;,\n        3;1711,1711,1711;,\n        3;1712,1712,1712;,\n        3;1713,1713,1713;,\n        3;1714,1714,1714;,\n        3;1715,1715,1715;,\n        3;1716,1716,1716;,\n        3;1717,1717,1717;,\n        3;1718,1718,1718;,\n        3;1719,1719,1719;,\n        3;1720,1720,1720;,\n        3;1721,1721,1721;,\n        3;1722,1722,1722;,\n        3;1723,1723,1723;,\n        3;1724,1724,1724;,\n        3;1725,1725,1725;,\n        3;1726,1726,1726;,\n        3;1727,1727,1727;,\n        3;1728,1728,1728;,\n        3;1729,1729,1729;,\n        3;1730,1730,1730;,\n        3;1731,1731,1731;,\n        3;1732,1732,1732;,\n        3;1733,1733,1733;,\n        3;1734,1734,1734;,\n        3;1735,1735,1735;,\n        3;1736,1736,1736;,\n        3;1737,1737,1737;,\n        3;1738,1738,1738;,\n        3;1739,1739,1739;,\n        3;1740,1740,1740;,\n        3;1741,1741,1741;,\n        3;1742,1742,1742;,\n        3;1743,1743,1743;,\n        3;1744,1744,1744;,\n        3;1745,1745,1745;,\n        3;1746,1746,1746;,\n        3;1747,1747,1747;,\n        3;1748,1748,1748;,\n        3;1749,1749,1749;,\n        3;1750,1750,1750;,\n        3;1751,1751,1751;,\n        3;1752,1752,1752;,\n        3;1753,1753,1753;,\n        3;1754,1754,1754;,\n        3;1755,1755,1755;,\n        3;1756,1756,1756;,\n        3;1757,1757,1757;,\n        3;1758,1758,1758;,\n        3;1759,1759,1759;,\n        3;1760,1760,1760;,\n        3;1761,1761,1761;,\n        3;1762,1762,1762;,\n        3;1763,1763,1763;,\n        3;1764,1764,1764;,\n        3;1765,1765,1765;,\n        3;1766,1766,1766;,\n        3;1767,1767,1767;,\n        3;1768,1768,1768;,\n        3;1769,1769,1769;,\n        3;1770,1770,1770;,\n        3;1771,1771,1771;,\n        3;1772,1772,1772;,\n        3;1773,1773,1773;,\n        3;1774,1774,1774;,\n        3;1775,1775,1775;,\n        3;1776,1776,1776;,\n        3;1777,1777,1777;,\n        3;1778,1778,1778;,\n        3;1779,1779,1779;,\n        3;1780,1780,1780;,\n        3;1781,1781,1781;,\n        3;1782,1782,1782;,\n        3;1783,1783,1783;,\n        3;1784,1784,1784;,\n        3;1785,1785,1785;,\n        3;1786,1786,1786;,\n        3;1787,1787,1787;,\n        3;1788,1788,1788;,\n        3;1789,1789,1789;,\n        3;1790,1790,1790;,\n        3;1791,1791,1791;,\n        3;1792,1792,1792;,\n        3;1793,1793,1793;,\n        3;1794,1794,1794;,\n        3;1795,1795,1795;,\n        3;1796,1796,1796;,\n        3;1797,1797,1797;,\n        3;1798,1798,1798;,\n        3;1799,1799,1799;,\n        3;1800,1800,1800;,\n        3;1801,1801,1801;,\n        3;1802,1802,1802;,\n        3;1803,1803,1803;,\n        3;1804,1804,1804;,\n        3;1805,1805,1805;,\n        3;1806,1806,1806;,\n        3;1807,1807,1807;,\n        3;1808,1808,1808;,\n        3;1809,1809,1809;,\n        3;1810,1810,1810;,\n        3;1811,1811,1811;,\n        3;1812,1812,1812;,\n        3;1813,1813,1813;,\n        3;1814,1814,1814;,\n        3;1815,1815,1815;,\n        3;1816,1816,1816;,\n        3;1817,1817,1817;,\n        3;1818,1818,1818;,\n        3;1819,1819,1819;,\n        3;1820,1820,1820;,\n        3;1821,1821,1821;,\n        3;1822,1822,1822;,\n        3;1823,1823,1823;,\n        3;1824,1824,1824;,\n        3;1825,1825,1825;,\n        3;1826,1826,1826;,\n        3;1827,1827,1827;,\n        3;1828,1828,1828;,\n        3;1829,1829,1829;,\n        3;1830,1830,1830;,\n        3;1831,1831,1831;,\n        3;1832,1832,1832;,\n        3;1833,1833,1833;,\n        3;1834,1834,1834;,\n        3;1835,1835,1835;,\n        3;1836,1836,1836;,\n        3;1837,1837,1837;,\n        3;1838,1838,1838;,\n        3;1839,1839,1839;,\n        3;1840,1840,1840;,\n        3;1841,1841,1841;,\n        3;1842,1842,1842;,\n        3;1843,1843,1843;,\n        3;1844,1844,1844;,\n        3;1845,1845,1845;,\n        3;1846,1846,1846;,\n        3;1847,1847,1847;,\n        3;1848,1848,1848;,\n        3;1849,1849,1849;,\n        3;1850,1850,1850;,\n        3;1851,1851,1851;,\n        3;1852,1852,1852;,\n        3;1853,1853,1853;,\n        3;1854,1854,1854;,\n        3;1855,1855,1855;,\n        3;1856,1856,1856;,\n        3;1857,1857,1857;,\n        3;1858,1858,1858;,\n        3;1859,1859,1859;,\n        3;1860,1860,1860;,\n        3;1861,1861,1861;,\n        3;1862,1862,1862;,\n        3;1863,1863,1863;,\n        3;1864,1864,1864;,\n        3;1865,1865,1865;,\n        3;1866,1866,1866;,\n        3;1867,1867,1867;,\n        3;1868,1868,1868;,\n        3;1869,1869,1869;,\n        3;1870,1870,1870;,\n        3;1871,1871,1871;,\n        3;1872,1872,1872;,\n        3;1873,1873,1873;,\n        3;1874,1874,1874;,\n        3;1875,1875,1875;,\n        3;1876,1876,1876;,\n        3;1877,1877,1877;,\n        3;1878,1878,1878;,\n        3;1879,1879,1879;,\n        3;1880,1880,1880;,\n        3;1881,1881,1881;,\n        3;1882,1882,1882;,\n        3;1883,1883,1883;,\n        3;1884,1884,1884;,\n        3;1885,1885,1885;,\n        3;1886,1886,1886;,\n        3;1887,1887,1887;,\n        3;1888,1888,1888;,\n        3;1889,1889,1889;,\n        3;1890,1890,1890;,\n        3;1891,1891,1891;,\n        3;1892,1892,1892;,\n        3;1893,1893,1893;,\n        3;1894,1894,1894;,\n        3;1895,1895,1895;,\n        3;1896,1896,1896;,\n        3;1897,1897,1897;,\n        3;1898,1898,1898;,\n        3;1899,1899,1899;,\n        3;1900,1900,1900;,\n        3;1901,1901,1901;,\n        3;1902,1902,1902;,\n        3;1903,1903,1903;,\n        3;1904,1904,1904;,\n        3;1905,1905,1905;,\n        3;1906,1906,1906;,\n        3;1907,1907,1907;,\n        3;1908,1908,1908;,\n        3;1909,1909,1909;,\n        3;1910,1910,1910;,\n        3;1911,1911,1911;,\n        3;1912,1912,1912;,\n        3;1913,1913,1913;,\n        3;1914,1914,1914;,\n        3;1915,1915,1915;,\n        3;1916,1916,1916;,\n        3;1917,1917,1917;,\n        3;1918,1918,1918;,\n        3;1919,1919,1919;,\n        3;1920,1920,1920;,\n        3;1921,1921,1921;,\n        3;1922,1922,1922;,\n        3;1923,1923,1923;,\n        3;1924,1924,1924;,\n        3;1925,1925,1925;,\n        3;1926,1926,1926;,\n        3;1927,1927,1927;,\n        3;1928,1928,1928;,\n        3;1929,1929,1929;,\n        3;1930,1930,1930;,\n        3;1931,1931,1931;,\n        3;1932,1932,1932;,\n        3;1933,1933,1933;,\n        3;1934,1934,1934;,\n        3;1935,1935,1935;,\n        3;1936,1936,1936;,\n        3;1937,1937,1937;,\n        3;1938,1938,1938;,\n        3;1939,1939,1939;,\n        3;1940,1940,1940;,\n        3;1941,1941,1941;,\n        3;1942,1942,1942;,\n        3;1943,1943,1943;,\n        3;1944,1944,1944;,\n        3;1945,1945,1945;,\n        3;1946,1946,1946;,\n        3;1947,1947,1947;,\n        3;1948,1948,1948;,\n        3;1949,1949,1949;,\n        3;1950,1950,1950;,\n        3;1951,1951,1951;,\n        3;1952,1952,1952;,\n        3;1953,1953,1953;,\n        3;1954,1954,1954;,\n        3;1955,1955,1955;,\n        3;1956,1956,1956;,\n        3;1957,1957,1957;,\n        3;1958,1958,1958;,\n        3;1959,1959,1959;,\n        3;1960,1960,1960;,\n        3;1961,1961,1961;,\n        3;1962,1962,1962;,\n        3;1963,1963,1963;,\n        3;1964,1964,1964;,\n        3;1965,1965,1965;,\n        3;1966,1966,1966;,\n        3;1967,1967,1967;,\n        3;1968,1968,1968;,\n        3;1969,1969,1969;,\n        3;1970,1970,1970;,\n        3;1971,1971,1971;,\n        3;1972,1972,1972;,\n        3;1973,1973,1973;,\n        3;1974,1974,1974;,\n        3;1975,1975,1975;,\n        3;1976,1976,1976;,\n        3;1977,1977,1977;,\n        3;1978,1978,1978;,\n        3;1979,1979,1979;,\n        3;1980,1980,1980;,\n        3;1981,1981,1981;,\n        3;1982,1982,1982;,\n        3;1983,1983,1983;,\n        3;1984,1984,1984;,\n        3;1985,1985,1985;,\n        3;1986,1986,1986;,\n        3;1987,1987,1987;,\n        3;1988,1988,1988;,\n        3;1989,1989,1989;,\n        3;1990,1990,1990;,\n        3;1991,1991,1991;,\n        3;1992,1992,1992;,\n        3;1993,1993,1993;,\n        3;1994,1994,1994;,\n        3;1995,1995,1995;,\n        3;1996,1996,1996;,\n        3;1997,1997,1997;,\n        3;1998,1998,1998;,\n        3;1999,1999,1999;,\n        3;2000,2000,2000;,\n        3;2001,2001,2001;,\n        3;2002,2002,2002;,\n        3;2003,2003,2003;,\n        3;2004,2004,2004;,\n        3;2005,2005,2005;,\n        3;2006,2006,2006;,\n        3;2007,2007,2007;,\n        3;2008,2008,2008;,\n        3;2009,2009,2009;,\n        3;2010,2010,2010;,\n        3;2011,2011,2011;,\n        3;2012,2012,2012;,\n        3;2013,2013,2013;,\n        3;2014,2014,2014;,\n        3;2015,2015,2015;,\n        3;2016,2016,2016;,\n        3;2017,2017,2017;,\n        3;2018,2018,2018;,\n        3;2019,2019,2019;,\n        3;2020,2020,2020;,\n        3;2021,2021,2021;,\n        3;2022,2022,2022;,\n        3;2023,2023,2023;,\n        3;2024,2024,2024;,\n        3;2025,2025,2025;,\n        3;2026,2026,2026;,\n        3;2027,2027,2027;,\n        3;2028,2028,2028;,\n        3;2029,2029,2029;,\n        3;2030,2030,2030;,\n        3;2031,2031,2031;,\n        3;2032,2032,2032;,\n        3;2033,2033,2033;,\n        3;2034,2034,2034;,\n        3;2035,2035,2035;,\n        3;2036,2036,2036;,\n        3;2037,2037,2037;,\n        3;2038,2038,2038;,\n        3;2039,2039,2039;,\n        3;2040,2040,2040;,\n        3;2041,2041,2041;,\n        3;2042,2042,2042;,\n        3;2043,2043,2043;,\n        3;2044,2044,2044;,\n        3;2045,2045,2045;,\n        3;2046,2046,2046;,\n        3;2047,2047,2047;,\n        3;2048,2048,2048;,\n        3;2049,2049,2049;,\n        3;2050,2050,2050;,\n        3;2051,2051,2051;,\n        3;2052,2052,2052;,\n        3;2053,2053,2053;,\n        3;2054,2054,2054;,\n        3;2055,2055,2055;,\n        3;2056,2056,2056;,\n        3;2057,2057,2057;,\n        3;2058,2058,2058;,\n        3;2059,2059,2059;,\n        3;2060,2060,2060;,\n        3;2061,2061,2061;,\n        3;2062,2062,2062;,\n        3;2063,2063,2063;,\n        3;2064,2064,2064;,\n        3;2065,2065,2065;,\n        3;2066,2066,2066;,\n        3;2067,2067,2067;,\n        3;2068,2068,2068;,\n        3;2069,2069,2069;,\n        3;2070,2070,2070;,\n        3;2071,2071,2071;,\n        3;2072,2072,2072;,\n        3;2073,2073,2073;,\n        3;2074,2074,2074;,\n        3;2075,2075,2075;,\n        3;2076,2076,2076;,\n        3;2077,2077,2077;,\n        3;2078,2078,2078;,\n        3;2079,2079,2079;,\n        3;2080,2080,2080;,\n        3;2081,2081,2081;,\n        3;2082,2082,2082;,\n        3;2083,2083,2083;,\n        3;2084,2084,2084;,\n        3;2085,2085,2085;,\n        3;2086,2086,2086;,\n        3;2087,2087,2087;,\n        3;2088,2088,2088;,\n        3;2089,2089,2089;,\n        3;2090,2090,2090;,\n        3;2091,2091,2091;,\n        3;2092,2092,2092;,\n        3;2093,2093,2093;,\n        3;2094,2094,2094;,\n        3;2095,2095,2095;,\n        3;2096,2096,2096;,\n        3;2097,2097,2097;,\n        3;2098,2098,2098;,\n        3;2099,2099,2099;,\n        3;2100,2100,2100;,\n        3;2101,2101,2101;,\n        3;2102,2102,2102;,\n        3;2103,2103,2103;,\n        3;2104,2104,2104;,\n        3;2105,2105,2105;,\n        3;2106,2106,2106;,\n        3;2107,2107,2107;,\n        3;2108,2108,2108;,\n        3;2109,2109,2109;,\n        3;2110,2110,2110;,\n        3;2111,2111,2111;,\n        3;2112,2112,2112;,\n        3;2113,2113,2113;,\n        3;2114,2114,2114;,\n        3;2115,2115,2115;,\n        3;2116,2116,2116;,\n        3;2117,2117,2117;,\n        3;2118,2118,2118;,\n        3;2119,2119,2119;,\n        3;2120,2120,2120;,\n        3;2121,2121,2121;,\n        3;2122,2122,2122;,\n        3;2123,2123,2123;,\n        3;2124,2124,2124;,\n        3;2125,2125,2125;,\n        3;2126,2126,2126;,\n        3;2127,2127,2127;,\n        3;2128,2128,2128;,\n        3;2129,2129,2129;,\n        3;2130,2130,2130;,\n        3;2131,2131,2131;,\n        3;2132,2132,2132;,\n        3;2133,2133,2133;,\n        3;2134,2134,2134;,\n        3;2135,2135,2135;,\n        3;2136,2136,2136;,\n        3;2137,2137,2137;,\n        3;2138,2138,2138;,\n        3;2139,2139,2139;,\n        3;2140,2140,2140;,\n        3;2141,2141,2141;,\n        3;2142,2142,2142;,\n        3;2143,2143,2143;,\n        3;2144,2144,2144;,\n        3;2145,2145,2145;,\n        3;2146,2146,2146;,\n        3;2147,2147,2147;,\n        3;2148,2148,2148;,\n        3;2149,2149,2149;,\n        3;2150,2150,2150;,\n        3;2151,2151,2151;,\n        3;2152,2152,2152;,\n        3;2153,2153,2153;,\n        3;2154,2154,2154;,\n        3;2155,2155,2155;,\n        3;2156,2156,2156;,\n        3;2157,2157,2157;,\n        3;2158,2158,2158;,\n        3;2159,2159,2159;,\n        3;2160,2160,2160;,\n        3;2161,2161,2161;,\n        3;2162,2162,2162;,\n        3;2163,2163,2163;,\n        3;2164,2164,2164;,\n        3;2165,2165,2165;,\n        3;2166,2166,2166;,\n        3;2167,2167,2167;,\n        3;2168,2168,2168;,\n        3;2169,2169,2169;,\n        3;2170,2170,2170;,\n        3;2171,2171,2171;,\n        3;2172,2172,2172;,\n        3;2173,2173,2173;,\n        3;2174,2174,2174;,\n        3;2175,2175,2175;,\n        3;2176,2176,2176;,\n        3;2177,2177,2177;,\n        3;2178,2178,2178;,\n        3;2179,2179,2179;,\n        3;2180,2180,2180;,\n        3;2181,2181,2181;,\n        3;2182,2182,2182;,\n        3;2183,2183,2183;,\n        3;2184,2184,2184;,\n        3;2185,2185,2185;,\n        3;2186,2186,2186;,\n        3;2187,2187,2187;,\n        3;2188,2188,2188;,\n        3;2189,2189,2189;,\n        3;2190,2190,2190;,\n        3;2191,2191,2191;,\n        3;2192,2192,2192;,\n        3;2193,2193,2193;,\n        3;2194,2194,2194;,\n        3;2195,2195,2195;,\n        3;2196,2196,2196;,\n        3;2197,2197,2197;,\n        3;2198,2198,2198;,\n        3;2199,2199,2199;,\n        3;2200,2200,2200;,\n        3;2201,2201,2201;,\n        3;2202,2202,2202;,\n        3;2203,2203,2203;,\n        3;2204,2204,2204;,\n        3;2205,2205,2205;,\n        3;2206,2206,2206;,\n        3;2207,2207,2207;,\n        3;2208,2208,2208;,\n        3;2209,2209,2209;,\n        3;2210,2210,2210;,\n        3;2211,2211,2211;,\n        3;2212,2212,2212;,\n        3;2213,2213,2213;,\n        3;2214,2214,2214;,\n        3;2215,2215,2215;,\n        3;2216,2216,2216;,\n        3;2217,2217,2217;,\n        3;2218,2218,2218;,\n        3;2219,2219,2219;,\n        3;2220,2220,2220;,\n        3;2221,2221,2221;,\n        3;2222,2222,2222;,\n        3;2223,2223,2223;,\n        3;2224,2224,2224;,\n        3;2225,2225,2225;,\n        3;2226,2226,2226;,\n        3;2227,2227,2227;,\n        3;2228,2228,2228;,\n        3;2229,2229,2229;,\n        3;2230,2230,2230;,\n        3;2231,2231,2231;,\n        3;2232,2232,2232;,\n        3;2233,2233,2233;,\n        3;2234,2234,2234;,\n        3;2235,2235,2235;,\n        3;2236,2236,2236;,\n        3;2237,2237,2237;,\n        3;2238,2238,2238;,\n        3;2239,2239,2239;,\n        3;2240,2240,2240;,\n        3;2241,2241,2241;,\n        3;2242,2242,2242;,\n        3;2243,2243,2243;,\n        3;2244,2244,2244;,\n        3;2245,2245,2245;,\n        3;2246,2246,2246;,\n        3;2247,2247,2247;,\n        3;2248,2248,2248;,\n        3;2249,2249,2249;,\n        3;2250,2250,2250;,\n        3;2251,2251,2251;,\n        3;2252,2252,2252;,\n        3;2253,2253,2253;,\n        3;2254,2254,2254;,\n        3;2255,2255,2255;,\n        3;2256,2256,2256;,\n        3;2257,2257,2257;,\n        3;2258,2258,2258;,\n        3;2259,2259,2259;,\n        3;2260,2260,2260;,\n        3;2261,2261,2261;,\n        3;2262,2262,2262;,\n        3;2263,2263,2263;,\n        3;2264,2264,2264;,\n        3;2265,2265,2265;,\n        3;2266,2266,2266;,\n        3;2267,2267,2267;,\n        3;2268,2268,2268;,\n        3;2269,2269,2269;,\n        3;2270,2270,2270;,\n        3;2271,2271,2271;,\n        3;2272,2272,2272;,\n        3;2273,2273,2273;,\n        3;2274,2274,2274;,\n        3;2275,2275,2275;,\n        3;2276,2276,2276;,\n        3;2277,2277,2277;,\n        3;2278,2278,2278;,\n        3;2279,2279,2279;,\n        3;2280,2280,2280;,\n        3;2281,2281,2281;,\n        3;2282,2282,2282;,\n        3;2283,2283,2283;,\n        3;2284,2284,2284;,\n        3;2285,2285,2285;,\n        3;2286,2286,2286;,\n        3;2287,2287,2287;,\n        3;2288,2288,2288;,\n        3;2289,2289,2289;,\n        3;2290,2290,2290;,\n        3;2291,2291,2291;,\n        3;2292,2292,2292;,\n        3;2293,2293,2293;,\n        3;2294,2294,2294;,\n        3;2295,2295,2295;,\n        3;2296,2296,2296;,\n        3;2297,2297,2297;,\n        3;2298,2298,2298;,\n        3;2299,2299,2299;,\n        3;2300,2300,2300;,\n        3;2301,2301,2301;,\n        3;2302,2302,2302;,\n        3;2303,2303,2303;,\n        3;2304,2304,2304;,\n        3;2305,2305,2305;,\n        3;2306,2306,2306;,\n        3;2307,2307,2307;,\n        3;2308,2308,2308;,\n        3;2309,2309,2309;,\n        3;2310,2310,2310;,\n        3;2311,2311,2311;,\n        3;2312,2312,2312;,\n        3;2313,2313,2313;,\n        3;2314,2314,2314;,\n        3;2315,2315,2315;,\n        3;2316,2316,2316;,\n        3;2317,2317,2317;,\n        3;2318,2318,2318;,\n        3;2319,2319,2319;,\n        3;2320,2320,2320;,\n        3;2321,2321,2321;,\n        3;2322,2322,2322;,\n        3;2323,2323,2323;,\n        3;2324,2324,2324;,\n        3;2325,2325,2325;,\n        3;2326,2326,2326;,\n        3;2327,2327,2327;,\n        3;2328,2328,2328;,\n        3;2329,2329,2329;,\n        3;2330,2330,2330;,\n        3;2331,2331,2331;,\n        3;2332,2332,2332;,\n        3;2333,2333,2333;,\n        3;2334,2334,2334;,\n        3;2335,2335,2335;,\n        3;2336,2336,2336;,\n        3;2337,2337,2337;,\n        3;2338,2338,2338;,\n        3;2339,2339,2339;,\n        3;2340,2340,2340;,\n        3;2341,2341,2341;,\n        3;2342,2342,2342;,\n        3;2343,2343,2343;,\n        3;2344,2344,2344;,\n        3;2345,2345,2345;,\n        3;2346,2346,2346;,\n        3;2347,2347,2347;,\n        3;2348,2348,2348;,\n        3;2349,2349,2349;,\n        3;2350,2350,2350;,\n        3;2351,2351,2351;,\n        3;2352,2352,2352;,\n        3;2353,2353,2353;,\n        3;2354,2354,2354;,\n        3;2355,2355,2355;,\n        3;2356,2356,2356;,\n        3;2357,2357,2357;,\n        3;2358,2358,2358;,\n        3;2359,2359,2359;,\n        3;2360,2360,2360;,\n        3;2361,2361,2361;,\n        3;2362,2362,2362;,\n        3;2363,2363,2363;,\n        3;2364,2364,2364;,\n        3;2365,2365,2365;,\n        3;2366,2366,2366;,\n        3;2367,2367,2367;,\n        3;2368,2368,2368;,\n        3;2369,2369,2369;,\n        3;2370,2370,2370;,\n        3;2371,2371,2371;,\n        3;2372,2372,2372;,\n        3;2373,2373,2373;,\n        3;2374,2374,2374;,\n        3;2375,2375,2375;,\n        3;2376,2376,2376;,\n        3;2377,2377,2377;,\n        3;2378,2378,2378;,\n        3;2379,2379,2379;,\n        3;2380,2380,2380;,\n        3;2381,2381,2381;,\n        3;2382,2382,2382;,\n        3;2383,2383,2383;,\n        3;2384,2384,2384;,\n        3;2385,2385,2385;,\n        3;2386,2386,2386;,\n        3;2387,2387,2387;,\n        3;2388,2388,2388;,\n        3;2389,2389,2389;,\n        3;2390,2390,2390;,\n        3;2391,2391,2391;,\n        3;2392,2392,2392;,\n        3;2393,2393,2393;,\n        3;2394,2394,2394;,\n        3;2395,2395,2395;,\n        3;2396,2396,2396;,\n        3;2397,2397,2397;,\n        3;2398,2398,2398;,\n        3;2399,2399,2399;,\n        3;2400,2400,2400;,\n        3;2401,2401,2401;,\n        3;2402,2402,2402;,\n        3;2403,2403,2403;,\n        3;2404,2404,2404;,\n        3;2405,2405,2405;,\n        3;2406,2406,2406;,\n        3;2407,2407,2407;,\n        3;2408,2408,2408;,\n        3;2409,2409,2409;,\n        3;2410,2410,2410;,\n        3;2411,2411,2411;,\n        3;2412,2412,2412;,\n        3;2413,2413,2413;,\n        3;2414,2414,2414;,\n        3;2415,2415,2415;,\n        3;2416,2416,2416;,\n        3;2417,2417,2417;,\n        3;2418,2418,2418;,\n        3;2419,2419,2419;,\n        3;2420,2420,2420;,\n        3;2421,2421,2421;,\n        3;2422,2422,2422;,\n        3;2423,2423,2423;,\n        3;2424,2424,2424;,\n        3;2425,2425,2425;,\n        3;2426,2426,2426;,\n        3;2427,2427,2427;,\n        3;2428,2428,2428;,\n        3;2429,2429,2429;,\n        3;2430,2430,2430;,\n        3;2431,2431,2431;,\n        3;2432,2432,2432;,\n        3;2433,2433,2433;,\n        3;2434,2434,2434;,\n        3;2435,2435,2435;,\n        3;2436,2436,2436;,\n        3;2437,2437,2437;,\n        3;2438,2438,2438;,\n        3;2439,2439,2439;,\n        3;2440,2440,2440;,\n        3;2441,2441,2441;,\n        3;2442,2442,2442;,\n        3;2443,2443,2443;,\n        3;2444,2444,2444;,\n        3;2445,2445,2445;,\n        3;2446,2446,2446;,\n        3;2447,2447,2447;,\n        3;2448,2448,2448;,\n        3;2449,2449,2449;,\n        3;2450,2450,2450;,\n        3;2451,2451,2451;,\n        3;2452,2452,2452;,\n        3;2453,2453,2453;,\n        3;2454,2454,2454;,\n        3;2455,2455,2455;,\n        3;2456,2456,2456;,\n        3;2457,2457,2457;,\n        3;2458,2458,2458;,\n        3;2459,2459,2459;,\n        3;2460,2460,2460;,\n        3;2461,2461,2461;,\n        3;2462,2462,2462;,\n        3;2463,2463,2463;,\n        3;2464,2464,2464;,\n        3;2465,2465,2465;,\n        3;2466,2466,2466;,\n        3;2467,2467,2467;,\n        3;2468,2468,2468;,\n        3;2469,2469,2469;,\n        3;2470,2470,2470;,\n        3;2471,2471,2471;,\n        3;2472,2472,2472;,\n        3;2473,2473,2473;,\n        3;2474,2474,2474;,\n        3;2475,2475,2475;,\n        3;2476,2476,2476;,\n        3;2477,2477,2477;,\n        3;2478,2478,2478;,\n        3;2479,2479,2479;,\n        3;2480,2480,2480;,\n        3;2481,2481,2481;,\n        3;2482,2482,2482;,\n        3;2483,2483,2483;,\n        3;2484,2484,2484;,\n        3;2485,2485,2485;,\n        3;2486,2486,2486;,\n        3;2487,2487,2487;,\n        3;2488,2488,2488;,\n        3;2489,2489,2489;,\n        3;2490,2490,2490;,\n        3;2491,2491,2491;,\n        3;2492,2492,2492;,\n        3;2493,2493,2493;,\n        3;2494,2494,2494;,\n        3;2495,2495,2495;,\n        3;2496,2496,2496;,\n        3;2497,2497,2497;,\n        3;2498,2498,2498;,\n        3;2499,2499,2499;,\n        3;2500,2500,2500;,\n        3;2501,2501,2501;,\n        3;2502,2502,2502;,\n        3;2503,2503,2503;,\n        3;2504,2504,2504;,\n        3;2505,2505,2505;,\n        3;2506,2506,2506;,\n        3;2507,2507,2507;,\n        3;2508,2508,2508;,\n        3;2509,2509,2509;,\n        3;2510,2510,2510;,\n        3;2511,2511,2511;,\n        3;2512,2512,2512;,\n        3;2513,2513,2513;,\n        3;2514,2514,2514;,\n        3;2515,2515,2515;,\n        3;2516,2516,2516;,\n        3;2517,2517,2517;,\n        3;2518,2518,2518;,\n        3;2519,2519,2519;,\n        3;2520,2520,2520;,\n        3;2521,2521,2521;,\n        3;2522,2522,2522;,\n        3;2523,2523,2523;,\n        3;2524,2524,2524;,\n        3;2525,2525,2525;,\n        3;2526,2526,2526;,\n        3;2527,2527,2527;,\n        3;2528,2528,2528;,\n        3;2529,2529,2529;,\n        3;2530,2530,2530;,\n        3;2531,2531,2531;,\n        3;2532,2532,2532;,\n        3;2533,2533,2533;,\n        3;2534,2534,2534;,\n        3;2535,2535,2535;,\n        3;2536,2536,2536;,\n        3;2537,2537,2537;,\n        3;2538,2538,2538;,\n        3;2539,2539,2539;,\n        3;2540,2540,2540;,\n        3;2541,2541,2541;,\n        3;2542,2542,2542;,\n        3;2543,2543,2543;,\n        3;2544,2544,2544;,\n        3;2545,2545,2545;,\n        3;2546,2546,2546;,\n        3;2547,2547,2547;,\n        3;2548,2548,2548;,\n        3;2549,2549,2549;,\n        3;2550,2550,2550;,\n        3;2551,2551,2551;,\n        3;2552,2552,2552;,\n        3;2553,2553,2553;,\n        3;2554,2554,2554;,\n        3;2555,2555,2555;,\n        3;2556,2556,2556;,\n        3;2557,2557,2557;,\n        3;2558,2558,2558;,\n        3;2559,2559,2559;,\n        3;2560,2560,2560;,\n        3;2561,2561,2561;,\n        3;2562,2562,2562;,\n        3;2563,2563,2563;,\n        3;2564,2564,2564;,\n        3;2565,2565,2565;,\n        3;2566,2566,2566;,\n        3;2567,2567,2567;,\n        3;2568,2568,2568;,\n        3;2569,2569,2569;,\n        3;2570,2570,2570;,\n        3;2571,2571,2571;,\n        3;2572,2572,2572;,\n        3;2573,2573,2573;,\n        3;2574,2574,2574;,\n        3;2575,2575,2575;,\n        3;2576,2576,2576;,\n        3;2577,2577,2577;,\n        3;2578,2578,2578;,\n        3;2579,2579,2579;,\n        3;2580,2580,2580;,\n        3;2581,2581,2581;,\n        3;2582,2582,2582;,\n        3;2583,2583,2583;,\n        3;2584,2584,2584;,\n        3;2585,2585,2585;,\n        3;2586,2586,2586;,\n        3;2587,2587,2587;,\n        3;2588,2588,2588;,\n        3;2589,2589,2589;,\n        3;2590,2590,2590;,\n        3;2591,2591,2591;,\n        3;2592,2592,2592;,\n        3;2593,2593,2593;,\n        3;2594,2594,2594;,\n        3;2595,2595,2595;,\n        3;2596,2596,2596;,\n        3;2597,2597,2597;,\n        3;2598,2598,2598;,\n        3;2599,2599,2599;,\n        3;2600,2600,2600;,\n        3;2601,2601,2601;,\n        3;2602,2602,2602;,\n        3;2603,2603,2603;,\n        3;2604,2604,2604;,\n        3;2605,2605,2605;,\n        3;2606,2606,2606;,\n        3;2607,2607,2607;,\n        3;2608,2608,2608;,\n        3;2609,2609,2609;,\n        3;2610,2610,2610;,\n        3;2611,2611,2611;,\n        3;2612,2612,2612;,\n        3;2613,2613,2613;,\n        3;2614,2614,2614;,\n        3;2615,2615,2615;,\n        3;2616,2616,2616;,\n        3;2617,2617,2617;,\n        3;2618,2618,2618;,\n        3;2619,2619,2619;,\n        3;2620,2620,2620;,\n        3;2621,2621,2621;,\n        3;2622,2622,2622;,\n        3;2623,2623,2623;,\n        3;2624,2624,2624;,\n        3;2625,2625,2625;,\n        3;2626,2626,2626;,\n        3;2627,2627,2627;,\n        3;2628,2628,2628;,\n        3;2629,2629,2629;,\n        3;2630,2630,2630;,\n        3;2631,2631,2631;,\n        3;2632,2632,2632;,\n        3;2633,2633,2633;,\n        3;2634,2634,2634;,\n        3;2635,2635,2635;,\n        3;2636,2636,2636;,\n        3;2637,2637,2637;,\n        3;2638,2638,2638;,\n        3;2639,2639,2639;,\n        3;2640,2640,2640;,\n        3;2641,2641,2641;,\n        3;2642,2642,2642;,\n        3;2643,2643,2643;,\n        3;2644,2644,2644;,\n        3;2645,2645,2645;,\n        3;2646,2646,2646;,\n        3;2647,2647,2647;,\n        3;2648,2648,2648;,\n        3;2649,2649,2649;,\n        3;2650,2650,2650;,\n        3;2651,2651,2651;,\n        3;2652,2652,2652;,\n        3;2653,2653,2653;,\n        3;2654,2654,2654;,\n        3;2655,2655,2655;,\n        3;2656,2656,2656;,\n        3;2657,2657,2657;,\n        3;2658,2658,2658;,\n        3;2659,2659,2659;,\n        3;2660,2660,2660;,\n        3;2661,2661,2661;,\n        3;2662,2662,2662;,\n        3;2663,2663,2663;,\n        3;2664,2664,2664;,\n        3;2665,2665,2665;,\n        3;2666,2666,2666;,\n        3;2667,2667,2667;,\n        3;2668,2668,2668;,\n        3;2669,2669,2669;,\n        3;2670,2670,2670;,\n        3;2671,2671,2671;,\n        3;2672,2672,2672;,\n        3;2673,2673,2673;,\n        3;2674,2674,2674;,\n        3;2675,2675,2675;,\n        3;2676,2676,2676;,\n        3;2677,2677,2677;,\n        3;2678,2678,2678;,\n        3;2679,2679,2679;,\n        3;2680,2680,2680;,\n        3;2681,2681,2681;,\n        3;2682,2682,2682;,\n        3;2683,2683,2683;,\n        3;2684,2684,2684;,\n        3;2685,2685,2685;,\n        3;2686,2686,2686;,\n        3;2687,2687,2687;,\n        3;2688,2688,2688;,\n        3;2689,2689,2689;,\n        3;2690,2690,2690;,\n        3;2691,2691,2691;,\n        3;2692,2692,2692;,\n        3;2693,2693,2693;,\n        3;2694,2694,2694;,\n        3;2695,2695,2695;,\n        3;2696,2696,2696;,\n        3;2697,2697,2697;,\n        3;2698,2698,2698;,\n        3;2699,2699,2699;,\n        3;2700,2700,2700;,\n        3;2701,2701,2701;,\n        3;2702,2702,2702;,\n        3;2703,2703,2703;,\n        3;2704,2704,2704;,\n        3;2705,2705,2705;,\n        3;2706,2706,2706;,\n        3;2707,2707,2707;,\n        3;2708,2708,2708;,\n        3;2709,2709,2709;,\n        3;2710,2710,2710;,\n        3;2711,2711,2711;,\n        3;2712,2712,2712;,\n        3;2713,2713,2713;,\n        3;2714,2714,2714;,\n        3;2715,2715,2715;,\n        3;2716,2716,2716;,\n        3;2717,2717,2717;,\n        3;2718,2718,2718;,\n        3;2719,2719,2719;,\n        3;2720,2720,2720;,\n        3;2721,2721,2721;,\n        3;2722,2722,2722;,\n        3;2723,2723,2723;,\n        3;2724,2724,2724;,\n        3;2725,2725,2725;,\n        3;2726,2726,2726;,\n        3;2727,2727,2727;,\n        3;2728,2728,2728;,\n        3;2729,2729,2729;,\n        3;2730,2730,2730;,\n        3;2731,2731,2731;,\n        3;2732,2732,2732;,\n        3;2733,2733,2733;,\n        3;2734,2734,2734;,\n        3;2735,2735,2735;,\n        3;2736,2736,2736;,\n        3;2737,2737,2737;,\n        3;2738,2738,2738;,\n        3;2739,2739,2739;,\n        3;2740,2740,2740;,\n        3;2741,2741,2741;,\n        3;2742,2742,2742;,\n        3;2743,2743,2743;,\n        3;2744,2744,2744;,\n        3;2745,2745,2745;,\n        3;2746,2746,2746;,\n        3;2747,2747,2747;,\n        3;2748,2748,2748;,\n        3;2749,2749,2749;,\n        3;2750,2750,2750;,\n        3;2751,2751,2751;,\n        3;2752,2752,2752;,\n        3;2753,2753,2753;,\n        3;2754,2754,2754;,\n        3;2755,2755,2755;,\n        3;2756,2756,2756;,\n        3;2757,2757,2757;,\n        3;2758,2758,2758;,\n        3;2759,2759,2759;,\n        3;2760,2760,2760;,\n        3;2761,2761,2761;,\n        3;2762,2762,2762;,\n        3;2763,2763,2763;,\n        3;2764,2764,2764;,\n        3;2765,2765,2765;,\n        3;2766,2766,2766;,\n        3;2767,2767,2767;,\n        3;2768,2768,2768;,\n        3;2769,2769,2769;,\n        3;2770,2770,2770;,\n        3;2771,2771,2771;,\n        3;2772,2772,2772;,\n        3;2773,2773,2773;,\n        3;2774,2774,2774;,\n        3;2775,2775,2775;,\n        3;2776,2776,2776;,\n        3;2777,2777,2777;,\n        3;2778,2778,2778;,\n        3;2779,2779,2779;,\n        3;2780,2780,2780;,\n        3;2781,2781,2781;,\n        3;2782,2782,2782;,\n        3;2783,2783,2783;,\n        3;2784,2784,2784;,\n        3;2785,2785,2785;,\n        3;2786,2786,2786;,\n        3;2787,2787,2787;,\n        3;2788,2788,2788;,\n        3;2789,2789,2789;,\n        3;2790,2790,2790;,\n        3;2791,2791,2791;,\n        3;2792,2792,2792;,\n        3;2793,2793,2793;,\n        3;2794,2794,2794;,\n        3;2795,2795,2795;,\n        3;2796,2796,2796;,\n        3;2797,2797,2797;,\n        3;2798,2798,2798;,\n        3;2799,2799,2799;,\n        3;2800,2800,2800;,\n        3;2801,2801,2801;,\n        3;2802,2802,2802;,\n        3;2803,2803,2803;,\n        3;2804,2804,2804;,\n        3;2805,2805,2805;,\n        3;2806,2806,2806;,\n        3;2807,2807,2807;,\n        3;2808,2808,2808;,\n        3;2809,2809,2809;,\n        3;2810,2810,2810;,\n        3;2811,2811,2811;,\n        3;2812,2812,2812;,\n        3;2813,2813,2813;,\n        3;2814,2814,2814;,\n        3;2815,2815,2815;,\n        3;2816,2816,2816;,\n        3;2817,2817,2817;,\n        3;2818,2818,2818;,\n        3;2819,2819,2819;,\n        3;2820,2820,2820;,\n        3;2821,2821,2821;,\n        3;2822,2822,2822;,\n        3;2823,2823,2823;,\n        3;2824,2824,2824;,\n        3;2825,2825,2825;,\n        3;2826,2826,2826;,\n        3;2827,2827,2827;,\n        3;2828,2828,2828;,\n        3;2829,2829,2829;,\n        3;2830,2830,2830;,\n        3;2831,2831,2831;,\n        3;2832,2832,2832;,\n        3;2833,2833,2833;,\n        3;2834,2834,2834;,\n        3;2835,2835,2835;,\n        3;2836,2836,2836;,\n        3;2837,2837,2837;,\n        3;2838,2838,2838;,\n        3;2839,2839,2839;,\n        3;2840,2840,2840;,\n        3;2841,2841,2841;,\n        3;2842,2842,2842;,\n        3;2843,2843,2843;,\n        3;2844,2844,2844;,\n        3;2845,2845,2845;,\n        3;2846,2846,2846;,\n        3;2847,2847,2847;,\n        3;2848,2848,2848;,\n        3;2849,2849,2849;,\n        3;2850,2850,2850;,\n        3;2851,2851,2851;,\n        3;2852,2852,2852;,\n        3;2853,2853,2853;,\n        3;2854,2854,2854;,\n        3;2855,2855,2855;,\n        3;2856,2856,2856;,\n        3;2857,2857,2857;,\n        3;2858,2858,2858;,\n        3;2859,2859,2859;,\n        3;2860,2860,2860;,\n        3;2861,2861,2861;,\n        3;2862,2862,2862;,\n        3;2863,2863,2863;,\n        3;2864,2864,2864;,\n        3;2865,2865,2865;,\n        3;2866,2866,2866;,\n        3;2867,2867,2867;,\n        3;2868,2868,2868;,\n        3;2869,2869,2869;,\n        3;2870,2870,2870;,\n        3;2871,2871,2871;,\n        3;2872,2872,2872;,\n        3;2873,2873,2873;,\n        3;2874,2874,2874;,\n        3;2875,2875,2875;,\n        3;2876,2876,2876;,\n        3;2877,2877,2877;,\n        3;2878,2878,2878;,\n        3;2879,2879,2879;,\n        3;2880,2880,2880;,\n        3;2881,2881,2881;,\n        3;2882,2882,2882;,\n        3;2883,2883,2883;,\n        3;2884,2884,2884;,\n        3;2885,2885,2885;,\n        3;2886,2886,2886;,\n        3;2887,2887,2887;,\n        3;2888,2888,2888;,\n        3;2889,2889,2889;,\n        3;2890,2890,2890;,\n        3;2891,2891,2891;,\n        3;2892,2892,2892;,\n        3;2893,2893,2893;,\n        3;2894,2894,2894;,\n        3;2895,2895,2895;,\n        3;2896,2896,2896;,\n        3;2897,2897,2897;,\n        3;2898,2898,2898;,\n        3;2899,2899,2899;,\n        3;2900,2900,2900;,\n        3;2901,2901,2901;,\n        3;2902,2902,2902;,\n        3;2903,2903,2903;,\n        3;2904,2904,2904;,\n        3;2905,2905,2905;,\n        3;2906,2906,2906;,\n        3;2907,2907,2907;,\n        3;2908,2908,2908;,\n        3;2909,2909,2909;,\n        3;2910,2910,2910;,\n        3;2911,2911,2911;,\n        3;2912,2912,2912;,\n        3;2913,2913,2913;,\n        3;2914,2914,2914;,\n        3;2915,2915,2915;,\n        3;2916,2916,2916;,\n        3;2917,2917,2917;,\n        3;2918,2918,2918;,\n        3;2919,2919,2919;,\n        3;2920,2920,2920;,\n        3;2921,2921,2921;,\n        3;2922,2922,2922;,\n        3;2923,2923,2923;,\n        3;2924,2924,2924;,\n        3;2925,2925,2925;,\n        3;2926,2926,2926;,\n        3;2927,2927,2927;,\n        3;2928,2928,2928;,\n        3;2929,2929,2929;,\n        3;2930,2930,2930;,\n        3;2931,2931,2931;,\n        3;2932,2932,2932;,\n        3;2933,2933,2933;,\n        3;2934,2934,2934;,\n        3;2935,2935,2935;,\n        3;2936,2936,2936;,\n        3;2937,2937,2937;,\n        3;2938,2938,2938;,\n        3;2939,2939,2939;,\n        3;2940,2940,2940;,\n        3;2941,2941,2941;,\n        3;2942,2942,2942;,\n        3;2943,2943,2943;,\n        3;2944,2944,2944;,\n        3;2945,2945,2945;,\n        3;2946,2946,2946;,\n        3;2947,2947,2947;,\n        3;2948,2948,2948;,\n        3;2949,2949,2949;,\n        3;2950,2950,2950;,\n        3;2951,2951,2951;,\n        3;2952,2952,2952;,\n        3;2953,2953,2953;,\n        3;2954,2954,2954;,\n        3;2955,2955,2955;,\n        3;2956,2956,2956;,\n        3;2957,2957,2957;,\n        3;2958,2958,2958;,\n        3;2959,2959,2959;,\n        3;2960,2960,2960;,\n        3;2961,2961,2961;,\n        3;2962,2962,2962;,\n        3;2963,2963,2963;,\n        3;2964,2964,2964;,\n        3;2965,2965,2965;,\n        3;2966,2966,2966;,\n        3;2967,2967,2967;,\n        3;2968,2968,2968;,\n        3;2969,2969,2969;,\n        3;2970,2970,2970;,\n        3;2971,2971,2971;,\n        3;2972,2972,2972;,\n        3;2973,2973,2973;,\n        3;2974,2974,2974;,\n        3;2975,2975,2975;,\n        3;2976,2976,2976;,\n        3;2977,2977,2977;,\n        3;2978,2978,2978;,\n        3;2979,2979,2979;,\n        3;2980,2980,2980;,\n        3;2981,2981,2981;,\n        3;2982,2982,2982;,\n        3;2983,2983,2983;,\n        3;2984,2984,2984;,\n        3;2985,2985,2985;,\n        3;2986,2986,2986;,\n        3;2987,2987,2987;,\n        3;2988,2988,2988;,\n        3;2989,2989,2989;,\n        3;2990,2990,2990;,\n        3;2991,2991,2991;,\n        3;2992,2992,2992;,\n        3;2993,2993,2993;,\n        3;2994,2994,2994;,\n        3;2995,2995,2995;,\n        3;2996,2996,2996;,\n        3;2997,2997,2997;,\n        3;2998,2998,2998;,\n        3;2999,2999,2999;,\n        3;3000,3000,3000;,\n        3;3001,3001,3001;,\n        3;3002,3002,3002;,\n        3;3003,3003,3003;,\n        3;3004,3004,3004;,\n        3;3005,3005,3005;,\n        3;3006,3006,3006;,\n        3;3007,3007,3007;,\n        3;3008,3008,3008;,\n        3;3009,3009,3009;,\n        3;3010,3010,3010;,\n        3;3011,3011,3011;,\n        3;3012,3012,3012;,\n        3;3013,3013,3013;,\n        3;3014,3014,3014;,\n        3;3015,3015,3015;,\n        3;3016,3016,3016;,\n        3;3017,3017,3017;,\n        3;3018,3018,3018;,\n        3;3019,3019,3019;,\n        3;3020,3020,3020;,\n        3;3021,3021,3021;,\n        3;3022,3022,3022;,\n        3;3023,3023,3023;,\n        3;3024,3024,3024;,\n        3;3025,3025,3025;,\n        3;3026,3026,3026;,\n        3;3027,3027,3027;,\n        3;3028,3028,3028;,\n        3;3029,3029,3029;,\n        3;3030,3030,3030;,\n        3;3031,3031,3031;,\n        3;3032,3032,3032;,\n        3;3033,3033,3033;,\n        3;3034,3034,3034;,\n        3;3035,3035,3035;,\n        3;3036,3036,3036;,\n        3;3037,3037,3037;,\n        3;3038,3038,3038;,\n        3;3039,3039,3039;,\n        3;3040,3040,3040;,\n        3;3041,3041,3041;,\n        3;3042,3042,3042;,\n        3;3043,3043,3043;,\n        3;3044,3044,3044;,\n        3;3045,3045,3045;,\n        3;3046,3046,3046;,\n        3;3047,3047,3047;,\n        3;3048,3048,3048;,\n        3;3049,3049,3049;,\n        3;3050,3050,3050;,\n        3;3051,3051,3051;,\n        3;3052,3052,3052;,\n        3;3053,3053,3053;,\n        3;3054,3054,3054;,\n        3;3055,3055,3055;,\n        3;3056,3056,3056;,\n        3;3057,3057,3057;,\n        3;3058,3058,3058;,\n        3;3059,3059,3059;,\n        3;3060,3060,3060;,\n        3;3061,3061,3061;,\n        3;3062,3062,3062;,\n        3;3063,3063,3063;,\n        3;3064,3064,3064;,\n        3;3065,3065,3065;,\n        3;3066,3066,3066;,\n        3;3067,3067,3067;,\n        3;3068,3068,3068;,\n        3;3069,3069,3069;,\n        3;3070,3070,3070;,\n        3;3071,3071,3071;,\n        3;3072,3072,3072;,\n        3;3073,3073,3073;,\n        3;3074,3074,3074;,\n        3;3075,3075,3075;,\n        3;3076,3076,3076;,\n        3;3077,3077,3077;,\n        3;3078,3078,3078;,\n        3;3079,3079,3079;,\n        3;3080,3080,3080;,\n        3;3081,3081,3081;,\n        3;3082,3082,3082;,\n        3;3083,3083,3083;,\n        3;3084,3084,3084;,\n        3;3085,3085,3085;,\n        3;3086,3086,3086;,\n        3;3087,3087,3087;,\n        3;3088,3088,3088;,\n        3;3089,3089,3089;,\n        3;3090,3090,3090;,\n        3;3091,3091,3091;,\n        3;3092,3092,3092;,\n        3;3093,3093,3093;,\n        3;3094,3094,3094;,\n        3;3095,3095,3095;,\n        3;3096,3096,3096;,\n        3;3097,3097,3097;,\n        3;3098,3098,3098;,\n        3;3099,3099,3099;,\n        3;3100,3100,3100;,\n        3;3101,3101,3101;,\n        3;3102,3102,3102;,\n        3;3103,3103,3103;,\n        3;3104,3104,3104;,\n        3;3105,3105,3105;,\n        3;3106,3106,3106;,\n        3;3107,3107,3107;,\n        3;3108,3108,3108;,\n        3;3109,3109,3109;,\n        3;3110,3110,3110;,\n        3;3111,3111,3111;,\n        3;3112,3112,3112;,\n        3;3113,3113,3113;,\n        3;3114,3114,3114;,\n        3;3115,3115,3115;,\n        3;3116,3116,3116;,\n        3;3117,3117,3117;,\n        3;3118,3118,3118;,\n        3;3119,3119,3119;,\n        3;3120,3120,3120;,\n        3;3121,3121,3121;,\n        3;3122,3122,3122;,\n        3;3123,3123,3123;,\n        3;3124,3124,3124;,\n        3;3125,3125,3125;,\n        3;3126,3126,3126;,\n        3;3127,3127,3127;,\n        3;3128,3128,3128;,\n        3;3129,3129,3129;,\n        3;3130,3130,3130;,\n        3;3131,3131,3131;,\n        3;3132,3132,3132;,\n        3;3133,3133,3133;,\n        3;3134,3134,3134;,\n        3;3135,3135,3135;,\n        3;3136,3136,3136;,\n        3;3137,3137,3137;,\n        3;3138,3138,3138;,\n        3;3139,3139,3139;,\n        3;3140,3140,3140;,\n        3;3141,3141,3141;,\n        3;3142,3142,3142;,\n        3;3143,3143,3143;,\n        3;3144,3144,3144;,\n        3;3145,3145,3145;,\n        3;3146,3146,3146;,\n        3;3147,3147,3147;,\n        3;3148,3148,3148;,\n        3;3149,3149,3149;,\n        3;3150,3150,3150;,\n        3;3151,3151,3151;,\n        3;3152,3152,3152;,\n        3;3153,3153,3153;,\n        3;3154,3154,3154;,\n        3;3155,3155,3155;,\n        3;3156,3156,3156;,\n        3;3157,3157,3157;,\n        3;3158,3158,3158;,\n        3;3159,3159,3159;,\n        3;3160,3160,3160;,\n        3;3161,3161,3161;,\n        3;3162,3162,3162;,\n        3;3163,3163,3163;,\n        3;3164,3164,3164;,\n        3;3165,3165,3165;,\n        3;3166,3166,3166;,\n        3;3167,3167,3167;,\n        3;3168,3168,3168;,\n        3;3169,3169,3169;,\n        3;3170,3170,3170;,\n        3;3171,3171,3171;,\n        3;3172,3172,3172;,\n        3;3173,3173,3173;,\n        3;3174,3174,3174;,\n        3;3175,3175,3175;,\n        3;3176,3176,3176;,\n        3;3177,3177,3177;,\n        3;3178,3178,3178;,\n        3;3179,3179,3179;,\n        3;3180,3180,3180;,\n        3;3181,3181,3181;,\n        3;3182,3182,3182;,\n        3;3183,3183,3183;,\n        3;3184,3184,3184;,\n        3;3185,3185,3185;,\n        3;3186,3186,3186;,\n        3;3187,3187,3187;,\n        3;3188,3188,3188;,\n        3;3189,3189,3189;,\n        3;3190,3190,3190;,\n        3;3191,3191,3191;,\n        3;3192,3192,3192;,\n        3;3193,3193,3193;,\n        3;3194,3194,3194;,\n        3;3195,3195,3195;,\n        3;3196,3196,3196;,\n        3;3197,3197,3197;,\n        3;3198,3198,3198;,\n        3;3199,3199,3199;,\n        3;3200,3200,3200;,\n        3;3201,3201,3201;,\n        3;3202,3202,3202;,\n        3;3203,3203,3203;,\n        3;3204,3204,3204;,\n        3;3205,3205,3205;,\n        3;3206,3206,3206;,\n        3;3207,3207,3207;,\n        3;3208,3208,3208;,\n        3;3209,3209,3209;,\n        3;3210,3210,3210;,\n        3;3211,3211,3211;,\n        3;3212,3212,3212;,\n        3;3213,3213,3213;,\n        3;3214,3214,3214;,\n        3;3215,3215,3215;,\n        3;3216,3216,3216;,\n        3;3217,3217,3217;,\n        3;3218,3218,3218;,\n        3;3219,3219,3219;,\n        3;3220,3220,3220;,\n        3;3221,3221,3221;,\n        3;3222,3222,3222;,\n        3;3223,3223,3223;,\n        3;3224,3224,3224;,\n        3;3225,3225,3225;,\n        3;3226,3226,3226;,\n        3;3227,3227,3227;,\n        3;3228,3228,3228;,\n        3;3229,3229,3229;,\n        3;3230,3230,3230;,\n        3;3231,3231,3231;,\n        3;3232,3232,3232;,\n        3;3233,3233,3233;,\n        3;3234,3234,3234;,\n        3;3235,3235,3235;,\n        3;3236,3236,3236;,\n        3;3237,3237,3237;,\n        3;3238,3238,3238;,\n        3;3239,3239,3239;,\n        3;3240,3240,3240;,\n        3;3241,3241,3241;,\n        3;3242,3242,3242;,\n        3;3243,3243,3243;,\n        3;3244,3244,3244;,\n        3;3245,3245,3245;,\n        3;3246,3246,3246;,\n        3;3247,3247,3247;,\n        3;3248,3248,3248;,\n        3;3249,3249,3249;,\n        3;3250,3250,3250;,\n        3;3251,3251,3251;,\n        3;3252,3252,3252;,\n        3;3253,3253,3253;,\n        3;3254,3254,3254;,\n        3;3255,3255,3255;,\n        3;3256,3256,3256;,\n        3;3257,3257,3257;,\n        3;3258,3258,3258;,\n        3;3259,3259,3259;,\n        3;3260,3260,3260;,\n        3;3261,3261,3261;,\n        3;3262,3262,3262;,\n        3;3263,3263,3263;,\n        3;3264,3264,3264;,\n        3;3265,3265,3265;,\n        3;3266,3266,3266;,\n        3;3267,3267,3267;,\n        3;3268,3268,3268;,\n        3;3269,3269,3269;,\n        3;3270,3270,3270;,\n        3;3271,3271,3271;,\n        3;3272,3272,3272;,\n        3;3273,3273,3273;,\n        3;3274,3274,3274;,\n        3;3275,3275,3275;,\n        3;3276,3276,3276;,\n        3;3277,3277,3277;,\n        3;3278,3278,3278;,\n        3;3279,3279,3279;,\n        3;3280,3280,3280;,\n        3;3281,3281,3281;,\n        3;3282,3282,3282;,\n        3;3283,3283,3283;,\n        3;3284,3284,3284;,\n        3;3285,3285,3285;,\n        3;3286,3286,3286;,\n        3;3287,3287,3287;,\n        3;3288,3288,3288;,\n        3;3289,3289,3289;,\n        3;3290,3290,3290;,\n        3;3291,3291,3291;,\n        3;3292,3292,3292;,\n        3;3293,3293,3293;,\n        3;3294,3294,3294;,\n        3;3295,3295,3295;,\n        3;3296,3296,3296;,\n        3;3297,3297,3297;,\n        3;3298,3298,3298;,\n        3;3299,3299,3299;,\n        3;3300,3300,3300;,\n        3;3301,3301,3301;,\n        3;3302,3302,3302;,\n        3;3303,3303,3303;,\n        3;3304,3304,3304;,\n        3;3305,3305,3305;,\n        3;3306,3306,3306;,\n        3;3307,3307,3307;,\n        3;3308,3308,3308;,\n        3;3309,3309,3309;,\n        3;3310,3310,3310;,\n        3;3311,3311,3311;,\n        3;3312,3312,3312;,\n        3;3313,3313,3313;,\n        3;3314,3314,3314;,\n        3;3315,3315,3315;,\n        3;3316,3316,3316;,\n        3;3317,3317,3317;,\n        3;3318,3318,3318;,\n        3;3319,3319,3319;,\n        3;3320,3320,3320;,\n        3;3321,3321,3321;,\n        3;3322,3322,3322;,\n        3;3323,3323,3323;,\n        3;3324,3324,3324;,\n        3;3325,3325,3325;,\n        3;3326,3326,3326;,\n        3;3327,3327,3327;,\n        3;3328,3328,3328;,\n        3;3329,3329,3329;,\n        3;3330,3330,3330;,\n        3;3331,3331,3331;,\n        3;3332,3332,3332;,\n        3;3333,3333,3333;,\n        3;3334,3334,3334;,\n        3;3335,3335,3335;,\n        3;3336,3336,3336;,\n        3;3337,3337,3337;,\n        3;3338,3338,3338;,\n        3;3339,3339,3339;,\n        3;3340,3340,3340;,\n        3;3341,3341,3341;,\n        3;3342,3342,3342;,\n        3;3343,3343,3343;,\n        3;3344,3344,3344;,\n        3;3345,3345,3345;,\n        3;3346,3346,3346;,\n        3;3347,3347,3347;,\n        3;3348,3348,3348;,\n        3;3349,3349,3349;,\n        3;3350,3350,3350;,\n        3;3351,3351,3351;,\n        3;3352,3352,3352;,\n        3;3353,3353,3353;,\n        3;3354,3354,3354;,\n        3;3355,3355,3355;,\n        3;3356,3356,3356;,\n        3;3357,3357,3357;,\n        3;3358,3358,3358;,\n        3;3359,3359,3359;,\n        3;3360,3360,3360;,\n        3;3361,3361,3361;,\n        3;3362,3362,3362;,\n        3;3363,3363,3363;,\n        3;3364,3364,3364;,\n        3;3365,3365,3365;,\n        3;3366,3366,3366;,\n        3;3367,3367,3367;,\n        3;3368,3368,3368;,\n        3;3369,3369,3369;,\n        3;3370,3370,3370;,\n        3;3371,3371,3371;,\n        3;3372,3372,3372;,\n        3;3373,3373,3373;,\n        3;3374,3374,3374;,\n        3;3375,3375,3375;,\n        3;3376,3376,3376;,\n        3;3377,3377,3377;,\n        3;3378,3378,3378;,\n        3;3379,3379,3379;,\n        3;3380,3380,3380;,\n        3;3381,3381,3381;,\n        3;3382,3382,3382;,\n        3;3383,3383,3383;,\n        3;3384,3384,3384;,\n        3;3385,3385,3385;,\n        3;3386,3386,3386;,\n        3;3387,3387,3387;,\n        3;3388,3388,3388;,\n        3;3389,3389,3389;,\n        3;3390,3390,3390;,\n        3;3391,3391,3391;,\n        3;3392,3392,3392;,\n        3;3393,3393,3393;,\n        3;3394,3394,3394;,\n        3;3395,3395,3395;,\n        3;3396,3396,3396;,\n        3;3397,3397,3397;,\n        3;3398,3398,3398;,\n        3;3399,3399,3399;,\n        3;3400,3400,3400;,\n        3;3401,3401,3401;,\n        3;3402,3402,3402;,\n        3;3403,3403,3403;,\n        3;3404,3404,3404;,\n        3;3405,3405,3405;,\n        3;3406,3406,3406;,\n        3;3407,3407,3407;,\n        3;3408,3408,3408;,\n        3;3409,3409,3409;,\n        3;3410,3410,3410;,\n        3;3411,3411,3411;,\n        3;3412,3412,3412;,\n        3;3413,3413,3413;,\n        3;3414,3414,3414;,\n        3;3415,3415,3415;,\n        3;3416,3416,3416;,\n        3;3417,3417,3417;,\n        3;3418,3418,3418;,\n        3;3419,3419,3419;,\n        3;3420,3420,3420;,\n        3;3421,3421,3421;,\n        3;3422,3422,3422;,\n        3;3423,3423,3423;,\n        3;3424,3424,3424;,\n        3;3425,3425,3425;,\n        3;3426,3426,3426;,\n        3;3427,3427,3427;,\n        3;3428,3428,3428;,\n        3;3429,3429,3429;,\n        3;3430,3430,3430;,\n        3;3431,3431,3431;,\n        3;3432,3432,3432;,\n        3;3433,3433,3433;,\n        3;3434,3434,3434;,\n        3;3435,3435,3435;,\n        3;3436,3436,3436;,\n        3;3437,3437,3437;,\n        3;3438,3438,3438;,\n        3;3439,3439,3439;,\n        3;3440,3440,3440;,\n        3;3441,3441,3441;,\n        3;3442,3442,3442;,\n        3;3443,3443,3443;,\n        3;3444,3444,3444;,\n        3;3445,3445,3445;,\n        3;3446,3446,3446;,\n        3;3447,3447,3447;,\n        3;3448,3448,3448;,\n        3;3449,3449,3449;,\n        3;3450,3450,3450;,\n        3;3451,3451,3451;,\n        3;3452,3452,3452;,\n        3;3453,3453,3453;,\n        3;3454,3454,3454;,\n        3;3455,3455,3455;,\n        3;3456,3456,3456;,\n        3;3457,3457,3457;,\n        3;3458,3458,3458;,\n        3;3459,3459,3459;,\n        3;3460,3460,3460;,\n        3;3461,3461,3461;,\n        3;3462,3462,3462;,\n        3;3463,3463,3463;,\n        3;3464,3464,3464;,\n        3;3465,3465,3465;,\n        3;3466,3466,3466;,\n        3;3467,3467,3467;,\n        3;3468,3468,3468;,\n        3;3469,3469,3469;,\n        3;3470,3470,3470;,\n        3;3471,3471,3471;,\n        3;3472,3472,3472;,\n        3;3473,3473,3473;,\n        3;3474,3474,3474;,\n        3;3475,3475,3475;,\n        3;3476,3476,3476;,\n        3;3477,3477,3477;,\n        3;3478,3478,3478;,\n        3;3479,3479,3479;,\n        3;3480,3480,3480;,\n        3;3481,3481,3481;,\n        3;3482,3482,3482;,\n        3;3483,3483,3483;,\n        3;3484,3484,3484;,\n        3;3485,3485,3485;,\n        3;3486,3486,3486;,\n        3;3487,3487,3487;,\n        3;3488,3488,3488;,\n        3;3489,3489,3489;,\n        3;3490,3490,3490;,\n        3;3491,3491,3491;,\n        3;3492,3492,3492;,\n        3;3493,3493,3493;,\n        3;3494,3494,3494;,\n        3;3495,3495,3495;,\n        3;3496,3496,3496;,\n        3;3497,3497,3497;,\n        3;3498,3498,3498;,\n        3;3499,3499,3499;,\n        3;3500,3500,3500;,\n        3;3501,3501,3501;,\n        3;3502,3502,3502;,\n        3;3503,3503,3503;,\n        3;3504,3504,3504;,\n        3;3505,3505,3505;,\n        3;3506,3506,3506;,\n        3;3507,3507,3507;,\n        3;3508,3508,3508;,\n        3;3509,3509,3509;,\n        3;3510,3510,3510;,\n        3;3511,3511,3511;,\n        3;3512,3512,3512;,\n        3;3513,3513,3513;,\n        3;3514,3514,3514;,\n        3;3515,3515,3515;,\n        3;3516,3516,3516;,\n        3;3517,3517,3517;,\n        3;3518,3518,3518;,\n        3;3519,3519,3519;,\n        3;3520,3520,3520;,\n        3;3521,3521,3521;,\n        3;3522,3522,3522;,\n        3;3523,3523,3523;,\n        3;3524,3524,3524;,\n        3;3525,3525,3525;,\n        3;3526,3526,3526;,\n        3;3527,3527,3527;,\n        3;3528,3528,3528;,\n        3;3529,3529,3529;,\n        3;3530,3530,3530;,\n        3;3531,3531,3531;,\n        3;3532,3532,3532;,\n        3;3533,3533,3533;,\n        3;3534,3534,3534;,\n        3;3535,3535,3535;,\n        3;3536,3536,3536;,\n        3;3537,3537,3537;,\n        3;3538,3538,3538;,\n        3;3539,3539,3539;,\n        3;3540,3540,3540;,\n        3;3541,3541,3541;,\n        3;3542,3542,3542;,\n        3;3543,3543,3543;,\n        3;3544,3544,3544;,\n        3;3545,3545,3545;,\n        3;3546,3546,3546;,\n        3;3547,3547,3547;,\n        3;3548,3548,3548;,\n        3;3549,3549,3549;,\n        3;3550,3550,3550;,\n        3;3551,3551,3551;,\n        3;3552,3552,3552;,\n        3;3553,3553,3553;,\n        3;3554,3554,3554;,\n        3;3555,3555,3555;,\n        3;3556,3556,3556;,\n        3;3557,3557,3557;,\n        3;3558,3558,3558;,\n        3;3559,3559,3559;,\n        3;3560,3560,3560;,\n        3;3561,3561,3561;,\n        3;3562,3562,3562;,\n        3;3563,3563,3563;,\n        3;3564,3564,3564;,\n        3;3565,3565,3565;,\n        3;3566,3566,3566;,\n        3;3567,3567,3567;,\n        3;3568,3568,3568;,\n        3;3569,3569,3569;,\n        3;3570,3570,3570;,\n        3;3571,3571,3571;,\n        3;3572,3572,3572;,\n        3;3573,3573,3573;,\n        3;3574,3574,3574;,\n        3;3575,3575,3575;,\n        3;3576,3576,3576;,\n        3;3577,3577,3577;,\n        3;3578,3578,3578;,\n        3;3579,3579,3579;,\n        3;3580,3580,3580;,\n        3;3581,3581,3581;,\n        3;3582,3582,3582;,\n        3;3583,3583,3583;,\n        3;3584,3584,3584;,\n        3;3585,3585,3585;,\n        3;3586,3586,3586;,\n        3;3587,3587,3587;,\n        3;3588,3588,3588;,\n        3;3589,3589,3589;,\n        3;3590,3590,3590;,\n        3;3591,3591,3591;,\n        3;3592,3592,3592;,\n        3;3593,3593,3593;,\n        3;3594,3594,3594;,\n        3;3595,3595,3595;,\n        3;3596,3596,3596;,\n        3;3597,3597,3597;,\n        3;3598,3598,3598;,\n        3;3599,3599,3599;,\n        3;3600,3600,3600;,\n        3;3601,3601,3601;,\n        3;3602,3602,3602;,\n        3;3603,3603,3603;,\n        3;3604,3604,3604;,\n        3;3605,3605,3605;,\n        3;3606,3606,3606;,\n        3;3607,3607,3607;,\n        3;3608,3608,3608;,\n        3;3609,3609,3609;,\n        3;3610,3610,3610;,\n        3;3611,3611,3611;,\n        3;3612,3612,3612;,\n        3;3613,3613,3613;,\n        3;3614,3614,3614;,\n        3;3615,3615,3615;,\n        3;3616,3616,3616;,\n        3;3617,3617,3617;,\n        3;3618,3618,3618;,\n        3;3619,3619,3619;,\n        3;3620,3620,3620;,\n        3;3621,3621,3621;,\n        3;3622,3622,3622;,\n        3;3623,3623,3623;,\n        3;3624,3624,3624;,\n        3;3625,3625,3625;,\n        3;3626,3626,3626;,\n        3;3627,3627,3627;,\n        3;3628,3628,3628;,\n        3;3629,3629,3629;,\n        3;3630,3630,3630;,\n        3;3631,3631,3631;,\n        3;3632,3632,3632;,\n        3;3633,3633,3633;,\n        3;3634,3634,3634;,\n        3;3635,3635,3635;,\n        3;3636,3636,3636;,\n        3;3637,3637,3637;,\n        3;3638,3638,3638;,\n        3;3639,3639,3639;,\n        3;3640,3640,3640;,\n        3;3641,3641,3641;,\n        3;3642,3642,3642;,\n        3;3643,3643,3643;,\n        3;3644,3644,3644;,\n        3;3645,3645,3645;,\n        3;3646,3646,3646;,\n        3;3647,3647,3647;,\n        3;3648,3648,3648;,\n        3;3649,3649,3649;,\n        3;3650,3650,3650;,\n        3;3651,3651,3651;,\n        3;3652,3652,3652;,\n        3;3653,3653,3653;,\n        3;3654,3654,3654;,\n        3;3655,3655,3655;,\n        3;3656,3656,3656;,\n        3;3657,3657,3657;,\n        3;3658,3658,3658;,\n        3;3659,3659,3659;,\n        3;3660,3660,3660;,\n        3;3661,3661,3661;,\n        3;3662,3662,3662;,\n        3;3663,3663,3663;,\n        3;3664,3664,3664;,\n        3;3665,3665,3665;,\n        3;3666,3666,3666;,\n        3;3667,3667,3667;,\n        3;3668,3668,3668;,\n        3;3669,3669,3669;,\n        3;3670,3670,3670;,\n        3;3671,3671,3671;,\n        3;3672,3672,3672;,\n        3;3673,3673,3673;,\n        3;3674,3674,3674;,\n        3;3675,3675,3675;,\n        3;3676,3676,3676;,\n        3;3677,3677,3677;,\n        3;3678,3678,3678;,\n        3;3679,3679,3679;,\n        3;3680,3680,3680;,\n        3;3681,3681,3681;,\n        3;3682,3682,3682;,\n        3;3683,3683,3683;,\n        3;3684,3684,3684;,\n        3;3685,3685,3685;,\n        3;3686,3686,3686;,\n        3;3687,3687,3687;,\n        3;3688,3688,3688;,\n        3;3689,3689,3689;,\n        3;3690,3690,3690;,\n        3;3691,3691,3691;,\n        3;3692,3692,3692;,\n        3;3693,3693,3693;,\n        3;3694,3694,3694;,\n        3;3695,3695,3695;,\n        3;3696,3696,3696;,\n        3;3697,3697,3697;,\n        3;3698,3698,3698;,\n        3;3699,3699,3699;,\n        3;3700,3700,3700;,\n        3;3701,3701,3701;,\n        3;3702,3702,3702;,\n        3;3703,3703,3703;,\n        3;3704,3704,3704;,\n        3;3705,3705,3705;,\n        3;3706,3706,3706;,\n        3;3707,3707,3707;,\n        3;3708,3708,3708;,\n        3;3709,3709,3709;,\n        3;3710,3710,3710;,\n        3;3711,3711,3711;,\n        3;3712,3712,3712;,\n        3;3713,3713,3713;,\n        3;3714,3714,3714;,\n        3;3715,3715,3715;,\n        3;3716,3716,3716;,\n        3;3717,3717,3717;,\n        3;3718,3718,3718;,\n        3;3719,3719,3719;,\n        3;3720,3720,3720;,\n        3;3721,3721,3721;,\n        3;3722,3722,3722;,\n        3;3723,3723,3723;,\n        3;3724,3724,3724;,\n        3;3725,3725,3725;,\n        3;3726,3726,3726;,\n        3;3727,3727,3727;,\n        3;3728,3728,3728;,\n        3;3729,3729,3729;,\n        3;3730,3730,3730;,\n        3;3731,3731,3731;,\n        3;3732,3732,3732;,\n        3;3733,3733,3733;,\n        3;3734,3734,3734;,\n        3;3735,3735,3735;,\n        3;3736,3736,3736;,\n        3;3737,3737,3737;,\n        3;3738,3738,3738;,\n        3;3739,3739,3739;,\n        3;3740,3740,3740;,\n        3;3741,3741,3741;,\n        3;3742,3742,3742;,\n        3;3743,3743,3743;,\n        3;3744,3744,3744;,\n        3;3745,3745,3745;,\n        3;3746,3746,3746;,\n        3;3747,3747,3747;,\n        3;3748,3748,3748;,\n        3;3749,3749,3749;,\n        3;3750,3750,3750;,\n        3;3751,3751,3751;,\n        3;3752,3752,3752;,\n        3;3753,3753,3753;,\n        3;3754,3754,3754;,\n        3;3755,3755,3755;,\n        3;3756,3756,3756;,\n        3;3757,3757,3757;,\n        3;3758,3758,3758;,\n        3;3759,3759,3759;,\n        3;3760,3760,3760;,\n        3;3761,3761,3761;,\n        3;3762,3762,3762;,\n        3;3763,3763,3763;,\n        3;3764,3764,3764;,\n        3;3765,3765,3765;,\n        3;3766,3766,3766;,\n        3;3767,3767,3767;,\n        3;3768,3768,3768;,\n        3;3769,3769,3769;,\n        3;3770,3770,3770;,\n        3;3771,3771,3771;,\n        3;3772,3772,3772;,\n        3;3773,3773,3773;,\n        3;3774,3774,3774;,\n        3;3775,3775,3775;,\n        3;3776,3776,3776;,\n        3;3777,3777,3777;,\n        3;3778,3778,3778;,\n        3;3779,3779,3779;,\n        3;3780,3780,3780;,\n        3;3781,3781,3781;,\n        3;3782,3782,3782;,\n        3;3783,3783,3783;,\n        3;3784,3784,3784;,\n        3;3785,3785,3785;,\n        3;3786,3786,3786;,\n        3;3787,3787,3787;,\n        3;3788,3788,3788;,\n        3;3789,3789,3789;,\n        3;3790,3790,3790;,\n        3;3791,3791,3791;,\n        3;3792,3792,3792;,\n        3;3793,3793,3793;,\n        3;3794,3794,3794;,\n        3;3795,3795,3795;,\n        3;3796,3796,3796;,\n        3;3797,3797,3797;,\n        3;3798,3798,3798;,\n        3;3799,3799,3799;,\n        3;3800,3800,3800;,\n        3;3801,3801,3801;,\n        3;3802,3802,3802;,\n        3;3803,3803,3803;,\n        3;3804,3804,3804;,\n        3;3805,3805,3805;,\n        3;3806,3806,3806;,\n        3;3807,3807,3807;,\n        3;3808,3808,3808;,\n        3;3809,3809,3809;,\n        3;3810,3810,3810;,\n        3;3811,3811,3811;,\n        3;3812,3812,3812;,\n        3;3813,3813,3813;,\n        3;3814,3814,3814;,\n        3;3815,3815,3815;,\n        3;3816,3816,3816;,\n        3;3817,3817,3817;,\n        3;3818,3818,3818;,\n        3;3819,3819,3819;,\n        3;3820,3820,3820;,\n        3;3821,3821,3821;,\n        3;3822,3822,3822;,\n        3;3823,3823,3823;,\n        3;3824,3824,3824;,\n        3;3825,3825,3825;,\n        3;3826,3826,3826;,\n        3;3827,3827,3827;,\n        3;3828,3828,3828;,\n        3;3829,3829,3829;,\n        3;3830,3830,3830;,\n        3;3831,3831,3831;,\n        3;3832,3832,3832;,\n        3;3833,3833,3833;,\n        3;3834,3834,3834;,\n        3;3835,3835,3835;,\n        3;3836,3836,3836;,\n        3;3837,3837,3837;,\n        3;3838,3838,3838;,\n        3;3839,3839,3839;,\n        3;3840,3840,3840;,\n        3;3841,3841,3841;,\n        3;3842,3842,3842;,\n        3;3843,3843,3843;,\n        3;3844,3844,3844;,\n        3;3845,3845,3845;,\n        3;3846,3846,3846;,\n        3;3847,3847,3847;,\n        3;3848,3848,3848;,\n        3;3849,3849,3849;,\n        3;3850,3850,3850;,\n        3;3851,3851,3851;,\n        3;3852,3852,3852;,\n        3;3853,3853,3853;,\n        3;3854,3854,3854;,\n        3;3855,3855,3855;,\n        3;3856,3856,3856;,\n        3;3857,3857,3857;,\n        3;3858,3858,3858;,\n        3;3859,3859,3859;,\n        3;3860,3860,3860;,\n        3;3861,3861,3861;,\n        3;3862,3862,3862;,\n        3;3863,3863,3863;,\n        3;3864,3864,3864;,\n        3;3865,3865,3865;,\n        3;3866,3866,3866;,\n        3;3867,3867,3867;,\n        3;3868,3868,3868;,\n        3;3869,3869,3869;,\n        3;3870,3870,3870;,\n        3;3871,3871,3871;,\n        3;3872,3872,3872;,\n        3;3873,3873,3873;,\n        3;3874,3874,3874;,\n        3;3875,3875,3875;,\n        3;3876,3876,3876;,\n        3;3877,3877,3877;,\n        3;3878,3878,3878;,\n        3;3879,3879,3879;,\n        3;3880,3880,3880;,\n        3;3881,3881,3881;,\n        3;3882,3882,3882;,\n        3;3883,3883,3883;,\n        3;3884,3884,3884;,\n        3;3885,3885,3885;,\n        3;3886,3886,3886;,\n        3;3887,3887,3887;,\n        3;3888,3888,3888;,\n        3;3889,3889,3889;,\n        3;3890,3890,3890;,\n        3;3891,3891,3891;,\n        3;3892,3892,3892;,\n        3;3893,3893,3893;,\n        3;3894,3894,3894;,\n        3;3895,3895,3895;,\n        3;3896,3896,3896;,\n        3;3897,3897,3897;,\n        3;3898,3898,3898;,\n        3;3899,3899,3899;,\n        3;3900,3900,3900;,\n        3;3901,3901,3901;,\n        3;3902,3902,3902;,\n        3;3903,3903,3903;,\n        3;3904,3904,3904;,\n        3;3905,3905,3905;,\n        3;3906,3906,3906;,\n        3;3907,3907,3907;,\n        3;3908,3908,3908;,\n        3;3909,3909,3909;,\n        3;3910,3910,3910;,\n        3;3911,3911,3911;,\n        3;3912,3912,3912;,\n        3;3913,3913,3913;,\n        3;3914,3914,3914;,\n        3;3915,3915,3915;,\n        3;3916,3916,3916;,\n        3;3917,3917,3917;,\n        3;3918,3918,3918;,\n        3;3919,3919,3919;,\n        3;3920,3920,3920;,\n        3;3921,3921,3921;,\n        3;3922,3922,3922;,\n        3;3923,3923,3923;,\n        3;3924,3924,3924;,\n        3;3925,3925,3925;,\n        3;3926,3926,3926;,\n        3;3927,3927,3927;,\n        3;3928,3928,3928;,\n        3;3929,3929,3929;,\n        3;3930,3930,3930;,\n        3;3931,3931,3931;,\n        3;3932,3932,3932;,\n        3;3933,3933,3933;,\n        3;3934,3934,3934;,\n        3;3935,3935,3935;,\n        3;3936,3936,3936;,\n        3;3937,3937,3937;,\n        3;3938,3938,3938;,\n        3;3939,3939,3939;,\n        3;3940,3940,3940;,\n        3;3941,3941,3941;,\n        3;3942,3942,3942;,\n        3;3943,3943,3943;,\n        3;3944,3944,3944;,\n        3;3945,3945,3945;,\n        3;3946,3946,3946;,\n        3;3947,3947,3947;,\n        3;3948,3948,3948;,\n        3;3949,3949,3949;,\n        3;3950,3950,3950;,\n        3;3951,3951,3951;,\n        3;3952,3952,3952;,\n        3;3953,3953,3953;,\n        3;3954,3954,3954;,\n        3;3955,3955,3955;,\n        3;3956,3956,3956;,\n        3;3957,3957,3957;,\n        3;3958,3958,3958;,\n        3;3959,3959,3959;,\n        3;3960,3960,3960;,\n        3;3961,3961,3961;,\n        3;3962,3962,3962;,\n        3;3963,3963,3963;,\n        3;3964,3964,3964;,\n        3;3965,3965,3965;,\n        3;3966,3966,3966;,\n        3;3967,3967,3967;,\n        3;3968,3968,3968;,\n        3;3969,3969,3969;,\n        3;3970,3970,3970;,\n        3;3971,3971,3971;,\n        3;3972,3972,3972;,\n        3;3973,3973,3973;,\n        3;3974,3974,3974;,\n        3;3975,3975,3975;,\n        3;3976,3976,3976;,\n        3;3977,3977,3977;,\n        3;3978,3978,3978;,\n        3;3979,3979,3979;,\n        3;3980,3980,3980;,\n        3;3981,3981,3981;,\n        3;3982,3982,3982;,\n        3;3983,3983,3983;,\n        3;3984,3984,3984;,\n        3;3985,3985,3985;,\n        3;3986,3986,3986;,\n        3;3987,3987,3987;,\n        3;3988,3988,3988;,\n        3;3989,3989,3989;,\n        3;3990,3990,3990;,\n        3;3991,3991,3991;,\n        3;3992,3992,3992;,\n        3;3993,3993,3993;,\n        3;3994,3994,3994;,\n        3;3995,3995,3995;,\n        3;3996,3996,3996;,\n        3;3997,3997,3997;,\n        3;3998,3998,3998;,\n        3;3999,3999,3999;,\n        3;4000,4000,4000;,\n        3;4001,4001,4001;,\n        3;4002,4002,4002;,\n        3;4003,4003,4003;,\n        3;4004,4004,4004;,\n        3;4005,4005,4005;,\n        3;4006,4006,4006;,\n        3;4007,4007,4007;,\n        3;4008,4008,4008;,\n        3;4009,4009,4009;,\n        3;4010,4010,4010;,\n        3;4011,4011,4011;,\n        3;4012,4012,4012;,\n        3;4013,4013,4013;,\n        3;4014,4014,4014;,\n        3;4015,4015,4015;,\n        3;4016,4016,4016;,\n        3;4017,4017,4017;,\n        3;4018,4018,4018;,\n        3;4019,4019,4019;,\n        3;4020,4020,4020;,\n        3;4021,4021,4021;,\n        3;4022,4022,4022;,\n        3;4023,4023,4023;,\n        3;4024,4024,4024;,\n        3;4025,4025,4025;,\n        3;4026,4026,4026;,\n        3;4027,4027,4027;,\n        3;4028,4028,4028;,\n        3;4029,4029,4029;,\n        3;4030,4030,4030;,\n        3;4031,4031,4031;,\n        3;4032,4032,4032;,\n        3;4033,4033,4033;,\n        3;4034,4034,4034;,\n        3;4035,4035,4035;,\n        3;4036,4036,4036;,\n        3;4037,4037,4037;,\n        3;4038,4038,4038;,\n        3;4039,4039,4039;,\n        3;4040,4040,4040;,\n        3;4041,4041,4041;,\n        3;4042,4042,4042;,\n        3;4043,4043,4043;,\n        3;4044,4044,4044;,\n        3;4045,4045,4045;,\n        3;4046,4046,4046;,\n        3;4047,4047,4047;,\n        3;4048,4048,4048;,\n        3;4049,4049,4049;,\n        3;4050,4050,4050;,\n        3;4051,4051,4051;,\n        3;4052,4052,4052;,\n        3;4053,4053,4053;,\n        3;4054,4054,4054;,\n        3;4055,4055,4055;,\n        3;4056,4056,4056;,\n        3;4057,4057,4057;,\n        3;4058,4058,4058;,\n        3;4059,4059,4059;,\n        3;4060,4060,4060;,\n        3;4061,4061,4061;,\n        3;4062,4062,4062;,\n        3;4063,4063,4063;,\n        3;4064,4064,4064;,\n        3;4065,4065,4065;,\n        3;4066,4066,4066;,\n        3;4067,4067,4067;,\n        3;4068,4068,4068;,\n        3;4069,4069,4069;,\n        3;4070,4070,4070;,\n        3;4071,4071,4071;,\n        3;4072,4072,4072;,\n        3;4073,4073,4073;,\n        3;4074,4074,4074;,\n        3;4075,4075,4075;,\n        3;4076,4076,4076;,\n        3;4077,4077,4077;,\n        3;4078,4078,4078;,\n        3;4079,4079,4079;,\n        3;4080,4080,4080;,\n        3;4081,4081,4081;,\n        3;4082,4082,4082;,\n        3;4083,4083,4083;,\n        3;4084,4084,4084;,\n        3;4085,4085,4085;,\n        3;4086,4086,4086;,\n        3;4087,4087,4087;,\n        3;4088,4088,4088;,\n        3;4089,4089,4089;,\n        3;4090,4090,4090;,\n        3;4091,4091,4091;,\n        3;4092,4092,4092;,\n        3;4093,4093,4093;,\n        3;4094,4094,4094;,\n        3;4095,4095,4095;,\n        3;4096,4096,4096;,\n        3;4097,4097,4097;,\n        3;4098,4098,4098;,\n        3;4099,4099,4099;,\n        3;4100,4100,4100;,\n        3;4101,4101,4101;,\n        3;4102,4102,4102;,\n        3;4103,4103,4103;,\n        3;4104,4104,4104;,\n        3;4105,4105,4105;,\n        3;4106,4106,4106;,\n        3;4107,4107,4107;,\n        3;4108,4108,4108;,\n        3;4109,4109,4109;,\n        3;4110,4110,4110;,\n        3;4111,4111,4111;,\n        3;4112,4112,4112;,\n        3;4113,4113,4113;,\n        3;4114,4114,4114;,\n        3;4115,4115,4115;,\n        3;4116,4116,4116;,\n        3;4117,4117,4117;,\n        3;4118,4118,4118;,\n        3;4119,4119,4119;,\n        3;4120,4120,4120;,\n        3;4121,4121,4121;,\n        3;4122,4122,4122;,\n        3;4123,4123,4123;,\n        3;4124,4124,4124;,\n        3;4125,4125,4125;,\n        3;4126,4126,4126;,\n        3;4127,4127,4127;,\n        3;4128,4128,4128;,\n        3;4129,4129,4129;,\n        3;4130,4130,4130;,\n        3;4131,4131,4131;,\n        3;4132,4132,4132;,\n        3;4133,4133,4133;,\n        3;4134,4134,4134;,\n        3;4135,4135,4135;,\n        3;4136,4136,4136;,\n        3;4137,4137,4137;,\n        3;4138,4138,4138;,\n        3;4139,4139,4139;,\n        3;4140,4140,4140;,\n        3;4141,4141,4141;,\n        3;4142,4142,4142;,\n        3;4143,4143,4143;,\n        3;4144,4144,4144;,\n        3;4145,4145,4145;,\n        3;4146,4146,4146;,\n        3;4147,4147,4147;,\n        3;4148,4148,4148;,\n        3;4149,4149,4149;,\n        3;4150,4150,4150;,\n        3;4151,4151,4151;,\n        3;4152,4152,4152;,\n        3;4153,4153,4153;,\n        3;4154,4154,4154;,\n        3;4155,4155,4155;,\n        3;4156,4156,4156;,\n        3;4157,4157,4157;,\n        3;4158,4158,4158;,\n        3;4159,4159,4159;,\n        3;4160,4160,4160;,\n        3;4161,4161,4161;,\n        3;4162,4162,4162;,\n        3;4163,4163,4163;,\n        3;4164,4164,4164;,\n        3;4165,4165,4165;,\n        3;4166,4166,4166;,\n        3;4167,4167,4167;,\n        3;4168,4168,4168;,\n        3;4169,4169,4169;,\n        3;4170,4170,4170;,\n        3;4171,4171,4171;,\n        3;4172,4172,4172;,\n        3;4173,4173,4173;,\n        3;4174,4174,4174;,\n        3;4175,4175,4175;,\n        3;4176,4176,4176;,\n        3;4177,4177,4177;,\n        3;4178,4178,4178;,\n        3;4179,4179,4179;,\n        3;4180,4180,4180;,\n        3;4181,4181,4181;,\n        3;4182,4182,4182;,\n        3;4183,4183,4183;,\n        3;4184,4184,4184;,\n        3;4185,4185,4185;,\n        3;4186,4186,4186;,\n        3;4187,4187,4187;,\n        3;4188,4188,4188;,\n        3;4189,4189,4189;,\n        3;4190,4190,4190;,\n        3;4191,4191,4191;,\n        3;4192,4192,4192;,\n        3;4193,4193,4193;,\n        3;4194,4194,4194;,\n        3;4195,4195,4195;,\n        3;4196,4196,4196;,\n        3;4197,4197,4197;,\n        3;4198,4198,4198;,\n        3;4199,4199,4199;,\n        3;4200,4200,4200;,\n        3;4201,4201,4201;,\n        3;4202,4202,4202;,\n        3;4203,4203,4203;,\n        3;4204,4204,4204;,\n        3;4205,4205,4205;,\n        3;4206,4206,4206;,\n        3;4207,4207,4207;,\n        3;4208,4208,4208;,\n        3;4209,4209,4209;,\n        3;4210,4210,4210;,\n        3;4211,4211,4211;,\n        3;4212,4212,4212;,\n        3;4213,4213,4213;,\n        3;4214,4214,4214;,\n        3;4215,4215,4215;,\n        3;4216,4216,4216;,\n        3;4217,4217,4217;,\n        3;4218,4218,4218;,\n        3;4219,4219,4219;,\n        3;4220,4220,4220;,\n        3;4221,4221,4221;,\n        3;4222,4222,4222;,\n        3;4223,4223,4223;,\n        3;4224,4224,4224;,\n        3;4225,4225,4225;,\n        3;4226,4226,4226;,\n        3;4227,4227,4227;,\n        3;4228,4228,4228;,\n        3;4229,4229,4229;,\n        3;4230,4230,4230;,\n        3;4231,4231,4231;,\n        3;4232,4232,4232;,\n        3;4233,4233,4233;,\n        3;4234,4234,4234;,\n        3;4235,4235,4235;,\n        3;4236,4236,4236;,\n        3;4237,4237,4237;,\n        3;4238,4238,4238;,\n        3;4239,4239,4239;,\n        3;4240,4240,4240;,\n        3;4241,4241,4241;,\n        3;4242,4242,4242;,\n        3;4243,4243,4243;,\n        3;4244,4244,4244;,\n        3;4245,4245,4245;,\n        3;4246,4246,4246;,\n        3;4247,4247,4247;,\n        3;4248,4248,4248;,\n        3;4249,4249,4249;,\n        3;4250,4250,4250;,\n        3;4251,4251,4251;,\n        3;4252,4252,4252;,\n        3;4253,4253,4253;,\n        3;4254,4254,4254;,\n        3;4255,4255,4255;,\n        3;4256,4256,4256;,\n        3;4257,4257,4257;,\n        3;4258,4258,4258;,\n        3;4259,4259,4259;,\n        3;4260,4260,4260;,\n        3;4261,4261,4261;,\n        3;4262,4262,4262;,\n        3;4263,4263,4263;,\n        3;4264,4264,4264;,\n        3;4265,4265,4265;,\n        3;4266,4266,4266;,\n        3;4267,4267,4267;,\n        3;4268,4268,4268;,\n        3;4269,4269,4269;,\n        3;4270,4270,4270;,\n        3;4271,4271,4271;,\n        3;4272,4272,4272;,\n        3;4273,4273,4273;,\n        3;4274,4274,4274;,\n        3;4275,4275,4275;,\n        3;4276,4276,4276;,\n        3;4277,4277,4277;,\n        3;4278,4278,4278;,\n        3;4279,4279,4279;,\n        3;4280,4280,4280;,\n        3;4281,4281,4281;,\n        3;4282,4282,4282;,\n        3;4283,4283,4283;,\n        3;4284,4284,4284;,\n        3;4285,4285,4285;,\n        3;4286,4286,4286;,\n        3;4287,4287,4287;,\n        3;4288,4288,4288;,\n        3;4289,4289,4289;,\n        3;4290,4290,4290;,\n        3;4291,4291,4291;,\n        3;4292,4292,4292;,\n        3;4293,4293,4293;,\n        3;4294,4294,4294;,\n        3;4295,4295,4295;,\n        3;4296,4296,4296;,\n        3;4297,4297,4297;,\n        3;4298,4298,4298;,\n        3;4299,4299,4299;,\n        3;4300,4300,4300;,\n        3;4301,4301,4301;,\n        3;4302,4302,4302;,\n        3;4303,4303,4303;,\n        3;4304,4304,4304;,\n        3;4305,4305,4305;,\n        3;4306,4306,4306;,\n        3;4307,4307,4307;,\n        3;4308,4308,4308;,\n        3;4309,4309,4309;,\n        3;4310,4310,4310;,\n        3;4311,4311,4311;,\n        3;4312,4312,4312;,\n        3;4313,4313,4313;,\n        3;4314,4314,4314;,\n        3;4315,4315,4315;,\n        3;4316,4316,4316;,\n        3;4317,4317,4317;,\n        3;4318,4318,4318;,\n        3;4319,4319,4319;,\n        3;4320,4320,4320;,\n        3;4321,4321,4321;,\n        3;4322,4322,4322;,\n        3;4323,4323,4323;,\n        3;4324,4324,4324;,\n        3;4325,4325,4325;,\n        3;4326,4326,4326;,\n        3;4327,4327,4327;,\n        3;4328,4328,4328;,\n        3;4329,4329,4329;,\n        3;4330,4330,4330;,\n        3;4331,4331,4331;,\n        3;4332,4332,4332;,\n        3;4333,4333,4333;,\n        3;4334,4334,4334;,\n        3;4335,4335,4335;,\n        3;4336,4336,4336;,\n        3;4337,4337,4337;,\n        3;4338,4338,4338;,\n        3;4339,4339,4339;,\n        3;4340,4340,4340;,\n        3;4341,4341,4341;,\n        3;4342,4342,4342;,\n        3;4343,4343,4343;,\n        3;4344,4344,4344;,\n        3;4345,4345,4345;,\n        3;4346,4346,4346;,\n        3;4347,4347,4347;,\n        3;4348,4348,4348;,\n        3;4349,4349,4349;,\n        3;4350,4350,4350;,\n        3;4351,4351,4351;,\n        3;4352,4352,4352;,\n        3;4353,4353,4353;,\n        3;4354,4354,4354;,\n        3;4355,4355,4355;,\n        3;4356,4356,4356;,\n        3;4357,4357,4357;,\n        3;4358,4358,4358;,\n        3;4359,4359,4359;,\n        3;4360,4360,4360;,\n        3;4361,4361,4361;,\n        3;4362,4362,4362;,\n        3;4363,4363,4363;,\n        3;4364,4364,4364;,\n        3;4365,4365,4365;,\n        3;4366,4366,4366;,\n        3;4367,4367,4367;,\n        3;4368,4368,4368;,\n        3;4369,4369,4369;,\n        3;4370,4370,4370;,\n        3;4371,4371,4371;,\n        3;4372,4372,4372;,\n        3;4373,4373,4373;,\n        3;4374,4374,4374;,\n        3;4375,4375,4375;,\n        3;4376,4376,4376;,\n        3;4377,4377,4377;,\n        3;4378,4378,4378;,\n        3;4379,4379,4379;,\n        3;4380,4380,4380;,\n        3;4381,4381,4381;,\n        3;4382,4382,4382;,\n        3;4383,4383,4383;,\n        3;4384,4384,4384;,\n        3;4385,4385,4385;,\n        3;4386,4386,4386;,\n        3;4387,4387,4387;,\n        3;4388,4388,4388;,\n        3;4389,4389,4389;,\n        3;4390,4390,4390;,\n        3;4391,4391,4391;,\n        3;4392,4392,4392;,\n        3;4393,4393,4393;,\n        3;4394,4394,4394;,\n        3;4395,4395,4395;,\n        3;4396,4396,4396;,\n        3;4397,4397,4397;,\n        3;4398,4398,4398;,\n        3;4399,4399,4399;,\n        3;4400,4400,4400;,\n        3;4401,4401,4401;,\n        3;4402,4402,4402;,\n        3;4403,4403,4403;,\n        3;4404,4404,4404;,\n        3;4405,4405,4405;,\n        3;4406,4406,4406;,\n        3;4407,4407,4407;,\n        3;4408,4408,4408;,\n        3;4409,4409,4409;,\n        3;4410,4410,4410;,\n        3;4411,4411,4411;,\n        3;4412,4412,4412;,\n        3;4413,4413,4413;,\n        3;4414,4414,4414;,\n        3;4415,4415,4415;,\n        3;4416,4416,4416;,\n        3;4417,4417,4417;,\n        3;4418,4418,4418;,\n        3;4419,4419,4419;,\n        3;4420,4420,4420;,\n        3;4421,4421,4421;,\n        3;4422,4422,4422;,\n        3;4423,4423,4423;,\n        3;4424,4424,4424;,\n        3;4425,4425,4425;,\n        3;4426,4426,4426;,\n        3;4427,4427,4427;,\n        3;4428,4428,4428;,\n        3;4429,4429,4429;,\n        3;4430,4430,4430;,\n        3;4431,4431,4431;,\n        3;4432,4432,4432;,\n        3;4433,4433,4433;,\n        3;4434,4434,4434;,\n        3;4435,4435,4435;,\n        3;4436,4436,4436;,\n        3;4437,4437,4437;,\n        3;4438,4438,4438;,\n        3;4439,4439,4439;,\n        3;4440,4440,4440;,\n        3;4441,4441,4441;,\n        3;4442,4442,4442;,\n        3;4443,4443,4443;,\n        3;4444,4444,4444;,\n        3;4445,4445,4445;,\n        3;4446,4446,4446;,\n        3;4447,4447,4447;,\n        3;4448,4448,4448;,\n        3;4449,4449,4449;,\n        3;4450,4450,4450;,\n        3;4451,4451,4451;,\n        3;4452,4452,4452;,\n        3;4453,4453,4453;,\n        3;4454,4454,4454;,\n        3;4455,4455,4455;,\n        3;4456,4456,4456;,\n        3;4457,4457,4457;,\n        3;4458,4458,4458;,\n        3;4459,4459,4459;,\n        3;4460,4460,4460;,\n        3;4461,4461,4461;,\n        3;4462,4462,4462;,\n        3;4463,4463,4463;,\n        3;4464,4464,4464;,\n        3;4465,4465,4465;,\n        3;4466,4466,4466;,\n        3;4467,4467,4467;,\n        3;4468,4468,4468;,\n        3;4469,4469,4469;,\n        3;4470,4470,4470;,\n        3;4471,4471,4471;,\n        3;4472,4472,4472;,\n        3;4473,4473,4473;,\n        3;4474,4474,4474;,\n        3;4475,4475,4475;,\n        3;4476,4476,4476;,\n        3;4477,4477,4477;,\n        3;4478,4478,4478;,\n        3;4479,4479,4479;,\n        3;4480,4480,4480;,\n        3;4481,4481,4481;,\n        3;4482,4482,4482;,\n        3;4483,4483,4483;,\n        3;4484,4484,4484;,\n        3;4485,4485,4485;,\n        3;4486,4486,4486;,\n        3;4487,4487,4487;,\n        3;4488,4488,4488;,\n        3;4489,4489,4489;,\n        3;4490,4490,4490;,\n        3;4491,4491,4491;,\n        3;4492,4492,4492;,\n        3;4493,4493,4493;,\n        3;4494,4494,4494;,\n        3;4495,4495,4495;,\n        3;4496,4496,4496;,\n        3;4497,4497,4497;,\n        3;4498,4498,4498;,\n        3;4499,4499,4499;,\n        3;4500,4500,4500;,\n        3;4501,4501,4501;,\n        3;4502,4502,4502;,\n        3;4503,4503,4503;,\n        3;4504,4504,4504;,\n        3;4505,4505,4505;,\n        3;4506,4506,4506;,\n        3;4507,4507,4507;,\n        3;4508,4508,4508;,\n        3;4509,4509,4509;,\n        3;4510,4510,4510;,\n        3;4511,4511,4511;,\n        3;4512,4512,4512;,\n        3;4513,4513,4513;,\n        3;4514,4514,4514;,\n        3;4515,4515,4515;,\n        3;4516,4516,4516;,\n        3;4517,4517,4517;,\n        3;4518,4518,4518;,\n        3;4519,4519,4519;,\n        3;4520,4520,4520;,\n        3;4521,4521,4521;,\n        3;4522,4522,4522;,\n        3;4523,4523,4523;,\n        3;4524,4524,4524;,\n        3;4525,4525,4525;,\n        3;4526,4526,4526;,\n        3;4527,4527,4527;,\n        3;4528,4528,4528;,\n        3;4529,4529,4529;,\n        3;4530,4530,4530;,\n        3;4531,4531,4531;,\n        3;4532,4532,4532;,\n        3;4533,4533,4533;,\n        3;4534,4534,4534;,\n        3;4535,4535,4535;,\n        3;4536,4536,4536;,\n        3;4537,4537,4537;,\n        3;4538,4538,4538;,\n        3;4539,4539,4539;,\n        3;4540,4540,4540;,\n        3;4541,4541,4541;,\n        3;4542,4542,4542;,\n        3;4543,4543,4543;,\n        3;4544,4544,4544;,\n        3;4545,4545,4545;,\n        3;4546,4546,4546;,\n        3;4547,4547,4547;,\n        3;4548,4548,4548;,\n        3;4549,4549,4549;,\n        3;4550,4550,4550;,\n        3;4551,4551,4551;,\n        3;4552,4552,4552;,\n        3;4553,4553,4553;,\n        3;4554,4554,4554;,\n        3;4555,4555,4555;,\n        3;4556,4556,4556;,\n        3;4557,4557,4557;,\n        3;4558,4558,4558;,\n        3;4559,4559,4559;,\n        3;4560,4560,4560;,\n        3;4561,4561,4561;,\n        3;4562,4562,4562;,\n        3;4563,4563,4563;,\n        3;4564,4564,4564;,\n        3;4565,4565,4565;,\n        3;4566,4566,4566;,\n        3;4567,4567,4567;,\n        3;4568,4568,4568;,\n        3;4569,4569,4569;,\n        3;4570,4570,4570;,\n        3;4571,4571,4571;,\n        3;4572,4572,4572;,\n        3;4573,4573,4573;,\n        3;4574,4574,4574;,\n        3;4575,4575,4575;,\n        3;4576,4576,4576;,\n        3;4577,4577,4577;,\n        3;4578,4578,4578;,\n        3;4579,4579,4579;,\n        3;4580,4580,4580;,\n        3;4581,4581,4581;,\n        3;4582,4582,4582;,\n        3;4583,4583,4583;,\n        3;4584,4584,4584;,\n        3;4585,4585,4585;,\n        3;4586,4586,4586;,\n        3;4587,4587,4587;,\n        3;4588,4588,4588;,\n        3;4589,4589,4589;,\n        3;4590,4590,4590;,\n        3;4591,4591,4591;,\n        3;4592,4592,4592;,\n        3;4593,4593,4593;,\n        3;4594,4594,4594;,\n        3;4595,4595,4595;,\n        3;4596,4596,4596;,\n        3;4597,4597,4597;,\n        3;4598,4598,4598;,\n        3;4599,4599,4599;,\n        3;4600,4600,4600;,\n        3;4601,4601,4601;,\n        3;4602,4602,4602;,\n        3;4603,4603,4603;,\n        3;4604,4604,4604;,\n        3;4605,4605,4605;,\n        3;4606,4606,4606;,\n        3;4607,4607,4607;,\n        3;4608,4608,4608;,\n        3;4609,4609,4609;,\n        3;4610,4610,4610;,\n        3;4611,4611,4611;,\n        3;4612,4612,4612;,\n        3;4613,4613,4613;,\n        3;4614,4614,4614;,\n        3;4615,4615,4615;,\n        3;4616,4616,4616;,\n        3;4617,4617,4617;,\n        3;4618,4618,4618;,\n        3;4619,4619,4619;,\n        3;4620,4620,4620;,\n        3;4621,4621,4621;,\n        3;4622,4622,4622;,\n        3;4623,4623,4623;,\n        3;4624,4624,4624;,\n        3;4625,4625,4625;,\n        3;4626,4626,4626;,\n        3;4627,4627,4627;,\n        3;4628,4628,4628;,\n        3;4629,4629,4629;,\n        3;4630,4630,4630;,\n        3;4631,4631,4631;,\n        3;4632,4632,4632;,\n        3;4633,4633,4633;,\n        3;4634,4634,4634;,\n        3;4635,4635,4635;,\n        3;4636,4636,4636;,\n        3;4637,4637,4637;,\n        3;4638,4638,4638;,\n        3;4639,4639,4639;,\n        3;4640,4640,4640;,\n        3;4641,4641,4641;,\n        3;4642,4642,4642;,\n        3;4643,4643,4643;,\n        3;4644,4644,4644;,\n        3;4645,4645,4645;,\n        3;4646,4646,4646;,\n        3;4647,4647,4647;,\n        3;4648,4648,4648;,\n        3;4649,4649,4649;,\n        3;4650,4650,4650;,\n        3;4651,4651,4651;,\n        3;4652,4652,4652;,\n        3;4653,4653,4653;,\n        3;4654,4654,4654;,\n        3;4655,4655,4655;;\n      } // End of co_nim1 normals\n      MeshMaterialList { // co_nim1 material list\n        1;\n        4656;\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0,\n        0;\n        Material Material_2 {\n           0.156790; 0.156790; 0.156790; 1.000000;;\n           96.078431;\n           0.000000; 0.000000; 0.000000;;\n           0.000000; 0.000000; 0.000000;;\n        }\n      } // End of co_nim1 material list\n    } // End of co_nim1 mesh\n  } // End of co_nim1\n} // End of Root\n"
  },
  {
    "path": "pyhamilton/library/STAR Tools/tipsupport.ctr",
    "content": "HxCfgFile,3;\n\nConfigIsValid,Y;\n\nDataDef,CONTAINER,3,default,\n{\n1.DX, \"0\",\n1.DY, \"0\",\n1.DZ, \"6.8\",\n1.EqnOfVol, \"h*36.3168\",\n1.Max, \"60\",\n1.Min, \"52\",\n1.Shape, \"0\",\n2.DX, \"6.8\",\n2.DY, \"0.4\",\n2.DZ, \"0\",\n2.EqnOfVol, \"h*12.8596\",\n2.Max, \"52\",\n2.Min, \"0\",\n2.Shape, \"3\",\nBarcode.Unique, \"0\",\nBarcode.Value, \"\",\nBaseMM, \"0\",\nCategoryCnt, \"0\",\nClearance, \"69\",\nDepth, \"60\",\nDescription, \"\",\nDim.Dx, \"6.8\",\nDim.Dy, \"6.8\",\nDim.Dz, \"0\",\nLS, \"1\",\nLSHt, \"60\",\nMaxDepth, \"52\",\nSegments, \"2\",\nShape, \"0\",\nTchBase, \"0\",\nTchOff, \"0\",\nUseBndry, \"0\",\nViewName, \"\",\nVisible, \"0\"\n};\n\nDataDef,HxPars,3,AuditTrailData,\n[\n\")\"\n];\n\n* $$author=Bare_B$$valid=0$$time=2020-03-23 18:10$$checksum=30fe826c$$length=082$$"
  },
  {
    "path": "pyhamilton/library/SchedulingDev/HSLAppsLib.hsl",
    "content": "//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\ This library is a summary of the popular steps in many of the common libraries\r\n//*\\\\ Compiled by Scott Walton, Applications Specialist, Hamilton Company\r\n//*\\\\ Version 1.1 , Jan 2013\r\n//*\\\\  \r\n//*\\\\ Version1.2 - Jan 29th, 2013, -  1. enabled use of integers for site IDs,\r\n//*\\\\                                 2. moved the strConvertToString and strConvertToString\r\n//*\\\\                                    to beginning of list to use these functions in other \r\n//*\\\\                                    functions\r\n//*\\\\                                 3. Added the CopySeq function\r\n//*\\\\                                 4. Added the AlphaNumConversion function\r\n//*\\\\\r\n//*\\\\ Version1.3 - Aug 27th, 2013, -  1. Added the MultiDisp setup function\r\n//*\\\\                                 2. Fixed typo error in StringFind help file, 0 returned when not found\r\n//*\\\\                                 3. Removed the string library from the get serial number step\r\n//*\\\\                                 4. SequenceAdd - added a validation on the positionId input\r\n//*\\\\                                 5. In the trace array step, arrays of different sizes will be traced out separately\r\n//*\\\\                                 6. ArrayLookup - Changed to: if data types are different, they won't be compared\r\n//*\\\\                                 7. SequenceGetRemainingPositions changed && to ||\r\n//*\\\\\r\n//*\\\\ Version1.4 - Jan 2014 -         1. Added the ifndef then define the string library.\r\n//*\\\\\r\n//*\\\\ Version1.5 - Aug 2014 -         1. Added ReleaseObject() to ConvertToXLSX and XLS\r\n//*\\\\                                 2. Added function SequenceGetLabwareIds\r\n//*\\\\\r\n//*\\\\\r\n//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\//*\\\\\r\n\r\n\r\n\r\n\r\n#ifndef __HSLAppsLib_hsl__\r\n#define __HSLAppsLib_hsl__  1\r\n\r\n#ifndef __HSLStrLib_hsl__\r\n#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLLabwareStateLib_hsl__\r\n#include \"HSLLabwareStateLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLDeckVisualize_hsl__\r\n#include \"HSLDeckVisualize.hsl\"\r\n#endif\r\n\r\n\r\nnamespace APPSLIB\r\n{\r\n\r\n//////////////////////////////////////////////////////////////////////////////////////////////////////\r\n//////////////////////////////////////////////////////////////////////////////////////////////////////\r\n//LIBRARY FUNCTIONS\r\n\r\n\r\n// Function Looks up a value within an array (position is 1 based), returns hslTrue if found - else hslFalse\r\n   function ArrayLookup(variable& arrayToSearch[], variable& valueSearchedFor, variable& positionInArray) variable\r\n      {private variable returnValue(hslFalse), loopNum, value;\r\n\r\n       for(loopNum=0 ; loopNum < arrayToSearch.GetSize() ; loopNum++)\r\n          {value = arrayToSearch[loopNum];\r\n           if (GetType(value) == GetType(valueSearchedFor))\r\n              {if (value == valueSearchedFor)   //Value was found\r\n                  {positionInArray = loopNum + 1;  // value returned is 1 based\r\n                   returnValue = hslTrue;\r\n                   break;\r\n                  }\r\n              }\r\n          }\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function converts an integer or a float to to the corresponding string\r\n   function StrConvertToString(variable& floatOrInteger) string\r\n      {private variable varType;\r\n       private string returnValue;\r\n\r\n       varType = GetType(floatOrInteger);\r\n       if (varType == \"f\")\r\n           returnValue = FStr(floatOrInteger);\r\n       else if (varType == \"i\")\r\n           returnValue = IStr(floatOrInteger);\r\n       else\r\n           returnValue = floatOrInteger;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function converts a string into the float or integer value, depending on whether a \".\" is found\r\n   function StrConvertToNumber(string& stringVariable) variable\r\n      {private variable returnValue, varType, isFound;\r\n\r\n       varType = GetType(stringVariable);\r\n       if (varType == \"s\")\r\n          {isFound = stringVariable.Find(\".\");\r\n           if (isFound == -1)  //  stringVariable should be an integer\r\n               returnValue = IVal(stringVariable);\r\n           else                //  stringVariable should be a float\r\n               returnValue = FVal(stringVariable);\r\n          }\r\n       else\r\n           returnValue = stringVariable;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n // Function returns a string channel pattern - e.g. if tipUsed is 3, return \"00100000\", number of channels returned from dev library\r\n   function ChannelPatternSingleTip(device& deviceObj, variable& tipUsed) variable\r\n      {private string str_channelPattern;\r\n       private variable loopNumber(1), numberOfChannels;\r\n\r\n       numberOfChannels = deviceObj.GetCfgValueWithKey(1);\r\n       if (GetType(tipUsed) == \"s\")\r\n           tipUsed = IVal(tipUsed);       \r\n       loop (numberOfChannels)\r\n         {if (tipUsed == loopNumber) str_channelPattern = str_channelPattern + \"1\";\r\n          else str_channelPattern = str_channelPattern + \"0\";\r\n          loopNumber++;\r\n         }\r\n\r\n       Trace(\"Channel Pattern - Tip Used: \", tipUsed, \", number of channels: \", numberOfChannels, \", pattern returned: \", str_channelPattern);\r\n       return(str_channelPattern);\r\n      }\r\n\r\n\r\n // Function returns a string channel pattern - e.g. if tipsUsed is 3, return \"11100000\", number of channels reuturned from dev library\r\n   function ChannelPatternMultipleTip(device& deviceObj, variable& tipsUsed) variable\r\n      {private string str_channelPattern;\r\n       private variable loopNumber(1), numberOfChannels;\r\n\r\n       numberOfChannels = deviceObj.GetCfgValueWithKey(1);\r\n       if (GetType(tipsUsed) == \"s\")\r\n           tipsUsed = IVal(tipsUsed);  \r\n       loop (numberOfChannels)\r\n         {if (loopNumber <= tipsUsed) str_channelPattern = str_channelPattern + \"1\";\r\n          else str_channelPattern = str_channelPattern + \"0\";\r\n          loopNumber++;\r\n         }\r\n       Trace(\"Channel Pattern - Tips Used: \", tipsUsed, \", number of channels: \", numberOfChannels, \", pattern returned: \", str_channelPattern);\r\n       return(str_channelPattern);\r\n      }\r\n\r\n\r\n// Function updates the loaded labware on the deck\r\n   function UpdateLoadedLabware(device& deviceObj, variable labwareIDs[], variable labwareStates[]) void\r\n      {private variable description(\"\");\r\n       DeckVisualize::UpdateLoadedLabware(deviceObj, labwareIDs, labwareStates, description);\r\n     }\r\n\r\n\r\n// Function Adds Labware to the deck based upon defined coordinates\r\n   function DevAddLabware(device& deviceObj, variable& labwareId, variable& configFile, variable xCoord, variable yCoord, variable zCoord, variable angle) variable\r\n      {private variable returnValue(0);\r\n       private variable position[](4);\r\n\r\n       position[0] = xCoord;\r\n       position[1] = yCoord;\r\n       position[2] = zCoord;\r\n       position[3] = angle;\r\n       returnValue = deviceObj.AddLabware(labwareId, configFile, position);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function adds labware to a specific site on a template\r\n   function DevAddLabwareToTemplate(device& deviceObj, variable& labwareId, variable& configFile, variable& templateId, variable& siteId) variable\r\n      {private variable returnValue(0);\r\n       private string str_siteId;\r\n       if (GetType(siteId) != \"s\")\r\n           str_siteId = APPSLIB::StrConvertToString(siteId);\r\n       else\r\n           str_siteId = siteId;\r\n       returnValue = deviceObj.AddLabwareToTemplate(labwareId, configFile, templateId, str_siteId);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function removes labware from the deck\r\n   function DevRemoveLabware(device& deviceObj, variable& labwareId) variable\r\n      {private variable returnValue(0);\r\n\r\n       returnValue = deviceObj.RemoveLabware(labwareId);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Gets the position of labware, position defined by the deck coordinates\r\n   function DevGetLabwarePosition(device& deviceObj, variable& labwareId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle) variable\r\n      {private variable returnValue(0);\r\n       private variable position[];\r\n\r\n       returnValue = deviceObj.GetLabwarePosition(labwareId, position);\r\n       xCoord = position[0];\r\n       yCoord = position[1];\r\n       zCoord = position[2];\r\n       angle =  position[3];\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Gets the position of labware's position ID, position defined by the deck coordinates\r\n   function DevGetLabwarePositionEx(device& deviceObj, variable& labwareId, variable& positionId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle)variable\r\n      {private variable returnValue(0), str_pos;\r\n       private variable position[];\r\n\r\n       if (GetType(positionId) != \"s\")\r\n          {if (GetType(positionId) == \"f\")\r\n              str_pos = FStr(positionId);\r\n           else\r\n              str_pos = IStr(positionId);\r\n          }\r\n       else\r\n           str_pos = positionId;\r\n       returnValue = deviceObj.GetLabwarePosition(labwareId, position, str_pos);\r\n       xCoord = position[0];\r\n       yCoord = position[1];\r\n       zCoord = position[2];\r\n       angle =  position[3];\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets a barcode that has been set by a scanner or SetLabwareBarcode smart step (data handling step)\r\n// Returns the labware barcode at the current position of a sequence, uses HSLLabwareStateLibImpl.hs_ included\r\n   function GetLabwareBarcode(device& deviceObj, sequence& Sequence, variable& labwareLevel) variable\r\n      {private variable barcode;\r\n\r\n       barcode = HSLLabwState::GetLabwareBarcode(deviceObj, Sequence, labwareLevel);\r\n       return (barcode);\r\n      }\r\n\r\n\r\n// Function rounds the float to the specified number of of digits passed the decimal place.  Zero returns integers\r\n   function MathRound(variable& number, variable& numberOfDecimalPlaces) variable\r\n      {private variable integerPortion(0.0);\r\n\t    private variable fractionalPortion(0.0);\r\n\t    private variable returnValue(0.0);\r\n\r\n\t    integerPortion = Floor(number, hslTrue);\r\n\t    fractionalPortion = number - integerPortion;\r\n\t    returnValue = integerPortion + Floor((10.0^numberOfDecimalPlaces) * fractionalPortion + 0.5) / (10.0^numberOfDecimalPlaces);\r\n\t    if (0 == numberOfDecimalPlaces)\r\n\t\t    return(Floor(returnValue));\r\n       else\r\n\t\t    return(returnValue);\r\n      }\r\n\r\n\r\n// Function adds a new position to the end of the given sequence\r\n   function SequenceAdd(sequence& sequenceObj, variable& labwareId, variable& positionId) void\r\n      {private variable str_positionId;\r\n       if (GetType(positionId) !=\"s\")\r\n          {str_positionId = APPSLIB::StrConvertToString(positionId);\r\n          }\r\n       else\r\n          {str_positionId = positionId;\r\n          }\r\n       sequenceObj.Add(labwareId, str_positionId);\r\n      }\r\n\r\n\r\n// Function brings a visual dialogs to graphically edit a sequence\r\n   function SequenceEdit(sequence& seqObject,device deviceObj,variable title,variable prompt,variable timeout,variable initFromConfig, variable first, variable last, variable editable, variable cfgFile) void\r\n      {seqObject.Edit(deviceObj, title, prompt, timeout, initFromConfig, first, last, editable, cfgFile);\r\n      }\r\n\r\n\r\n// Function gets the labware ID of the current position of the sequence\r\n   function SequenceGetLabwareId(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n       \r\n       returnValue = seqObject.GetLabwareId();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function will get the list of all the unique labware IDs within a sequence,\r\n// will return positions only between the start and end position of the sequence\r\n   function SequenceGetLabwareIds(sequence& seqObject, variable& arrLabwareIds[]) variable\r\n      {private variable i;\r\n       private variable labID;\r\n       private variable isFound;\r\n       private variable arrayPosition;\r\n       private variable currentPosition;\r\n       private variable loopsTotal;\r\n\r\n       currentPosition = seqObject.GetCurrentPosition();\r\n       arrLabwareIds.SetSize(0);\r\n       loopsTotal = (seqObject.GetCount() - currentPosition) + 1;\r\n        \r\n       if (loopsTotal < 1)\r\n         {Trace(\"APPSLIB User Error SequenceGetLabwareIds: The sequence end position is less than the start position.\");\r\n          return(1);\r\n         }\r\n       for (i = 0 ; i < loopsTotal ; i++)\r\n         {labID = seqObject.GetLabwareId();\r\n          isFound = ArrayLookup(arrLabwareIds, labID, arrayPosition);\r\n          if (isFound == 0) arrLabwareIds.AddAsLast(labID);\r\n          seqObject.Increment(1);\r\n         }\r\n\r\n       seqObject.SetCurrentPosition(currentPosition);\r\n       return(0);\r\n      }\r\n\r\n\r\n// Function gets the position ID of the current position of the sequence\r\n   function SequenceGetPositionId(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetPositionId();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function copies a plate pattern\r\n   function CopyPlatePatternToPlate (sequence sourcePlate, sequence& targetPlate) void\r\n      {private variable labwareId, position, total, loopNum;\r\n       sourcePlate.SetCurrentPosition(1);\r\n       targetPlate.SetCurrentPosition(1);\r\n       labwareId = targetPlate.GetLabwareId();\r\n\r\n       //Remove All positions from the targetPlate sequence\r\n       total = targetPlate.GetTotal();\r\n\t    targetPlate.SetCount(total);\r\n\t    targetPlate.SetCurrentPosition(1);\r\n\t    for (position = total; 0 < position; position--)\r\n\t\t      targetPlate.RemoveAt(position);\r\n\t    targetPlate.SetCount(0);\r\n\t    targetPlate.SetCurrentPosition(0);\r\n\t    targetPlate.SetMax(0);\r\n\r\n       // loop over the source sequence and copy the positions to the target plate sequence\r\n       for (loopNum=1 ; loopNum <= sourcePlate.GetTotal() ; loopNum++)\r\n            {targetPlate.Add(labwareId, targetPlate.GetPositionId());\r\n             sourcePlate.Increment(1);\r\n            }\r\n       targetPlate.SetCurrentPosition(1);\r\n      }\r\n\r\n\r\n// Function gets the total positions in the sequence\r\n   function SequenceGetTotal(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetTotal();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets the number of positions in the sequence, if an end position is set\r\n//   that is before the last position, then this number will be less the the GetTotal number of positions\r\n   function SequenceGetCount(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       returnValue = seqObject.GetCount();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function gets the remaining positions left in the sequence\r\n   function SequenceTotalPosRemaining(sequence& seqObject) variable\r\n      {private variable returnValue;\r\n\r\n       if ((seqObject.GetCount() == 0) || (seqObject.GetCurrentPosition() == 0)) // no positions in the sequence\r\n          returnValue = 0;\r\n       else\r\n          returnValue = (seqObject.GetCount() - seqObject.GetCurrentPosition()) + 1;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function increments a sequence by the amount requested\r\n   function SequenceIncrement(sequence& seqObject, variable increment) void\r\n      {seqObject.Increment(increment);\r\n      }\r\n\r\n\r\n// Function removes all positions from a sequence, after re-adding positions to the sequence sequence must be set to 1 again or error occrus\r\n   function SequenceRemoveAll(sequence& seqObject) void\r\n      {private variable position, total;\r\n\r\n\t    total = seqObject.GetTotal();\r\n\t    seqObject.SetCount(total);\r\n\t    seqObject.SetCurrentPosition(1);\r\n\t    for (position = total; 0 < position; position--)\r\n\t\t    seqObject.RemoveAt(position);\r\n\t    seqObject.SetCount(0);\r\n\t    seqObject.SetCurrentPosition(0);\r\n\t    seqObject.SetMax(0);\r\n      }\r\n\r\n\r\n// Function removes a sequence position at the requested position\r\n   function SequenceRemoveAt(sequence& seqObject, position) void\r\n      {variable int;\r\n       if (GetType(position) == \"f\")\r\n          {int = APPSLIB::MathRound(position, 0);\r\n           seqObject.RemoveAt(int);\r\n          }\r\n       else if (GetType(position) == \"s\")\r\n           seqObject.RemoveAt(IVal(position));\r\n       else\r\n           seqObject.RemoveAt(position);\r\n      }\r\n\r\n\r\n// Function overwrites a target sequence with the contents of the source sequence\r\nfunction SequenceCopySeq(sequence& targetSequence, sequence& sourceSequence) void\r\n{\r\n\ttargetSequence.CopySequence(sourceSequence);\r\n}\r\n\r\n\r\n// Function concatenates the strings and returns the caoncatenated string, if non-string values are given, then convert them into strings\r\n   function StrConcatenate(variable var1, variable var2, variable var3, variable var4, variable var5, variable var6, variable var7, variable var8) variable\r\n      {private variable loopNum, varType, varPos;\r\n       private string returnValue, str_var;\r\n       private variable varArray[](8);\r\n\r\n       varArray[0] = var1; varArray[1] = var2; varArray[2] = var3; varArray[3] = var4;\r\n       varArray[4] = var5; varArray[5] = var6; varArray[6] = var7; varArray[7] = var8;\r\n       for (loopNum=0; loopNum < varArray.GetSize(); loopNum++)\r\n         {varType = GetType(varArray[loopNum]);\r\n          varPos = varArray[loopNum];\r\n          if (varType == \"f\")\r\n             {str_var = FStr(varPos);\r\n              returnValue = returnValue + str_var;\r\n             }\r\n          else if (varType == \"i\")\r\n             {str_var = IStr(varPos);\r\n              returnValue = returnValue + str_var;\r\n             }\r\n          else if (varType == \"s\")\r\n             returnValue = returnValue + varPos;\r\n         }\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function Finds a substring within a string, returnValue is 1 based\r\n   function StringFind(variable& strObject, variable& subStrToFind) variable\r\n      {private variable returnValue;\r\n       private string str_strObject, str_subStrToFind;\r\n       \r\n       if (GetType(strObject) !=\"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(subStrToFind) !=\"s\")\r\n           str_subStrToFind = APPSLIB::StrConvertToString(subStrToFind);\r\n       else\r\n           str_subStrToFind = subStrToFind;\r\n       returnValue = str_strObject.Find(str_subStrToFind);\r\n       returnValue++;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a number leftmost characters of a string\r\n   function StringLeft(variable& strObject, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       returnValue = str_strObject.Left(numberOfChar);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a number of rightmost characters of a string\r\n   function StringRight(variable& strObject, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       returnValue = str_strObject.Right(numberOfChar);\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns the length of a string\r\n   function StringGetLength(variable& strObject) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n       \r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       returnValue = str_strObject.GetLength();\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function returns a string within a given string, position should be 1 based\r\n   function StringMid(variable& strObject,variable& startPosition, variable& numberOfChar) variable\r\n      {private variable returnValue;\r\n       private string str_strObject;\r\n\r\n       if (GetType(strObject) != \"s\")\r\n           str_strObject = APPSLIB::StrConvertToString(strObject);\r\n       else\r\n           str_strObject = strObject;\r\n       if (GetType(startPosition) == \"s\")\r\n          {startPosition = APPSLIB::StrConvertToNumber(startPosition);\r\n           if (GetType(startPosition) == \"f\")\r\n               startPosition = APPSLIB::MathRound(startPosition, 0);\r\n          }\r\n       if (GetType(numberOfChar) == \"s\")\r\n          {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar);\r\n           if (GetType(numberOfChar) == \"f\")\r\n               numberOfChar = APPSLIB::MathRound(numberOfChar, 0);\r\n          }\r\n       // Check to see if the start position and the number of characters exceeds the length of the string\r\n       if ((APPSLIB::StringGetLength(str_strObject) + 1) < (startPosition + numberOfChar))\r\n          Trace(\"APPSLIB::StringMid Error: the requested string exceeds the length of the string.\");\r\n       startPosition--;\r\n       returnValue = str_strObject.Mid(startPosition, numberOfChar);\r\n       startPosition++;\r\n       return(returnValue);\r\n      }\r\n\r\n\r\n// Function will shift the labware of the current position in the sequence\r\n   function MoveSequence(device& deviceObj, sequence& Sequence, variable& xDelta, variable yDelta, variable zDelta) void\r\n      {private variable labID;\r\n\t    object editLabware;\r\n\t\t object deckLayout;\r\n\t\t object labware;\r\n\r\n\t\t labID = Sequence.GetLabwareId();\r\n       deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout\r\n\t\t if(!deckLayout.IsNull())\r\n         {labware = deckLayout.Labware(labID);\r\n\t\t    if(!labware.IsNull())\r\n            {labware.GetObject2(\"{39A3639F-97AB-444D-86D3-253122BD2202}\", editLabware); // get IEditLabware5\r\n\t\t\t\t editLabware.MoveDelta(xDelta, yDelta, zDelta);\r\n\t\t\t   }\r\n          else\r\n\t\t\t    Trace(\"Warning, labware is null\");\r\n         }\r\n       else\r\n\t\t    Trace(\"Warning Deck Layout is null\");\r\n      }\r\n\r\n\r\n// Function will shift the labware based upon the LabwareID\r\n   function MoveLabware(device& deviceObj, variable& labwareId, variable& xDelta, variable yDelta, variable zDelta) void\r\n      {private variable labID;\r\n\t    object editLabware;\r\n\t\t object deckLayout;\r\n\t\t object labware;\r\n\r\n       deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout\r\n\t\t if(!deckLayout.IsNull())\r\n         {labware = deckLayout.Labware(labwareId);\r\n\t\t    if(!labware.IsNull())\r\n            {labware.GetObject2(\"{39A3639F-97AB-444D-86D3-253122BD2202}\", editLabware); // get IEditLabware5\r\n\t\t\t\t editLabware.MoveDelta(xDelta, yDelta, zDelta);\r\n\t\t\t   }\r\n          else\r\n\t\t\t    Trace(\"Warning, labware is null\");\r\n         }\r\n       else\r\n\t\t    Trace(\"Warning Deck Layout is null\");\r\n      }\r\n\r\n\r\n// Function will send values to the trace file\r\n   function TraceValues(variable value1, variable value2, variable value3, variable value4, variable value5, variable value6, variable value7, variable value8) void\r\n      {Trace(value1, value2, value3, value4, value5, value6, value7, value8);\r\n      }\r\n\r\n\r\n// Function will send a sequence to the trace file\r\n   function TraceSequence(sequence& seqObject) void\r\n      {private variable loopNum, currentPosition;\r\n\r\n       currentPosition = seqObject.GetCurrentPosition();\r\n       Trace(\"Trace sequence \", seqObject.GetName(), \"  -  total positions: \", seqObject.GetTotal(), \", current position: \", currentPosition, \", end position: \", seqObject.GetCount());\r\n       \r\n       for (loopNum=1 ; loopNum <= seqObject.GetTotal() ; loopNum++)\r\n           {Trace(\"Position \", loopNum, \"    labwareId: \", seqObject.GetLabwareId(), \"    positionId: \", seqObject.GetPositionId());\r\n            seqObject.Increment(1);\r\n           }\r\n       seqObject.SetCurrentPosition(currentPosition);\r\n      }\r\n\r\n\r\n// Function will trace out 1 array\r\n   function TraceArray(variable& description, variable& array1[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n           {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n            Trace(\"Position \", position, \": \", array1[loopNum]);\r\n           }\r\n      }\r\n\r\n\r\n// Function will trace out 2 arrays\r\n   function TraceArray2(variable& description, variable& array1[], variable& array2[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if (array1.GetSize() == array2.GetSize())\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          {Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize());\r\n           APPSLIB::TraceArray(\"Array1\", array1);\r\n           APPSLIB::TraceArray(\"Array2\", array2);\r\n          }\r\n      }\r\n\r\n\r\n// Function will trace out 3 arrays\r\n   function TraceArray3(variable& description, variable& array1[], variable& array2[], variable& array3[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if ((array1.GetSize() == array2.GetSize())&&(array1.GetSize() == array3.GetSize()))\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum], \"     \", array3[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          {Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize(), \",  Array3 size: \", array3.GetSize());\r\n           APPSLIB::TraceArray(\"Array1\", array1);\r\n           APPSLIB::TraceArray(\"Array2\", array2);\r\n           APPSLIB::TraceArray(\"Array3\", array3);\r\n          }\r\n      }\r\n\r\n\r\n// Function will trace out 4 arrays\r\n   function TraceArray4(variable& description, variable& array1[], variable& array2[], variable& array3[], variable& array4[]) void\r\n      {private variable loopNum, position;\r\n       \r\n       Trace(\"Trace array. \", description);\r\n       if ((array1.GetSize() == array2.GetSize())&&(array1.GetSize() == array3.GetSize())&&(array1.GetSize() == array4.GetSize()))\r\n          {for (loopNum=0 ; loopNum<array1.GetSize() ; loopNum++)\r\n               {position = loopNum + 1;    //  Values traces with show up as 1 based\r\n                Trace(\"Position \", position, \": \", array1[loopNum], \"     \", array2[loopNum], \"     \", array3[loopNum], \"     \", array4[loopNum]);\r\n               }\r\n          }\r\n       else\r\n          {Trace(\"Arrays cannot be traced together.  Arrays have different sizes. Array1 size: \", array1.GetSize(), \",  Array2 size: \", array2.GetSize(), \",  Array3 size: \", array3.GetSize(), \",  Array4 size: \", array4.GetSize());\r\n           APPSLIB::TraceArray(\"Array1\", array1);\r\n           APPSLIB::TraceArray(\"Array2\", array2);\r\n           APPSLIB::TraceArray(\"Array3\", array3);\r\n           APPSLIB::TraceArray(\"Array4\", array4);\r\n\r\n          }\r\n      }\r\n\r\n\r\n// Function converts an xlsx file to xls.  Windows 2007 or higher must be installed on the system.\r\n   function ConvertXLSX_to_XLS(variable& path_sourceFile, variable& path_newFile) void\r\n      {object app, workbook, workbook_src;\r\n\r\n       app.CreateObject(\"Excel.Application\");\r\n       workbook = app.Workbooks();\r\n       workbook_src = workbook.Open(path_sourceFile);\r\n       app.DisplayAlerts = hslFalse;\r\n       app.Visible = hslFalse;\r\n       workbook_src.SaveAs(path_newFile, 56);\r\n       workbook_src.Close;\r\n       app.ReleaseObject();\r\n      }\r\n\r\n\r\n// Function converts an xls file to xlsx.  Windows 2007 or higher must be installed on the system.\r\n   function ConvertXLS_to_XLSX(variable& path_sourceFile, variable& path_newFile) void\r\n      {object app, workbook, workbook_src;\r\n\r\n       app.CreateObject(\"Excel.Application\");\r\n       workbook = app.Workbooks();\r\n       workbook_src = workbook.Open(path_sourceFile);\r\n       app.DisplayAlerts = hslFalse;\r\n       app.Visible = hslFalse;\r\n       workbook_src.SaveAs(path_newFile, 51);\r\n       workbook_src.Close;\r\n       app.ReleaseObject();\r\n      }\r\n\r\n\r\n// Function converts an AlphaNum to an Integer or an Integer to AlphaNum \r\n//  e.g. Convert 15 to G2 (96 well plate format)\r\n   function AlphaNumConversion(variable& convIndex, variable& posNum, variable& plateFormat) variable\r\n      {private variable returnValue, int_convIndex, int_posNum, int_column, int_row, str_row, int_plateFormat, divisor;\r\n       private string str_posNum;\r\n       \r\n\r\n       // First convert it to an integer in case the user enters a string\r\n       if (GetType(convIndex) == \"s\")\r\n           int_convIndex = APPSLIB::StrConvertToNumber(convIndex);\r\n       else\r\n           int_convIndex = convIndex;\r\n\r\n       // Convert the plateFormat variable type to integer (it should be either 96, 384 or 1536)\r\n       if (GetType(plateFormat) == \"s\")\r\n           int_plateFormat = APPSLIB::StrConvertToNumber(plateFormat);\r\n       else\r\n           int_plateFormat = plateFormat;\r\n\r\n       // Get the correct divisor based upon the plate format\r\n       if (int_plateFormat == 96)\r\n           divisor = 8;\r\n       else if (int_plateFormat == 384)\r\n           divisor = 16;\r\n       else if (int_plateFormat == 1536)\r\n           divisor = 32;\r\n       else\r\n           {Trace(\"Error - The correct plate type 96, 384, or 1536 was not used. \", plateFormat, \" is not a valid input.  The AlphaNumConversion failed.\");\r\n            convIndex = -1;\r\n           }\r\n\r\n       if (convIndex == 0) // Then convert a numeric position to a string (e.g. 7 to \"G1\")\r\n          {\r\n           // Convert the posNum variable to type integer if they mistakenly used a string\r\n           if (GetType(posNum) == \"s\")\r\n              {Trace(\"Variable type detected for variable: \", posNum, \" type \", GetType(posNum), \". Attempting to convert to type i.\");\r\n               int_posNum = APPSLIB::StrConvertToNumber(posNum);\r\n              }\r\n           else\r\n               int_posNum = posNum;\r\n                     \r\n           int_column = (int_posNum - ((int_posNum-1) % divisor) - 1);\r\n           int_column = (int_column / divisor) + 1;\r\n           int_row = (((int_posNum-1) % divisor) + 1) + 64;\r\n           str_row = StrAsciiToStr(int_row);\r\n           returnValue = str_row + IStr(int_column);\r\n\r\n           return (returnValue);\r\n          }\r\n       else if (convIndex == 1) // Then conver a string position to a number (e.g. \"G1\" to 7)\r\n          {\r\n           // If the posNum is not a string, don't try to convert, just send error to Trace\r\n           if (GetType(posNum) == \"s\")\r\n              {str_posNum = posNum;\r\n               int_row = StrStrToAscii(str_posNum.Left(1)) - 64;\r\n               int_column = IVal(str_posNum.Mid(1, str_posNum.GetLength() - 1));\r\n               returnValue = ((int_column - 1) * divisor) + int_row;\r\n               return (returnValue);\r\n              }\r\n           else\r\n               Trace(\"Error - the variable \", posNum, \" of type \", GetType(posNum), \" cannot be converted to a numeric value.  Use a valid string.\");\r\n          }\r\n       else\r\n           Trace(\"Error - invalid variable used for AlphaNumConversion step in Apps library. Variable convIndex contains: \", convIndex);\r\n      }\r\n\r\n\r\n/* Function sets up a multi dispense, Enter the dispense volume the target sequence, and the max volume that can be\r\n   aspirated in each tip.  This function will then return the number of dispenses and the arpirate volume for each channel.\r\n   Before each dispense, there should be a step to get the remaining number of posistions in the sequence then\r\n   change the channel pattern accordingly.\r\n*/\r\n   function MultiDispSetup(variable& i_dispVolume, sequence& i_targetSeq, variable& i_maxAspVolume,\r\n                           variable& i_numberOfChannels, variable& o_numberOfDispenses, variable& o_volumeArray[]) void\r\n      {private variable columns(0);\r\n       private variable fullColumns(0);\r\n       private variable partialColumn(0);\r\n       private variable subtractDisp(0);\r\n       private variable i;\r\n\r\n       // Validate the input variables\r\n       if (GetType(i_dispVolume) == \"s\")\r\n          {i_dispVolume = APPSLIB::StrConvertToNumber(i_dispVolume);}\r\n\r\n       if (GetType(i_maxAspVolume) == \"s\")\r\n          {i_maxAspVolume = APPSLIB::StrConvertToNumber(i_maxAspVolume);}\r\n\r\n       if (GetType(i_numberOfChannels) == \"s\")\r\n          {i_numberOfChannels = APPSLIB::StrConvertToNumber(i_numberOfChannels);}\r\n\r\n       if (i_numberOfChannels > 16 || i_numberOfChannels < 1)\r\n         {Trace(\"APPSLIB Error MultiDispSetup: The number of channels is invalid for the MultiDisp setup. Channel number entered: \", i_numberOfChannels);}\r\n\r\n       else if (i_dispVolume < 0 || i_dispVolume > 5000 || i_maxAspVolume < 0 || i_maxAspVolume > 5000)\r\n         {Trace(\"APPSLIB Error MultiDispSetup: The asp and disp volumes entered are invalid. Dispense volume entered: \", i_dispVolume, \",  Max Aspirate volume entered: \", i_maxAspVolume);}\r\n\r\n       else if (i_maxAspVolume < i_dispVolume)\r\n         {Trace(\"APPSLIB Error MultiDispSetup: The i_maxAspVolume input variable must be greater than or equal to the i_dispVolume input variable.\");\r\n          Trace(\"APPSLIB Error MultiDispSetup: i_maxAspVolume: \", i_maxAspVolume, \", i_dispVolume: \", i_dispVolume);\r\n         }\r\n         \r\n       // All input variables checked for the correct variable type and range\r\n       else\r\n         {\r\n          o_numberOfDispenses = APPSLIB::MathRound((i_maxAspVolume / i_dispVolume), 0);\r\n          fullColumns = APPSLIB::SequenceTotalPosRemaining(i_targetSeq) / i_numberOfChannels;\r\n          partialColumn = APPSLIB::SequenceTotalPosRemaining(i_targetSeq) % i_numberOfChannels;\r\n\r\n          if (partialColumn > 0)\r\n            {columns = fullColumns + 1;\r\n            }\r\n\r\n          /* If the number of columns remaining in the sequence left to pipet is less than or equal to the\r\n             max possible number of dispenses allowed then return the number of columns remaining\r\n             as the number of dispenses. - Else leave it as the maximum\r\n          */\r\n          if (columns <= o_numberOfDispenses)\r\n            {o_numberOfDispenses = columns;\r\n            }\r\n          else\r\n            {partialColumn = 0;\r\n            }\r\n       \r\n          // subract an amount from the asp amount so that some tips don't end up with residual amounts of reagent\r\n          // on the last partial column dispense\r\n          o_volumeArray.SetSize(i_numberOfChannels);\r\n          for (i=0 ; i < i_numberOfChannels; i++)\r\n            {if ((partialColumn > 0) && (partialColumn < (8-i)))\r\n               {subtractDisp = i_dispVolume;\r\n               }\r\n             else\r\n               {subtractDisp = 0;\r\n               }\r\n             o_volumeArray.SetAt((i_numberOfChannels - i) - 1, (i_dispVolume * o_numberOfDispenses) - subtractDisp);\r\n             }\r\n          APPSLIB::TraceArray(\"Volume Array for multiDispense: \", o_volumeArray);\r\n         }\r\n      }\r\n\r\n\r\n//End the namespace\r\n}\r\n\r\n// Gets the serial number from the instrument (instrument must be initialized)\r\nfunction GetSerialNumber(device& ML_STAR) variable\r\n{\r\n\tvariable command(\"\");\t\t\t\t\t\t\t\t// Command string\r\n\tvariable parameter(\"\");\t\t\t\t\t\t\t\t// Parameter string\r\n\tvariable serialNumber(\"\");\t\t\t\t\t\t\t// Serial number\r\n   string str_serialNumber(\"\");\r\n   variable first_char;\r\n\tvariable rc[];\t\t\t\t\t\t\t\t\t\t\t// Low level step return values\r\n\r\n\t// Get serial number\r\n\tcommand = \"C0RI\";\t\t\t\t// Request Installation data\r\n\tparameter = \"\";\r\n\trc = ML_STAR.FirmwareCommand( \"1e78330b_4cb4_456b_84d80d3b33e97e73\" );\r\n   \r\n\tif (4 == rc.GetSize())\r\n   {\r\n      str_serialNumber = rc.ElementAt(3);\r\n      first_char = str_serialNumber.Find(\"sn\");\r\n      str_serialNumber = str_serialNumber.Mid(first_char, 6);\r\n\t\t//serialNumber = StrMid(rc.ElementAt(3), StrFind(rc.ElementAt(3), \"sn\"), 6);\r\n   }\r\n   serialNumber = str_serialNumber.MakeUpper();\r\n\treturn(serialNumber);\r\n}\r\n\r\n\r\n#endif\r\n\r\n\r\n\r\n\r\n\r\n// $$author=walton_s$$valid=0$$time=2014-09-08 09:22$$checksum=2a469957$$length=085$$"
  },
  {
    "path": "pyhamilton/liquid_class_db.py",
    "content": "from importlib import util\nfrom urllib.parse import quote_plus\nfrom sqlalchemy import create_engine, text, inspect\nfrom .defaults import defaults\nimport struct\nfrom typing import List, Dict, Any, Optional, Tuple, Union\nfrom enum import Enum\nimport collections\nimport os\nimport csv\n\nclass DispenseMode(Enum):\n    # Basic modes\n    JET = \"Jet\"\n    SURFACE = \"Surface\"\n    \n    # Part volume modes\n    JET_PART = \"Jet Part\"\n    SURFACE_PART = \"Surface Part\"\n    \n    # Empty tip modes  \n    JET_EMPTY = \"Jet Empty\"\n    SURFACE_EMPTY = \"Surface Empty\"\n\n    def to_code(self) -> int:\n        \"\"\"Convert enum to integer code for Hamilton system.\"\"\"\n        mapping = {\n            DispenseMode.JET: 0,\n            DispenseMode.SURFACE: 1,\n            DispenseMode.JET_PART: 2,\n            DispenseMode.JET_EMPTY: 3,\n            DispenseMode.SURFACE_PART: 4,\n            DispenseMode.SURFACE_EMPTY: 5\n        }\n        return mapping[self]\n\n    @staticmethod\n    def from_code(code: int) -> 'DispenseMode':\n        \"\"\"Convert integer code to DispenseMode enum.\"\"\"\n        mapping = {\n            0: DispenseMode.JET,\n            1: DispenseMode.SURFACE,\n            2: DispenseMode.JET_PART,\n            3: DispenseMode.JET_EMPTY,\n            4: DispenseMode.SURFACE_PART,\n            5: DispenseMode.SURFACE_EMPTY\n        }\n        if code in mapping:\n            return mapping[code]\n        else:\n            raise ValueError(f\"Unknown DispenseMode code: {code}\")\n\n    @classmethod\n    def from_string(cls, identifier: str) -> 'DispenseMode':\n        \"\"\"Convert string identifier to DispenseMode enum.\"\"\"\n        for mode in cls:\n            if mode.value == identifier:\n                return mode\n        \n        raise ValueError(f\"Unknown DispenseMode identifier: '{identifier}'. \"\n                         f\"Available modes: {[mode.value for mode in cls]}\")\n\ndef _check_access_dialect() -> None:\n    \"\"\"Raise if `sqlalchemy-access` is not installed.\"\"\"\n    if util.find_spec(\"sqlalchemy_access\") is None:\n        raise ModuleNotFoundError(\n            \"SQLAlchemy Access dialect not found. \"\n            \"Install with: pip install sqlalchemy-access\"\n        )\n\ndef _build_engine(mdb_path: str):\n    \"\"\"Return a SQLAlchemy Engine for a given Access .mdb/.accdb file.\"\"\"\n    _check_access_dialect()\n\n    driver = \"Microsoft Access Driver (*.mdb, *.accdb)\"\n    odbc_str = f\"DRIVER={{{driver}}};DBQ={mdb_path};\"\n    uri = f\"access+pyodbc:///?odbc_connect={quote_plus(odbc_str)}\"\n    return create_engine(uri, future=True)\n\ndef load_liquid_classes():\n    \"\"\"\n    Load liquid classes from the Access database into memory for fast searching.\n    This is called once at startup and cached.\n    \"\"\"\n    global LIQUID_CLASSES_CACHE\n    \n    try:\n        # Get the database path from your config\n        cfg = defaults()\n        engine = _build_engine(cfg.liquids_database)\n        \n        param_columns = [\n            'LiquidClassName',\n            'AsFlowRate', 'AsMixFlowRate', 'AsAirTransportVolume', 'AsBlowOutVolume', \n            'AsSwapSpeed', 'AsSettlingTime', 'AsOverAspirateVolume', 'AsClotRetractHeight', \n            'DsFlowRate', 'DsMixFlowRate', 'DsAirTransportVolume', 'DsBlowOutVolume', \n            'DsSwapSpeed', 'DsSettlingTime', 'DsStopFlowRate', 'DsStopBackVolume', \n            'DispenseMode', 'TipType', 'CorrectionCurve'\n        ]\n        \n        select_string = \", \".join(param_columns)\n        query = f\"SELECT {select_string} FROM LiquidClass WHERE OriginalLiquid = 0\"\n        stmt = text(query)\n        \n        with engine.connect() as conn:\n            result = conn.execute(stmt).fetchall()\n        \n        LIQUID_CLASSES_CACHE = []\n        for row in result:\n            lc_data = dict(row._mapping)\n            # Unpack the CorrectionCurve for the API response\n            if 'CorrectionCurve' in lc_data and lc_data['CorrectionCurve']:\n                try:\n                    unpacked_data = unpack_doubles_dynamic(lc_data['CorrectionCurve'])\n                    lc_data['CorrectionCurve'] = unpacked_data\n                except Exception as e:\n                    print(f\"Failed to unpack CorrectionCurve for {lc_data['LiquidClassName']}: {e}\")\n                    lc_data['CorrectionCurve'] = None\n            \n            LIQUID_CLASSES_CACHE.append(lc_data)\n        \n        print(f\"Loaded {len(LIQUID_CLASSES_CACHE)} liquid classes into cache\")\n        # Debug: Print first few liquid class names\n        if LIQUID_CLASSES_CACHE:\n            print(\"Sample liquid classes:\")\n            for i, lc in enumerate(LIQUID_CLASSES_CACHE[:5]):\n                print(f\"  - {lc.get('LiquidClassName', 'Unknown')}\")\n        \n    except Exception as e:\n        print(f\"Warning: Could not load liquid classes from database: {e}\")\n        LIQUID_CLASSES_CACHE = []\n\n\ndef _get_liquid_class_data(liquid_class_name: str, columns: Union[str, List[str]]):\n    \"\"\"\n    General helper function to query a specific liquid class for given columns.\n    \n    Args:\n        liquid_class_name: The name of the liquid class to query.\n        columns: A single column name or a list of column names to retrieve.\n        \n    Returns:\n        A dictionary of the queried data.\n        \n    Raises:\n        ValueError: If the liquid class is not found.\n    \"\"\"\n    cfg = defaults()\n    engine = _build_engine(cfg.liquids_database)\n\n    if isinstance(columns, str):\n        columns = [columns]\n\n    select_clause = \", \".join(columns)\n    stmt = text(\n        f\"SELECT {select_clause} \"\n        \"FROM LiquidClass \"\n        \"WHERE LiquidClassName = :name\"\n    )\n\n    with engine.connect() as conn:\n        row = conn.execute(stmt, {\"name\": liquid_class_name}).fetchone()\n\n    if row is None:\n        raise ValueError(f\"No LiquidClass found: {liquid_class_name!r}\")\n    \n    return dict(row._mapping)\n\ndef check_liquid_class_exists(liquid_class_name: str) -> bool:\n    \"\"\"\n    Check if a liquid class name exists in the database.\n    \n    Args:\n        liquid_class_name: Name of the liquid class to check\n        \n    Returns:\n        bool: True if the liquid class name exists, False otherwise\n        \n    Raises:\n        ModuleNotFoundError: if the Access dialect is missing\n        sqlalchemy.exc.*: for genuine DB errors\n    \"\"\"\n    cfg = defaults()\n    engine = _build_engine(cfg.liquids_database)\n    \n    stmt = text(\"SELECT COUNT(*) FROM LiquidClass WHERE LiquidClassName = :name\")\n    \n    with engine.connect() as conn:\n        result = conn.execute(stmt, {\"name\": liquid_class_name}).fetchone()\n        return result[0] > 0\n\ndef liquid_class_has_parameter(liquid_class_name: str, parameter: str, value: Any) -> bool:\n    \"\"\"\n    Check if a given liquid class has a specific parameter set to a given value\n    using the in-memory LIQUID_CLASSES_CACHE.\n\n    Args:\n        liquid_class_name: Name of the liquid class to check.\n        parameter: Parameter/column name to check.\n        value: Value to compare against.\n\n    Returns:\n        True if the liquid class exists in cache and the parameter matches the value, False otherwise.\n    \"\"\"\n    global LIQUID_CLASSES_CACHE\n    \n    if 'LIQUID_CLASSES_CACHE' not in globals() or not LIQUID_CLASSES_CACHE:\n        load_liquid_classes()\n        \n    for lc in LIQUID_CLASSES_CACHE:\n        if lc.get(\"LiquidClassName\") == liquid_class_name:\n            return lc.get(parameter) == value\n    \n    # Liquid class not found\n    return False\n\n\ndef get_liquid_class_column_details() -> List[Dict[str, Any]]:\n    \"\"\"\n    Returns detailed schema information for the LiquidClass table,\n    including column names, types, and nullability.\n    \n    Returns:\n        List[Dict[str, Any]]: A list of dictionaries, each describing a column.\n    \"\"\"\n    cfg = defaults()\n    engine = _build_engine(cfg.liquids_database)\n    \n    inspector = inspect(engine)\n    return inspector.get_columns('LiquidClass')\n\ndef get_liquid_class_columns() -> List[str]:\n    \"\"\"\n    Return a list of all column names in the LiquidClass table.\n    \n    Returns:\n        List[str]: Column names from the LiquidClass table\n    \"\"\"\n    return [col['name'] for col in get_liquid_class_column_details()]\n\ndef get_liquid_class_columns_with_types() -> Dict[str, str]:\n    \"\"\"\n    Return a dictionary of column names and their data types from the LiquidClass table.\n    \n    Returns:\n        Dict[str, str]: Dictionary mapping column names to their SQL data types\n    \"\"\"\n    return {col['name']: str(col['type']) for col in get_liquid_class_column_details()}\n\ndef print_table_schema():\n    \"\"\"\n    Print detailed schema information about the LiquidClass table.\n    \"\"\"\n    try:\n        print(\"=== LiquidClass Table Schema ===\")\n        \n        columns = get_liquid_class_columns()\n        print(f\"\\nColumn Names ({len(columns)} total):\")\n        for i, col in enumerate(columns, 1):\n            print(f\"  {i:2d}. {col}\")\n        \n        print(\"\\n=== Column Types ===\")\n        col_types = get_liquid_class_columns_with_types()\n        for col_name, col_type in col_types.items():\n            print(f\"  {col_name:25} : {col_type}\")\n        \n        print(\"\\n=== Detailed Column Information ===\")\n        detailed_cols = get_liquid_class_column_details()\n        for col in detailed_cols:\n            nullable = \"NULL\" if col.get('nullable', True) else \"NOT NULL\"\n            default = f\", DEFAULT: {col.get('default')}\" if col.get('default') else \"\"\n            print(f\"  {col['name']:25} : {col['type']} ({nullable}{default})\")\n            \n    except Exception as e:\n        print(f\"Error retrieving schema: {e}\")\n\ndef get_all_table_names() -> List[str]:\n    \"\"\"\n    Get all table names in the database.\n    \n    Returns:\n        List[str]: All table names in the database\n    \"\"\"\n    cfg = defaults()\n    engine = _build_engine(cfg.liquids_database)\n    \n    inspector = inspect(engine)\n    return inspector.get_table_names()\n\ndef get_liquid_class_dispense_mode(liquid_class_name: str) -> str:\n    \"\"\"\n    Return the DispenseMode for a given LiquidClass name.\n    \n    Args:\n        liquid_class_name (str): The name of the LiquidClass.\n        \n    Returns:\n        str: The DispenseMode value.\n        \n    Raises:\n        ValueError: if the LiquidClass is unknown.\n    \"\"\"\n    data = _get_liquid_class_data(liquid_class_name, \"DispenseMode\")\n    return DispenseMode.from_code(int(data[\"DispenseMode\"])).value\n\ndef get_liquid_class_volume(liquid_class_name: str, nominal=False) -> int:\n    \"\"\"\n    Return the maximum tip volume (µL) available for aspirating with a Hamilton LiquidClass.\n    Uses nominal tip capacities and accounts for air transport and overaspirate. \n    \n    Raises:\n        ValueError: if the LiquidClass or TipType is unknown.\n    \"\"\"\n    tip_type_to_volume = {3: 10, 1: 300, 23: 50, 5: 1000}\n    \n    data = _get_liquid_class_data(\n        liquid_class_name,\n        [\"TipType\", \"AsAirTransportVolume\", \"AsOverAspirateVolume\"]\n    )\n\n    air_transport_volume = float(data[\"AsAirTransportVolume\"])\n    overaspirate_volume = float(data[\"AsOverAspirateVolume\"])\n\n    tip_type = int(data[\"TipType\"])\n    volume = tip_type_to_volume.get(tip_type)\n\n    if volume is None:\n        raise ValueError(f\"Unknown TipType {tip_type} for {liquid_class_name!r}\")\n\n    if nominal:\n        return volume\n    \n    return int(volume - air_transport_volume - overaspirate_volume)\n\n\ndef get_liquid_class_parameter(liquid_class_name: str, parameter_name: str):\n    \"\"\"\n    Return a single parameter for a given LiquidClass name.\n    \n    Args:\n        liquid_class_name (str): The name of the LiquidClass.\n        parameter_name (str): The name of the parameter (column) to retrieve.\n        \n    Returns:\n        The value of the specified parameter.\n        \n    Raises:\n        ValueError: if the LiquidClass is unknown.\n    \"\"\"\n    data = _get_liquid_class_data(liquid_class_name, parameter_name)\n    return data[parameter_name]\n\n\ndef create_correction_curve(data: Tuple[float, ...]) -> collections.OrderedDict:\n    if len(data) % 2 != 0:\n        raise ValueError(\"Input data must have an even number of elements.\")\n    \n    unsorted_curve: Dict[float, float] = {}\n    for i in range(0, len(data), 2):\n        nominal_value = data[i]\n        corrected_value = data[i + 1]\n        unsorted_curve[nominal_value] = corrected_value\n    \n    sorted_items = sorted(unsorted_curve.items())\n    return collections.OrderedDict(sorted_items)\n\ndef unpack_doubles_dynamic(byte_string: bytes) -> tuple:\n    string_length = len(byte_string)\n    if string_length % 8 != 0:\n        raise ValueError(\"Byte string length is not a multiple of 8.\")\n    \n    num_doubles = string_length // 8\n    format_string = f'<{num_doubles}d'\n    \n    return struct.unpack(format_string, byte_string)\n\ndef export_liquid_classes_to_csv(directory=\"./liquid_class_data\", filename=\"liquid_class_export.csv\", predefined=False):\n    \"\"\"\n    Exports a list of liquid classes with their detailed aspirate and dispense\n    parameters to a CSV file, sorted by aspirate flow rate, for liquid classes\n    where OriginalLiquid is 0.\n\n    Args:\n        directory (str): The directory where the CSV will be saved.\n    \"\"\"\n    cfg = defaults()\n    engine = _build_engine(cfg.liquids_database)\n    \n    os.makedirs(directory, exist_ok=True)\n    csv_file_path = os.path.join(directory, filename)\n\n    param_columns = [\n        'LiquidClassName',\n        'AsFlowRate', 'AsMixFlowRate', 'AsAirTransportVolume', 'AsBlowOutVolume', \n        'AsSwapSpeed', 'AsSettlingTime', 'AsOverAspirateVolume', 'AsClotRetractHeight', \n        'DsFlowRate', 'DsMixFlowRate', 'DsAirTransportVolume', 'DsBlowOutVolume', \n        'DsSwapSpeed', 'DsSettlingTime', 'DsStopFlowRate', 'DsStopBackVolume', \n        'DispenseMode'\n    ]\n\n    select_string = \", \".join(param_columns)\n    query = (\n        f\"SELECT {select_string} FROM LiquidClass\"\n        + (\"\" if predefined else \" WHERE OriginalLiquid = 0\")\n    )\n    stmt = text(query)\n    \n    with engine.connect() as conn:\n        result = conn.execute(stmt).fetchall()\n    \n    if not result:\n        print(\"No liquid classes found with OriginalLiquid = 0.\")\n        return\n        \n    liquid_classes = []\n    for row in result:\n        liquid_classes.append(dict(row._mapping))\n\n    liquid_classes.sort(key=lambda x: x['AsFlowRate'])\n\n    with open(csv_file_path, 'w', newline='') as csvfile:\n        fieldnames = param_columns\n        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)\n        \n        writer.writeheader()\n        writer.writerows(liquid_classes)\n            \n    print(f\"Successfully wrote filtered liquid class parameters to {csv_file_path}\")\n\n# Example usage\nif __name__ == \"__main__\":\n    name = \"Tip_50ulFilter_Water_DispenseSurface_Part\"\n    try:\n        volume = get_liquid_class_volume(name)\n        print(f\"Volume for {name}: {volume} µL\")\n    except ValueError as e:\n        print(e)\n    \n    print(\"\\nLiquid Class Columns:\")\n    print(get_liquid_class_columns())\n\n    print(\"\\nDispense Mode:\")\n    print(get_liquid_class_dispense_mode(name))\n    \n    print(\"\\nSingle Parameter:\")\n    try:\n        flow_rate = get_liquid_class_parameter(name, \"AsFlowRate\")\n        print(f\"Aspirate Flow Rate for {name}: {flow_rate}\")\n    except ValueError as e:\n        print(e)\n    \n    print(\"\\nFull Schema:\")\n    print_table_schema()\n    \n    print(\"\\nTable Names:\")\n    print(get_all_table_names())"
  },
  {
    "path": "pyhamilton/liquid_classes.py",
    "content": "from enum import Enum, IntEnum\nimport json\nfrom typing import Dict, Any, Optional, Union\n\nfrom .interface import (COPY_LIQ_CLASS, SET_ASP_PARAM, SET_DISP_PARAM, SET_TIP_TYPE, SET_CORR_CURVE,\n                        SET_DISP_MODE)\nfrom .resources.enums import TipType\nfrom .liquid_class_db import DispenseMode, check_liquid_class_exists, liquid_class_has_parameter, load_liquid_classes\nimport os\n\nclass AspirateParameter(Enum):\n    FLOW_RATE = -533331950\n    MIX_FLOW_RATE = -533331949\n    AIR_TRANSPORT_VOLUME = -533331948\n    BLOW_OUT_VOLUME = -533331947\n    SWAP_SPEED = -533331946\n    SETTLING_TIME = -533331945\n    OVER_ASPIRATE_VOLUME = -533331936\n    CLOT_RETRACT_HEIGHT = -533331935\n\nclass DispenseParameter(Enum):\n    FLOW_RATE = -533331950\n    MIX_FLOW_RATE = -533331949\n    AIR_TRANSPORT_VOLUME = -533331948\n    BLOW_OUT_VOLUME = -533331947\n    SWAP_SPEED = -533331946\n    SETTLING_TIME = -533331945\n    STOP_FLOW_RATE = -533331920\n    STOP_BACK_VOLUME = -533331919\n\naspirate_params_to_db = {\n    'FLOW_RATE': 'AsFlowRate',\n    'MIX_FLOW_RATE': 'AsMixFlowRate',\n    'AIR_TRANSPORT_VOLUME': 'AsAirTransportVolume',\n    'BLOW_OUT_VOLUME': 'AsBlowOutVolume',\n    'SWAP_SPEED': 'AsSwapSpeed',\n    'SETTLING_TIME': 'AsSettlingTime',\n    'OVER_ASPIRATE_VOLUME': 'AsOverAspirateVolume',\n    'CLOT_RETRACT_HEIGHT': 'AsClotRetractHeight',\n}\n\ndispense_params_to_db = {\n    'FLOW_RATE': 'DsFlowRate',\n    'MIX_FLOW_RATE': 'DsMixFlowRate',\n    'AIR_TRANSPORT_VOLUME': 'DsAirTransportVolume',\n    'BLOW_OUT_VOLUME': 'DsBlowOutVolume',\n    'SWAP_SPEED': 'DsSwapSpeed',\n    'SETTLING_TIME': 'DsSettlingTime',\n    'STOP_FLOW_RATE': 'DsStopFlowRate',\n    'STOP_BACK_VOLUME': 'DsStopBackVolume',\n}\n\n\ndef copy_liquid_class(ham_int, template_liquid_class: str, new_liquid_class: str):\n    \"\"\"Copy an existing liquid class to create a new one.\"\"\"\n    cid = ham_int.send_command(COPY_LIQ_CLASS, \n                              TemplateLiquidClass=template_liquid_class, \n                              NewLiquidClass=new_liquid_class)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n\ndef set_aspirate_parameter(ham_int, liquid_class: str, parameter: AspirateParameter, value: Any):\n    \"\"\"Set an aspirate parameter for a liquid class using enum.\"\"\"\n    cid = ham_int.send_command(SET_ASP_PARAM, \n                              LiquidClass=liquid_class, \n                              Parameter=parameter.value, \n                              Value=value)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n\ndef set_dispense_parameter(ham_int, liquid_class: str, parameter: DispenseParameter, value: Any):\n    \"\"\"Set a dispense parameter for a liquid class using enum.\"\"\"\n    cid = ham_int.send_command(SET_DISP_PARAM, \n                              LiquidClass=liquid_class, \n                              Parameter=parameter.value, \n                              Value=value)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n\ndef set_tip_type(ham_int, liquid_class: str, tip_type: int):\n    \"\"\"Set the tip type for a liquid class.\"\"\"\n    cid = ham_int.send_command(SET_TIP_TYPE, \n                              LiquidClass=liquid_class, \n                              TipType=tip_type)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef set_dispense_mode(ham_int, liquid_class: str, dispense_mode: int):\n    \"\"\"Set the dispense mode for a liquid class.\"\"\"\n    cid = ham_int.send_command(SET_DISP_MODE, \n                              LiquidClass=liquid_class, \n                              DispenseMode=dispense_mode)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n\ndef set_correction_curve(ham_int, liquid_class: str, nominal_array: list, corrected_array: list):\n    \"\"\"Set the correction curve for a liquid class.\"\"\"\n    cid = ham_int.send_command(SET_CORR_CURVE, \n                              LiquidClass=liquid_class, \n                              NominalArray=nominal_array, \n                              CorrectedArray=corrected_array)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\n\n\ndef validate_liquid_class_definitions(definitions: list):\n    \"\"\"\n    Validate the structure of a list of liquid class definitions.\n    \n    Args:\n        definitions: A list of dictionaries representing liquid class definitions.\n\n    Raises:\n        ValueError: If the structure is invalid or missing required fields.\n    \"\"\"\n    if not isinstance(definitions, list):\n        raise ValueError(\"Input must be a list of liquid class definitions.\")\n\n    # Required top-level keys for each liquid class definition\n    required_top_level_keys = [\"name\", \"aspirate\", \"dispense\", \"tip_type\", \"dispense_mode\"]\n    required_tip_keys = [\"volume\", \"has_filter\"]\n    \n    # Required aspirate and dispense parameters\n    required_aspirate_params = [param.name for param in AspirateParameter]\n    required_dispense_params = [param.name for param in DispenseParameter]\n\n    for i, definition in enumerate(definitions):\n        if not isinstance(definition, dict):\n            raise ValueError(f\"Definition at index {i} must be a dictionary.\")\n\n        for key in required_top_level_keys:\n            if key not in definition:\n                raise ValueError(f\"Definition for liquid class '{definition.get('name', 'unknown')}' is missing the required field: '{key}'.\")\n        \n        tip_type_info = definition[\"tip_type\"]\n        for key in required_tip_keys:\n            if key not in tip_type_info:\n                raise ValueError(f\"Definition for liquid class '{definition['name']}' is missing the required tip_type field: '{key}'.\")\n\n        aspirate_params = definition[\"aspirate\"]\n        for param in required_aspirate_params:\n            if param not in aspirate_params:\n                raise ValueError(f\"Liquid class '{definition['name']}' is missing required aspirate parameter: '{param}'.\")\n        \n        dispense_params = definition[\"dispense\"]\n        for param in required_dispense_params:\n            if param not in dispense_params:\n                raise ValueError(f\"Liquid class '{definition['name']}' is missing required dispense parameter: '{param}'.\")\n\n        # Validate dispense mode\n        dispense_mode = definition[\"dispense_mode\"]\n        if not isinstance(dispense_mode, str):\n            raise ValueError(f\"Liquid class '{definition['name']}' dispense_mode must be a string.\")\n        \n        try:\n            DispenseMode.from_string(dispense_mode)\n        except ValueError as e:\n            raise ValueError(f\"Liquid class '{definition['name']}' has invalid dispense_mode: {e}\")\n\n\ndef create_liquid_class_from_dict(\n    ham_int,\n    definitions: Union[list, dict]\n):\n    \"\"\"\n    Core logic: create new liquid classes from a dict/list of definitions.\n\n    Args:\n        ham_int: Hamilton interface object\n        definitions: List (or single dict) of liquid class definitions\n    \"\"\"\n    # Normalize single dict into list\n    if isinstance(definitions, dict):\n        definitions = [definitions]\n    elif not isinstance(definitions, list):\n        raise TypeError(\"definitions must be a dict or list of dicts\")\n\n    validate_liquid_class_definitions(definitions)\n\n\n\n    for definition in definitions:\n        new_liquid_class = definition[\"name\"]\n\n        if not check_liquid_class_exists(new_liquid_class):\n            template_liquid_class = \"Tip_50ulFilter_Water_DispenseSurface_Empty\"  # default template\n        else:\n            print(f\"Liquid class '{new_liquid_class}' already exists. It will be overwritten.\")\n            template_liquid_class = new_liquid_class  # overwrite existing\n        parameters = {\n            \"aspirate\": definition[\"aspirate\"],\n            \"dispense\": definition[\"dispense\"]\n        }\n        tip_info = definition[\"tip_type\"]\n        dispense_mode_str = definition[\"dispense_mode\"]\n        correction_curve = definition.get(\"correction_curve\")\n\n        # Step 2: Copy the template liquid class\n        copy_liquid_class(ham_int, template_liquid_class, new_liquid_class)\n\n        # Step 3: Set aspirate parameters\n        for param_name, value in parameters[\"aspirate\"].items():\n            try:\n                aspirate_param = AspirateParameter[param_name.upper()]\n                cache_param_name = aspirate_params_to_db.get(param_name.upper())\n                if not liquid_class_has_parameter(new_liquid_class, cache_param_name, value):\n                    set_aspirate_parameter(ham_int, new_liquid_class, aspirate_param, value)\n            except KeyError:\n                print(f\"Warning: Unknown aspirate parameter '{param_name}' for '{new_liquid_class}' ignored.\")\n\n        # Step 4: Set dispense parameters\n        for param_name, value in parameters[\"dispense\"].items():\n            try:\n                dispense_param = DispenseParameter[param_name.upper()]\n                cache_param_name = dispense_params_to_db.get(param_name.upper())\n                if not liquid_class_has_parameter(new_liquid_class, cache_param_name, value):\n                    set_dispense_parameter(ham_int, new_liquid_class, dispense_param, value)\n            except KeyError:\n                print(f\"Warning: Unknown dispense parameter '{param_name}' for '{new_liquid_class}' ignored.\")\n\n        # Step 5: Determine and set the tip type\n        volume = tip_info[\"volume\"]\n        has_filter = tip_info[\"has_filter\"]\n\n        selected_tip = None\n        for tip_enum in TipType:\n            if tip_enum.volume == volume:\n                if has_filter == tip_enum.has_filter and not tip_enum.is_needle:\n                    selected_tip = tip_enum\n                    break\n\n        if selected_tip:\n            set_tip_type(ham_int, new_liquid_class, selected_tip.value)\n            print(f\"Set tip type to {selected_tip.name} for liquid class '{new_liquid_class}'.\")\n        else:\n            raise ValueError(f\"Could not find a suitable tip type for volume {volume} with filter={has_filter}.\")\n\n        # Step 6: Set dispense mode\n        try:\n            dispense_mode_enum = DispenseMode.from_string(dispense_mode_str)\n            set_dispense_mode(ham_int, new_liquid_class, dispense_mode_enum.to_code())\n            print(f\"Set dispense mode to '{dispense_mode_str}' for liquid class '{new_liquid_class}'.\")\n        except ValueError as e:\n            raise ValueError(f\"Invalid dispense mode for liquid class '{new_liquid_class}': {e}\")\n\n        # Step 7: Set correction curve if provided\n        if correction_curve:\n            if \"nominal\" in correction_curve and \"corrected\" in correction_curve:\n                set_correction_curve(\n                    ham_int, new_liquid_class,\n                    correction_curve[\"nominal\"],\n                    correction_curve[\"corrected\"]\n                )\n                print(f\"Set correction curve for liquid class '{new_liquid_class}'.\")\n            else:\n                raise ValueError(f\"Correction curve for '{new_liquid_class}' requires both 'nominal' and 'corrected' arrays.\")\n\n        print(f\"Successfully configured liquid class '{new_liquid_class}' from template '{template_liquid_class}'.\")\n\n\ndef create_liquid_class_from_json(\n    ham_int,\n    json_path: str\n):\n    \"\"\"\n    Wrapper: load JSON from file and pass it into create_liquid_class_from_dict.\n\n    Args:\n        ham_int: Hamilton interface object\n        json_path: Path to a JSON file containing one or more liquid class definitions\n    \"\"\"\n    if not os.path.isfile(json_path):\n        raise FileNotFoundError(f\"File not found: {json_path}\")\n    \n    with open(json_path, 'r') as f:\n        definitions = json.load(f)\n\n    return create_liquid_class_from_dict(ham_int, definitions)\n"
  },
  {
    "path": "pyhamilton/liquid_handling_wrappers.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Wed Mar  9 12:01:01 2022\n\n@author: stefa\n\"\"\"\n\nimport sys, os, time, logging, importlib\nfrom threading import Thread\n\nfrom .interface import HamiltonInterface\nfrom .resources.deckresource import LayoutManager, ResourceType, Plate24, Plate96, Tip96, resource_list_with_prefix, layout_item, DeckResource\nfrom .oemerr import PositionError\nfrom .interface import (INITIALIZE, PICKUP, EJECT, ASPIRATE, DISPENSE, ISWAP_GET, ISWAP_PLACE, HEPA,\nWASH96_EMPTY, PICKUP96, EJECT96, ASPIRATE96, DISPENSE96, ISWAP_MOVE, MOVE_SEQ, TILT_INIT, TILT_MOVE, GRIP_GET,\nGRIP_MOVE, GRIP_PLACE, SET_ASP_PARAM, SET_DISP_PARAM, COPY_LIQ_CLASS, SET_CORR_CURVE, SET_TIP_TYPE, SET_LABWARE_PROPERTY)\nfrom .resources.managed_resources import TrackedTips\nfrom typing import List, Tuple\nfrom .defaults import defaults\nfrom .resources.enums import TipType\nfrom .resources.managed_resources import TipSupportTracker\n\ncfg = defaults()\n\n\n\ndef labware_pos_str(labware, idx):\n    return labware.layout_name() + ', ' + labware.position_id(idx)\n\ndef compound_pos_str(pos_tuples):\n    present_pos_tups = [pt for pt in pos_tuples if pt is not None]\n    return ';'.join((labware_pos_str(labware, idx) for labware, idx in present_pos_tups))\n\ndef compound_pos_str_96(labware96):\n    return ';'.join((labware_pos_str(labware96, idx) for idx in range(96)))\n\ndef cells_384_to_1536(well, idx):\n    return (well%16)*2+(well//16)*64+idx%2+(idx//2)*32\n\ndef cells_96_to_384(well, idx):\n    return well*2+idx%2+(idx//2)*16+16*(well//8)\n\ndef wells_384_to_96(x):\n    plate = x%2 + 2*((x//16)%2)\n    well = x//2 - (x//16)*8 + (x//32)*8\n    return plate, well\n\ndef get_cells_from_position_384(well):\n    return [cells_384_to_1536(well, i) for i in range(4)]\n\ndef get_cells_from_position_96(well):\n    return [cells_96_to_384(well, i) for i in range(4)]\n\ndef get_384w_quadrant(quadrant):\n    return [cells_96_to_384(idx, quadrant) for idx in range(96)]\n    \ndef compound_pos_str_384_quad(labware384, quadrant):\n    return ';'.join((labware_pos_str(labware384, idx) for idx in get_384w_quadrant(quadrant)))\n\n\ndef initialize(ham, asynch=False):\n    logging.info('initialize: ' + ('a' if asynch else '') + 'synchronously initialize the robot')\n    cmd = ham.send_command(INITIALIZE)\n    if not asynch:\n        ham.wait_on_response(cmd, raise_first_exception=True, timeout=300)\n    return cmd\n\ndef hepa_on(ham, speed=15, asynch=False, **more_options):\n    logging.info('hepa_on: turn on HEPA filter at ' + str(speed) + '% capacity' +\n            ('' if not more_options else ' with extra options ' + str(more_options)))\n    cmd = ham.send_command(HEPA, fanSpeed=speed, **more_options)\n    if not asynch:\n        ham.wait_on_response(cmd, raise_first_exception=True)\n    return \n\ndef wash_empty_refill(ham, asynch=False, **more_options):\n    logging.info('wash_empty_refill: empty the washer' +\n            ('' if not more_options else ' with extra options ' + str(more_options)))\n    cmd = ham.send_command(WASH96_EMPTY, **more_options)\n    if not asynch:\n        ham.wait_on_response(cmd, raise_first_exception=True)\n    return cmd\n\n\ndef move_plate(ham, source_plate, target_plate, CmplxGetDict=None, CmplxPlaceDict=None, inversion=None, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham.move_plate(source_plate, target_plate, CmplxGetDict, CmplxPlaceDict, inversion, **more_options)\n\ndef 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):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    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)\n\ndef channel_var(pos_tuples):\n    ch_var = ['0']*16\n    for i, pos_tup in enumerate(pos_tuples):\n        if pos_tup is not None:\n            ch_var[i] = '1'\n    return ''.join(ch_var)\n\ndef tip_pick_up(ham_int, pos_tuples, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.tip_pick_up(pos_tuples, **more_options)\n\ndef tip_eject(ham_int, pos_tuples=None, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.tip_eject(pos_tuples, **more_options)\n\ndef assert_parallel_nones(list1, list2):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return HamiltonInterface._assert_parallel_nones(list1, list2)\n\nimport threading\n\nclass TimerHandle:\n    def __init__(self, seconds):\n        self._event = threading.Event()\n        self._timer = threading.Timer(seconds, self._event.set)\n        self._timer.daemon = True   \n        self._timer.start()\n\n    def wait(self, skip=False):\n        \"\"\"Block until the timer finishes.\"\"\"\n        if skip:\n            return\n        self._event.wait()\n\ndef start_timer(seconds):\n    \"\"\"Start a timer in the background and return a handle.\"\"\"\n    return TimerHandle(seconds)\n\n\ndefault_liq_class = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol'\n\ndef aspirate(ham_int, pos_tuples, vols, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.aspirate(pos_tuples, vols, **more_options)\n\ndef dispense(ham_int, pos_tuples, vols, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.dispense(pos_tuples, vols, **more_options)\n    \n\ndef tip_pick_up_96(ham_int, tip96, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.tip_pick_up_96(tip96, **more_options)\n\ndef tip_eject_96(ham_int, tip96=None, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.tip_eject_96(tip96, **more_options)\n\ndef aspirate_96(ham_int, plate96, vol, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.aspirate_96(plate96, vol, **more_options)\n\ndef dispense_96(ham_int, plate96, vol, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.dispense_96(plate96, vol, **more_options)\n\ndef aspirate_384_quadrant(ham_int, plate384, quadrant, vol, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.aspirate_384_quadrant(plate384, quadrant, vol, **more_options)\n\ndef dispense_384_quadrant(ham_int, plate384, quadrant, vol, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.dispense_384_quadrant(plate384, quadrant, vol, **more_options)\n\nliquidclass_params_asp = {\n    \"FlowRate\": -533331950,\n    \"MixFlowRate\": -533331949,\n    \"AirTransportVolume\": -533331948,\n    \"BlowOutVolume\": -533331947,\n    \"SwapSpeed\": -533331946,\n    \"SettlingTime\": -533331945,\n    \"OverAspirateVolume\": -533331936,\n    \"ClotRetractHeight\": -533331935\n}\n\nliquidclass_params_dsp = {\n    \"FlowRate\": -533331950,\n    \"MixFlowRate\": -533331949,\n    \"AirTransportVolume\": -533331948,\n    \"BlowOutVolume\": -533331947,\n    \"SwapSpeed\": -533331946,\n    \"SettlingTime\": -533331945,\n    \"StopFlowRate\": -533331920,\n    \"StopBackVolume\": -533331919,\n}\n\ndef copy_liquid_class(ham_int, template_liquid_class, new_liquid_class):\n    cid = ham_int.send_command(COPY_LIQ_CLASS, TemplateLiquidClass = template_liquid_class, NewLiquidClass = new_liquid_class)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef set_aspirate_parameter(ham_int, LiquidClass, Parameter, Value):\n    param_key = liquidclass_params_asp[Parameter]\n    cid = ham_int.send_command(SET_ASP_PARAM, LiquidClass = LiquidClass, Parameter = param_key, Value = Value)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef set_dispense_parameter(ham_int, LiquidClass, Parameter, Value):\n    param_key = liquidclass_params_dsp[Parameter]\n    cid = ham_int.send_command(SET_DISP_PARAM, LiquidClass = LiquidClass, Parameter = param_key, Value = Value)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef set_tip_type(ham_int, LiquidClass, TipType):\n    cid = ham_int.send_command(SET_TIP_TYPE, LiquidClass = LiquidClass, TipType = TipType)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef set_correction_curve(ham_int, LiquidClass, NominalArray, CorrectedArray):\n    cid = ham_int.send_command(SET_CORR_CURVE, LiquidClass = LiquidClass, NominalArray = NominalArray, CorrectedArray = CorrectedArray)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef move_sequence(ham_int, sequence, xDisplacement=0, yDisplacement=0, zDisplacement=0):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham_int.move_sequence(sequence, xDisplacement, yDisplacement, zDisplacement)\n\ndef tilt_module_initialize(ham_int, module_name, comport, trace_level, simulate):\n    cid = ham_int.send_command(TILT_INIT, ModuleName = module_name, \n                         Comport = comport, \n                         TraceLevel = trace_level, \n                         Simulate = simulate)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n    \ndef tilt_module_move(ham_int, module_name, angle):\n    cid = ham_int.send_command(TILT_MOVE, ModuleName = module_name, Angle = angle)\n    ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120)\n\ndef get_plate_gripper_seq(ham, source_plate_seq, gripHeight, gripWidth, openWidth, lid, tool_sequence, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham.get_plate_gripper_seq(source_plate_seq, gripHeight, gripWidth, openWidth, lid, tool_sequence, **more_options)\n\ndef move_plate_gripper_seq(ham, dest_plate_seq, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham.move_plate_gripper_seq(dest_plate_seq, **more_options)\n    \ndef place_plate_gripper_seq(ham, dest_plate_seq, tool_sequence, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham.place_plate_gripper_seq(dest_plate_seq, tool_sequence, **more_options)\n\ndef move_plate_gripper(ham, dest_poss, **more_options):\n    \"\"\"Legacy wrapper for backward compatibility\"\"\"\n    return ham.move_plate_gripper(dest_poss, **more_options)\n\n\ndef move_plate_using_gripper(ham_int: HamiltonInterface, source: str, destination: str, gripHeight: float, gripWidth: float = 81, \n                             openWidth: float = 87, lid: bool = False, tool_sequence: str = cfg.core_gripper_sequence, \n                             gripForce: int = 8, ejectToolWhenFinish: int = 1, gripperToolChannel: int = 5):\n\n    ham_int.get_plate_gripper_seq(source, gripHeight, gripWidth, openWidth, lid, tool_sequence, \n                                  gripForce=gripForce, gripperToolChannel=gripperToolChannel)\n\n    ham_int.place_plate_gripper_seq(destination, tool_sequence=tool_sequence, ejectToolWhenFinish=ejectToolWhenFinish)\n\ndef tracked_tip_pick_up(ham_int: HamiltonInterface, tips_tracker: TrackedTips, n: int) -> List[Tuple[DeckResource, int]]:\n    \"\"\"\n    Pick up `n` tips from the tracker, marking them as occupied.\n    Returns a list of (DeckResource, position_within_rack).\n    \"\"\"\n\n\n    if n > tips_tracker.count_remaining():\n        raise ValueError(f\"Only {tips_tracker.count_remaining()} tips available; {n} requested.\")\n    \n    tips_poss = tips_tracker.fetch_next(n)\n    try:\n        ham_int.tip_pick_up(tips_poss)\n    except Exception as e:\n        tips_tracker.mark_occupied(tips_poss)\n        raise e\n    return tips_poss\n\ndef tracked_tip_eject(ham_int: HamiltonInterface, tips_tracker: TrackedTips, eject_poss: List[Tuple[DeckResource, int]]):\n    \"\"\"\n    Eject tips from the tracker, marking them as free.\n    If `eject_positions` is None, eject all tips in the tracker.\n    \"\"\"\n\n    ham_int.tip_eject(eject_poss)\n    tips_tracker.mark_occupied(eject_poss, occupied=True)\n\n    return eject_poss\n\ndef tracked_tip_pick_up_96(ham_int: HamiltonInterface, tips_tracker: TrackedTips, rack = None):\n    \"\"\"\n    Pick up `n` tips from the tracker, marking them as occupied.\n    Returns a list of (DeckResource, position_within_rack).\n    \"\"\"\n    if rack is None:\n        tip_rack = tips_tracker.fetch_rack()\n    else:\n        tips_tracker.mark_unoccupied(rack)\n    ham_int.tip_pick_up_96(tip_rack)\n\n\ndef tip_support_pickup_columns(ham_int: HamiltonInterface, tips:TrackedTips, tip_support_tracker: TipSupportTracker, num_columns):\n    \"\"\"\n    Pick up n columns from the right side of the tip support rack.\n    \"\"\"\n    column_idx = tip_support_tracker.fetch_n_columns(ham_int, num_columns, tips)\n    ham_int.tip_pick_up_mph_columns(tip_support_tracker.resource, num_columns_from_left=column_idx)\n\n\nclass StderrLogger:\n    def __init__(self, level):\n        self.level = level\n        self.stderr = sys.stderr\n\n    def write(self, message):\n        self.stderr.write(message)\n        if message.strip():\n            self.level(message.replace('\\n', ''))\n\ndef add_stderr_logging(logger_name=None):\n    logger = logging.getLogger(logger_name) # root logger if None\n    sys.stderr = StderrLogger(logger.error)\n    \ndef normal_logging(ham_int, method_local_dir):\n    for handler in logging.root.handlers[:]:\n        print(handler)\n        logging.root.removeHandler(handler)\n    logging.getLogger('parse').setLevel(logging.CRITICAL)\n    local_log_dir = os.path.join(method_local_dir, 'log')\n    if not os.path.exists(local_log_dir):\n        os.mkdir(local_log_dir)\n    main_logfile = os.path.join(local_log_dir, 'main.log')\n    logging.basicConfig(filename=main_logfile, level=logging.DEBUG, format='[%(asctime)s] %(name)s %(levelname)s %(message)s')\n    logger = logging.getLogger(__name__)\n    add_stderr_logging()\n    import __main__\n    for banner_line in log_banner('Begin execution of ' + __main__.__file__):\n        logging.info(banner_line)\n    ham_int.set_log_dir(os.path.join(local_log_dir, 'hamilton.log'))\n    ham_int.json_logger.set_log_dir(os.path.join(local_log_dir, 'robot_json.log'))\n\n\ndef run_async(funcs):\n    def go():\n        try:\n            iter(funcs)\n        except TypeError:\n            funcs()\n            return\n        for func in funcs:\n            func()\n    func_thread = Thread(target=go, daemon=True)\n    func_thread.start()\n    return func_thread\n\ndef run_async_dict(func):\n    logging.info(\"running async line 427 pace_util_stefan_dev.py\")\n    def go():\n        func['function'](func['arguments'])\n        return\n    func_thread = Thread(target=go, daemon=True)\n    func_thread.start()\n    return func_thread\n\n\ndef yield_in_chunks(sliceable, n):\n    sliceable = list(sliceable)\n    start_pos = 0\n    end_pos = n\n    while start_pos < len(sliceable):\n        yield sliceable[start_pos:end_pos]\n        start_pos, end_pos = end_pos, end_pos + n\n\ndef log_banner(banner_text):\n    l = len(banner_text)\n    margin = 5\n    width = l + 2*margin + 2\n    return ['#'*width,\n            '#' + ' '*(width - 2) + '#',\n            '#' + ' '*margin + banner_text + ' '*margin + '#',\n            '#' + ' '*(width - 2) + '#',\n            '#'*width]\n"
  },
  {
    "path": "pyhamilton/ngs/__init__.py",
    "content": "from .protocol import Protocol\nfrom .loading import LoadingVis\nfrom .tadm import generate_tadm_report, generate_tadm_report_with_json, get_last_usb_data_block"
  },
  {
    "path": "pyhamilton/ngs/loading/__init__.py",
    "content": "from .loading_vis import LoadingVis"
  },
  {
    "path": "pyhamilton/ngs/loading/deck_annotation.py",
    "content": "import numpy as np\nimport json\nimport sys\nimport os\nimport tkinter as tk\nfrom tkinter import filedialog, colorchooser, ttk, messagebox\nfrom PIL import Image, ImageTk, ImageDraw\nfrom typing import Tuple\n\n# ---------- User Configuration ----------\nALPHA = 0.5  # Transparency of polygon fill\nPOINT_RADIUS = 3  # Smaller radius for corner points\nPOINT_COLOR = (0, 0, 0)  # Black (RGB)\nTABLE_WIDTH = 250  # 🌟 MODIFIED: Decreased width for the left panel\nTABLE_HEIGHT_ROWS = 20\n\n# Resource types\nRESOURCE_TYPES = [\n    \"Reservoir\",\n    \"96-well plate\",\n    \"24-well plate\",\n    \"32-tube rack\",\n    \"24-tube rack\"\n]\n\n# ---------- Globals ----------\nregions = []\ncurrent_points = []\ndragging_point_idx = -1\ndragging_region_idx = -1\nbase_img_pil = None\ntk_photo_image = None\ncanvas = None\nimage_path = None\njson_path = None\ntreeview = None\nname_entry_edit = None\ntype_combo_edit = None\n\n# ---------- Helpers ----------\ndef load_image_pil(path: str):\n    try:\n        return Image.open(path).convert('RGB')\n    except FileNotFoundError:\n        return None\n\ndef load_regions_from_json(path: str):\n    if not os.path.exists(path):\n        return []\n    try:\n        with open(path, 'r') as f:\n            data = json.load(f)\n    except json.JSONDecodeError:\n        return []\n\n    loaded = []\n    for name, info in data.items():\n        # NEW: Skip metadata keys like \"image_path\" and \"image_dimensions\"\n        if name in [\"image_path\", \"image_dimensions\"]:\n            continue\n\n        loaded.append({\n            \"name\": name,\n            \"points\": [tuple(int(c) for c in p) for p in info[\"points\"]],\n            \"color\": tuple(info.get(\"color\", (255, 255, 255))),\n            \"resource_type\": info.get(\"resource_type\", \"Reservoir\")  # Default to Reservoir\n        })\n    return loaded\n\ndef save_regions_to_json(path: str, regions_list: list, image_path_str: str, img_dims: Tuple[int, int]):\n    \"\"\"\n    Saves regions data along with image metadata to a JSON file.\n    \"\"\"\n    save_data = {}\n\n    # NEW: Include image path and dimensions in the JSON\n    save_data[\"image_path\"] = os.path.basename(image_path_str) # Save only the file name\n    save_data[\"image_dimensions\"] = {\n        \"width\": img_dims[0],\n        \"height\": img_dims[1]\n    }\n\n    for region in regions_list:\n        save_data[region['name']] = {\n            \"points\": region[\"points\"],\n            \"color\": region[\"color\"],\n            \"resource_type\": region.get(\"resource_type\", \"Reservoir\")\n        }\n    with open(path, 'w') as f:\n        json.dump(save_data, f, indent=4)\n\ndef draw_all_elements(canvas):\n    global tk_photo_image\n\n    overlay = Image.new('RGBA', base_img_pil.size, (0, 0, 0, 0))\n    draw = ImageDraw.Draw(overlay)\n\n    for region in regions:\n        r, g, b = region['color']\n        fill = (r, g, b, int(ALPHA * 255))\n        draw.polygon(region['points'], fill=fill)\n\n        for x, y in region['points']:\n            draw.ellipse((x-POINT_RADIUS, y-POINT_RADIUS, x+POINT_RADIUS, y+POINT_RADIUS),\n                          fill=POINT_COLOR, outline=POINT_COLOR)\n\n    for x, y in current_points:\n        draw.ellipse((x-POINT_RADIUS, y-POINT_RADIUS, x+POINT_RADIUS, y+POINT_RADIUS),\n                          fill=(0, 255, 0), outline=(0, 255, 0))\n\n    composite = Image.alpha_composite(base_img_pil.convert('RGBA'), overlay)\n    tk_photo_image = ImageTk.PhotoImage(composite)\n    canvas.create_image(0, 0, image=tk_photo_image, anchor='nw')\n    canvas.image = tk_photo_image\n\ndef get_closest_point_index(mouse_pos, points, thresh=5):\n    for i, p in enumerate(points):\n        if np.linalg.norm(np.array(mouse_pos) - np.array(p)) < thresh:\n            return i\n    return -1\n\n# ---------- Event Handlers ----------\ndef on_mouse_down(event):\n    global dragging_point_idx, dragging_region_idx\n\n    dragging_point_idx = -1\n    dragging_region_idx = -1\n\n    for i, region in enumerate(regions):\n        idx = get_closest_point_index((event.x, event.y), region['points'])\n        if idx != -1:\n            dragging_point_idx = idx\n            dragging_region_idx = i\n            break\n\n    if dragging_region_idx == -1:\n        current_points.append((event.x, event.y))\n        draw_all_elements(canvas)\n        if len(current_points) >= 4:\n            regions.append({\n                \"name\": f\"Region_{len(regions)+1}\",\n                \"points\": list(current_points),\n                \"color\": (255, 255, 255),\n                \"resource_type\": \"Reservoir\"  # Default type\n            })\n            current_points.clear()\n            draw_all_elements(canvas)\n            update_treeview()\n\ndef on_mouse_right_click(event):\n    \"\"\"\n    Clears the list of pending points on a right-click.\n    \"\"\"\n    global current_points\n    if current_points:\n        current_points.clear()\n        draw_all_elements(canvas)\n\n\ndef on_mouse_up(event):\n    global dragging_point_idx, dragging_region_idx\n    dragging_point_idx = -1\n    dragging_region_idx = -1\n\ndef on_mouse_move(event):\n    if dragging_point_idx != -1 and dragging_region_idx != -1:\n        regions[dragging_region_idx]['points'][dragging_point_idx] = (event.x, event.y)\n        draw_all_elements(canvas)\n\ndef on_key_press(event, root):\n    if event.keysym == 's':\n        save_json()\n    elif event.keysym == 'q':\n        root.quit()\n\ndef save_json():\n    # NEW: Pass image path and dimensions to save_regions_to_json\n    if base_img_pil:\n        dims = base_img_pil.size\n    else:\n        dims = (0, 0) # Fallback if image isn't loaded\n\n    save_regions_to_json(json_path, regions, image_path, dims)\n    messagebox.showinfo(\"Saved\", f\"Regions saved to {os.path.basename(json_path)}\")\n\ndef update_treeview():\n    for i in treeview.get_children():\n        treeview.delete(i)\n\n    for i, region in enumerate(regions):\n        resource_type = region.get(\"resource_type\", \"Reservoir\")\n        item_id = treeview.insert(\"\", \"end\", iid=i, values=(region[\"name\"], \"\", resource_type))\n        r, g, b = region[\"color\"]\n        color_hex = f'#{r:02x}{g:02x}{b:02x}'\n        treeview.tag_configure(f'color{i}', background=color_hex)\n        treeview.item(item_id, tags=(f'color{i}',))\n\ndef on_treeview_click(event):\n    global name_entry_edit, type_combo_edit\n\n    # Clean up any existing editors\n    if name_entry_edit and name_entry_edit.winfo_exists():\n        name_entry_edit.destroy()\n        name_entry_edit = None\n    if type_combo_edit and type_combo_edit.winfo_exists():\n        type_combo_edit.destroy()\n        type_combo_edit = None\n\n    item_id = treeview.identify_row(event.y)\n    if not item_id:\n        return\n    column = treeview.identify_column(event.x)\n\n    if column == '#1':  # Name column\n        edit_name(item_id)\n    elif column == '#2':  # Color column\n        edit_color(item_id)\n    elif column == '#3':  # Resource Type column\n        edit_resource_type(item_id)\n\ndef edit_name(item_id):\n    global name_entry_edit\n    if name_entry_edit and name_entry_edit.winfo_exists():\n        name_entry_edit.destroy()\n    bbox = treeview.bbox(item_id, \"#1\")\n    if not bbox:\n        return\n    x, y, w, h = bbox\n    current = treeview.item(item_id, 'values')[0]\n    name_entry_edit = ttk.Entry(treeview)\n    name_entry_edit.insert(0, current)\n    name_entry_edit.bind(\"<Return>\", lambda e: set_name(item_id))\n    name_entry_edit.bind(\"<FocusOut>\", lambda e: set_name(item_id))\n    name_entry_edit.place(x=x, y=y, width=w, height=h)\n    name_entry_edit.focus_set()\n\ndef set_name(item_id):\n    global name_entry_edit\n    if not name_entry_edit or not name_entry_edit.winfo_exists():\n        return\n    new_name = name_entry_edit.get()\n    regions[int(item_id)]['name'] = new_name\n    current_values = list(treeview.item(item_id, 'values'))\n    current_values[0] = new_name\n    treeview.item(item_id, values=tuple(current_values))\n    name_entry_edit.destroy()\n    name_entry_edit = None\n\ndef edit_color(item_id):\n    r, g, b = regions[int(item_id)]['color']\n    color_code = colorchooser.askcolor(initialcolor=f'#{r:02x}{g:02x}{b:02x}')\n    if color_code[0]:\n        regions[int(item_id)]['color'] = tuple(int(c) for c in color_code[0])\n        update_treeview()\n        draw_all_elements(canvas)\n\ndef edit_resource_type(item_id):\n    global type_combo_edit\n    if type_combo_edit and type_combo_edit.winfo_exists():\n        type_combo_edit.destroy()\n    bbox = treeview.bbox(item_id, \"#3\")\n    if not bbox:\n        return\n    x, y, w, h = bbox\n    current = regions[int(item_id)].get(\"resource_type\", \"Reservoir\")\n\n    type_combo_edit = ttk.Combobox(treeview, values=RESOURCE_TYPES, state=\"readonly\")\n    type_combo_edit.set(current)\n    type_combo_edit.bind(\"<<ComboboxSelected>>\", lambda e: set_resource_type(item_id))\n    type_combo_edit.bind(\"<FocusOut>\", lambda e: set_resource_type(item_id))\n    type_combo_edit.place(x=x, y=y, width=w, height=h)\n    type_combo_edit.focus_set()\n\ndef set_resource_type(item_id):\n    global type_combo_edit\n    if not type_combo_edit or not type_combo_edit.winfo_exists():\n        return\n    new_type = type_combo_edit.get()\n    regions[int(item_id)]['resource_type'] = new_type\n    current_values = list(treeview.item(item_id, 'values'))\n    current_values[2] = new_type\n    treeview.item(item_id, values=tuple(current_values))\n    type_combo_edit.destroy()\n    type_combo_edit = None\n\ndef delete_selected_region():\n    selected = treeview.selection()\n    if selected:\n        item_id = selected[0]\n        idx = int(item_id)\n        del regions[idx]\n        update_treeview()\n        draw_all_elements(canvas)\n\n# ---------- Main ----------\ndef main():\n    global canvas, image_path, json_path, base_img_pil, regions, treeview, style\n\n    root = tk.Tk()\n    root.title(\"Deck Annotation\")\n\n    style = ttk.Style()\n    style.configure(\"Treeview\", background=\"white\", fieldbackground=\"white\")\n    style.map('Treeview',\n              background=[('selected', 'white')],\n              foreground=[('selected', 'black')])\n\n    if len(sys.argv) < 2:\n        image_path = filedialog.askopenfilename(\n            title=\"Select Image File\",\n            filetypes=[(\"Image files\", \"*.png *.jpg *.jpeg *.bmp *.gif\")]\n        )\n        if not image_path:\n            sys.exit(0)\n    else:\n        image_path = sys.argv[1]\n\n    json_path = os.path.splitext(image_path)[0] + \"_regions.json\"\n    base_img_pil = load_image_pil(image_path)\n    regions = load_regions_from_json(json_path)\n\n    # Create main frame\n    main_frame = ttk.Frame(root)\n    main_frame.pack(fill=tk.BOTH, expand=True)\n\n    # Create paned window\n    paned = tk.PanedWindow(main_frame, orient=tk.HORIZONTAL, sashwidth=5)\n    paned.pack(fill=tk.BOTH, expand=True)\n\n    # Left panel with fixed width\n    left_frame = ttk.Frame(paned)\n    paned.add(left_frame, minsize=TABLE_WIDTH, width=TABLE_WIDTH)\n\n    # Create treeview with three columns\n    treeview = ttk.Treeview(left_frame, columns=(\"Name\", \"Color\", \"Type\"), show=\"headings\", height=TABLE_HEIGHT_ROWS)\n    treeview.heading(\"Name\", text=\"Name\")\n    treeview.heading(\"Color\", text=\"Color\")\n    treeview.heading(\"Type\", text=\"Resource Type\")\n    # 🌟 MODIFIED: Adjusted column widths to fit TABLE_WIDTH=250\n    treeview.column(\"Name\", width=100)\n    treeview.column(\"Color\", width=40, anchor=\"center\")\n    treeview.column(\"Type\", width=100)\n    treeview.bind(\"<Double-1>\", on_treeview_click)\n    treeview.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)\n\n    # Button frame\n    button_frame = ttk.Frame(left_frame)\n    button_frame.pack(fill=tk.X, padx=5, pady=5)\n\n    # Save button\n    save_btn = ttk.Button(button_frame, text=\"Save to JSON\", command=save_json)\n    save_btn.pack(side=tk.LEFT, padx=2)\n\n    # Delete button\n    delete_btn = ttk.Button(button_frame, text=\"Delete Selected\", command=delete_selected_region)\n    delete_btn.pack(side=tk.LEFT, padx=2)\n\n    # Instructions label\n    instructions = ttk.Label(left_frame, text=\"Keys: S=Save, Q=Quit\\nDouble-click cells to edit\",\n                             font=(\"Arial\", 9), foreground=\"gray\")\n    instructions.pack(pady=5)\n\n    update_treeview()\n\n    # Right panel with canvas\n    right_frame = ttk.Frame(paned)\n    paned.add(right_frame)\n\n    # Create scrollable canvas frame\n    canvas_frame = ttk.Frame(right_frame)\n    canvas_frame.pack(fill=tk.BOTH, expand=True)\n\n    # Create canvas with exact image dimensions\n    canvas = tk.Canvas(canvas_frame, width=base_img_pil.width, height=base_img_pil.height,\n                             highlightthickness=0, bd=0)\n\n    # Add scrollbars if needed\n    v_scrollbar = ttk.Scrollbar(canvas_frame, orient=tk.VERTICAL, command=canvas.yview)\n    h_scrollbar = ttk.Scrollbar(canvas_frame, orient=tk.HORIZONTAL, command=canvas.xview)\n\n    canvas.configure(yscrollcommand=v_scrollbar.set, xscrollcommand=h_scrollbar.set)\n    canvas.configure(scrollregion=(0, 0, base_img_pil.width, base_img_pil.height))\n\n    # Pack scrollbars and canvas\n    v_scrollbar.pack(side=tk.RIGHT, fill=tk.Y)\n    h_scrollbar.pack(side=tk.BOTTOM, fill=tk.X)\n    canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)\n\n    # Bind events\n    canvas.bind(\"<Button-1>\", on_mouse_down)\n    canvas.bind(\"<ButtonRelease-1>\", on_mouse_up)\n    canvas.bind(\"<B1-Motion>\", on_mouse_move)\n    canvas.bind(\"<Button-3>\", on_mouse_right_click)\n    root.bind(\"<Key>\", lambda e: on_key_press(e, root))\n\n    # Draw initial elements\n    draw_all_elements(canvas)\n\n    # Calculate optimal window size\n    window_width = TABLE_WIDTH + base_img_pil.width + 50  # Extra space for scrollbars and padding\n    window_height = min(base_img_pil.height + 50, 800)  # Cap at 800px height\n\n    # Set window size to fit content\n    root.geometry(f\"{min(window_width, 1400)}x{window_height}\")\n\n    # Center window on screen\n    root.update_idletasks()\n    screen_width = root.winfo_screenwidth()\n    screen_height = root.winfo_screenheight()\n    x = (screen_width - root.winfo_width()) // 2\n    y = (screen_height - root.winfo_height()) // 2\n    root.geometry(f\"+{x}+{y}\")\n\n    root.mainloop()\n\nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "pyhamilton/ngs/loading/deck_regions.json",
    "content": "{\n    \"image_path\": \"deck.png\",\n    \"image_dimensions\": {\n        \"width\": 1098,\n        \"height\": 527\n    },\n    \"rgt_cont_60ml_BC_A00_0001\": {\n        \"points\": [\n            [\n                550,\n                128\n            ],\n            [\n                560,\n                127\n            ],\n            [\n                568,\n                153\n            ],\n            [\n                554,\n                152\n            ]\n        ],\n        \"color\": [\n            14,\n            241,\n            105\n        ],\n        \"resource_type\": \"Reservoir\"\n    },\n    \"rgt_cont_60ml_BC_A00_0002\": {\n        \"points\": [\n            [\n                569,\n                160\n            ],\n            [\n                571,\n                186\n            ],\n            [\n                560,\n                185\n            ],\n            [\n                555,\n                160\n            ]\n        ],\n        \"color\": [\n            162,\n            231,\n            152\n        ],\n        \"resource_type\": \"Reservoir\"\n    },\n    \"rgt_cont_60ml_BC_A00_0003\": {\n        \"points\": [\n            [\n                572,\n                194\n            ],\n            [\n                562,\n                194\n            ],\n            [\n                566,\n                223\n            ],\n            [\n                579,\n                223\n            ]\n        ],\n        \"color\": [\n            237,\n            199,\n            82\n        ],\n        \"resource_type\": \"Reservoir\"\n    },\n    \"rgt_cont_60ml_BC_A00_0004\": {\n        \"points\": [\n            [\n                582,\n                231\n            ],\n            [\n                567,\n                231\n            ],\n            [\n                573,\n                265\n            ],\n            [\n                588,\n                266\n            ]\n        ],\n        \"color\": [\n            223,\n            32,\n            223\n        ],\n        \"resource_type\": \"Reservoir\"\n    },\n    \"rgt_cont_60ml_BC_A00_0005\": {\n        \"points\": [\n            [\n                587,\n                274\n            ],\n            [\n                574,\n                273\n            ],\n            [\n                579,\n                311\n            ],\n            [\n                591,\n                311\n            ]\n        ],\n        \"color\": [\n            18,\n            6,\n            249\n        ],\n        \"resource_type\": \"Reservoir\"\n    },\n    \"rgt_cont_60ml_BC_A00_0006\": {\n        \"points\": [\n            [\n                567,\n                126\n            ],\n            [\n                574,\n                127\n            ],\n            [\n                578,\n                149\n            ],\n            [\n                571,\n                150\n            ]\n        ],\n        \"color\": [\n            255,\n            128,\n            192\n        ],\n        \"resource_type\": \"Reservoir\"\n    },\n    \"rgt_cont_60ml_BC_A00_0007\": {\n        \"points\": [\n            [\n                571,\n                161\n            ],\n            [\n                581,\n                158\n            ],\n            [\n                583,\n                185\n            ],\n            [\n                576,\n                187\n            ]\n        ],\n        \"color\": [\n            255,\n            128,\n            0\n        ],\n        \"resource_type\": \"Reservoir\"\n    },\n    \"CPAC_HSP_0001\": {\n        \"points\": [\n            [\n                740,\n                277\n            ],\n            [\n                820,\n                277\n            ],\n            [\n                839,\n                318\n            ],\n            [\n                756,\n                317\n            ]\n        ],\n        \"color\": [\n            64,\n            0,\n            64\n        ],\n        \"resource_type\": \"96-well plate\"\n    },\n    \"RGT_Ethanol\": {\n        \"points\": [\n            [\n                641,\n                228\n            ],\n            [\n                716,\n                227\n            ],\n            [\n                727,\n                259\n            ],\n            [\n                651,\n                262\n            ]\n        ],\n        \"color\": [\n            255,\n            255,\n            255\n        ],\n        \"resource_type\": \"Reservoir\"\n    }\n}"
  },
  {
    "path": "pyhamilton/ngs/loading/deck_regions_old.json",
    "content": "{\n  \"image_path\": \".\\\\deck.png\",\n  \"image_dimensions\": {\n    \"width\": 1098,\n    \"height\": 527\n  },\n  \"regions\": {\n    \"rgt_cont_60ml_BC_A00_0001\": {\n      \"top_left\": [\n        553,\n        126\n      ],\n      \"bottom_right\": [\n        565,\n        154\n      ],\n      \"width\": 12,\n      \"height\": 28,\n      \"center\": [\n        559,\n        140\n      ],\n      \"color\": [\n        0,\n        0,\n        255\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0002\": {\n      \"top_left\": [\n        556,\n        155\n      ],\n      \"bottom_right\": [\n        569,\n        187\n      ],\n      \"width\": 13,\n      \"height\": 32,\n      \"center\": [\n        562,\n        171\n      ],\n      \"color\": [\n        0,\n        255,\n        0\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0003\": {\n      \"top_left\": [\n        562,\n        192\n      ],\n      \"bottom_right\": [\n        577,\n        224\n      ],\n      \"width\": 15,\n      \"height\": 32,\n      \"center\": [\n        569,\n        208\n      ],\n      \"color\": [\n        255,\n        0,\n        0\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0004\": {\n      \"top_left\": [\n        569,\n        230\n      ],\n      \"bottom_right\": [\n        583,\n        262\n      ],\n      \"width\": 14,\n      \"height\": 32,\n      \"center\": [\n        576,\n        246\n      ],\n      \"color\": [\n        0,\n        255,\n        255\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0005\": {\n      \"top_left\": [\n        574,\n        270\n      ],\n      \"bottom_right\": [\n        589,\n        314\n      ],\n      \"width\": 15,\n      \"height\": 44,\n      \"center\": [\n        581,\n        292\n      ],\n      \"color\": [\n        255,\n        0,\n        255\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0006\": {\n      \"top_left\": [\n        566,\n        125\n      ],\n      \"bottom_right\": [\n        577,\n        155\n      ],\n      \"width\": 11,\n      \"height\": 30,\n      \"center\": [\n        571,\n        140\n      ],\n      \"color\": [\n        255,\n        255,\n        0\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0007\": {\n      \"top_left\": [\n        570,\n        157\n      ],\n      \"bottom_right\": [\n        585,\n        187\n      ],\n      \"width\": 15,\n      \"height\": 30,\n      \"center\": [\n        577,\n        172\n      ],\n      \"color\": [\n        128,\n        0,\n        255\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0008\": {\n      \"top_left\": [\n        580,\n        192\n      ],\n      \"bottom_right\": [\n        591,\n        223\n      ],\n      \"width\": 11,\n      \"height\": 31,\n      \"center\": [\n        585,\n        207\n      ],\n      \"color\": [\n        0,\n        165,\n        255\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0009\": {\n      \"top_left\": [\n        582,\n        229\n      ],\n      \"bottom_right\": [\n        597,\n        267\n      ],\n      \"width\": 15,\n      \"height\": 38,\n      \"center\": [\n        589,\n        248\n      ],\n      \"color\": [\n        255,\n        255,\n        255\n      ]\n    },\n    \"rgt_cont_60ml_BC_A00_0010\": {\n      \"top_left\": [\n        590,\n        269\n      ],\n      \"bottom_right\": [\n        608,\n        312\n      ],\n      \"width\": 18,\n      \"height\": 43,\n      \"center\": [\n        599,\n        290\n      ],\n      \"color\": [\n        192,\n        192,\n        192\n      ]\n    },\n    \"CPAC_HSP_0001\": {\n      \"top_left\": [\n        746,\n        278\n      ],\n      \"bottom_right\": [\n        834,\n        325\n      ],\n      \"width\": 88,\n      \"height\": 47,\n      \"center\": [\n        790,\n        301\n      ],\n      \"color\": [\n        255,\n        255,\n        128\n      ]\n    },\n    \"RGT_Ethanol\": {\n      \"top_left\": [\n        642,\n        226\n      ],\n      \"bottom_right\": [\n        725,\n        265\n      ],\n      \"width\": 83,\n      \"height\": 39,\n      \"center\": [\n        683,\n        245\n      ],\n      \"color\": [\n        128,\n        255,\n        128\n      ]\n    }\n  }\n}"
  },
  {
    "path": "pyhamilton/ngs/loading/loading_vis.py",
    "content": "# loading_vis.py\nfrom __future__ import annotations\nimport os\nimport unicodedata\nimport json\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Optional, Tuple, Union\nimport unicodedata  # (top-level import)\nimport cv2\nimport numpy as np\nfrom PIL import Image, ImageDraw, ImageFont\nfrom ...resources import DeckResource\nfrom pathlib import Path\nimport tkinter as tk\nfrom .plate_96_render import render_plate_96\nfrom .tube_rack_render import TubeRackRenderer\nfrom .rendering_helpers import (\n    ARIAL_TTF,\n    _FONT_CANDIDATES,\n    draw_text_pillow,\n    _best_label_box_outside,\n    _resolve_font_path,\n    _measure_text_pillow,\n    _rescale_image,\n    _ascii_label,\n    _label_from_info_dict,\n    _name_to_color_bgr,\n    _norm_key,\n    _ensure_bgr,\n    _draw_transparent_rect,\n    _draw_transparent_polygon,\n    _rect_xyxy,\n    _rect_overlap_area,\n    _intersects_any,\n    _fan_offsets,\n    _fmt_volume,\n    _preferred_side_for_key,\n    _get_polygon_min_area_rect_center_and_bbox,\n)\n\n\n\n\n\n# ------------------------- Data Models -------------------------\n\n@dataclass\nclass Region:\n    name: str\n    points: List[Tuple[int, int]] # <--- NEW FIELD\n    top_left: Tuple[int, int]\n    bottom_right: Tuple[int, int]\n    color_bgr: Tuple[int, int, int]\n\n    @classmethod\n    def from_dict(cls, name: str, d: Dict) -> \"Region\":\n        # New format uses 'points' to define a polygon. We calculate the bounding box.\n        if \"points\" not in d:\n            raise ValueError(f\"Region '{name}' is missing 'points' key in data.\")\n\n        # Store the points array directly\n        points = d[\"points\"] # <--- RETAIN POINTS DATA\n\n        # Calculate bounding box (min_x, min_y) and (max_x, max_y)\n        x_coords = [p[0] for p in points]\n        y_coords = [p[1] for p in points]\n\n        min_x, max_x = min(x_coords), max(x_coords)\n        min_y, max_y = min(y_coords), max(y_coords)\n\n        top_left = (int(min_x), int(min_y))\n        bottom_right = (int(max_x), int(max_y))\n\n        # New format uses 'color' for BGR color\n        color_bgr = tuple(map(int, d.get(\"color\", (0, 0, 255))))\n\n        return cls(\n            name=name,\n            points=points, # <--- PASS POINTS TO CONSTRUCTOR\n            top_left=top_left,\n            bottom_right=bottom_right,\n            color_bgr=color_bgr,\n        )\n\n\n\n# ---- ADD: helpers for ASCII labels and colors ----\n\n\nclass ReagentVessel:\n    def __init__(self, name: str):\n        self.name = name\n    \n    def layout_name(self):\n        return self.name\n        \n\n# ------------------------- Visualization -------------------------\n\nclass LoadingVis:\n    \"\"\"\n    Visualizer that:\n      - Loads the base deck image and region metadata from your overlay JSON\n      - Optionally loads reagent names/volumes from a separate map JSON\n      - Renders overlays only for the vessels you pass in\n      - Places labels outside overlays with collision avoidance\n      - Offers resizable OpenCV/Tk viewers\n    \"\"\"\n\n    def __init__(\n            self,\n            image_path_override: Optional[Union[str, Path]] = None,\n            scale_to_json_dims: bool = True,\n            parent=None,\n            *,\n            origin_offset: Tuple[int, int] = (0, 0),\n            reagent_data: Optional[Union[str, Path, Dict]] = None,\n            tip_data: Optional[Union[str, Path, Dict]] = None,\n            auto_crop: Union[bool, str] = False,\n            crop_margin: int = 12,\n        ):\n            \"\"\"\n            Parameters\n            ----------\n            data : str|Path|dict\n                Path to overlay JSON or already-parsed dict (with image_path, image_dimensions, regions).\n            image_path_override : str|Path|None\n                If provided, use this image path instead of the JSON's \"image_path\".\n            scale_to_json_dims : bool\n                If True and the JSON provides image_dimensions, resize the base image to match.\n            origin_offset : (ox, oy)\n                Shift all region coordinates by this offset at load time.\n            reagent_data : str|Path|dict|None\n                Path/dict with reagent mapping (vessel -> {name, volume, unit}).\n            auto_crop : False | \"regions\" | \"uniform\"\n                Optional cropping to remove borders (see helpers below).\n            crop_margin : int\n                Padding when auto_crop=\"regions\".\n            \"\"\"\n            if parent is None:\n                raise ValueError(\"LoadingVis requires a parent Tk window when called from GUI context\")\n        \n            self.parent = parent\n\n            # Define the expected directory and file paths relative to the CWD\n            loading_dir = Path.cwd() / \"loading\"\n            json_file_name = \"deck_regions.json\"\n            json_file_path = loading_dir / json_file_name\n\n            # 1. Check for 'loading' subdirectory and 'deck_regions.json'\n            if not loading_dir.is_dir():\n                raise FileNotFoundError(\n                    f\"Could not find the **'loading'** folder in the current directory: {Path.cwd()}. \"\n                    \"Please ensure you have a 'loading' subdirectory containing \"\n                    \"your annotated files, typically **'deck.png'** and **'deck_regions.json'**.\"\n                )\n            \n            if not json_file_path.is_file():\n                raise FileNotFoundError(\n                    f\"Could not find overlay JSON at: {json_file_path}. \"\n                    \"Please ensure **'deck_regions.json'** exists inside the **'loading'** folder. \"\n                    \"Run deck-annotator deck.png to create it.\"\n                )\n\n            with open(json_file_path, \"r\", encoding=\"utf-8\") as f:\n                data = json.load(f)\n            self._raw = data\n\n            # 2. Resolve base image path\n            json_image_path = data.get(\"image_path\")\n            if image_path_override:\n                img_path = Path(image_path_override)\n            else:\n                if json_image_path:\n                    # Resolve image path relative to the 'loading' directory\n                    normalized_path = json_image_path.replace(\"\\\\\", \"/\").lstrip(\"./\")\n                    img_path = loading_dir / normalized_path\n                else:\n                    img_path = Path(\"\") # Will likely fail to load, caught below\n\n            # 3. Load the image\n            self.base_img_bgr = _ensure_bgr(cv2.imread(str(img_path), cv2.IMREAD_UNCHANGED))\n            if self.base_img_bgr is None:\n                if json_image_path and not Path(img_path).exists():\n                    raise FileNotFoundError(\n                        f\"The image '{json_image_path}' specified in the JSON file \"\n                        f\"was not found in the **'loading'** directory: {loading_dir}\"\n                    )\n                raise FileNotFoundError(f\"Could not read base image: {img_path}\") \n                \n            # Resize to declared dimensions in the overlay JSON\n            dims = data.get(\"image_dimensions\") or {}\n            w_decl, h_decl = int(dims.get(\"width\", 0)), int(dims.get(\"height\", 0))\n            if scale_to_json_dims and w_decl > 0 and h_decl > 0:\n                h0, w0 = self.base_img_bgr.shape[:2]\n                if (w0, h0) != (w_decl, h_decl):\n                    self.base_img_bgr = cv2.resize(self.base_img_bgr, (w_decl, h_decl), interpolation=cv2.INTER_AREA)\n\n            # Parse and normalize regions\n            self.regions: Dict[str, Region] = {}\n            metadata_keys = {\"image_path\", \"image_dimensions\", \"regions\"} \n            \n            for name, rd in data.items():\n                if name in metadata_keys or not isinstance(rd, dict) or \"points\" not in rd:\n                    continue\n                \n                region = Region.from_dict(name=name, d=rd)\n                self.regions[_norm_key(name)] = region\n\n            # Optional global shift if your JSON coords need nudging\n            if origin_offset != (0, 0):\n                self._shift_regions(origin_offset)\n\n            # Optional auto-crop to kill borders or trim to content\n            if auto_crop:\n                if auto_crop == \"regions\":\n                    self._crop_to_regions(crop_margin)\n                elif auto_crop == \"uniform\":\n                    self._auto_trim_uniform_borders(tol=3, max_crop=400)\n                else:\n                    raise ValueError(\"auto_crop must be False | 'regions' | 'uniform'\")\n\n            # ---- Reagent map ----\n            self.reagent_units_default: str = \"mL\"\n            self.reagent_map: Dict[str, Dict[str, Any]] = {}\n            self.tube_racks_map: Dict[str, Dict[int, Dict[str, Any]]] = {}\n            self.plate96_map: Dict[str, Dict[int, Dict[str, Any]]] = {}\n            if reagent_data is not None:\n                self._load_reagent_map(reagent_data)\n            \n            # Assuming this property is set by another loading method or defaults to False\n            self.has_tip_consumption_data = False \n\n    # ---------- Private utilities ----------\n\n    def _shift_regions(self, offset: Tuple[int, int]) -> None:\n        ox, oy = offset\n        for r in self.regions.values():\n            x1, y1 = r.top_left\n            x2, y2 = r.bottom_right\n            r.top_left = (x1 + ox, y1 + oy)\n            r.bottom_right = (x2 + ox, y2 + oy)\n            r.points = [\n                (p[0] + ox, p[1] + oy) for p in r.points\n            ]\n\n    def _crop_to_regions(self, margin: int = 12) -> None:\n        xs1, ys1, xs2, ys2 = [], [], [], []\n        for r in self.regions.values():\n            x1, y1 = r.top_left\n            x2, y2 = r.bottom_right\n            if x2 < x1: x1, x2 = x2, x1\n            if y2 < y1: y1, y2 = y2, y1\n            xs1.append(x1); ys1.append(y1); xs2.append(x2); ys2.append(y2)\n        if not xs1:\n            return\n        H, W = self.base_img_bgr.shape[:2]\n        x1 = max(0, min(xs1) - margin)\n        y1 = max(0, min(ys1) - margin)\n        x2 = min(W, max(xs2) + margin)\n        y2 = min(H, max(ys2) + margin)\n        self.base_img_bgr = self.base_img_bgr[y1:y2, x1:x2].copy()\n        self._shift_regions((-x1, -y1))\n\n    def _auto_trim_uniform_borders(self, tol: int = 3, max_crop: int = 400) -> None:\n        \"\"\"\n        Trim uniform-color borders (e.g., white/near-white) from all sides, up to max_crop px.\n        \"\"\"\n        img = self.base_img_bgr\n        H, W = img.shape[:2]\n        corners = np.array([img[0,0], img[0,-1], img[-1,0], img[-1,-1]], dtype=np.int16)\n        bg = np.median(corners, axis=0)\n        diff = np.abs(img.astype(np.int16) - bg[None,None,:]).sum(axis=2)\n\n        def edge_strip(vals):\n            count = 0\n            for v in vals:\n                if v.mean() <= tol: count += 1\n                else: break\n            return min(count, max_crop)\n\n        top = edge_strip(diff[:max_crop])\n        bottom = edge_strip(diff[::-1][:max_crop])\n        left = edge_strip(diff[:, :max_crop].transpose(1,0))\n        right = edge_strip(diff[:, ::-1][:,:max_crop].transpose(1,0))\n\n        y1 = top\n        y2 = H - bottom\n        x1 = left\n        x2 = W - right\n\n        if x2 - x1 < 50 or y2 - y1 < 50:\n            return \n\n        self.base_img_bgr = img[y1:y2, x1:x2].copy()\n        self._shift_regions((-x1, -y1))\n\n    def _apply_alias_rules(self, region_name) -> str:\n        if 'CPAC' in region_name.upper():\n            return 'CPAC'\n        elif region_name=='CAR_VIALS_SMALL':\n            return '32-tube rack'\n        else:\n            return None\n\n    def _create_vessels_from_data(self) -> List[DeckResource]:\n        \"\"\"\n        Create vessel objects based on the reagent data loaded.\n        \"\"\"\n        vessels = []\n        all_keys = set(self.reagent_map.keys()) | set(self.plate96_map.keys()) | set(self.tube_racks_map.keys())\n        \n        for vessel_key in all_keys:\n            if vessel_key in self.regions:\n                vessel = ReagentVessel(name=self.regions[vessel_key].name)\n                vessels.append(vessel)\n        \n        return vessels\n\n\n    def _load_reagent_map(self, reagent_data: Union[str, Path, Dict]) -> None:\n        \"\"\"\n        Load reagent map, now with support for custom labels.\n        \"\"\"\n        if isinstance(reagent_data, (str, Path)):\n            with open(reagent_data, \"r\", encoding=\"utf-8\") as f:\n                d = json.load(f)\n        else:\n            d = reagent_data\n\n        self.reagent_units_default = str(d.get(\"units_default\", \"mL\"))\n        self.reagent_map: Dict[str, Dict[str, Any]] = {}\n        self.tube_racks_map: Dict[str, Dict[int, Dict[str, Any]]] = {}\n        self.plate96_map: Dict[str, Dict[int, Dict[str, Any]]] = {}\n        self.custom_labels: Dict[str, str] = {}  # Add this line\n\n        \n        for vessel_name, vessel_data in d.items():\n            if vessel_name in (\"units_default\", \"version\"):\n                continue\n                \n            vessel_key = _norm_key(vessel_name)\n            pos_map = vessel_data.get(\"positions\") if isinstance(vessel_data, dict) else None\n            vessel_class_name = vessel_data.get('class_name', '')\n            \n            # Check for custom label\n            if \"custom_label\" in vessel_data:\n                self.custom_labels[vessel_key] = vessel_data[\"custom_label\"]\n            \n            if 'Plate96' in vessel_class_name:\n                self.plate96_map.update({vessel_key: vessel_data.get('positions', {})})\n\n            elif 'TubeRack' in vessel_class_name or 'EppiCarrier' in vessel_class_name:\n                self.tube_racks_map.update({vessel_key: {'positions': vessel_data.get('positions', {}), \n                                                'class_name': vessel_class_name}})\n            \n            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):\n                reagent_names = []\n                total_volume = 0\n                units = []\n                    \n                for pos_str, reagent_info in pos_map.items():\n                    reagent_names.append(reagent_info[\"reagent\"])\n                    total_volume += reagent_info[\"volume\"]\n                    units.append(reagent_info[\"unit\"])\n                    \n                if reagent_names:\n                    unit = max(set(units), key=units.count) if units else self.reagent_units_default\n                        \n                    self.reagent_map[vessel_key] = {\n                        \"name\": vessel_key if len(reagent_names) > 1 else reagent_names[0],\n                        \"volume\": total_volume if len(reagent_names) == 1 else None,\n                        \"unit\": unit if len(reagent_names) == 1 else None\n                    }\n            \n\n    # ---------- Public API ----------\n\n    def render(\n        self,\n        vessels: Optional[List[DeckResource]] = None,\n        *,\n        alpha: float = 0.35,\n        draw_labels: bool = True,\n        label_from: str = \"label_then_entity\",\n        copy_base: bool = True,\n        prefer_reagent_map: bool = True,\n        font_scale: float = 0.40,\n        font_thickness: int = 1,\n        pad: int = 3,\n        gap: int = 6,\n    ) -> np.ndarray:\n        \"\"\"\n        Render overlays. If no vessels provided, automatically create them from reagent data.\n        \"\"\"\n        canvas = self.base_img_bgr.copy() if copy_base else self.base_img_bgr\n\n        if vessels is None:\n            vessels = self._create_vessels_from_data()\n\n        items = []  # (region, color_bgr, label_text)\n        for v in vessels:\n            key_norm = _norm_key(v.layout_name())\n            region = self.regions.get(key_norm)\n            if not region:\n                continue\n            \n            color = region.color_bgr\n\n            # Priority 1: Check for custom label first\n            if key_norm in self.custom_labels:\n                label_text = _ascii_label(self.custom_labels[key_norm])\n            # Priority 2: Check reagent map if preferred\n            elif prefer_reagent_map and key_norm in self.reagent_map:\n                reagent_info = self.reagent_map[key_norm]\n                name = reagent_info.get(\"name\", region.name)\n                volume = reagent_info.get(\"volume\")\n                unit = reagent_info.get(\"unit\", self.reagent_units_default)\n                \n                if volume is not None and volume > 0:\n                    try:\n                        vol_num = float(volume)\n                        vol_str = f\"{vol_num:.3f}\".rstrip(\"0\").rstrip(\".\")\n                    except (ValueError, TypeError):\n                        vol_str = str(volume)\n                    \n                    label_text = _ascii_label(f\"{name}, {vol_str} {unit}\")\n                else:\n                    alias_label = self._apply_alias_rules(key_norm)\n                    if alias_label:\n                        label_text = _ascii_label(alias_label)\n                    else:\n                        label_text = _ascii_label(name)\n            # Priority 3: Fall back to alias rules or region name\n            else:\n                alias_label = self._apply_alias_rules(region.name)\n                if alias_label:\n                    label_text = _ascii_label(alias_label)\n                else:\n                    label_text = _ascii_label(region.name)\n            \n            items.append((region, color, label_text))\n\n        # Draw transparent polygons for all regions\n        for region, color, _ in items:\n            _draw_transparent_polygon(\n                canvas, region.points, color, alpha=alpha\n            )\n        \n        if not draw_labels:\n            return canvas\n\n        # Prepare for label placement\n        overlay_rects = [_rect_xyxy(r.top_left, r.bottom_right) for (r, _, _) in items]\n        placed_label_rects = []\n        label_px = 16\n        try:\n            font_fp = ARIAL_TTF if Path(ARIAL_TTF).is_file() else next(\n                (p for p in _FONT_CANDIDATES if Path(p).is_file()), None\n            )\n        except Exception:\n            font_fp = None\n\n        # Place labels with collision avoidance\n        for region, color, label_text in items:\n            print(f\"Placing label '{label_text}' for region '{region.name}'\")\n\n            polygon_bbox, min_area_center = _get_polygon_min_area_rect_center_and_bbox(region.points)\n            \n            anchor_xyxy = _rect_xyxy(region.top_left, region.bottom_right)\n            anchor_poly_points = region.points\n\n            preferred_side = _preferred_side_for_key(_norm_key(region.name))\n\n            label_rect, org = _best_label_box_outside(\n                canvas.shape,\n                anchor_xyxy,\n                label_text,\n                anchor_poly_points=anchor_poly_points,\n                avoid_rects=overlay_rects,\n                avoid_labels=placed_label_rects,\n                pad=4,\n                gap=6,\n                max_shift=160,\n                step=10,\n                preferred_side=preferred_side,\n                text_engine=\"pillow\",\n                font_path=font_fp,\n                font_px=label_px,\n                box_extra=3,\n                font=cv2.FONT_HERSHEY_SIMPLEX,\n                scale=font_scale,\n                thickness=font_thickness,\n            )\n            \n            # Draw label background\n            x1, y1, x2, y2 = label_rect\n            cv2.rectangle(canvas, (x1, y1), (x2, y2), (0, 0, 0), thickness=-1)\n\n            # Draw label text\n            draw_text_pillow(\n                canvas, label_text, org,\n                font_path=font_fp or ARIAL_TTF,\n                px=label_px,\n                color=(255, 255, 255)\n            )\n            placed_label_rects.append(label_rect)\n\n        return canvas\n    \n    def show(\n        self,\n        img_bgr: np.ndarray,\n        window_name: str = \"LoadingVis\",\n        scale: Optional[float] = None,\n        wait_ms: int = 0,\n        resizable: bool = True,\n    ) -> None:\n        \"\"\"\n        Show the image in an OpenCV window.\n        \"\"\"\n        disp = img_bgr\n        if scale and scale > 0:\n            h, w = img_bgr.shape[:2]\n            disp = cv2.resize(img_bgr, (int(w * scale), int(h * scale)), interpolation=cv2.INTER_AREA)\n\n        if resizable:\n            cv2.namedWindow(window_name, cv2.WINDOW_NORMAL | cv2.WINDOW_GUI_EXPANDED)\n            h0, w0 = disp.shape[:2]\n            cv2.resizeWindow(window_name, w0, h0)\n        else:\n            cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)\n\n        cv2.imshow(window_name, disp)\n        cv2.waitKey(wait_ms)\n\n\n    def save(self, img_bgr: np.ndarray, out_path: Union[str, Path]) -> None:\n        Path(out_path).parent.mkdir(parents=True, exist_ok=True)\n        if not cv2.imwrite(str(out_path), img_bgr):\n            raise IOError(f\"Failed to write image to {out_path}\")\n\n    def missing_for(self, vessels: List[DeckResource]) -> List[str]:\n        \"\"\"Return entity names that don't have a matching region.\"\"\"\n        missing = []\n        for v in vessels:\n            if _norm_key(v.layout_name()) not in self.regions:\n                missing.append(v.layout_name())\n        return missing\n\n    @property\n    def has_tube_rack_data(self) -> bool:\n        \"\"\"Check if there's any actual reagent data in the tube rack.\"\"\"\n        return bool(self.tube_racks_map)\n\n    \n    def _cleanup_cv_windows(self, deck_window_name, plate_enabled):\n        \"\"\"Destroy OpenCV windows.\"\"\"\n        try:\n            cv2.destroyWindow(deck_window_name)\n        except Exception:\n            pass\n        \n        if plate_enabled:\n            for plate_key in self.plate96_map.keys():\n                window_name = f\"{plate_key} - Plate Reagent Map\"\n                try:\n                    cv2.destroyWindow(window_name)\n                except Exception:\n                    pass\n\n    def show_dialogues(\n        self,\n        vessels: Optional[List[DeckResource]] = None,\n        *,\n        # --- NEW: Summary stage options (not fully implemented in methods, but included for completeness) ---\n        summary_enabled: bool = True,\n        summary_title: str = \"Consumables Summary\", \n        summary_size: Tuple[int, int] = (700, 500),\n        summary_offset: Tuple[int, int] = (100, 100),\n        \n        # --- Deck stage options ---\n        deck_enabled: bool = True,\n        deck_window_name: str = \"Deck\",\n        deck_alpha: float = 0.40,\n        deck_draw_labels: bool = True,\n        deck_prefer_reagent_map: bool = True,\n        deck_scale: float = 1.0,\n        deck_resizable: bool = True,\n\n        tips_enabled: bool = True, \n        tips_title: str = \"Tip Consumption Summary\",\n        tips_size: Tuple[int, int] = (800, 600), \n        tips_offset: Tuple[int, int] = (200, 150),\n\n        # --- Tube rack stage options ---\n        tube_enabled: bool = True,\n        tube_title: str = \"Tube Rack (Scrollable)\",\n        tube_render_scale: float = 1.25,\n        tube_zoom_y: float = 1.5,\n        tube_viewport: Tuple[int, int] = (800, 700),\n        tube_offset: Tuple[int, int] = (360, 60),\n\n        # --- Plate stage options ---\n        plate_enabled: bool = True,\n        plate_window_name: str = \"96-well Plate\",\n        plate_render_scale: float = 1.25,\n        plate_output_scale: float = 1.0,\n        plate_scale_in_window: float = 1.0,\n        plate_resizable: bool = True,\n\n        # --- Cleanup ---\n        destroy_windows: bool = True,\n    ) -> None:\n        \"\"\"\n        Show visualization stages and block until the last Tkinter window is closed.\n        \"\"\"\n        import cv2\n        import tkinter as tk\n        import traceback # needed for error reporting\n\n\n        if vessels is None:\n            vessels = self._create_vessels_from_data()\n\n        # Check if we need a Tk root to host the Toplevels\n        # 1) Deck overlay (OpenCV window)\n        if deck_enabled:\n            img_deck = self.render(\n                vessels,\n                alpha=deck_alpha,\n                draw_labels=deck_draw_labels,\n                prefer_reagent_map=deck_prefer_reagent_map,\n            )\n            self.show(img_deck, window_name=deck_window_name,\n                    scale=deck_scale, wait_ms=0, resizable=deck_resizable)\n            \n        # 2) 96-well Plate view (OpenCV) - only show if there's actual reagent data\n        if plate_enabled:\n            for plate_key in self.plate96_map.keys():\n                plate_data = self.plate96_map.get(plate_key, {})\n                \n                # Skip plates with no reagent position data (custom labels only)\n                if not plate_data or len(plate_data) == 0:\n                    print(f\"Skipping plate display for '{plate_key}' - no reagent volume data\")\n                    continue\n                \n                img_plate = render_plate_96(\n                    plate_key,\n                    plate_data,\n                    self.reagent_units_default,\n                    render_scale=plate_render_scale,\n                    output_scale=plate_output_scale,\n                )\n                window_name = f\"{plate_key} - Plate Reagent Map\"\n                self.show(img_plate, \n                        window_name=window_name,\n                        scale=plate_scale_in_window, \n                        wait_ms=0, \n                        resizable=plate_resizable)\n        \n        # 3) Tube rack view (Tkinter modal)\n        if tube_enabled and self.tube_racks_map:\n            renderer = TubeRackRenderer()\n\n            \n            for rack_key in self.tube_racks_map.keys():\n                tube_dictionary = self.tube_racks_map.get(rack_key, {})\n                # tubes_count logic remains the same\n                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)\n                tube_data = tube_dictionary.get('positions', {})\n\n                if tubes_count == 0: continue\n\n                try:\n                    # 2. Render the image (Returns a BGR numpy array)\n                    img_tube = renderer.render_tube_rack_screen(\n                        tubes_count=tubes_count,\n                        tube_map=tube_data,\n                        reagent_units_default=self.reagent_units_default,\n                        render_scale=tube_render_scale,\n                        zoom_y=tube_zoom_y,\n                    )\n                    \n                    # 3. Define window name\n                    window_name = f\"{rack_key} - Tube Rack Reagent Map\"\n                    \n                    renderer.show_tkinter_modal(\n                        img_bgr=img_tube,\n                        window_name=window_name,\n                        parent=self.parent \n                    )\n\n                    \n                except Exception as e:\n                    # You might want to use a more robust logger here\n                    # traceback.print_exc() # Use this if 'traceback' is imported\n                    print(f\"Error rendering/showing rack {rack_key}: {e}\")\n        \n        if destroy_windows:\n            self._cleanup_cv_windows(deck_window_name, plate_enabled)\n\n\n    def ShowDialogues(self, *args, **kwargs):\n        \"\"\"PascalCase alias.\"\"\"\n        return self.show_dialogues(*args, **kwargs)\n\n\n# ------------------------- Example Usage -------------------------\n\nif __name__ == \"__main__\":\n    vis = LoadingVis(\n        reagent_data=\"deck_loads.json\",\n        origin_offset=(0, 0),\n        auto_crop=False,\n    )\n\n\n    class ReagentVessel:\n        def __init__(self, name):\n            self.name = name\n\n        def layout_name(self):\n            return self.name\n\n    magbeads = ReagentVessel('rgt_cont_60ml_BC_A00_0001')\n    buffer_a = ReagentVessel('rgt_cont_60ml_BC_A00_0003')\n    buffer_b = ReagentVessel('rgt_cont_60ml_BC_A00_0005')\n\n    vessels = [\n        magbeads,\n        buffer_a,\n        buffer_b\n    ]\n\n    # One-shot sequence\n    vis.ShowDialogues(\n        tube_offset=(360, 60),           # nudge the scrollable window to the right\n        tube_viewport=(800, 700),        # fixed window size; scroll to see the rest\n        deck_window_name=\"Deck\",\n        plate_window_name=\"96-well Plate\",\n    )"
  },
  {
    "path": "pyhamilton/ngs/loading/plate_96_render.py",
    "content": "from __future__ import annotations\nimport os\nimport unicodedata\nimport json\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Optional, Tuple, Union\nimport unicodedata  # (top-level import)\nimport cv2\nimport numpy as np\nfrom PIL import Image, ImageDraw, ImageFont\nfrom pathlib import Path\nimport tkinter as tk\nfrom .rendering_helpers import (\n    ARIAL_TTF,\n    _FONT_CANDIDATES,\n    _best_label_box_outside,\n    _measure_text_pillow,\n    _resolve_font_path,\n    _rescale_image,\n    draw_text_pillow,\n    _ascii_label,\n    _name_to_color_bgr,\n)\n\n\ndef render_plate_96(\n    plate_key: str,\n    plate_data: Dict[int, Dict[str, Any]],\n    unit_default: str,\n    *,\n    cols: int = 12,\n    rows: int = 8,                # A..H\n    cell_w: int = 48,\n    cell_h: int = 48,\n    margin_left: int = 80,\n    margin_top: int = 80,\n    margin_right: int = 320,      # wider legend gutter\n    margin_bottom: int = 60,\n    well_radius: int = 14,\n    grid_thickness: int = 1,\n    font_scale: float = 0.40,\n    font_thickness: int = 1,\n    pad: int = 3,\n    gap: int = 6,\n    render_scale: float = 1.25,    # draw larger for crisp text\n    output_scale: float = 1.0,     # final scale (keep 1.0 for this screen)\n) -> np.ndarray:\n    \"\"\"\n    96-well plate (12x8). Renders the plate reagent map.\n    \"\"\"\n    \n    # --- Input Handling ---\n    if not plate_data:\n        s = float(render_scale)\n        width  = int(round((margin_left + cols * cell_w + margin_right) * s))\n        height = int(round((margin_top + rows * cell_h + margin_bottom) * s))\n        canvas = np.full((height, width, 3), 255, np.uint8)\n        title = _ascii_label(f\"Plate {plate_key} - No Reagent Data\")\n        label_px = 16\n        draw_text_pillow(\n            canvas, title, (int(round(margin_left * s)), int(round(36 * s))),\n            font_path=ARIAL_TTF,\n            px=label_px,\n            color=(0, 0, 0)\n        )\n        return canvas\n\n    # --- Scaling ---\n    s = float(render_scale)\n    cw = int(round(cell_w * s)); ch = int(round(cell_h * s))\n    ml = int(round(margin_left * s)); mt = int(round(margin_top * s))\n    mr = int(round(margin_right * s)); mb = int(round(margin_bottom * s))\n    wr = int(round(well_radius * s))\n    gt = max(1, int(round(grid_thickness * s)))\n    fs = font_scale * s\n    pt = max(1, int(round(pad * s)))\n    gp = max(1, int(round(gap * s)))\n\n    width  = ml + cols * cw + mr\n    height = mt + rows * ch + mb\n    canvas = np.full((height, width, 3), 255, np.uint8)\n\n    # --- Title ---\n    title = _ascii_label(f\"{plate_key} - Reagent Map\")\n    label_px = 16\n    draw_text_pillow(\n        canvas, title, (ml, int(round(36 * s))),\n        font_path=ARIAL_TTF,\n        px=label_px,\n        color=(0, 0, 0)\n    )\n    \n    # --- Grid Drawing ---\n    origin_x = ml\n    origin_y = mt\n\n    # Outer border\n    cv2.rectangle(canvas, (origin_x, origin_y), (origin_x + cols*cw, origin_y + rows*ch), (0,0,0), max(1, int(round(2*s))))\n\n    # Internal grid\n    for c in range(1, cols):\n        x = origin_x + c * cw\n        cv2.line(canvas, (x, origin_y), (x, origin_y + rows*ch), (200,200,200), gt)\n    for r in range(1, rows):\n        y = origin_y + r * ch\n        cv2.line(canvas, (origin_x, y), (origin_x + cols*cw, y), (200,200,200), gt)\n\n    # Headers\n    for c in range(cols):\n        label = str(c+1)\n        tx = origin_x + c*cw + cw//2 - int(round(6*s))*len(label)//2\n        draw_text_pillow(\n            canvas, label, (tx, origin_y - int(round(12*s))),\n            font_path=ARIAL_TTF,\n            px=label_px,\n            color=(0, 0, 0)\n        )\n    row_letters = \"ABCDEFGH\"\n    for r in range(rows):\n        label = row_letters[r]\n        ty = origin_y + r*ch + ch//2 + int(round(6*s))//2\n        draw_text_pillow(\n            canvas, label, (origin_x - int(round(28*s)), ty),\n            font_path=ARIAL_TTF,\n            px=label_px,\n            color=(0, 0, 0)\n        )\n\n    # --- Wells and Legend Data Collection ---\n    filled_entries = []  # list of (well_notation, info, color, pos)\n    for r in range(rows):\n        for c in range(cols):\n            cx = origin_x + c*cw + cw//2\n            cy = origin_y + r*ch + ch//2\n            pos = c * rows + r  # Column-first indexing (0=A1, 1=B1, ..., 8=A2)\n            well_notation = f\"{row_letters[r]}{c+1}\"\n            info = plate_data.get(str(pos)) \n            color = (220, 220, 220) if not info else _name_to_color_bgr(info.get(\"reagent\", well_notation))\n            cv2.circle(canvas, (cx, cy), wr, color, thickness=-1)\n            cv2.circle(canvas, (cx, cy), wr, (40,40,40), thickness=max(1, int(round(1*s))))\n            if info:\n                filled_entries.append((well_notation, info, color, pos))\n\n    # --- Legend Drawing ---\n    x_gutter = origin_x + cols*cw + int(round(4 * s))\n\n    # Sort by position (integer order)\n    filled_entries.sort(key=lambda entry: entry[3])\n\n    # layout calculations\n    col_start_x = x_gutter + int(round(12 * s))\n    y0 = mt\n    # measure line height once\n    (_, th), base = cv2.getTextSize(\"Ag\", cv2.FONT_HERSHEY_SIMPLEX, fs, font_thickness)\n    line_h = th + base + 2*pt\n    sw, sh = int(round(18 * s)), int(round(12 * s))     # swatch size\n    col_w = max(int(round(240 * s)), sw + int(round(10*s)) + int(round(180*s)))\n\n    max_rows = max(1, (height - y0 - int(round(10*s))) // line_h)\n\n    for idx, (well_notation, info, color, pos) in enumerate(filled_entries):\n        col = idx // max_rows\n        row = idx % max_rows\n        x = col_start_x + col * col_w\n        y = y0 + row * line_h\n\n        # swatch\n        cv2.rectangle(canvas, (x, y), (x + sw, y + sh), color, thickness=-1)\n        cv2.rectangle(canvas, (x, y), (x + sw, y + sh), (30,30,30), thickness=max(1, int(round(1*s))))\n\n        # text: \"A1: Name, 100 uL\"\n        reagent_name = info.get(\"reagent\", well_notation)\n        volume = info.get(\"volume\")\n        unit = info.get(\"unit\", unit_default)\n        \n        try:\n            vol_num = float(volume)\n            vol_str = f\"{vol_num:.3f}\".rstrip(\"0\").rstrip(\".\")\n        except (ValueError, TypeError):\n            vol_str = str(volume)\n        \n        label_text = f\"{reagent_name}, {vol_str} {unit}\"\n\n        legend_text = _ascii_label(f\"{well_notation}: {label_text}\")\n        org = (x + sw + int(round(10*s)), y + sh - max(1, int(round(2*s))))\n        draw_text_pillow(\n            canvas, legend_text, org,\n            font_path=ARIAL_TTF,\n            px=label_px,\n            color=(0, 0, 0)\n        )\n\n    final = _rescale_image(canvas, output_scale / render_scale)\n    return final\n\ndef _draw_text_simple(canvas: np.ndarray, text: str, pos: Tuple[int, int], size: int, color: Tuple[int, int, int]) -> None:\n    \"\"\"Simple text drawing using OpenCV (fallback when Pillow not available).\"\"\"\n    cv2.putText(canvas, text, pos, cv2.FONT_HERSHEY_SIMPLEX, size/20.0, color, 1, cv2.LINE_AA)\n"
  },
  {
    "path": "pyhamilton/ngs/loading/rendering_helpers.py",
    "content": "from __future__ import annotations\nimport os\nimport unicodedata\nimport json\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Optional, Tuple, Union\nimport unicodedata  # (top-level import)\nimport cv2\nimport numpy as np\nfrom PIL import Image, ImageDraw, ImageFont\nfrom pathlib import Path\nimport tkinter as tk\n\n\n\nARIAL_TTF = r\"C:\\Windows\\Fonts\\arial.ttf\"\n\n_FONT_CANDIDATES = [\n    ARIAL_TTF,                                  # <- prioritize Arial\n    \"fonts/Inter-Regular.ttf\",\n    r\"C:\\Windows\\Fonts\\segoeui.ttf\",\n    \"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf\",\n    \"/Library/Fonts/Arial.ttf\",\n]\n\n\ndef draw_text_pillow(img_bgr: np.ndarray, text: str, org: Tuple[int, int],\n                     font_path: Optional[str] = ARIAL_TTF, px: Union[int, float] = 18,\n                     color: Tuple[int, int, int] = (0, 0, 0)) -> np.ndarray:\n    \"\"\"\n    Draw TTF text with Pillow onto img_bgr IN-PLACE and also return img_bgr.\n    - org is treated like OpenCV: (x, baseline_y). We adjust for ascent so\n      the visual baseline matches your existing placement math.\n    - px may be float; we coerce to int >= 1.\n    \"\"\"\n    # 1) Coerce px\n    px_i = max(1, int(round(px)))\n\n    # 2) Resolve font path (fallback to Arial candidates if missing)\n    fp = font_path if (font_path and Path(font_path).is_file()) else None\n    if fp is None:\n        for cand in _FONT_CANDIDATES:\n            if Path(cand).is_file():\n                fp = cand\n                break\n    if fp is None:\n        # Last-resort fallback: use OpenCV so at least something draws\n        scale = max(0.4, px_i / 32.0)\n        cv2.putText(img_bgr, text, org, cv2.FONT_HERSHEY_DUPLEX, scale, color, 1, cv2.LINE_AA)\n        return img_bgr\n\n    # 3) Convert to PIL image (RGB), draw, convert back\n    im = Image.fromarray(cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB))\n    draw = ImageDraw.Draw(im)\n    font = ImageFont.truetype(fp, px_i)\n\n    # Treat org as BASELINE like OpenCV\n    try:\n        ascent, descent = font.getmetrics()\n    except Exception:\n        ascent, descent = (int(0.8 * px_i), int(0.2 * px_i))\n    x, y_base = int(org[0]), int(org[1])\n    y_top = y_base - ascent\n\n    # Pillow is RGB; convert BGR color\n    fill = (color[2], color[1], color[0])\n    draw.text((x, y_top), text, font=font, fill=fill)\n\n    # Write back IN-PLACE so callers don't need to assign\n    out = cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR)\n    img_bgr[:] = out\n    return img_bgr\n\n\ndef _resolve_font_path(pref: Optional[str] = ARIAL_TTF) -> Optional[str]:\n    \"\"\"Pick a usable TTF path.\"\"\"\n    cands = [pref] + [p for p in _FONT_CANDIDATES if p != pref]\n    for p in cands:\n        if p and Path(p).is_file():\n            return p\n    return None\n\ndef _measure_text_pillow(text: str, font_path: Optional[str], px: Union[int, float]) -> Tuple[int, int, int]:\n    \"\"\"\n    Return (width_px, ascent_px, descent_px) measured with Pillow.\n    Falls back to OpenCV approx if a TTF can't be opened.\n    \"\"\"\n    fp = _resolve_font_path(font_path)\n    px_i = max(1, int(round(px)))\n    if not fp:\n        # Fallback: rough OpenCV approximation\n        scale = max(0.4, px_i / 32.0)\n        (tw, th), base = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, scale, 1)\n        return int(tw), int(th), int(base)\n\n    font = ImageFont.truetype(fp, px_i)\n    try:\n        ascent, descent = font.getmetrics()\n    except Exception:\n        ascent, descent = int(0.8 * px_i), int(0.2 * px_i)\n    # getbbox is accurate (x0,y0,x1,y1)\n    x0, y0, x1, y1 = font.getbbox(text)\n    width = int(x1 - x0)\n    return width, int(ascent), int(descent)\n\n\ndef _rescale_image(img: np.ndarray, scale: float) -> np.ndarray:\n    \"\"\"Scale with proper interpolation (AREA for downscale, CUBIC for upscale).\"\"\"\n    if scale is None or abs(scale - 1.0) < 1e-6:\n        return img\n    h, w = img.shape[:2]\n    nw = max(1, int(round(w * scale)))\n    nh = max(1, int(round(h * scale)))\n    interp = cv2.INTER_AREA if scale < 1.0 else cv2.INTER_CUBIC\n    return cv2.resize(img, (nw, nh), interpolation=interp)\n\ndef _ascii_label(s: str) -> str:\n    repl = {\"—\": \"-\", \"–\": \"-\", \"−\": \"-\", \"•\": \"-\", \"·\": \"-\", \"µ\": \"u\", \"°\": \" deg \", \"\\u00A0\": \" \"}\n    for k, v in repl.items():\n        s = s.replace(k, v)\n    s = unicodedata.normalize(\"NFKD\", s)\n    return s.encode(\"ascii\", \"ignore\").decode(\"ascii\")\n\ndef _label_from_info_dict(info: Dict, *, unit_default: str, fallback: str) -> str:\n    name = str(info.get(\"reagent\") or fallback)\n    unit = str(info.get(\"unit\") or unit_default or \"\").strip()\n    vol  = info.get(\"volume\")\n    if vol is None or vol == \"\":\n        return _ascii_label(name)\n    try:\n        v = float(vol)\n        vol_s = f\"{v:.3f}\".rstrip(\"0\").rstrip(\".\")\n    except Exception:\n        vol_s = str(vol)\n    txt = f\"{name}, {vol_s} {unit}\".strip()\n    return _ascii_label(txt)\n\ndef _name_to_color_bgr(name: str) -> Tuple[int, int, int]:\n    \"\"\"Deterministic bright color for a given name (HSV→BGR).\"\"\"\n    h = (hash(name) % 180)  # OpenCV H in [0,179]\n    s, v = 200, 230\n    hsv = np.uint8([[[h, s, v]]])\n    bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)[0,0].tolist()\n    return (int(bgr[0]), int(bgr[1]), int(bgr[2]))\n\n\ndef _norm_key(k: str) -> str:\n    return k.strip().lower().replace(\"\\\\\", \"/\")\n\ndef _ensure_bgr(img: np.ndarray) -> np.ndarray:\n    \"\"\"Ensure a 3-channel BGR image for overlay; convert if BGRA or gray.\"\"\"\n    if img is None:\n        raise ValueError(\"Base image is None (could not load).\")\n    if img.ndim == 2:\n        return cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)\n    if img.shape[2] == 4:\n        return cv2.cvtColor(img, cv2.COLOR_BGRA2BGR)\n    return img\n\ndef _draw_transparent_rect(\n    canvas_bgr: np.ndarray,\n    p1: Tuple[int, int],\n    p2: Tuple[int, int],\n    color_bgr: Tuple[int, int, int],\n    alpha: float = 0.35,\n    thickness: int = -1,\n) -> None:\n    \"\"\"Draw a filled/outlined transparent rectangle.\"\"\"\n    overlay = canvas_bgr.copy()\n    cv2.rectangle(overlay, p1, p2, color_bgr, thickness=thickness)\n    cv2.addWeighted(overlay, alpha, canvas_bgr, 1 - alpha, 0, dst=canvas_bgr)\n\ndef _draw_transparent_polygon(\n    canvas_bgr: np.ndarray,\n    points: List[Tuple[int, int]],\n    color_bgr: Tuple[int, int, int],\n    alpha: float = 0.35,\n) -> None:\n    \"\"\"Draw a filled transparent polygon defined by points.\"\"\"\n    overlay = canvas_bgr.copy()\n    \n    # Convert points list to a numpy array for OpenCV\n    pts = np.array(points, np.int32)\n    # Reshape for fillPoly: array of polygons, where each polygon is an array of points\n    pts = pts.reshape((-1, 1, 2))\n    \n    # Draw the filled polygon onto the overlay\n    cv2.fillPoly(overlay, [pts], color_bgr)\n    \n    # Blend the overlay with the original canvas for transparency\n    cv2.addWeighted(overlay, alpha, canvas_bgr, 1 - alpha, 0, dst=canvas_bgr)\n\n\ndef _rect_xyxy(p1, p2) -> Tuple[int, int, int, int]:\n    x1, y1 = p1; x2, y2 = p2\n    if x2 < x1: x1, x2 = x2, x1\n    if y2 < y1: y1, y2 = y2, y1\n    return (int(x1), int(y1), int(x2), int(y2))\n\ndef _rect_overlap_area(a, b) -> int:\n    ax1, ay1, ax2, ay2 = a\n    bx1, by1, bx2, by2 = b\n    iw = max(0, min(ax2, bx2) - max(ax1, bx1))\n    ih = max(0, min(ay2, by2) - max(ay1, by1))\n    return iw * ih\n\ndef _intersects_any(r, rects) -> bool:\n    return any(_rect_overlap_area(r, q) > 0 for q in rects)\n\ndef _fan_offsets(max_shift: int, step: int):\n    # 0, +step, -step, +2*step, -2*step, ...\n    yield 0\n    s = step\n    while s <= max_shift:\n        yield s\n        yield -s\n        s += step\n\ndef _fmt_volume(vol: Any, unit_default: str) -> str:\n    if vol is None or vol == \"\":\n        return \"\"\n    try:\n        v = float(vol)\n    except Exception:\n        return _ascii_label(str(vol))  # <-- ensure ascii even for strings\n    s = f\"{v:.3f}\".rstrip(\"0\").rstrip(\".\")\n    return _ascii_label(f\"{s} {unit_default}\".strip())  # <-- changed\n\ndef _preferred_side_for_key(key_norm: str) -> str:\n    \"\"\"\n    For vessel IDs like rgt_60ml_0005 -> 'left', 0006+ -> 'right'.\n    Ethanol should label on the RIGHT. Defaults to 'left' otherwise.\n    \"\"\"\n    k = key_norm.strip().lower()\n    if k == \"ethanol\":\n        return \"right\"\n\n    try:\n        if k.startswith(\"rgt_60ml_\"):\n            idx_str = k.rsplit(\"_\", 1)[-1]\n            idx = int(idx_str)  # \"0005\" -> 5\n            return \"left\" if idx <= 5 else \"right\"\n    except Exception:\n        pass\n    return \"left\"\n\n\ndef _best_label_box_outside(\n    canvas_shape,\n    anchor_rect_xyxy,\n    text: str,\n    *,\n    anchor_poly_points: Optional[List[Tuple[int, int]]] = None,\n    avoid_rects,\n    avoid_labels,\n    pad: int = 3,\n    gap: int = 6,\n    max_shift: int = 140,\n    step: int = 10,\n    font = cv2.FONT_HERSHEY_SIMPLEX,\n    scale: float = 0.40,\n    thickness: int = 1,\n    preferred_side: str = \"left\",\n    # NEW:\n    text_engine: str = \"opencv\",          # \"opencv\" | \"pillow\"\n    font_path: Optional[str] = None,\n    font_px: Union[int, float] = 16,\n    box_extra: int = 2,                   # tiny extra pixels so bg never truncates text\n):\n    \"\"\"\n    Choose a label box OUTSIDE the overlay that avoids intersecting any overlay or prior labels.\n    Side priority uses `preferred_side`: if 'left' -> LEFT, ABOVE, BELOW, RIGHT;\n    if 'right' -> RIGHT, ABOVE, BELOW, LEFT. Falls back to least-overlapping candidate.\n    \"\"\"\n    H, W = canvas_shape[:2]\n\n    if text_engine.lower() == \"pillow\":\n        tw, ascent, descent = _measure_text_pillow(text, font_path, font_px)\n        th, base = ascent, descent        # match draw_text_pillow (org = baseline)\n    else:\n        (tw, th), base = cv2.getTextSize(text, font, scale, thickness)\n\n    lw = tw + 2 * pad + int(box_extra)\n    lh = th + base + 2 * pad\n\n    x1, y1, x2, y2 = anchor_rect_xyxy\n    xc = (x1 + x2) // 2\n    yc = (y1 + y2) // 2\n\n    def clamp_tl(tlx, tly):\n        tlx = int(np.clip(tlx, 0, max(0, W - lw)))\n        tly = int(np.clip(tly, 0, max(0, H - lh)))\n        return tlx, tly\n\n    def rect_from_tl(tlx, tly):\n        return (tlx, tly, tlx + lw, tly + lh)\n\n    def score(rect):\n        ox = sum(_rect_overlap_area(rect, r) for r in avoid_rects)\n        lx = sum(_rect_overlap_area(rect, r) for r in avoid_labels)\n        x1r, y1r, x2r, y2r = rect\n        oob = 0\n        if x1r < 0: oob += -x1r\n        if y1r < 0: oob += -y1r\n        if x2r > W: oob += x2r - W\n        if y2r > H: oob += y2r - H\n        \n        # --- MODIFIED DISTANCE METRIC TO USE POLYGON POINTS ---\n        if anchor_poly_points:\n            # Calculate minimum Euclidean distance from the label candidate box to the polygon.\n            dist = _min_distance_to_polygon(rect, anchor_poly_points)\n        else:\n            # Fallback to the original distance metric (Manhattan distance between rectangles)\n            # x1, y1, x2, y2 are from anchor_rect_xyxy\n            dx = max(0, x1 - x2r, x1 - x1r, x1r - x2, x2r - x2)\n            dy = max(0, y1 - y2r, y1 - y1r, y1r - y2, y2r - y2)\n            dist = dx + dy\n            \n        # Total score: (Overlap) * high_penalty + (Out-of-Bounds) * low_penalty + (Distance)\n        return (ox + lx) * 1000 + oob * 100 + dist\n        # --- END MODIFIED DISTANCE METRIC ---\n\n    best = None\n    candidates_tried = []\n\n    # Build the side order based on preference\n    order = [\"left\", \"above\", \"below\", \"right\"] if (preferred_side.lower() == \"left\") \\\n            else [\"right\", \"above\", \"below\", \"left\"]\n\n    for side in order:\n        if side == \"left\":\n            \n            # --- NEW EDGE-SLIDING SEARCH ---\n            # Replace the old search around (base_tlx, yc) with a search that slides \n            # the label down the vertical extent, dynamically calculating tlx.\n            \n            slide_step = lh # Use label height as a safe step size for vertical movement\n            if slide_step == 0: slide_step = 10 \n\n            # Iterate through a vertical search range (full canvas for max flexibility)\n            for tly in range(0, H, slide_step):\n                \n                # Define the vertical strip corresponding to the label's height.\n                y_min, y_max = tly, tly + lh\n                \n                # Find the LEFTMOST X-coordinate of the polygon that is vertically aligned with the label.\n                poly_x_at_y = _find_poly_edge_x(anchor_poly_points, y_min, y_max, \"left\")\n                \n                if poly_x_at_y is None:\n                    continue # No relevant polygon part found at this height.\n\n                # Calculate the X-position for the label based on this tight edge\n                base_tlx = poly_x_at_y - gap - lw\n                \n                # The label position is now base_tlx, tly. No need for further vertical offsets.\n                \n                # Clamp X and Y to the canvas boundaries\n                tlx, tly = clamp_tl(base_tlx, tly)\n\n                # Check if the result is completely off-canvas\n                if tlx + lw <= 0 or tly + lh <= 0:\n                    continue\n\n                rect = rect_from_tl(tlx, tly); candidates_tried.append(rect)\n                \n                # --- ORIGINAL GREEDY RETURN ---\n                if not _intersects_any(rect, avoid_rects) and not _intersects_any(rect, avoid_labels):\n                    org = (tlx + pad, tly + pad + th)\n                    return rect, org\n\n        elif side == \"right\":\n            base_tlx = x2 + gap\n            if base_tlx + lw <= W:\n                for dy in _fan_offsets(max_shift, step):\n                    tly = yc - lh // 2 + dy\n                    tlx, tly = clamp_tl(base_tlx, tly)\n                    rect = rect_from_tl(tlx, tly); candidates_tried.append(rect)\n                    if not _intersects_any(rect, avoid_rects) and not _intersects_any(rect, avoid_labels):\n                        org = (tlx + pad, tly + pad + th)\n                        return rect, org\n\n        elif side == \"above\":\n            base_tly = y1 - gap - lh\n            if base_tly >= 0:\n                for dx in _fan_offsets(max_shift, step):\n                    tlx = xc - lw // 2 + dx\n                    tlx, tly = clamp_tl(tlx, base_tly)\n                    rect = rect_from_tl(tlx, tly); candidates_tried.append(rect)\n                    if not _intersects_any(rect, avoid_rects) and not _intersects_any(rect, avoid_labels):\n                        org = (tlx + pad, tly + pad + th)\n                        return rect, org\n\n        elif side == \"below\":\n            base_tly = y2 + gap\n            if base_tly + lh <= H:\n                for dx in _fan_offsets(max_shift, step):\n                    tlx = xc - lw // 2 + dx\n                    tlx, tly = clamp_tl(tlx, base_tly)\n                    rect = rect_from_tl(tlx, tly); candidates_tried.append(rect)\n                    if not _intersects_any(rect, avoid_rects) and not _intersects_any(rect, avoid_labels):\n                        org = (tlx + pad, tly + pad + th)\n                        return rect, org\n\n    # No perfect candidate — pick the least-overlapping one\n    for rect in candidates_tried:\n        s = score(rect)\n        if best is None or s < best[0]:\n            best = (s, rect)\n\n    if best is None:\n        tlx, tly = 0, 0\n        rect = rect_from_tl(tlx, tly)\n    else:\n        rect = best[1]\n    tlx, tly, _, _ = rect\n    org = (tlx + pad, tly + pad + th)\n    return rect, org\n\ndef _get_polygon_min_area_rect_center_and_bbox(points: List[Tuple[int, int]]) -> Tuple[Tuple[int, int, int, int], Tuple[int, int]]:\n    \"\"\"\n    Calculates the tight axis-aligned bounding box and the center of the \n    minimum-area rotating rectangle (MinAreaRect) of a polygon's convex hull.\n    Returns: (xyxy_bbox, (cx, cy))\n    \"\"\"\n    if not points:\n        return (0, 0, 0, 0), (0, 0)\n    \n    # 1. Convert points to numpy array\n    pts = np.array(points, dtype=np.int32)\n\n    # 2. Get the Convex Hull\n    # The convex hull simplifies the irregular shape to its outermost boundary points,\n    # which is ideal for finding a representative center/rectangle.\n    hull = cv2.convexHull(pts)\n\n    # 3. Calculate the Minimum Area Rotating Rectangle (MinAreaRect)\n    rect = cv2.minAreaRect(hull)\n    \n    # 4. Extract the center (cx, cy) from the MinAreaRect\n    (cx_float, cy_float), (w, h), angle = rect\n    cx, cy = int(round(cx_float)), int(round(cy_float))\n\n    # 5. Calculate the Tight Axis-Aligned Bounding Box (for collision check)\n    x_coords = pts[:, 0]\n    y_coords = pts[:, 1]\n    x1, y1 = np.min(x_coords), np.min(y_coords)\n    x2, y2 = np.max(x_coords), np.max(y_coords)\n    xyxy_bbox = (int(x1), int(y1), int(x2), int(y2))\n        \n    return xyxy_bbox, (cx, cy)\n\ndef _min_distance_to_polygon(rect_xyxy: Tuple[int, int, int, int], poly_points: List[Tuple[int, int]]) -> float:\n    \"\"\"\n    Calculates an approximation of the minimum distance from the label rectangle \n    to the boundary of the polygon defined by poly_points.\n    \n    This uses the minimum Manhattan distance from any point in the polygon \n    to the closest edge of the label rectangle.\n    \"\"\"\n    if not poly_points:\n        return 99999\n        \n    x1r, y1r, x2r, y2r = rect_xyxy\n    \n    # 1. Define the rectangular area outside the polygon (i.e., the distance to the edge)\n    # The distance between two rectangles A (polygon points) and R (label rect)\n    # is the sum of the horizontal and vertical separations.\n    \n    min_dist = float('inf')\n\n    # Calculate distance from each polygon point to the rectangle's boundary\n    for px, py in poly_points:\n        # dx is the shortest distance from px to the vertical extent of the rect\n        dx = 0\n        if px < x1r:\n            dx = x1r - px\n        elif px > x2r:\n            dx = px - x2r\n            \n        # dy is the shortest distance from py to the horizontal extent of the rect\n        dy = 0\n        if py < y1r:\n            dy = y1r - py\n        elif py > y2r:\n            dy = py - y2r\n        \n        # We use Euclidean distance for a smoother metric, but Manhattan (dx+dy) works too.\n        # Euclidean:\n        dist = np.sqrt(dx**2 + dy**2)\n        \n        # Manhattan:\n        # dist = dx + dy \n\n        min_dist = min(min_dist, dist)\n        \n    return min_dist\n\ndef _find_poly_edge_x(poly_points: List[Tuple[int, int]], y_min: int, y_max: int, side: str) -> Optional[int]:\n    \"\"\"\n    Finds the min (for 'left') or max (for 'right') X-coordinate of the polygon\n    for all points whose Y-coordinate is between y_min and y_max.\n    \"\"\"\n    relevant_x = []\n    # NOTE: This is an approximation using polygon vertices, not edges, \n    # but it is a massive improvement over using the full AABB's x1/x2.\n    for px, py in poly_points:\n        if y_min <= py <= y_max:\n            relevant_x.append(px)\n\n    if not relevant_x:\n        return None\n        \n    if side == \"left\":\n        return min(relevant_x)\n    elif side == \"right\":\n        return max(relevant_x)\n    return None\n"
  },
  {
    "path": "pyhamilton/ngs/loading/tube_rack_render.py",
    "content": "from __future__ import annotations\nimport os\nimport unicodedata\nimport json\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Optional, Tuple, Union\nimport unicodedata  # (top-level import)\nimport cv2\nimport numpy as np\nfrom PIL import Image, ImageDraw, ImageFont, ImageTk\nfrom pathlib import Path\nimport tkinter as tk\nfrom tkinter import messagebox\n\nfrom .rendering_helpers import (\n    ARIAL_TTF,\n    _FONT_CANDIDATES,\n    draw_text_pillow,\n    _best_label_box_outside,\n    _resolve_font_path,\n    _measure_text_pillow,\n    _rescale_image,\n    _ascii_label,\n    _label_from_info_dict,\n    _name_to_color_bgr,\n    _norm_key,\n    _ensure_bgr,\n    _draw_transparent_rect,\n    _draw_transparent_polygon,\n    _rect_xyxy,\n    _rect_overlap_area,\n    _intersects_any,\n    _fan_offsets,\n    _fmt_volume,\n    _preferred_side_for_key,\n)\n\n\n\nclass TubeRackRenderer:\n\n    def render_tube_rack_screen(\n        self,\n        tubes_count: int,\n        tube_map: Dict[Union[int, str], Dict[str, Any]],\n        *,\n        reagent_units_default: str = \"µL\",\n        width: int = 350,  # <<< REDUCED WIDTH (e.g., from 700 to 350)\n        height_per_tube: int = 30,\n        margin_left: int = 80,\n        margin_right: int = 260,\n        margin_v_base: int = 60,\n        tube_radius: int = 14,\n        font_scale: float = 0.40,\n        font_thickness: int = 1,\n        pad: int = 3,\n        gap: int = 8,\n        render_scale: float = 0.5,  # <<< REDUCED RENDER SCALE (e.g., from 1.25 to 0.8)\n        zoom_y: float = 2.0,\n        index_px: int = 14,\n    ) -> np.ndarray:\n        \"\"\"\n        Zoomed tube-rack screen (N tubes in one column). White background, grey rack,\n        black text. (Implementation remains the same).\n        \"\"\"\n        s = float(render_scale)\n        zy = float(zoom_y)\n\n        # ----------------------------------------------------\n        # 1. Dynamic Scaling based on tubes_count\n        # ----------------------------------------------------\n\n        # Calculate total height based on number of tubes\n        base_h = tubes_count * height_per_tube + 2 * margin_v_base\n\n        W = int(round(width * s))\n        H = int(round(base_h * s * zy)) # Total Canvas Height\n        ml = int(round(margin_left * s))\n        mr = int(round(margin_right * s))\n        mv = int(round(margin_v_base * s * zy)) # Zoomed Vertical Margin\n        r = int(round(tube_radius * s * zy))\n\n        fs = font_scale * s * zy\n        pt = max(1, int(round(pad * s)))\n        gp = max(1, int(round(gap * s)))\n\n        # Create the canvas (BGR format)\n        canvas = np.full((H, W, 3), 255, np.uint8)\n\n        rows = tubes_count\n        usable_h = H - 2 * mv\n        step_y = usable_h / rows\n        cx = ml + r + int(round(10 * s)) \n\n        overlay_rects = []\n        placed_label_rects = []\n\n        # ----------------------------------------------------\n        # 2. Rack and Title\n        # ----------------------------------------------------\n\n        # --- Grey rack background behind the tubes ---\n        rack_pad_x = int(round(20 * s))\n        rack_pad_y = int(round(12 * s))\n        rack_x1 = cx - r - rack_pad_x\n        rack_x2 = cx + r + rack_pad_x\n        rack_y1 = mv - rack_pad_y\n        rack_y2 = mv + rows * step_y + rack_pad_y\n        rack_y2 = int(round(rack_y2))\n        rack_rect = (max(0, int(rack_x1)), max(0, int(rack_y1)), min(W, int(rack_x2)), min(H, int(rack_y2)))\n        cv2.rectangle(canvas, (rack_rect[0], rack_rect[1]), (rack_rect[2], rack_rect[3]), (230, 230, 230), thickness=-1)\n\n        occupied_count = len(tube_map)\n        title = _ascii_label(f\"Tube Rack ({tubes_count} capacity, {occupied_count} filled)\")\n        title_px = 16 # Keep base title size consistent\n        # Assuming ARIAL_TTF is resolved or mocked appropriately\n        draw_text_pillow(canvas, title, (ml, int(round(36 * s))), font_path=ARIAL_TTF, px=title_px, color=(0, 0, 0))\n\n        overlay_rects.append(rack_rect)\n\n        # Font resolution logic from original code:\n        try:\n            font_fp = ARIAL_TTF if Path(ARIAL_TTF).is_file() else next((p for p in _FONT_CANDIDATES if Path(p).is_file()), None)\n        except Exception:\n            font_fp = None\n        # End Font resolution logic\n\n        # ----------------------------------------------------\n        # 3. Draw tubes + indexes + labels\n        # ----------------------------------------------------\n\n        for i in range(rows):\n            y = int(round(mv + (i + 0.5) * step_y))\n            display_key = f\"{i+1:02d}\"\n\n            info = tube_map.get(str(i))\n            if not info:\n                info = tube_map.get(i)\n            \n            if not info:\n                color = (200, 200, 200) # Neutral grey for empty tube\n                label_text = \"\"\n            else:\n                color = _name_to_color_bgr(info.get(\"reagent\", display_key))\n                label_text = _label_from_info_dict(info, unit_default=reagent_units_default, fallback=display_key)\n\n            # Draw the tube circle\n            cv2.circle(canvas, (cx, y), r, color, thickness=-1)\n            cv2.circle(canvas, (cx, y), r, (30, 30, 30), thickness=max(1, int(round(1 * s))))\n\n            # Tube circle bbox as avoidance\n            x1, y1 = cx - r, y - r\n            x2, y2 = cx + r, y + r\n            overlay_rects.append((x1, y1, x2, y2))\n\n            # Tube index (left of rack)\n            idx_px = max(10, int(round(index_px * s)))\n            idx_x = max(8, rack_rect[0] - int(round(18 * s)))\n            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))\n\n            # Reagent label (RIGHT of rack)\n            if info:\n                label_px = title_px # Base size for label text\n                tw, ascent, descent = _measure_text_pillow(label_text, font_fp or ARIAL_TTF, label_px)\n                lw = tw + 2 * pt + 3 \n                lh = ascent + descent + 2 * pt\n\n                y_base = int(round(y + (ascent - descent) / 2.0))\n                tlx = rack_rect[2] + max(gp, int(round(10 * s)))\n                tly = y_base - ascent - pt\n\n                pushed = 0 \n                step_x = max(6, int(round(10 * s)))\n                max_push = int(round(300 * s))\n                rect = (tlx, tly, tlx + lw, tly + lh)\n                while (_intersects_any(rect, overlay_rects) or _intersects_any(rect, placed_label_rects)) and pushed < max_push:\n                    tlx += step_x\n                    pushed += step_x\n                    rect = (tlx, tly, tlx + lw, tly + lh)\n\n                org = (tlx + pt, y_base)\n                draw_text_pillow(canvas, label_text, org, font_path=font_fp or ARIAL_TTF, px=label_px, color=(0, 0, 0))\n                placed_label_rects.append(rect)\n\n        # ----------------------------------------------------\n        # 4. Final Trim\n        # ----------------------------------------------------\n        content_rights = [x2 for (_, _, x2, _) in overlay_rects] + [x2 for (_, _, x2, _) in placed_label_rects] or [cx + r]\n        used_right = max(content_rights)\n        pad_right = int(round(24 * s))\n        new_W = min(W, max(ml + 2 * r + pad_right, used_right + pad_right))\n        if new_W < W:\n            canvas = canvas[:, :new_W].copy()\n\n        return canvas\n    \n    # ----------------------------------------------------------------------\n    # NEW: OpenCV Display Method (Replacing show_tk_scrollable)\n    # ----------------------------------------------------------------------\n\n    def show_tkinter_modal(\n            self,\n            img_bgr: np.ndarray,\n            parent: tk.Tk | tk.Toplevel,\n            window_name: str = \"Tube Rack Visualization\",\n        ) -> None:\n        from tkinter import ttk, messagebox\n        \n        modal = tk.Toplevel(parent)\n        modal.title(window_name)\n        modal.transient(parent)\n        modal.resizable(True, True)\n\n        main_frame = ttk.Frame(modal)\n        main_frame.pack(fill=\"both\", expand=True, padx=10, pady=10)\n\n        # Scrollbar and Canvas\n        vscrollbar = ttk.Scrollbar(main_frame, orient=tk.VERTICAL)\n        vscrollbar.pack(side=tk.RIGHT, fill=tk.Y)\n\n        canvas = tk.Canvas(main_frame, yscrollcommand=vscrollbar.set,\n                        width=img_bgr.shape[1], height=min(img_bgr.shape[0], 600))\n        canvas.pack(side=tk.LEFT, fill=\"both\", expand=True)\n\n        vscrollbar.config(command=canvas.yview)\n\n        # Inner frame for image\n        image_frame = ttk.Frame(canvas)\n        canvas.create_window((0, 0), window=image_frame, anchor=\"nw\")\n\n        try:\n            img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)\n            pil_img = Image.fromarray(img_rgb)\n            tk_photo = ImageTk.PhotoImage(pil_img)\n        except Exception as e:\n            messagebox.showerror(\"Image Conversion Error\", f\"Could not convert image for display: {e}\")\n            modal.destroy()\n            return\n\n        img_label = tk.Label(image_frame, image=tk_photo)\n        img_label.pack()\n        img_label.image = tk_photo  # Keep reference\n\n        image_frame.update_idletasks()\n        canvas.config(scrollregion=canvas.bbox(\"all\"))\n        canvas.yview_moveto(0)\n\n        # Close handler (X button and Escape key)\n        def close_window():\n            modal.destroy()\n\n        modal.bind('<Escape>', lambda e: close_window())\n        modal.protocol(\"WM_DELETE_WINDOW\", close_window)\n\n        # Modal blocking\n        modal.grab_set()\n\n        # Center modal over parent\n        parent_x = parent.winfo_rootx()\n        parent_y = parent.winfo_rooty()\n        parent_w = parent.winfo_width()\n        parent_h = parent.winfo_height()\n\n        modal.update_idletasks()\n        modal_w = modal.winfo_width()\n        modal_h = modal.winfo_height()\n\n        new_x = parent_x + (parent_w - modal_w) // 2\n        new_y = parent_y + (parent_h - modal_h) // 2\n\n        modal.geometry(f'+{new_x}+{new_y}')\n\n        # Block execution until modal is closed\n        parent.wait_window(modal)\n"
  },
  {
    "path": "pyhamilton/ngs/protocol.py",
    "content": "from ..consumables import generate_reagent_summary, generate_tip_use_summary\nfrom ..ngs.loading import LoadingVis\nfrom ..liquid_handling_wrappers import TipSupportTracker\nfrom ..interface import HamiltonInterface\nimport sys\nimport traceback\n\nclass Protocol:\n\n    def __init__(self):\n        self.num_samples = 0\n        self.sample_volume = 0\n        self.simulation = False\n        self.windowed = True # Initialize for safety\n        self.persistent = True # Initialize for safety\n        self.tracked_reagent_vessels = {}  # Add this to store tracked vessels\n        self.simulation_completed = False  # Track if simulation has been run\n        self.loading_dialogues_completed = False  # Track if loading dialogues have been shown\n        # Assuming these are initialized elsewhere, adding placeholders for safety\n        self.tracked_tips = []\n        self.stacked_resources = []\n        self.tip_support = None\n\n    def prompt_step_selection(self):\n        \"\"\"\n        Prompt user to select which protocol steps to run using checkboxes.\n        \"\"\"\n        import tkinter as tk\n        from tkinter import ttk\n        \n        selected_methods = []\n        action_taken = None  # Track which action was taken\n\n        def validate_inputs():\n            \"\"\"Validate the input fields and return error message if invalid.\"\"\"\n            try:\n                num_samples = int(samples_var.get())\n                sample_volume = float(volume_var.get())\n                \n                if num_samples <= 0:\n                    return \"Number of samples must be greater than 0\"\n                if sample_volume <= 0:\n                    return \"Sample volume must be greater than 0\"\n                \n                return None\n            except ValueError:\n                return \"Please enter valid numbers for samples and volume\"\n\n        def get_selected_steps():\n            \"\"\"Get the currently selected steps.\"\"\"\n            steps = []\n            for i, (_, method_name) in enumerate(self.available_steps):\n                if checkbox_vars[i].get():\n                    steps.append(method_name)\n            return steps\n\n        def update_protocol_params():\n            \"\"\"Update protocol parameters from input fields.\"\"\"\n            self.num_samples = int(samples_var.get())\n            self.sample_volume = float(volume_var.get())\n\n        def on_submit():\n            nonlocal action_taken\n            # Validate inputs first\n            error_msg = validate_inputs()\n            if error_msg:\n                warning_label.config(text=error_msg, foreground=\"red\")\n                return\n            \n            # Check if at least one step is selected\n            steps = get_selected_steps()\n            if not steps:\n                warning_label.config(text=\"Please select at least one step!\", foreground=\"red\")\n                return\n            \n            # Check prerequisites for running live protocol\n            if not self.simulation_completed:\n                warning_label.config(text=\"Please run 'Simulate & Calculate' first before running live protocol!\", foreground=\"red\")\n                return\n                \n            if not self.loading_dialogues_completed:\n                warning_label.config(text=\"Please complete loading dialogues before running live protocol!\", foreground=\"red\")\n                return\n            \n            # Update protocol with input values\n            update_protocol_params()\n            selected_methods.extend(steps)\n            action_taken = \"run\"\n            \n            warning_label.config(text=\"\", foreground=\"red\")  # Clear any previous warnings\n            root.destroy()\n\n        def on_loading_dialogues():\n            if not self.simulation_completed:\n                warning_label.config(text=\"Please run 'Simulate & Calculate' first!\", foreground=\"red\")\n                return\n\n            warning_label.config(text=\"Showing loading dialogues...\", foreground=\"blue\")\n            root.update()  # Force refresh\n\n            # CRITICAL SAFETY: Ensure any Toplevel windows are handled on exit\n            try:\n                # Show loading dialogues using the main root as parent\n                self.show_loading_dialogues(parent=root)\n\n                # Destroy any remaining Toplevels created by LoadingVis\n                # This ensures the main root.mainloop() thread doesn't hang waiting for a ghost child.\n                for w in root.winfo_children():\n                    if isinstance(w, tk.Toplevel):\n                        try:\n                            w.destroy()\n                        except tk.TclError:\n                            # Catch error if Toplevel was already destroyed (e.g., by user closing it)\n                            pass\n\n                # Mark loading dialogues as completed\n                self.loading_dialogues_completed = True\n\n                update_button_states()\n                warning_label.config(text=\"Loading dialogues completed.\", foreground=\"green\")\n\n            except Exception as e:\n                print(f\"Loading dialogues aborted or failed: {e}\")\n                self.loading_dialogues_completed = False\n                warning_label.config(text=f\"Loading dialogues failed: {e}\", foreground=\"red\")\n                    \n        def update_button_states():\n            \"\"\"Update button states based on completion status.\"\"\"\n            # Enable/disable run button based on prerequisites\n            if self.simulation_completed and self.loading_dialogues_completed:\n                run_button.config(state=\"normal\")\n                status_label.config(text=\"✓ Ready to run live protocol\", foreground=\"green\")\n            elif self.simulation_completed:\n                run_button.config(state=\"disabled\")\n                loading_button.config(state=\"normal\")\n                status_label.config(text=\"✓ Simulation complete - Next: Show loading dialogues\", foreground=\"blue\")\n            else:\n                run_button.config(state=\"disabled\")\n                loading_button.config(state=\"disabled\")\n                status_label.config(text=\"Next: Run simulation\", foreground=\"orange\")\n\n        def on_simulate():\n            nonlocal action_taken\n            # Validate inputs first\n            error_msg = validate_inputs()\n            if error_msg:\n                warning_label.config(text=error_msg, foreground=\"red\")\n                return\n            \n            # Check if at least one step is selected\n            steps = get_selected_steps()\n            if not steps:\n                warning_label.config(text=\"Please select at least one step!\", foreground=\"red\")\n                return\n            \n            # Update protocol with input values\n            update_protocol_params()\n            \n            try:\n                # Show status message\n                warning_label.config(text=\"Running simulation...\", foreground=\"blue\")\n                root.update()\n                \n                # Run simulation\n                print(\"Simulating protocol...\")\n                self.run_selected_steps(steps, simulation=True)\n                \n                # Generate reagent summary\n                output_file = \"reagent_summary.json\"\n                generate_reagent_summary(self.tracked_reagent_vessels, output_file=output_file)\n                # Assuming self.tracked_tips is correctly populated during simulation\n                tip_summary = generate_tip_use_summary(self.tracked_tips, output_file=\"tip_summary.json\")\n\n                # Mark simulation as completed\n                self.simulation_completed = True\n                \n                # Show success message\n                warning_label.config(text=f\"Simulation complete! Reagent summary saved to {output_file}\", \n                                      foreground=\"green\")\n                \n                print(f\"Simulation complete. Reagent summary saved to {output_file}\")\n                \n                # Update button states\n                update_button_states()\n                print(\"Updated button states\")\n                \n            except Exception as e:\n                full_traceback = traceback.format_exc()\n                warning_label.config(text=f\"Simulation failed: {str(e)}\", foreground=\"red\")\n                print(f\"Simulation error - Full traceback:\")\n                print(full_traceback)\n                \n        def on_select_all():\n            for var in checkbox_vars:\n                var.set(True)\n\n        def on_clear_all():\n            for var in checkbox_vars:\n                var.set(False)\n\n        def on_cancel_or_close():\n            \"\"\"Handle Cancel button or window close ('X' button).\"\"\"\n            print(\"DEBUG: prompt_step_selection: Protocol cancelled or window closed. Destroying root.\")\n            root.destroy()\n            nonlocal action_taken\n            action_taken = \"cancel\"  # Signal cancellation instead of exiting\n\n\n        def update_info_label():\n            \"\"\"Update the info label when input values change.\"\"\"\n            try:\n                num_samples = int(samples_var.get()) if samples_var.get() else self.num_samples\n                sample_volume = float(volume_var.get()) if volume_var.get() else self.sample_volume\n            except ValueError:\n                num_samples = self.num_samples\n                sample_volume = self.sample_volume\n            \n            info_label.config(\n                text=f\"Samples: {num_samples} | Volume: {sample_volume}µL | Mode: {'Simulation' if self.simulation else 'Live'}\"\n            )\n\n        root = tk.Tk()\n        root.title(\"NGS Protocol - Step Selection\")\n        root.geometry(\"550x650\") \n        root.resizable(True, True)\n\n        root.protocol(\"WM_DELETE_WINDOW\", on_cancel_or_close)\n\n        style = ttk.Style()\n        style.configure('Title.TLabel', font=('Arial', 12, 'bold'))\n        style.configure('Info.TLabel', font=('Arial', 10))\n\n        main_frame = ttk.Frame(root, padding=\"20\")\n        main_frame.grid(row=0, column=0, sticky=\"nsew\")\n\n        root.columnconfigure(0, weight=1)\n        root.rowconfigure(0, weight=1)\n\n        title_label = ttk.Label(main_frame, text=\"Select Protocol Steps to Execute\",\n                                 style='Title.TLabel')\n        title_label.grid(row=0, column=0, columnspan=2, pady=(0, 10))\n\n        # Input section\n        input_frame = ttk.LabelFrame(main_frame, text=\"Protocol Parameters\", padding=\"10\")\n        input_frame.grid(row=1, column=0, columnspan=2, sticky=\"ew\", pady=(0, 10))\n\n        # Number of samples input\n        ttk.Label(input_frame, text=\"Number of Samples:\").grid(row=0, column=0, sticky=\"w\", padx=(0, 10))\n        samples_var = tk.StringVar(value=str(self.num_samples) if self.num_samples > 0 else \"\")\n        samples_entry = ttk.Entry(input_frame, textvariable=samples_var, width=15)\n        samples_entry.grid(row=0, column=1, sticky=\"w\")\n        samples_entry.bind('<KeyRelease>', lambda e: update_info_label())\n\n        # Sample volume input\n        ttk.Label(input_frame, text=\"Sample Volume (µL):\").grid(row=1, column=0, sticky=\"w\", padx=(0, 10), pady=(5, 0))\n        volume_var = tk.StringVar(value=str(self.sample_volume) if self.sample_volume > 0 else \"\")\n        volume_entry = ttk.Entry(input_frame, textvariable=volume_var, width=15)\n        volume_entry.grid(row=1, column=1, sticky=\"w\", pady=(5, 0))\n        volume_entry.bind('<KeyRelease>', lambda e: update_info_label())\n\n        # Info label (now dynamically updated)\n        info_label = ttk.Label(main_frame,\n                                 text=f\"Samples: {self.num_samples} | Volume: {self.sample_volume}µL | Mode: {'Simulation' if self.simulation else 'Live'}\",\n                                 style='Info.TLabel')\n        info_label.grid(row=2, column=0, columnspan=2, pady=(10, 15))\n\n        ttk.Separator(main_frame, orient='horizontal').grid(row=3, column=0, columnspan=2,\n                                                           sticky=\"ew\", pady=(0, 10))\n\n        checkbox_frame = ttk.LabelFrame(main_frame, text=\"Available Steps\", padding=\"10\")\n        checkbox_frame.grid(row=4, column=0, columnspan=2, sticky=\"nsew\", pady=(0, 10))\n\n        # Use 2 columns: step number + checkbox\n        checkbox_vars = []\n        for i, (display_name, _) in enumerate(self.available_steps):\n            var = tk.BooleanVar(value=True)\n            checkbox_vars.append(var)\n\n            step_number = ttk.Label(checkbox_frame, text=f\"Step {i+1}:\", font=('Arial', 9))\n            step_number.grid(row=i, column=0, sticky=\"w\", padx=(0, 10))\n\n            checkbox = ttk.Checkbutton(checkbox_frame, text=display_name, variable=var)\n            checkbox.grid(row=i, column=1, sticky=\"w\")\n\n        button_frame = ttk.Frame(main_frame)\n        button_frame.grid(row=5, column=0, columnspan=2, pady=(10, 0))\n\n        ttk.Button(button_frame, text=\"Select All\", command=on_select_all).grid(row=0, column=0, padx=5)\n        ttk.Button(button_frame, text=\"Clear All\", command=on_clear_all).grid(row=0, column=1, padx=5)\n\n        warning_label = ttk.Label(main_frame, text=\"\", foreground=\"red\")\n        warning_label.grid(row=6, column=0, columnspan=2, pady=(10, 0))\n\n        # Status label for workflow progress\n        status_label = ttk.Label(main_frame, text=\"Next: Run simulation\", foreground=\"orange\", \n                                 font=('Arial', 9, 'italic'))\n        status_label.grid(row=7, column=0, columnspan=2, pady=(5, 0))\n\n        ttk.Separator(main_frame, orient='horizontal').grid(row=8, column=0, columnspan=2,\n                                                           sticky=\"ew\", pady=(10, 10))\n\n        # Action buttons frame - now with 4 buttons\n        action_frame = ttk.Frame(main_frame)\n        action_frame.grid(row=9, column=0, columnspan=2, pady=(10, 0))\n\n        # Create buttons with initial states\n        simulate_button = ttk.Button(action_frame, text=\"1. Simulate & Calculate\", command=on_simulate)\n        simulate_button.grid(row=0, column=0, padx=3)\n        \n        loading_button = ttk.Button(action_frame, text=\"2. Loading Dialogues\", command=on_loading_dialogues, state=\"disabled\")\n        loading_button.grid(row=0, column=1, padx=3)\n        \n        run_button = ttk.Button(action_frame, text=\"3. Run Live Protocol\", command=on_submit, state=\"disabled\")\n        run_button.grid(row=0, column=2, padx=3)\n        \n        ttk.Button(action_frame, text=\"Cancel\", command=on_cancel_or_close).grid(row=0, column=3, padx=3)\n\n        # Center window\n        root.update_idletasks()\n        width, height = root.winfo_width(), root.winfo_height()\n        x = (root.winfo_screenwidth() // 2) - (width // 2)\n        y = (root.winfo_screenheight() // 2) - (height // 2)\n        root.geometry(f\"{width}x{height}+{x}+{y}\")\n\n        root.mainloop()\n\n        # Return selected methods only if \"Run Selected Steps\" was clicked\n        if action_taken == \"run\":\n            return selected_methods\n        elif action_taken == \"cancel\":\n            print(\"Protocol cancelled by user\")\n            return []\n\n    def reset_tracked_resources(self):\n        \"\"\"Reset all tracked resources to initial state.\"\"\"\n        # Ensure self.tracked_tips is iterable\n        if hasattr(self, 'tracked_tips') and self.tracked_tips:\n            for tips in self.tracked_tips:\n                if hasattr(tips, 'reset_all'):\n                    tips.reset_all()\n        \n        if self.tracked_reagent_vessels:\n            for vessel in self.tracked_reagent_vessels:\n                if hasattr(vessel, 'reset_volumes'):\n                    vessel.reset_volumes()\n        \n        if hasattr(self, 'stacked_resources') and self.stacked_resources:\n            for stacked_resource in self.stacked_resources:\n                if hasattr(stacked_resource, 'reset_all'):\n                    stacked_resource.reset_all()\n\n        if hasattr(self, 'tip_support') and self.tip_support and hasattr(self.tip_support, 'resource'):\n            self.tip_support = TipSupportTracker(self.tip_support.resource)\n\n\n    def run_selected_steps(self, steps: list, simulation: bool = True, windowed: bool = False, persistent: bool = True):\n        # NOTE: Must set these attributes for self.end() to work without arguments\n        self.simulation = simulation\n        self.windowed = windowed\n        self.persistent = persistent\n        \n        # NOTE: Resetting resources here is vital for a fresh run, whether simulation or live.\n        self.reset_tracked_resources() \n        \n        try:\n            for step in steps:\n                # Use print for visibility\n                print(f\"--- Executing step: {step} ---\")\n                getattr(self, step)()\n        except Exception as e:\n            if self.simulation:\n                self.end()\n            raise\n\n\n\n    def end(self):\n        \"\"\"\n        Safely stop the Hamilton interface using current self attributes. \n        This is the minimal, non-hanging implementation based on the user's working example.\n        \"\"\"\n        try:\n            # Using attributes set by run_selected_steps()\n            with HamiltonInterface(simulating = self.simulation, windowed=False, persistent=True) as ham_int:\n                print(\"DEBUG: end: Successfully connected to existing/new HSL process. Sending ham_int.stop().\")\n                ham_int.stop()\n                print(\"DEBUG: end: STOP command returned. Hamilton interface stopped cleanly.\")\n        except Exception as e:\n            # Catch all exceptions during this critical cleanup phase\n            print(f\"WARNING: Protocol cleanup failed during interface connection: {e}\")\n            # This prints a warning if the interface is already stopped or the second connection fails.\n\n\n    def run_protocol(self, simulating=False, output_file=\"reagent_summary.json\"):\n        \"\"\"\n        Main entry point for the protocol execution.\n        Includes top-level cleanup for unhandled exceptions or Ctrl+C.\n        \"\"\"\n        steps = self.prompt_step_selection()\n        \n        if steps:  # Only run if steps were selected and \"Run\" was clicked\n            # run_selected_steps sets self.simulation to False\n            self.run_selected_steps(steps, simulation=False, windowed=True, persistent=True)\n                \n            # 2. Generate final summary upon successful completion\n            generate_reagent_summary(self.tracked_reagent_vessels, output_file=output_file)\n            print(f\"Live protocol successful. Summary saved to {output_file}\")\n                \n                \n    def show_loading_dialogues(self, parent=None):\n        \"\"\"Show loading dialogues during protocol execution.\"\"\"\n        \n        vis = LoadingVis(\n            reagent_data=\"reagent_summary.json\",\n            tip_data=\"tip_summary.json\",\n            origin_offset=(0, 0),\n            auto_crop=False,\n            parent=parent\n        )\n\n        vis.ShowDialogues(\n            #tube_offset=(360, 60),\n            #tube_viewport=(800, 700),\n            #deck_window_name=\"Deck\",\n            #plate_window_name=\"96-well Plate\",\n        )\n"
  },
  {
    "path": "pyhamilton/ngs/tadm.py",
    "content": "import re\nfrom datetime import datetime\nfrom dataclasses import dataclass\nfrom typing import List, Optional\nfrom collections import defaultdict\nfrom pathlib import Path\nimport matplotlib.pyplot as plt\nimport io\nimport base64\nimport json\nfrom ..liquid_class_db import get_liquid_class_parameter\n\nclass USBTraceParser:\n    block_start_re = re.compile(r'C0([AD]Sid)(\\d+)er')\n    tadm_re = re.compile(r'>.*?(P[1-8])QNid\\d+qn([+\\-\\d\\s]+)')\n\n    def __init__(self, debug: bool = False):\n        self.debug = debug\n\n    def parse_file(self, filename: str | Path):\n        blocks = []\n        current_block = None\n\n        with open(filename, \"r\") as f:\n            for line in f:\n                line = line.strip()\n                if not line:\n                    continue\n\n                start_match = self.block_start_re.search(line)\n                if start_match:\n                    if current_block:\n                        blocks.append(current_block)\n\n                    block_type = start_match.group(1)\n                    block_id = start_match.group(2)\n                    current_block = {\n                        \"id\": f\"{block_type}{block_id}\",\n                        \"type\": \"AS\" if \"AS\" in block_type else \"DS\",\n                        \"channels\": defaultdict(list),\n                        \"raw_lines\": [line],\n                        \"index\": len(blocks)\n                    }\n                    continue\n\n                if current_block:\n                    current_block[\"raw_lines\"].append(line)\n                    tadm_match = self.tadm_re.search(line)\n                    if tadm_match:\n                        channel = tadm_match.group(1)\n                        numbers = [int(x) for x in tadm_match.group(2).split()]\n                        current_block[\"channels\"][channel].extend(numbers)\n\n        if current_block:\n            blocks.append(current_block)\n\n        return blocks\n\n# ------------------------------\n# Dataclasses\n# ------------------------------\n@dataclass\nclass LiquidHandlerCommand:\n    timestamp: datetime\n    command_type: str\n    status: str\n    details: str\n    line_number: int\n    container: Optional[str] = None\n    channel_info: Optional[List[tuple]] = None  # List of (position, volume) tuples\n    liquid_class: Optional[str] = None\n    aspirate_flow_rate: Optional[float] = None\n    dispense_flow_rate: Optional[float] = None\n\n\n@dataclass\nclass Association:\n    liquid_handler_cmd: LiquidHandlerCommand\n    usb_block: Optional[dict]\n    time_offset_ms: Optional[float]\n\n# ------------------------------\n# TraceParser for LH and association\n# ------------------------------\nclass TraceParser:\n    def __init__(self, debug=False):\n        self.liquid_commands: List[LiquidHandlerCommand] = []\n        self.usb_blocks: List[dict] = []\n        self.debug = debug\n\n    def parse_liquid_handler_trace(self, content: str):\n        commands = []\n        lines = content.strip().split(\"\\n\")\n\n        # Look for complete lines with channel information\n        aspirate_pattern = r'(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d+).*Channel Aspirate.*- complete;.*> channel'\n        dispense_pattern = r'(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d+).*Channel Dispense.*- complete;.*> channel'\n        \n        # New pattern to find the HSLHttp line and capture its JSON content\n        hsl_http_pattern = r'HSLHttp : HttpGET - progress;.*Response Content: (\\{.*\\})'\n\n        liquid_class = None\n        aspirate_flow_rate = None\n        dispense_flow_rate = None\n\n        for i, line in enumerate(lines):\n            # Check for HSLHttp line first, which precedes a liquid handling command\n            hsl_match = re.search(hsl_http_pattern, line)\n            if hsl_match:\n                json_str = hsl_match.group(1)\n                try:\n                    data = json.loads(json_str)\n                    liquid_class = data.get(\"liquidClass\")\n                    command_type = data.get(\"command\")\n                    if liquid_class:\n                        if command_type == \"channelAspirate\":\n                            aspirate_flow_rate = get_liquid_class_parameter(liquid_class, \"AsFlowRate\")\n                        elif command_type == \"channelDispense\":\n                            dispense_flow_rate = get_liquid_class_parameter(liquid_class, \"DsFlowRate\")\n                except json.JSONDecodeError as e:\n                    print(f\"Error decoding JSON on line {i}: {e}\")\n                continue\n\n            match = re.search(aspirate_pattern, line)\n            if match:\n                timestamp = datetime.strptime(match.group(1), '%Y-%m-%d %H:%M:%S.%f')\n                container, channel_info = self.extract_channel_info(line)\n                commands.append(LiquidHandlerCommand(\n                    timestamp, \"Aspirate\", \"complete\", line, i, container, channel_info, liquid_class, aspirate_flow_rate, None\n                ))\n                # Reset variables for next command\n                liquid_class = None\n                aspirate_flow_rate = None\n                dispense_flow_rate = None\n                continue\n                \n            match = re.search(dispense_pattern, line)\n            if match:\n                timestamp = datetime.strptime(match.group(1), '%Y-%m-%d %H:%M:%S.%f')\n                container, channel_info = self.extract_channel_info(line)\n                commands.append(LiquidHandlerCommand(\n                    timestamp, \"Dispense\", \"complete\", line, i, container, channel_info, liquid_class, None, dispense_flow_rate\n                ))\n                # Reset variables for next command\n                liquid_class = None\n                aspirate_flow_rate = None\n                dispense_flow_rate = None\n\n        self.liquid_commands = commands\n        return commands\n\n    def extract_channel_info(self, line: str):\n        \"\"\"Extract container and channel information from complete trace line\"\"\"\n        # Pattern to match: > channel X: container, position, volume\n        channel_pattern = r'> channel \\d+: ([^,]+), ([^,]+), ([^>]+)'\n        matches = re.findall(channel_pattern, line)\n        \n        if not matches:\n            return None, None\n            \n        # Extract container (assume all channels use same container)\n        container = matches[0][0].strip()\n        \n        # Extract channel info as (position, volume) tuples\n        channel_info = []\n        for match in matches:\n            position = match[1].strip()\n            volume = match[2].strip()\n            channel_info.append((position, volume))\n            \n        return container, channel_info\n\n    def associate_commands(self) -> List[Association]:\n        associations = []\n        used_blocks = set()\n        \n        # We need to match the last liquid handling command with the last TADM block and work backwards\n        # First, filter the blocks by type (AS or DS) and reverse them\n        aspirate_blocks = [b for b in self.usb_blocks if b['type'] == 'AS'][::-1]\n        dispense_blocks = [b for b in self.usb_blocks if b['type'] == 'DS'][::-1]\n        \n        # Create a reverse copy of the liquid commands\n        reversed_lh_cmds = self.liquid_commands[::-1]\n        \n        # Pointers for our reversed lists\n        asp_idx = 0\n        disp_idx = 0\n\n        for lh_cmd in reversed_lh_cmds:\n            best_match = None\n            if lh_cmd.command_type == \"Aspirate\" and asp_idx < len(aspirate_blocks):\n                best_match = aspirate_blocks[asp_idx]\n                asp_idx += 1\n            elif lh_cmd.command_type == \"Dispense\" and disp_idx < len(dispense_blocks):\n                best_match = dispense_blocks[disp_idx]\n                disp_idx += 1\n\n            associations.append(Association(lh_cmd, best_match, None))\n\n        # We need to reverse the associations list back to the correct chronological order\n        return associations[::-1]\n\n# ------------------------------\n# Extract clean command from trace line\n# ------------------------------\ndef extract_clean_command(trace_line: str) -> str:\n    \"\"\"\n    Extract clean command from trace line.\n    Input: '2025-09-10 13:35:03.996 Microlab STAR : 1000ul Channel Aspirate (Single Step) - complete;'\n    Output: '1000ul Channel Aspirate'\n    \"\"\"\n    # Remove the trailing ';'\n    line = trace_line.rstrip(';')\n    \n    # Find the part after 'Microlab STAR : '\n    star_marker = 'Microlab STAR : '\n    star_index = line.find(star_marker)\n    if star_index != -1:\n        command_part = line[star_index + len(star_marker):].strip()\n    else:\n        # Fallback: just remove timestamp if no 'Microlab STAR' found\n        command_part = re.sub(r'^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d+\\s*', '', line).strip()\n    \n    # Remove ' - complete' from the end and everything after it\n    command_part = re.sub(r'\\s*-\\s*complete.*$', '', command_part)\n    command_part = re.sub(r'\\s*\\([^)]*\\)', '', command_part)\n    \n    return command_part\n\ndef format_channel_info(lh_cmd: LiquidHandlerCommand) -> str:\n    \"\"\"Format channel information as a string: container: [(pos, vol), ...]\"\"\"\n    if not lh_cmd.channel_info or not lh_cmd.container:\n        return \"\"\n    \n    # Format as: container: [(pos1, vol1), (pos2, vol2), ...]\n    channel_parts = [f\"({pos}, {vol})\" for pos, vol in lh_cmd.channel_info]\n    formatted_channels = \", \".join(channel_parts)\n    \n    return f\"{lh_cmd.container}: [{formatted_channels}]\"\n\ndef generate_json_report(associations: List, output_file: str):\n    \"\"\"\n    Generate a JSON report with all command and USB data information.\n    \n    Args:\n        associations: List of Association objects\n        output_file: Path to output JSON file\n    \"\"\"\n    report_data = {\n        \"report_metadata\": {\n            \"generated_at\": datetime.now().isoformat(),\n            \"report_type\": \"Liquid Handler USB TADM Report\",\n            \"total_commands\": len(associations)\n        },\n        \"commands\": []\n    }\n    \n    for i, assoc in enumerate(associations, 1):\n        lh = assoc.liquid_handler_cmd\n        \n        # Build command data structure\n        command_data = {\n            \"index\": i,\n            \"timestamp\": lh.timestamp.isoformat(),\n            \"command_type\": lh.command_type,\n            \"status\": lh.status,\n            \"line_number\": lh.line_number,\n            \"container\": lh.container,\n            \"channel_info\": [\n                {\n                    \"position\": pos,\n                    \"volume\": vol\n                }\n                for pos, vol in lh.channel_info\n            ] if lh.channel_info else [],\n            \"liquid_class\": lh.liquid_class,\n            \"aspirate_flow_rate_uL_per_s\": lh.aspirate_flow_rate,\n            \"dispense_flow_rate_uL_per_s\": lh.dispense_flow_rate\n        }\n        \n        # Add USB block data if available\n        if assoc.usb_block:\n            usb_data = {\n                \"block_id\": assoc.usb_block[\"id\"],\n                \"block_type\": assoc.usb_block[\"type\"],\n                \"block_index\": assoc.usb_block[\"index\"],\n                \"channels\": {\n                    channel: data\n                    for channel, data in assoc.usb_block[\"channels\"].items()\n                }\n            }\n            command_data[\"usb_block\"] = usb_data\n        else:\n            command_data[\"usb_block\"] = None\n        \n        if assoc.time_offset_ms is not None:\n            command_data[\"time_offset_ms\"] = assoc.time_offset_ms\n        \n        report_data[\"commands\"].append(command_data)\n    \n    # Write JSON to file with pretty formatting\n    with open(output_file, \"w\") as f:\n        json.dump(report_data, f, indent=2)\n    \n    print(f\"JSON report saved to {output_file}\")\n\ndef get_last_usb_data_block() -> Optional[dict]:\n    \"\"\"\n    Parses the USB trace file, gets the last data block, and extracts the \n    numerical channel data from it.\n\n    Args:\n        filename: Path to the HxUsbComm*.trc file.\n\n    Returns:\n        A dictionary representing the last USB data block with numerical \n        data in the 'channels' key, or None if no blocks are found.\n    \"\"\"\n    # Instantiate the existing parser\n    log_dir = Path(r\"C:\\Program Files (x86)\\Hamilton\\Logfiles\")\n    usb_file = find_most_recent_trace_file(log_dir, \"HxUsbComm*.trc\")\n    usb_parser = USBTraceParser()\n    \n    # Parse the entire file to get all blocks\n    blocks = usb_parser.parse_file(usb_file)\n\n    # Check if any blocks were found and return the last one\n    if blocks:\n        # The 'channels' key in the returned dictionary already holds the \n        # numerical data (a defaultdict of lists of ints)\n        return blocks[-1]\n    else:\n        return None\n\n# Example usage (assuming 'some_file.trc' exists):\n# last_block = get_last_usb_data_block('some_file.trc')\n# if last_block:\n#     print(f\"Last Block ID: {last_block['id']}\")\n#     print(f\"Numerical Data (P1 channel): {last_block['channels'].get('P1')[:5]}...\") # print first 5 points\n\n\ndef generate_tadm_report_with_json(html_output=\"tadm_report.html\", json_output=\"tadm_report.json\"):\n    \"\"\"\n    Modified version of generate_tadm_report that creates both HTML and JSON outputs.\n    \"\"\"\n    log_dir = Path(r\"C:\\Program Files (x86)\\Hamilton\\Logfiles\")\n\n    # Automatically find the most recent trace files\n    lh_file = find_most_recent_trace_file(log_dir, \"*_Trace.trc\")\n    usb_file = find_most_recent_trace_file(log_dir, \"HxUsbComm*.trc\")\n    \n    if not lh_file:\n        print(f\"No liquid handler trace file ending with '_Trace.trc' found in {log_dir}. Exiting.\")\n        return\n    elif not usb_file:\n        print(f\"No USB trace file starting with 'HxUsbComm' found in {log_dir}. Exiting.\")\n        return\n\n    print(f\"Using Liquid Handler file: {lh_file}\")\n    print(f\"Using USB file: {usb_file}\")\n\n    parser = TraceParser(debug=False)\n\n    with open(lh_file, encoding='latin-1') as f:\n        parser.parse_liquid_handler_trace(f.read())\n\n    usb_parser = USBTraceParser()\n    parser.usb_blocks = usb_parser.parse_file(usb_file)\n\n    associations = parser.associate_commands()\n\n    # Add timestamp to both output files\n    timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n    html_output_timestamped = html_output.replace(\".html\", f\"_{timestamp}.html\")\n    json_output_timestamped = json_output.replace(\".json\", f\"_{timestamp}.json\")\n    \n    # Generate both reports\n    generate_html_report(associations, html_output_timestamped)\n    generate_json_report(associations, json_output_timestamped)\n\n\n# ------------------------------\n# Generate HTML report\n# ------------------------------\ndef generate_html_report(associations: list, output_file: str):\n    html = \"\"\"\n<html>\n<head>\n<style>\nbody { font-family: Arial, sans-serif; margin: 20px; }\nh1 {\n    font-size: 1.2em;\n    font-weight: bold;\n}\n.command { \n    margin-bottom: 15px; \n    padding: 10px; \n}\n.command-line { font-size: 0.9em; color: #000; }\n.channel-details { font-size: 0.9em; color: #000; }\n.liquid-class { font-size: 0.9em; color: #000; }\n.flow-rate { font-size: 0.9em; color: #000; }\n.usb-section {\n    margin-top: 10px;\n}\n.toggle-arrow {\n    cursor: pointer;\n    font-size: 0.8em;\n    padding-right: 5px;\n    display: inline-block;\n    transition: transform 0.2s;\n}\n.usb-header {\n    font-size: 0.9em;\n    color: #0000EE; /* Blue like a link */\n    cursor: pointer;\n}\nimg { max-width: 100%; height: auto; border: 1px solid #ccc; }\n</style>\n<script>\nfunction toggle(id, arrow_id) {\n  var content = document.getElementById(id);\n  var arrow = document.getElementById(arrow_id);\n  if (content.style.display === \"none\") { \n    content.style.display = \"block\"; \n    arrow.style.transform = \"rotate(90deg)\";\n  } else { \n    content.style.display = \"none\"; \n    arrow.style.transform = \"rotate(0deg)\";\n  }\n}\n</script>\n</head>\n<body>\n<h1>Liquid Handler/ USB Report</h1>\n\"\"\"\n\n    for i, assoc in enumerate(associations, 1):\n        lh = assoc.liquid_handler_cmd\n        ts_str = lh.timestamp.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]\n        clean_command = extract_clean_command(lh.details)\n        channel_info = format_channel_info(lh)\n        \n        cmd_line = f'<div class=\"command-line\">{ts_str} {clean_command}</div>'\n        \n        html += f'<div class=\"command\">{cmd_line}'\n        if channel_info:\n            html += f'<div class=\"channel-details\">{channel_info}</div>'\n            \n        if lh.liquid_class:\n            html += f'<div class=\"liquid-class\">Liquid Class: {lh.liquid_class}</div>'\n            \n        if lh.aspirate_flow_rate is not None:\n            html += f'<div class=\"flow-rate\">Aspirate Flow Rate: {lh.aspirate_flow_rate} uL/s</div>'\n        elif lh.dispense_flow_rate is not None:\n            html += f'<div class=\"flow-rate\">Dispense Flow Rate: {lh.dispense_flow_rate} uL/s</div>'\n\n        if assoc.usb_block:\n            img_base64 = usb_block_plot_base64(assoc.usb_block)\n            \n            html += f\"\"\"\n            <div class=\"usb-section\">\n                <span class=\"usb-header\" onclick=\"toggle('block{i}', 'arrow{i}')\">\n                    <span id=\"arrow{i}\" class=\"toggle-arrow\">&#9658;</span>\n                    TADM Graph\n                </span>\n                <div id=\"block{i}\" style=\"display:none;\">\n                    <img src=\"data:image/png;base64,{img_base64}\"/>\n                </div>\n            </div>\n            \"\"\"\n        else:\n            html += \"<em>No USB data associated</em>\"\n        html += \"</div>\"\n\n    html += \"</body></html>\"\n\n    with open(output_file, \"w\") as f:\n        f.write(html)\n    print(f\"Report saved to {output_file}\")\n\n# ------------------------------\n# Plot function with bigger figures\n# ------------------------------\ndef usb_block_plot_base64(usb_block: dict) -> str:\n    plt.figure(figsize=(8, 4))  # 2x bigger\n    for ch, data in usb_block[\"channels\"].items():\n        plt.plot(data, label=ch)\n    plt.title(f\"{usb_block['id']} ({usb_block['type']})\")\n    plt.xlabel(\"Time\")\n    plt.ylabel(\"Pressure\")\n    plt.tight_layout()\n    plt.legend(fontsize='small')\n\n    buf = io.BytesIO()\n    plt.savefig(buf, format='png')\n    plt.close()\n    buf.seek(0)\n    img_base64 = base64.b64encode(buf.read()).decode(\"utf-8\")\n    return img_base64\n\ndef find_most_recent_trace_file(directory: Path, pattern: str) -> Optional[Path]:\n    \"\"\"\n    Finds the most recently modified file in a directory that matches a given pattern.\n    \"\"\"\n    try:\n        # Use glob to find all files matching the pattern\n        list_of_files = list(directory.glob(pattern))\n        if not list_of_files:\n            return None\n        # Return the file with the most recent modification time\n        return max(list_of_files, key=lambda f: f.stat().st_mtime)\n    except FileNotFoundError:\n        print(f\"Error: The directory {directory} was not found.\")\n        return None\n    except Exception as e:\n        print(f\"An unexpected error occurred while searching for files: {e}\")\n        return None\n    \ndef generate_tadm_report(output = \"tadm_report.html\"):\n    log_dir = Path(r\"C:\\Program Files (x86)\\Hamilton\\Logfiles\")\n    output_html = \"lh_usb_report_graphs.html\"\n\n    # Automatically find the most recent trace files\n    lh_file = find_most_recent_trace_file(log_dir, \"*_Trace.trc\")\n    usb_file = find_most_recent_trace_file(log_dir, \"HxUsbComm*.trc\")\n    \n    if not lh_file:\n        print(f\"No liquid handler trace file ending with '_Trace.trc' found in {log_dir}. Exiting.\")\n        return\n    elif not usb_file:\n        print(f\"No USB trace file starting with 'HxUsbComm' found in {log_dir}. Exiting.\")\n        return\n\n    print(f\"Using Liquid Handler file: {lh_file}\")\n    print(f\"Using USB file: {usb_file}\")\n\n    parser = TraceParser(debug=False)\n\n    with open(lh_file, encoding='latin-1') as f:\n        parser.parse_liquid_handler_trace(f.read())\n\n    usb_parser = USBTraceParser()\n    parser.usb_blocks = usb_parser.parse_file(usb_file)\n\n    associations = parser.associate_commands()\n\n    # datestamp output html by concatenating current date/time onto existing output_html\n    timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n    output_html = output.replace(\".html\", f\"_{timestamp}.html\")\n    generate_html_report(associations, output_html)\n\n\nif __name__ == \"__main__\":\n    generate_tadm_report()"
  },
  {
    "path": "pyhamilton/ngs/tests/PacBio_MultiPlexLibraryPrepDeck_v1.2.res",
    "content": "#pragma once\r\nglobal resource Res_ML_STAR(1, 0xff0000, Translate(\"ML_STAR\"));\r\n\r\n\r\nfunction Res_ML_STAR_map(variable unit) variable { return(unit); }\r\nfunction Res_ML_STAR_rmap(variable address) variable { return(address); }\r\n\r\n\r\nnamespace ResourceUnit {\r\n     variable Res_ML_STAR;\r\n}\r\n// $$author=Stefan.Golas$$valid=0$$time=2025-08-27 11:29$$checksum=4cdeccbf$$length=089$$"
  },
  {
    "path": "pyhamilton/ngs/tests/bead_cleanup.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Plate96, Tip96, hhs_set_simulation, move_plate_using_gripper, \n                        hhs_create_star_device, hhs_create_usb_device, hhs_set_temp_param, \n                        hhs_start_temp_ctrl, hhs_stop_temp_ctrl, hhs_start_shaker, hhs_stop_shaker, TrackedTips, \n                        StackedResources, Reservoir60mL, FalconCarrier24, normal_logging, layout_item)\n\n\nfrom pyhamilton_advanced import (shear_plate_96, double_aspirate_supernatant_96, pip_mix, mix_plate, \n                                 transfer_96, multi_dispense, pip_transfer, ethanol_wash, multi_dispense,\n                                 transport_resource, GripDirection,GrippedResource,GripperParams)\nimport time\nimport os\n\n\n# DNA Shearing\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\nMIDI_OnMagnet = layout_item(lmgr, Plate96, 'MIDI_OnMagnet')\nMIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette')\nLiquidWaste = layout_item(lmgr, Plate96, 'LiquidWaste')\nEthanolReservoir = layout_item(lmgr, Plate96, 'RGT_Ethanol')\nConsumableWaste = layout_item(lmgr, Plate96, 'MIDI_Waste')\n\nHSP_Adapters = layout_item(lmgr, Plate96, 'HSP_Adapters')\n\nHSP_Plate = layout_item(lmgr, Plate96, 'HSP_Pipette')\n\nHSP_Plate_2 = layout_item(lmgr, Plate96, 'HSP_Pipette2')\n\nMagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001')\nmagbead_positions = [(MagBeads_Container, i) for i in range(8)]  # Assuming 8 positions for beads\n\nElutionBuffer_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002')\npost_shear_elution_buffer_positions = [(ElutionBuffer_Container, i) for i in range(8)]  # Assuming 8 positions for beads\n\nCPAC_Reagent_Plate = layout_item(lmgr, Plate96, 'CPAC_HSP_0001')\nER_Mix_positions = [(CPAC_Reagent_Plate, i) for i in range(8)]  # Assuming 8 positions for ER Mix\nRGT_LigMix_positions = [(CPAC_Reagent_Plate, i) for i in range(8,16)]  # Plated in positions 8 to 15\n\nEDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003')\n\nPoolingTubes = layout_item(lmgr, FalconCarrier24, 'SMP_CAR_24_15x75_A00_0001')\n\nHSP_Stack = StackedResources.from_prefix(\n                        tracker_id=\"HSP_L\",\n                        prefix=\"HSP_L\",\n                        count=8)\n\ntracked_tips_50uL = TrackedTips.from_prefix(\n                        tracker_id=\"TIP_50uLF_L\",\n                        volume_capacity=50,\n                        prefix=\"TIP_50uLF_L\",\n                        count=8,\n                        tip_type=Tip96, \n                        lmgr=lmgr)\n\n\ntracked_tips_300uL = TrackedTips.from_prefix(\n                        tracker_id=\"STF_L\",\n                        volume_capacity=300,\n                        prefix=\"STF_L\",\n                        count=8,\n                        tip_type=Tip96,\n                        lmgr=lmgr)\n\ntracked_tips_1000uL = TrackedTips.from_prefix(\n                        tracker_id=\"HTF_L\",\n                        volume_capacity=1000,\n                        prefix=\"HTF_L\",\n                        count=2,\n                        tip_type=Tip96,\n                        lmgr=lmgr)\n\nsample_volume = 50 # Adjust as needed, get user input\nmagbead_mix_volume = 1000\npost_shear_magbead_volume = sample_volume\nfirst_supernatant_removal_volume = sample_volume * 2  # Assuming 20% more than sample volume\nsupernatant_removal_volume = sample_volume + post_shear_magbead_volume\nm1_mix_volume = min(sample_volume*1.6, 1000)\npost_shear_etoh_wash_volume = 200\npost_shear_elution_buffer_volume = 30\npost_shear_elution_volume = 25.5  # Volume for shear elution\n\nif sample_volume > 130:\n    pass\nelse:\n    pass\n\n\n# PyHamilton To-dos:\n# - Implement Stacking logic (done)\n# - HHS integration (done)\n# - Autoloader integration (testing)\n# - ODTC integration (external to Venus)\n# - Get liquid class data from .NET/ CLR (done)\n# - Implement reagent and consumables projection\n\n# - CPAC integration (external to Venus)\n# - ODTC integration (external to Venus)\n\n# Add volume calculations\n# Add logging and recording of liquid heights/ volumes from cLLD\n\ndef estimate_tip_consumption(num_samples: int):\n    '''\n    I think we can run the method in simulation to make an estimate?\n    '''\n    pass\n\nnum_samples = 96  # Example number of samples, adjust as needed\ntips_needed = estimate_tip_consumption(num_samples)\n\ndef initialize(simulation=True):\n    with HamiltonInterface(simulating=False, server_mode=True, windowed=True, persistent = True) as ham_int:\n        ham_int.initialize()\n        normal_logging(ham_int, os.getcwd())\n        \n        hhs_set_simulation(ham_int, 1)  # Set simulation mode if needed\n        hhs1 = hhs_create_usb_device(ham_int, 'ML_STAR', 1)\n        hhs2 = hhs_create_usb_device(ham_int, 'ML_STAR', 1)\n        hhs3 = hhs_create_usb_device(ham_int, 'ML_STAR', 1)\n\n\n\ndef BeadCleanup(num_samples, sample_volume, starting_from=0):\n    with HamiltonInterface(simulating=False,server_mode=True, windowed=True, persistent=True) as ham_int:\n\n        ham_int.initialize()\n        \n        # Add magbeads to MIDI Off Magnet plate\n        magbead_positions = [(MagBeads_Container, i) for i in range(8)]\n        MIDI_OffMagnet_positions = [(MIDI_OffMagnet, i) for i in range(num_samples)]\n        \n        pip_transfer(ham_int, tracked_tips_300uL, magbead_positions, MIDI_OffMagnet_positions,\n                     [post_shear_magbead_volume] * num_samples, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty',\n                     aspirate_height_from_bottom=1, dispense_height_from_bottom=1)\n\n        # Transport MIDI Off Magnet plate to HHS5_MIDI\n        transport_resource(ham_int, MIDI_OffMagnet.layout_name(), 'HHS5_MIDI', resource_type=GrippedResource.MIDI, core_gripper=True)\n\n        # Shake HHS\n        hhs_start_shaker(ham_int, 1, 1000, 10)  # Start shaker at 1000 RPM for 10 seconds\n        time.sleep(10)  # Wait for shaking to complete\n        hhs_stop_shaker(ham_int, 1)  # Stop shaker\n\n        # Transport HHS5_MIDI to MIDI On Magnet\n        transport_resource(ham_int, 1, MIDI_OnMagnet.layout_name(), resource_type=GrippedResource.MIDI, core_gripper=True)\n\n\n\nif __name__ == \"__main__\":\n    num_samples = 96"
  },
  {
    "path": "pyhamilton/ngs/tests/cLLD.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, ResourceType, Plate24, Plate96, Tip96, resource_list_with_prefix, \n                        layout_item, DeckResource, Reservoir60mL, get_liquid_class_volume)\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n    \n    \n# Example usage of layout_item\ntips = layout_item(lmgr, Tip96, 'TIP_50uLF_L_0001')  # Example tip rack\nElutionBuffer_Trough = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002')  # Example elution trough\n\nliquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty'  # Example liquid class\nvol_capacity = get_liquid_class_volume(liquid_class)  # Fetch the volume for the liquid class\n\nwith HamiltonInterface(windowed=True) as ham_int:\n    ham_int.initialize()\n    ham_int.tip_pick_up([(tips, 0)])  # Pick up the first tip from the tip rack\n    response = ham_int.aspirate([(ElutionBuffer_Trough, 0)], [0], liquidClass=liquid_class, capacitiveLLD=1)\n    print(f'Liquid heights after aspirate: {response.liquidHeights}')\n    print('Liquid volume')\n    print(response.liquidVolumes)\n\n# Parallel to ODTC:\n# Plate out reagents\n# Book in a partial plate asynchronously\n# Book in a full plate asynchronously?\n\n# Ask Matt about reagent volumes\n\n# TSO 500 HT asking RNA DNA etc mix and match\n# Can handle worklist with multiple plates including partial plates of both RNA and DNA\n# Specific kit they want to run routinely on these two vantages (up to PCR, past PCR, huge custom setup)\n\n# NC department of health double ODTC\n# NGS multiple bottleneck steps: tip reloads, pipetting, 5 HHSs, 2 ODTCs\n# Protocols for hybridization steps: 4-24 hours, ODTC bound by scheduler\n\n# STAR with two ODTCs (qPCR)\n\n# Restart error recovery halfway through reagent dispense into plate\n\n# Venus scheduler lock-in for a single run\n\n# General asynchronous method kickoff with scheduling and resource occupancy"
  },
  {
    "path": "pyhamilton/ngs/tests/consumables_tracking.py",
    "content": "from pyhamilton import DeckResource, layout_item, LayoutManager, HamiltonInterface, Plate96, Reservoir60mL, FalconCarrier24, Plate96, TrackedTips,Tip96\nfrom pyhamilton_advanced import tracked_volume_aspirate, ReagentTrackedReservoir60mL, multi_dispense\n\nif __name__ == \"__main__\":\n    lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n    HSP_OffMagnet = layout_item(lmgr, Plate96, 'HSP_Pipette')\n    HSP_positions = [(HSP_OffMagnet, i) for i in range(96)]\n    tracked_tips_300uL = TrackedTips.from_prefix(\n        tracker_id=\"STF_L\",\n        volume_capacity=300,\n        prefix=\"STF_L\",\n        count=8,\n        tip_type=Tip96,\n        lmgr=lmgr)\n\n\n    magbeads = layout_item(lmgr, ReagentTrackedReservoir60mL, 'rgt_cont_60ml_BC_A00_0001')\n    magbead_positions = magbeads.assign_reagent_map('magbeads', range(8))\n\n\n    with HamiltonInterface(simulating=True, windowed=False) as ham_int:\n        multi_dispense(ham_int, tracked_tips_300uL, magbead_positions, HSP_positions, [50]*96, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty')\n\n    print(magbeads.calculate_required_reagent_volume('magbeads'))"
  },
  {
    "path": "pyhamilton/ngs/tests/cpac.py",
    "content": "from pyhamilton import (HamiltonInterface, initialize_cpac, set_temperature_target_cpac, start_temperature_control_cpac, \n                        stop_temperature_control_cpac, terminate_cpac)\n\nwith HamiltonInterface(windowed=True, simulating=False) as ham_int:\n    \n    initialize_cpac(ham_int, controller_id=1, simulating=False)\n    set_temperature_target_cpac(ham_int, target_temp=37.0, controller_id=1, device_id=1)\n    start_temperature_control_cpac(ham_int, controller_id=1, device_id=1)\n    stop_temperature_control_cpac(ham_int, controller_id=1, device_id=1)\n    terminate_cpac(ham_int, stop_all_devices=True)\n"
  },
  {
    "path": "pyhamilton/ngs/tests/double_aspirate.py",
    "content": "from pyhamilton import HamiltonInterface, LayoutManager, Plate96, Tip96, TrackedTips, layout_item, Waste96\nfrom pyhamilton_advanced import pip_transfer, ethanol_wash, double_aspirate_supernatant_96\n\nif __name__ == \"__main__\":\n    with HamiltonInterface(windowed=True, simulating=False) as ham_int:\n\n        lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n        \n        tracked_tips_300uL = TrackedTips.from_prefix(\n                                tracker_id=\"STF_L\",\n                                volume_capacity=300,\n                                prefix=\"STF_L\",\n                                count=8,\n                                tip_type=Tip96,\n                                lmgr=lmgr)\n\n        MIDI_Pipette = layout_item(lmgr, Plate96, 'MIDI_Pipette')\n        HHS5_MIDI = layout_item(lmgr, Plate96, 'HHS5_MIDI')\n        MIDI_OnMagnet = layout_item(lmgr, Plate96, 'MIDI_OnMagnet')\n        LiquidWaste = layout_item(lmgr, Waste96, 'LiquidWaste_MPH')\n\n        first_volume = 50\n        second_volume = 25\n\n        ham_int.initialize()\n\n        double_aspirate_supernatant_96(ham_int, \n                                       tips = tracked_tips_300uL, \n                                       source_plate = MIDI_OnMagnet, \n                                       waste_container = LiquidWaste,\n                                       first_volume = first_volume, \n                                       second_volume = second_volume, \n                                       aspiration_height = 0,\n                                       liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Empty')"
  },
  {
    "path": "pyhamilton/ngs/tests/get_liquid_class_volume.py",
    "content": "from pyhamilton import (get_liquid_class_volume, get_liquid_class_columns, \n                        get_liquid_class_dispense_mode, get_liquid_class_parameter, get_all_table_names,\n                        plot_original_correction_curves, plot_combined_correction_curves_with_fit,\n                        export_flow_rates_to_csv, get_liquid_class_column_details, insert_liquid_class,\n                        delete_liquid_class_by_name)\nimport struct\n\nname = \"NEBNext_DNA_II_SVF_Ampure_SurfaceEmpty_FastMix\"\nvolume = get_liquid_class_volume(name, nominal=True)\ndispense_mode = get_liquid_class_dispense_mode(name)\n\nprint(f\"Liquid Class: {name}\")\nprint(f\"Volume: {volume} µL\")\nprint(f\"Dispense Mode: {dispense_mode}\")\n\nimport collections\n\n\n\n\nprint(get_liquid_class_columns())\n\nprint(get_liquid_class_parameter(name, 'AsFlowRate'))\n\n\nbyte_string = get_liquid_class_parameter(name, 'CorrectionCurve')\nprint(\"Byte string:\", byte_string)\n\n\n\nprint(get_liquid_class_parameter(name, 'OriginalLiquid'))\n\nprint(get_liquid_class_column_details())\n\n#export_flow_rates_to_csv(\"liquid_classes_flow_rates.csv\")\n#plot_combined_correction_curves_with_fit(name_filters = [\"NEBNext\", \"QIAseq\",\"10X\",\"PacBio\",\"SureSelectXT\",\"LSK109\"])\n\nnew_liquid_class_data = {\n        'LiquidClassName': 'My_New_LC_100ul',\n        'LiquidName': 'Water',\n        'LiquidVersion': '1.0',\n        'LiquidDevices': 'Pipette',\n        'LiquidNotes': 'Example liquid class for testing.',\n        'OriginalLiquid': 0,\n        'DispenseMode': 4, # Surface Part\n        'TipType': 23, # 50 uL Tip\n        '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\n        'PressureLLDSensitivity': 0,\n        'LLDMaxHeightDifference': 0.0,\n        'ValidationState': 0,\n        'DesignHistory': b'',\n        'AsFlowRate': 100.0,\n        'AsMixFlowRate': 150.0,\n        'AsAirTransportVolume': 10.0,\n        'AsBlowOutVolume': 5.0,\n        'AsSwapSpeed': 1000.0,\n        'AsSettlingTime': 1.5,\n        'AsOverAspirateVolume': 15.0,\n        'AsClotRetractHeight': 1.0,\n        'DsFlowRate': 100.0,\n        'DsMixFlowRate': 150.0,\n        'DsAirTransportVolume': 10.0,\n        'DsBlowOutVolume': 5.0,\n        'DsSwapSpeed': 1000.0,\n        'DsSettlingTime': 1.5,\n        'DsStopFlowRate': 20.0,\n        'DsStopBackVolume': 10.0,\n        'WhiPipJson': b'{}', # Example empty JSON as binary data\n        'CheckSum': 12345,\n}\n\ndelete_liquid_class_by_name('My_New_LC_100ul')"
  },
  {
    "path": "pyhamilton/ngs/tests/gripper_move.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, ResourceType, Plate24, Plate96, Tip96, \n                        move_plate_using_gripper, resource_list_with_prefix, layout_item)\n\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n# Perhaps import stack management\n\nwith HamiltonInterface(windowed=True) as ham_int:\n    ham_int.initialize()\n\n    move_plate_using_gripper(ham_int, 'AbgeneMIDI_Stack1_0001', 'MIDI_OnMagnet', gripHeight=5)\n"
  },
  {
    "path": "pyhamilton/ngs/tests/hhs.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item,\n                        normal_logging, hhs_create_star_device, hhs_create_usb_device,\n                        hhs_set_temp_param, hhs_start_temp_ctrl, hhs_stop_temp_ctrl, hhs_set_simulation,hhs_get_temp,\n                        hhs_start_shaker, hhs_stop_shaker)\n\nimport os\nimport time\nfrom pyhamilton_advanced import shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer, mix_plate\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n# Perhaps import stack management\n\nMIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette')  # Assuming this is defined elsewhere in the layout\nMagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001')\nER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002')\nEDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003')\n\ntips = tip_tracker_50uL = TrackedTips.from_prefix(\n    tracker_id=\"TIP_50uLF_L\",\n    prefix=\"TIP_50uLF_L\",\n    volume_capacity=50,\n    count=8,\n    tip_type=Tip96,\n    lmgr=lmgr,\n    reset=True  # Reset the tracker state\n)\n\nclass HHS:\n\n    def __init__(self, node, sequence):\n        self.node = node\n        self._sequence = sequence\n\n    def layout_name(self):\n        return self._sequence\n    \n    def node(self):\n        return self.node\n\nHHS_MIDI_1 = HHS(node=4, sequence=\"HHS4_MIDI\")\nHHS_MIDI_2 = HHS(node=5, sequence=\"HHS5_MIDI\")\nHHS_MIDI_3 = HHS(node=3, sequence=\"HHS3_MIDI\")\n\nHHS_HSP_1 = HHS(node=1, sequence=\"HHS1_HSP\")\nHHS_HSP_2 = HHS(node=2, sequence=\"HHS2_HSP\")\n\n\ndef initialize_hhs(simulation):\n    with HamiltonInterface(windowed=True, simulating=False) as ham_int:\n        ham_int.initialize()\n        normal_logging(ham_int, os.getcwd())\n        \n        hhs_set_simulation(ham_int, 0)  # Set simulation mode if needed\n        for node in range(1,5):\n            hhs_create_usb_device(ham_int, node)\n            print(f\"Created USB device for ML_STAR {node}\")\n            print(\"Shaking node for 5 seconds\")\n            hhs_start_shaker(ham_int, node, 1000)\n            time.sleep(5)\n            hhs_stop_shaker(ham_int, node)\n\n\n# This works\nwith HamiltonInterface(windowed=True, simulating=False) as ham_int:\n    ham_int.initialize()\n    normal_logging(ham_int, os.getcwd())\n    \n    initialize_hhs(simulation=False)"
  },
  {
    "path": "pyhamilton/ngs/tests/loading/deck_regions.json",
    "content": "{\n  \"image_path\": \".\\\\deck.png\",\n  \"image_dimensions\": {\n    \"width\": 1152,\n    \"height\": 648\n  },\n  \"regions\": {\n    \"RGT_60mL_0001\": {\n      \"top_left\": [\n        553,\n        126\n      ],\n      \"bottom_right\": [\n        565,\n        154\n      ],\n      \"width\": 12,\n      \"height\": 28,\n      \"center\": [\n        559,\n        140\n      ],\n      \"color\": [\n        0,\n        0,\n        255\n      ]\n    },\n    \"Rgt_60mL_0002\": {\n      \"top_left\": [\n        556,\n        155\n      ],\n      \"bottom_right\": [\n        569,\n        187\n      ],\n      \"width\": 13,\n      \"height\": 32,\n      \"center\": [\n        562,\n        171\n      ],\n      \"color\": [\n        0,\n        255,\n        0\n      ]\n    },\n    \"Rgt_60mL_0003\": {\n      \"top_left\": [\n        562,\n        192\n      ],\n      \"bottom_right\": [\n        577,\n        224\n      ],\n      \"width\": 15,\n      \"height\": 32,\n      \"center\": [\n        569,\n        208\n      ],\n      \"color\": [\n        255,\n        0,\n        0\n      ]\n    },\n    \"Rgt_60mL_0004\": {\n      \"top_left\": [\n        569,\n        230\n      ],\n      \"bottom_right\": [\n        583,\n        262\n      ],\n      \"width\": 14,\n      \"height\": 32,\n      \"center\": [\n        576,\n        246\n      ],\n      \"color\": [\n        0,\n        255,\n        255\n      ]\n    },\n    \"Rgt_60mL_0005\": {\n      \"top_left\": [\n        574,\n        270\n      ],\n      \"bottom_right\": [\n        589,\n        314\n      ],\n      \"width\": 15,\n      \"height\": 44,\n      \"center\": [\n        581,\n        292\n      ],\n      \"color\": [\n        255,\n        0,\n        255\n      ]\n    },\n    \"Rgt_60mL_0006\": {\n      \"top_left\": [\n        566,\n        125\n      ],\n      \"bottom_right\": [\n        577,\n        155\n      ],\n      \"width\": 11,\n      \"height\": 30,\n      \"center\": [\n        571,\n        140\n      ],\n      \"color\": [\n        255,\n        255,\n        0\n      ]\n    },\n    \"Rgt_60mL_0007\": {\n      \"top_left\": [\n        570,\n        157\n      ],\n      \"bottom_right\": [\n        585,\n        187\n      ],\n      \"width\": 15,\n      \"height\": 30,\n      \"center\": [\n        577,\n        172\n      ],\n      \"color\": [\n        128,\n        0,\n        255\n      ]\n    },\n    \"Rgt_60mL_0008\": {\n      \"top_left\": [\n        580,\n        192\n      ],\n      \"bottom_right\": [\n        591,\n        223\n      ],\n      \"width\": 11,\n      \"height\": 31,\n      \"center\": [\n        585,\n        207\n      ],\n      \"color\": [\n        0,\n        165,\n        255\n      ]\n    },\n    \"Rgt_60mL_0009\": {\n      \"top_left\": [\n        582,\n        229\n      ],\n      \"bottom_right\": [\n        597,\n        267\n      ],\n      \"width\": 15,\n      \"height\": 38,\n      \"center\": [\n        589,\n        248\n      ],\n      \"color\": [\n        255,\n        255,\n        255\n      ]\n    },\n    \"Rgt_60mL_010\": {\n      \"top_left\": [\n        590,\n        269\n      ],\n      \"bottom_right\": [\n        608,\n        312\n      ],\n      \"width\": 18,\n      \"height\": 43,\n      \"center\": [\n        599,\n        290\n      ],\n      \"color\": [\n        192,\n        192,\n        192\n      ]\n    },\n    \"CPAC\": {\n      \"top_left\": [\n        746,\n        278\n      ],\n      \"bottom_right\": [\n        834,\n        325\n      ],\n      \"width\": 88,\n      \"height\": 47,\n      \"center\": [\n        790,\n        301\n      ],\n      \"color\": [\n        255,\n        255,\n        128\n      ]\n    },\n    \"Ethanol\": {\n      \"top_left\": [\n        642,\n        226\n      ],\n      \"bottom_right\": [\n        725,\n        265\n      ],\n      \"width\": 83,\n      \"height\": 39,\n      \"center\": [\n        683,\n        245\n      ],\n      \"color\": [\n        128,\n        255,\n        128\n      ]\n    }\n  }\n}"
  },
  {
    "path": "pyhamilton/ngs/tests/loading/loading_vis.py",
    "content": "# loading_vis.py\n\nimport json\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Dict, List, Optional, Tuple, Union\n\nimport cv2\nimport numpy as np\n\n\n\n\n\n# ------------------------- Example Usage -------------------------\n\nif __name__ == \"__main__\":\n    # Replace 'regions.json' with your file path, or pass the dict directly to LoadingVis(...)\n    json_path = \"deck_regions.json\"\n\n    vis = LoadingVis(json_path)\n\n    # Selectively render only these overlays (case-insensitive keys):\n    vessels = [\n        ReagentVessel(\"RGT_60mL_0001\"),\n        ReagentVessel(\"Rgt_60mL_0002\", label=\"Buffer A\"),\n        ReagentVessel(\"Rgt_60mL_0005\", override_color_bgr=(0, 128, 255)),\n        ReagentVessel(\"CPAC\"),\n        ReagentVessel(\"Ethanol\"),\n        # ReagentVessel(\"does_not_exist\")  # silently skipped\n    ]\n\n    img = vis.render(vessels, alpha=0.4, draw_labels=True)\n    vis.show(img, scale=0.75, wait_ms=0)\n    # vis.save(img, \"out/selection.png\")\n"
  },
  {
    "path": "pyhamilton/ngs/tests/log/hamilton.log",
    "content": "[2025-07-27 23:03:16,526] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:03:16,526] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:03:16,526] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:03:16,526] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:03:16,530] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:03:17,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:03:17,061] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,064] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:03:17,066] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,070] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:03:17,072] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,074] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:03:17,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,079] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:03:17,082] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,085] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:03:17,087] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,090] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:03:17,093] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,095] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:03:17,098] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,101] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:03:17,104] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,106] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:03:17,109] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:03:17,113] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,116] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:03:17,118] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:03:17,119] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:03:17,119] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:03:17,219] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:03:17,225] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:03:17,226] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:05:40,553] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:05:40,554] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:05:40,554] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:05:40,554] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:05:40,557] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:05:41,064] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:05:41,066] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,070] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:05:41,072] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,074] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:05:41,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,078] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:05:41,080] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,082] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:05:41,084] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,087] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:05:41,089] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,091] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:05:41,093] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,095] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:05:41,097] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,099] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:05:41,101] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,103] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:05:41,105] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,107] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:05:41,109] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:05:41,112] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:05:41,113] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:05:41,113] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:05:41,213] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:05:41,220] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:05:41,220] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:07:20,330] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:07:20,330] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:07:20,330] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:07:20,331] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:07:20,334] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:07:21,005] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:07:21,008] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,011] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:07:21,013] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,015] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:07:21,017] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,022] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:07:21,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,027] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:07:21,029] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,032] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:07:21,034] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,038] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:07:21,041] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,043] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:07:21,045] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,048] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:07:21,051] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,055] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:07:21,057] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,060] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:07:21,062] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,065] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:07:21,067] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:07:21,067] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:07:21,068] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:07:21,168] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:07:21,174] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:07:21,174] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:08:23,415] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:08:23,415] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:08:23,415] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:08:23,416] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:08:23,419] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:08:23,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:08:23,976] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:23,978] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:08:23,981] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:23,983] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:08:23,986] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:23,988] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:08:23,990] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:23,993] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:08:23,995] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:23,997] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:08:24,000] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:24,002] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:08:24,005] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:24,008] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:08:24,010] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:24,013] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:08:24,015] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:24,017] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:08:24,020] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:24,023] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:08:24,025] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:24,028] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:08:24,030] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:24,030] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:08:24,030] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:08:24,131] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:08:24,138] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:08:24,139] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:08:36,625] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:08:36,625] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:08:36,625] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:08:36,625] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:08:36,629] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:08:37,141] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:08:37,143] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,147] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:08:37,149] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,151] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:08:37,153] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,155] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:08:37,157] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,160] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:08:37,162] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,164] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:08:37,166] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:08:37,171] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,173] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:08:37,175] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,178] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:08:37,180] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,182] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:08:37,184] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,187] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:08:37,189] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,192] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:08:37,193] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:08:37,194] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:08:37,194] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:08:37,294] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:08:37,299] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:08:37,299] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:09:18,416] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:09:18,416] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:09:18,417] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:09:18,417] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:09:18,420] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:09:18,927] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:09:18,929] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,932] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:09:18,934] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,938] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:09:18,940] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,943] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:09:18,945] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,947] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:09:18,949] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,952] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:09:18,954] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,956] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:09:18,958] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,961] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:09:18,963] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,965] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:09:18,967] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,969] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:09:18,971] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:09:18,975] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,978] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:09:18,979] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:18,979] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:09:18,980] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:09:19,080] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:09:19,086] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:09:19,086] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:09:51,868] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:09:51,868] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:09:51,868] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:09:51,868] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:09:51,873] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:09:52,433] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:09:52,437] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,440] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:09:52,443] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,446] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:09:52,448] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,451] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:09:52,455] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,458] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:09:52,461] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,464] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:09:52,467] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:09:52,474] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,477] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:09:52,479] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,482] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:09:52,485] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,488] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:09:52,492] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,495] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:09:52,498] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,500] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:09:52,504] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:09:52,504] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:09:52,504] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:09:52,605] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:09:52,611] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:09:52,611] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:10:38,146] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:10:38,147] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:10:38,147] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:10:38,147] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:10:38,150] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:10:38,685] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:10:38,688] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,691] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:10:38,693] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,696] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:10:38,699] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,701] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:10:38,704] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,707] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:10:38,710] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:10:38,717] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,720] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:10:38,723] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,726] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:10:38,729] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,732] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:10:38,735] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,738] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:10:38,741] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,744] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:10:38,746] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,749] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:10:38,752] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:10:38,752] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:10:38,752] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:10:38,852] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:10:38,857] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:10:38,857] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:10:59,597] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:10:59,597] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:10:59,598] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:10:59,598] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:10:59,602] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:11:00,128] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:11:00,131] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,134] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:11:00,135] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,138] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:11:00,141] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,143] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:11:00,145] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,148] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:11:00,150] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,153] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:11:00,156] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,159] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:11:00,161] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,164] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:11:00,166] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:11:00,172] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,174] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:11:00,176] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,178] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:11:00,180] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,182] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:11:00,184] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:00,185] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:11:00,185] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:11:00,286] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:11:00,293] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:11:00,293] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:11:18,474] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:11:18,474] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:11:18,474] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:11:18,474] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:11:18,478] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:11:19,006] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:11:19,009] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,011] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:11:19,014] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,016] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:11:19,018] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,021] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:11:19,023] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,026] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:11:19,028] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,030] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:11:19,033] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,035] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:11:19,037] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,040] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:11:19,042] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,045] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:11:19,047] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,049] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:11:19,052] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,055] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:11:19,058] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,060] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:11:19,062] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:19,063] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:11:19,063] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:11:19,163] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:11:19,170] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:11:19,170] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:11:37,205] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:11:37,206] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:11:37,206] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:11:37,206] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:11:37,209] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:11:37,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:11:37,716] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,719] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:11:37,723] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,726] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:11:37,729] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,732] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:11:37,735] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,739] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:11:37,742] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,745] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:11:37,748] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,751] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:11:37,754] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,758] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:11:37,761] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,763] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:11:37,767] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,769] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:11:37,773] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,775] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:11:37,779] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,781] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:11:37,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:11:37,785] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:11:37,785] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:11:37,885] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:11:37,891] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:11:37,891] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:13:55,733] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:13:55,734] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:13:55,734] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:13:55,734] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:13:55,738] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:13:56,359] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:13:56,363] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,366] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:13:56,369] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,373] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:13:56,377] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,380] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:13:56,386] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,389] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:13:56,394] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,397] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:13:56,401] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,404] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:13:56,409] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,412] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:13:56,416] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,419] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:13:56,423] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,426] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:13:56,432] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,435] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:13:56,441] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,444] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:13:56,449] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:13:56,449] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:13:56,449] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:13:56,550] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:13:56,558] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:13:56,558] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:15:20,761] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:15:20,761] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:15:20,761] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:15:20,761] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:15:20,764] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:15:21,322] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:15:21,327] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,329] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:15:21,333] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,336] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:15:21,341] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,345] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:15:21,353] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,356] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:15:21,363] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,367] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:15:21,373] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,375] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:15:21,383] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,387] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:15:21,390] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,393] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:15:21,400] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,404] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:15:21,409] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,411] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:15:21,418] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,423] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:15:21,430] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:15:21,431] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:15:21,431] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:15:21,531] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:15:21,537] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:15:21,537] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:16:07,711] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:16:07,711] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:16:07,712] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:16:07,712] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:16:07,714] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:16:08,243] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:16:08,249] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,253] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[2025-07-27 23:16:08,257] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,260] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[2025-07-27 23:16:08,265] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,268] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[2025-07-27 23:16:08,274] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,276] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[2025-07-27 23:16:08,280] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,285] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[2025-07-27 23:16:08,291] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,295] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[2025-07-27 23:16:08,300] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,304] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[2025-07-27 23:16:08,308] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,312] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[2025-07-27 23:16:08,317] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,321] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[2025-07-27 23:16:08,326] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,329] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[2025-07-27 23:16:08,337] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,341] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[2025-07-27 23:16:08,349] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:16:08,349] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:16:08,349] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:16:08,450] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:16:08,456] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:16:08,458] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:17:17,054] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:17:17,054] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:17:17,054] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:17:17,054] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:17:17,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:17:17,594] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[2025-07-27 23:17:17,594] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:17:17,595] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:17:17,695] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:17:17,701] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:17:17,702] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:18:31,851] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:18:31,852] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:18:31,852] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:18:31,852] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:18:31,856] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:18:32,398] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[2025-07-27 23:18:32,399] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:18:32,399] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:18:32,500] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:18:32,504] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:18:32,504] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:18:58,015] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:18:58,016] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:18:58,016] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:18:58,016] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:18:58,020] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:18:58,585] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[2025-07-27 23:18:58,586] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:18:58,586] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:18:58,687] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:18:58,692] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:18:58,693] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:19:35,761] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:19:35,761] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:19:35,761] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:19:35,762] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:19:35,765] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:19:36,298] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:19:36,300] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:19:36,300] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:19:36,401] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:19:36,406] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:19:36,407] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:20:38,907] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:20:38,907] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:20:38,907] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:20:38,907] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:20:38,910] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:20:39,434] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:20:39,437] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:20:39,437] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:20:39,537] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:20:39,544] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:20:39,544] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:21:05,150] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:21:05,150] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:21:05,150] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:21:05,150] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:21:05,154] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:21:05,675] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:21:05,678] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:21:05,678] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:21:05,778] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:21:05,783] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:21:05,783] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:30:11,014] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:30:11,015] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:30:11,015] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:30:11,015] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:30:11,019] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:30:11,561] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:30:11,563] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:30:11,563] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:30:11,664] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:30:11,668] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:30:11,669] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:31:21,070] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:31:21,070] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:31:21,070] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:31:21,070] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:31:21,073] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:31:21,608] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:31:21,610] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:31:21,611] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:31:21,711] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:31:21,717] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:31:21,718] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:32:20,744] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:32:20,744] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:32:20,744] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:32:20,744] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:32:20,747] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:32:21,234] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:32:21,236] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:32:21,236] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:32:21,336] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:32:21,343] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:32:21,344] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:33:09,548] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:33:09,549] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:33:09,549] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:33:09,549] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:33:09,552] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:33:10,122] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:33:10,124] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:33:10,124] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:33:10,225] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:33:10,232] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:33:10,232] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:34:11,945] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:34:11,945] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:34:11,945] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:34:11,945] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:34:11,949] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:34:12,453] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:34:12,455] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:34:12,456] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:34:12,556] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:34:12,563] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:34:12,564] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:34:35,083] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:34:35,084] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:34:35,084] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:34:35,084] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:34:35,088] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:34:35,599] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[2025-07-27 23:34:35,601] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:34:35,601] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:34:35,701] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:34:35,710] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:34:35,710] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:35:55,456] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:35:55,456] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:35:55,456] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:35:55,456] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:35:55,459] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:35:55,983] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:55,989] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:55,992] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:55,998] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,001] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,006] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,009] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,015] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,019] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,028] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,033] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,036] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,042] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,045] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,051] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,054] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,059] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,063] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,068] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,072] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,077] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,080] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:35:56,085] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:35:56,086] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:35:56,086] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:35:56,186] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:35:56,193] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:35:56,193] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:36:43,240] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:36:43,240] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:36:43,240] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:36:43,240] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:36:43,243] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-27 23:36:43,748] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,762] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,768] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,783] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,788] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,799] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,803] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,813] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,817] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,827] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,831] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,840] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,844] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,854] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,858] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,869] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,873] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,883] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,888] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,899] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,903] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,914] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,918] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-27 23:36:43,930] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-27 23:36:43,931] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:36:43,931] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:36:44,032] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-27 23:36:44,038] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:36:44,039] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:47:37,096] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:47:37,098] pyhamilton.interface INFO running in simulation mode\n[2025-07-28 09:47:37,098] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:47:37,098] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:39,931] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:39,943] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:39,955] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:39,966] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:39,976] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:39,988] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:40,000] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:40,013] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:40,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:40,036] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:40,048] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:47:40,061] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-28 09:47:40,061] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:47:40,061] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:47:40,162] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 09:47:40,173] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:47:40,173] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:53:31,921] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:53:31,922] pyhamilton.interface INFO running in simulation mode\n[2025-07-28 09:53:31,922] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:53:31,922] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,473] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,486] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,499] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,511] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,526] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,540] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,554] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,565] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,576] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,602] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:53:32,613] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-28 09:53:32,613] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:53:32,613] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:53:32,714] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 09:53:32,720] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:53:32,721] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:54:08,342] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:54:08,342] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 09:54:08,342] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:54:08,342] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,041] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,053] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,064] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,089] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,103] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,116] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,128] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,143] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,159] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,174] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:54:09,189] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-28 09:54:09,189] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:54:09,189] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:54:09,290] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 09:54:09,299] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:54:09,299] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:55:06,841] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:55:06,842] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 09:55:06,842] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:55:06,842] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,541] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,554] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,570] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,583] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,594] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,607] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,624] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,640] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,655] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,667] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,679] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[2025-07-28 09:55:07,690] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-28 09:55:07,691] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:55:07,691] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:55:07,791] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 09:55:07,798] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:55:07,798] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:55:50,102] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:55:50,102] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 09:55:50,103] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:55:50,104] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-28 09:56:19,507] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:56:19,693] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:56:19,794] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 09:56:19,804] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:56:19,805] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:59:48,451] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:59:48,451] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 09:59:48,452] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:59:48,452] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 09:59:48,460] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[2025-07-28 09:59:53,611] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-28 10:00:13,653] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:00:15,155] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:00:15,155] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:00:15,256] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:00:15,264] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:00:15,265] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:05:47,434] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:05:47,434] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:05:47,435] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:05:47,435] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-28 10:05:52,480] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:05:53,981] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:05:53,982] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:05:54,083] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:05:54,090] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:05:54,090] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:17:04,901] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:17:04,902] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:17:04,902] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:17:04,902] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-28 10:17:10,065] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:17:11,566] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:17:11,566] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:17:11,667] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:17:11,675] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:17:11,676] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:18:37,683] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:18:37,683] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:18:37,684] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:18:37,684] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-28 10:18:43,065] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:18:44,566] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:18:44,567] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:18:44,667] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:18:44,676] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:18:44,677] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:19:53,032] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:19:53,034] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:19:53,034] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:19:53,035] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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\n[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}\n[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}\n[2025-07-28 10:20:03,467] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-28 10:20:09,542] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-28 10:20:18,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-28 10:20:24,634] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-28 10:20:31,686] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[2025-07-28 10:20:37,712] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:20:37,870] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:20:37,971] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:20:37,981] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:20:37,981] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:26:11,390] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:26:11,390] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:26:11,391] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:26:11,391] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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\n[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}\n[2025-07-28 10:26:19,187] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:26:19,362] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:26:19,463] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:26:19,469] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:26:19,470] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:26:54,220] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:26:54,220] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:26:54,220] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:26:54,221] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:26:54,221] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:26:55,722] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:26:55,723] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:26:55,823] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:26:55,835] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:26:55,835] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:47:47,435] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:47:47,436] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:47:47,436] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:47:47,436] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:47:47,438] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:47:48,939] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:47:48,940] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:47:49,042] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:47:49,049] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:47:49,049] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:48:47,275] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:48:47,276] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:48:47,276] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:48:47,276] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:48:47,742] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-07-28 10:48:48,744] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:48:50,246] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:48:50,246] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:48:50,347] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:48:50,355] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:48:50,355] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:51:26,113] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:51:26,114] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:51:26,114] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:51:26,114] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:51:26,500] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-07-28 10:51:28,503] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:51:30,003] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:51:30,004] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:51:30,104] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:51:30,113] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:51:30,113] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:57:01,747] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:57:01,747] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:57:01,747] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:57:01,747] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:57:02,125] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[2025-07-28 10:57:04,127] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:57:05,628] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:57:05,629] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:57:05,730] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:57:05,737] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:57:05,738] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:58:11,948] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:58:11,948] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:58:11,949] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:58:11,949] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:58:12,338] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[2025-07-28 10:58:17,343] pyhamilton.interface INFO tip_eject_96: Eject tips to default waste\n[2025-07-28 10:58:18,346] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:58:19,847] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:58:19,847] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:58:19,948] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 10:58:19,956] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:58:19,956] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:06:39,386] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 11:06:39,386] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 11:06:39,387] pyhamilton.interface INFO started the server thread\n[2025-07-28 11:06:39,387] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 11:06:39,387] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 11:06:40,888] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 11:06:40,889] pyhamilton.interface INFO disconnected from server\n[2025-07-28 11:06:40,989] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 11:06:41,002] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 11:06:41,002] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:08:02,704] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 11:08:02,705] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 11:08:02,705] pyhamilton.interface INFO started the server thread\n[2025-07-28 11:08:02,705] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 11:08:02,707] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 11:08:04,208] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 11:08:04,209] pyhamilton.interface INFO disconnected from server\n[2025-07-28 11:08:04,310] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 11:08:04,322] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 11:08:04,322] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:09:00,005] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 11:09:00,006] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 11:09:00,007] pyhamilton.interface INFO started the server thread\n[2025-07-28 11:09:00,008] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 11:09:00,666] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[2025-07-28 11:09:02,670] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 11:09:04,171] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 11:09:04,171] pyhamilton.interface INFO disconnected from server\n[2025-07-28 11:09:04,271] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 11:09:04,284] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 11:09:04,284] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:10:34,793] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 11:10:34,793] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 11:10:34,794] pyhamilton.interface INFO started the server thread\n[2025-07-28 11:10:34,794] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 11:10:35,418] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[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}\n[2025-07-28 11:10:41,426] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 11:10:42,927] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 11:10:42,927] pyhamilton.interface INFO disconnected from server\n[2025-07-28 11:10:43,028] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 11:10:43,042] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 11:10:43,042] pyhamilton.interface INFO server thread exited\n[2025-07-28 12:17:14,301] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 12:17:14,302] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 12:17:14,302] pyhamilton.interface INFO started the server thread\n[2025-07-28 12:17:14,302] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 12:17:14,893] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[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}\n[2025-07-28 12:17:20,900] pyhamilton.interface INFO tip_eject_96: Eject tips to default waste\n[2025-07-28 12:17:21,902] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 12:17:23,403] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 12:17:23,403] pyhamilton.interface INFO disconnected from server\n[2025-07-28 12:17:23,504] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 12:17:23,512] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 12:17:23,512] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:14:58,666] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:14:58,667] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:14:58,667] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:14:58,668] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:14:59,670] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:15:01,171] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:15:01,171] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:15:01,272] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:15:01,284] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:15:01,285] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:19:40,797] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:19:40,798] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:19:40,798] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:19:40,798] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:19:41,799] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:19:43,300] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:19:43,301] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:19:43,402] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:19:43,407] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:19:43,407] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:22:34,592] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:22:34,592] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:22:34,592] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:22:34,592] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:22:35,594] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:22:37,095] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:22:37,095] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:22:37,196] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:22:37,205] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:22:37,205] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:23:37,045] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:23:37,046] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:23:37,046] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:23:37,046] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:23:38,048] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:23:39,549] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:23:39,550] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:23:39,650] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:23:39,656] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:23:39,657] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:32:10,355] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:32:10,355] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:32:10,356] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:32:10,356] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:32:11,358] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:32:12,859] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:32:12,860] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:32:12,961] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:32:12,969] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:32:12,969] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:41:48,131] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:41:48,131] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:41:48,132] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:41:48,132] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:41:49,134] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:41:50,635] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:41:50,636] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:41:50,736] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:41:50,744] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:41:50,744] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:43:02,619] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:43:02,621] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:43:02,621] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:43:02,622] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:43:03,625] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:43:05,126] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:43:05,127] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:43:05,228] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:43:05,239] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:43:05,240] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:44:35,269] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:44:35,270] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:44:35,270] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:44:35,271] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:44:36,273] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:44:37,774] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:44:37,775] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:44:37,875] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:44:37,886] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:44:37,887] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:59:44,318] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:59:44,319] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:59:44,319] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:59:44,319] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:59:45,321] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:59:46,823] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:59:46,824] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:59:46,925] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 13:59:46,937] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:59:46,938] pyhamilton.interface INFO server thread exited\n[2025-07-28 14:11:33,012] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 14:11:33,012] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 14:11:33,013] pyhamilton.interface INFO started the server thread\n[2025-07-28 14:11:33,013] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 14:11:34,016] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 14:11:35,516] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 14:11:35,517] pyhamilton.interface INFO disconnected from server\n[2025-07-28 14:11:35,618] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 14:11:35,631] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 14:11:35,631] pyhamilton.interface INFO server thread exited\n[2025-07-28 14:45:37,566] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 14:45:37,568] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 14:45:37,568] pyhamilton.interface INFO started the server thread\n[2025-07-28 14:45:37,569] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 14:45:38,572] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 14:45:40,073] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 14:45:40,073] pyhamilton.interface INFO disconnected from server\n[2025-07-28 14:45:40,174] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 14:45:40,184] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 14:45:40,185] pyhamilton.interface INFO server thread exited\n[2025-07-28 14:50:41,782] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 14:50:41,782] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 14:50:41,782] pyhamilton.interface INFO started the server thread\n[2025-07-28 14:50:41,782] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 14:50:45,786] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 14:50:47,288] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 14:50:47,288] pyhamilton.interface INFO disconnected from server\n[2025-07-28 14:50:47,388] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-28 14:50:47,397] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 14:50:47,398] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:54:22,433] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:54:22,434] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:54:22,434] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:54:22,434] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:54:22,946] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:54:22,946] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:54:23,047] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 12:54:23,058] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:54:23,059] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:55:16,188] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:55:16,188] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:55:16,188] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:55:16,188] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:55:16,693] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:55:16,693] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:55:16,794] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 12:55:16,800] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:55:16,800] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:55:36,988] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:55:36,989] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:55:36,989] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:55:36,989] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:55:37,507] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:55:37,508] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:55:37,608] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 12:55:37,615] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:55:37,615] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:56:03,848] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:56:03,848] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:56:03,848] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:56:03,848] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:56:04,357] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:56:04,357] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:56:04,458] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 12:56:04,464] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:56:04,464] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:56:55,212] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:56:55,212] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:56:55,212] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:56:55,212] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:56:55,713] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:56:55,714] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:56:55,814] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 12:56:55,820] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:56:55,820] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:21:04,947] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:21:04,947] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:21:04,947] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:21:04,947] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-29 14:21:05,663] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:21:05,664] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:21:05,765] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:21:05,772] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:21:05,772] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:22:29,529] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:22:29,529] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:22:29,529] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:22:29,529] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-29 14:22:30,299] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:22:30,299] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:22:30,400] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:22:30,407] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:22:30,407] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:25:30,908] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:25:30,908] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:25:30,908] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:25:30,908] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-29 14:25:31,570] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:25:31,571] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:25:31,671] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:25:31,678] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:25:31,678] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:26:02,540] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:26:02,540] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:26:02,540] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:26:02,540] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-29 14:26:03,173] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:26:03,173] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:26:03,274] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:26:03,280] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:26:03,280] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:27:43,468] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:27:43,468] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:27:43,468] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:27:43,468] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 14:27:44,242] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:27:44,242] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:27:44,342] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:27:44,348] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:27:44,349] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:28:35,380] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:28:35,381] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:28:35,381] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:28:35,381] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 14:28:36,261] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,263] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,264] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,265] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,266] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,267] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:28:36,337] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,338] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,340] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,341] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,342] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,343] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 14:28:36,344] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:28:36,344] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:28:36,444] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:28:36,452] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:28:36,452] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:32:53,249] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:32:53,249] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:32:53,250] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:32:53,250] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-29 14:32:53,929] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:32:53,929] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:32:54,030] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:32:54,036] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:32:54,037] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:33:55,295] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:33:55,295] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:33:55,295] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:33:55,295] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-29 14:33:55,926] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:33:55,926] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:33:56,027] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:33:56,033] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:33:56,033] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:35:00,021] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:35:00,021] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:35:00,021] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:35:00,021] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 14:35:00,776] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,780] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,787] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,789] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,792] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:35:00,865] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,868] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,869] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,871] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,873] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,875] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 14:35:00,875] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:35:00,875] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:35:00,976] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:35:00,984] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:35:00,984] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:35:19,886] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:35:19,886] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:35:19,886] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:35:19,887] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 14:35:20,585] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,587] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,592] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,593] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,595] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:35:20,669] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,671] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,674] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,676] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,678] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,680] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 14:35:20,680] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:35:20,680] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:35:20,781] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:35:20,788] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:35:20,788] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:36:07,695] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:36:07,695] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:36:07,695] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:36:07,695] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 14:36:08,545] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,548] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,551] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,553] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,556] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,558] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:36:08,622] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,624] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,626] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,627] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,629] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,631] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 14:36:08,631] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:36:08,631] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:36:08,732] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:36:08,740] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:36:08,740] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:41:06,704] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:41:06,704] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:41:06,704] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:41:06,704] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,487] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,558] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,620] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,681] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,744] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,803] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,863] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,922] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:07,981] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:08,040] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:08,102] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:08,175] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 14:41:08,175] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:41:08,175] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:41:08,276] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:41:08,283] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:41:08,283] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:41:18,727] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:41:18,727] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:41:18,727] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:41:18,728] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,450] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,519] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,649] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,710] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,774] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,837] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,897] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:19,960] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:20,023] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:20,085] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 14:41:20,153] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 14:41:20,153] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:41:20,153] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:41:20,254] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 14:41:20,264] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:41:20,264] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:15:29,998] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:15:29,999] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:15:29,999] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:15:29,999] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 15:15:36,358] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:15:42,468] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:15:56,620] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 15:15:58,584] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:15:59,167] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:15:59,268] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 15:15:59,280] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:15:59,280] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:18:18,079] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:18:18,079] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:18:18,079] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:18:18,080] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 15:18:25,228] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:18:31,335] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[2025-07-29 15:18:41,940] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:18:42,143] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:18:42,244] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 15:18:42,252] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:18:42,252] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:20:01,549] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:20:01,550] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:20:01,550] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:20:01,550] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-07-29 15:20:07,644] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:20:14,780] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:20:20,980] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:20:38,149] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[2025-07-29 15:20:44,075] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:20:44,270] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:20:44,371] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 15:20:44,382] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:20:44,383] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:23:09,602] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:23:09,602] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:23:09,602] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:23:09,603] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[2025-07-29 15:23:14,788] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:23:16,290] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-29 15:23:16,290] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:23:16,390] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 15:23:16,397] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:23:16,398] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:23:50,333] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:23:50,333] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:23:50,333] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:23:50,333] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-29 15:23:51,421] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:23:52,922] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-29 15:23:52,922] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:23:53,023] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-07-29 15:23:53,029] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:23:53,029] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:25:17,966] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:25:17,967] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:25:17,968] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:25:17,969] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-29 15:26:08,239] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 15:26:11,242] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:26:12,743] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-29 15:26:12,744] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:26:12,845] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:49:58,853] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 14:49:58,854] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 14:49:58,854] pyhamilton.interface INFO started the server thread\n[2025-08-04 14:49:58,854] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 14:49:59,638] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 14:49:59,640] pyhamilton.interface INFO disconnected from server\n[2025-08-04 14:49:59,741] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 14:49:59,746] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 14:49:59,747] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:50:29,597] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 14:50:29,597] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 14:50:29,597] pyhamilton.interface INFO started the server thread\n[2025-08-04 14:50:29,597] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-08-04 14:50:30,223] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:30,466] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:30,709] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:30,954] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:31,193] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:31,652] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:32,534] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:33,452] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:34,318] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:35,141] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:36,232] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 14:50:38,655] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-04 14:50:38,656] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 14:50:38,656] pyhamilton.interface INFO disconnected from server\n[2025-08-04 14:50:38,756] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 14:50:38,766] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 14:50:38,766] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:55:35,655] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 14:55:35,655] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 14:55:35,655] pyhamilton.interface INFO started the server thread\n[2025-08-04 14:55:35,655] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 14:55:35,685] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 14:55:35,685] pyhamilton.interface INFO disconnected from server\n[2025-08-04 14:55:35,786] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 14:55:35,790] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 14:55:35,791] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:58:16,358] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 14:58:16,359] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 14:58:16,359] pyhamilton.interface INFO started the server thread\n[2025-08-04 14:58:16,359] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 14:58:16,381] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 14:58:16,381] pyhamilton.interface INFO disconnected from server\n[2025-08-04 14:58:16,482] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 14:58:16,487] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 14:58:16,487] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:01:20,151] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:01:20,151] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:01:20,151] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:01:20,151] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:01:20,172] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:01:20,173] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:01:20,274] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 15:01:20,281] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:01:20,281] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:05:44,983] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:05:44,983] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:05:44,983] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:05:44,983] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:05:45,003] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:05:45,004] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:05:45,105] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 15:05:45,112] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:05:45,113] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:07:18,431] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:07:18,431] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:07:18,432] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:07:18,432] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:07:18,455] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:07:18,456] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:07:18,556] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 15:07:18,561] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:07:18,561] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:08:40,504] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:08:40,504] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:08:40,504] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:08:40,504] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:08:40,521] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:08:40,522] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:08:40,622] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 15:08:40,629] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:08:40,629] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:10:39,764] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:10:39,764] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:10:39,764] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:10:39,765] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:10:39,788] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:10:39,789] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:10:39,890] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 15:10:39,896] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:10:39,896] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:12:11,109] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:12:11,110] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:12:11,110] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:12:11,110] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:12:11,111] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:12:11,111] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:12:11,212] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:12:58,291] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:12:58,291] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:12:58,291] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:12:58,291] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-08-04 15:12:59,191] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:12:59,485] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:12:59,939] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:00,489] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:00,972] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:01,497] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:01,996] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:02,470] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:02,998] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:03,471] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:04,001] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:13:04,559] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-04 15:13:04,560] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:13:04,560] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:13:04,660] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 15:13:04,667] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:13:04,668] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:16:58,433] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:16:58,434] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:16:58,434] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:16:58,434] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-08-04 15:16:59,303] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:16:59,751] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:00,281] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:00,840] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:01,392] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:01,960] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:02,441] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:02,943] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:03,442] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:03,926] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:04,413] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-04 15:17:04,964] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-04 15:17:04,964] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:17:04,965] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:17:05,065] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-04 15:17:05,074] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:17:05,074] pyhamilton.interface INFO server thread exited\n[2025-08-05 14:34:38,900] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 14:34:38,901] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18071e8c723f')\n[2025-08-05 14:34:38,901] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 14:34:38,901] pyhamilton.interface INFO started the server thread\n[2025-08-05 14:34:38,901] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-08-05 14:35:47,522] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 14:35:49,023] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 14:35:49,023] pyhamilton.interface INFO disconnected from server\n[2025-08-05 14:35:49,124] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-05 14:35:49,131] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 14:35:49,131] pyhamilton.interface INFO server thread exited\n[2025-08-05 14:46:36,523] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 14:46:36,524] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x180749528583')\n[2025-08-05 14:46:36,524] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 14:46:36,525] pyhamilton.interface INFO started the server thread\n[2025-08-05 14:46:36,525] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-08-05 14:47:52,159] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[2025-08-05 14:48:17,885] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 14:48:19,386] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 14:48:19,386] pyhamilton.interface INFO disconnected from server\n[2025-08-05 14:48:19,487] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-05 14:48:19,494] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 14:48:19,494] pyhamilton.interface INFO server thread exited\n[2025-08-05 14:52:51,797] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 14:52:51,798] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18075f54f850')\n[2025-08-05 14:52:51,798] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 14:52:51,798] pyhamilton.interface INFO started the server thread\n[2025-08-05 14:52:51,798] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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\n[2025-08-05 14:53:21,732] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 14:53:23,232] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 14:53:23,233] pyhamilton.interface INFO disconnected from server\n[2025-08-05 14:53:23,333] pyhamilton.interface INFO server thread exited\n[2025-08-05 14:57:14,890] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 14:57:14,890] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18076f5f5689')\n[2025-08-05 14:57:14,890] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 14:57:14,890] pyhamilton.interface INFO started the server thread\n[2025-08-05 14:57:14,890] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[2025-08-05 14:58:04,693] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 14:58:53,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 14:59:44,861] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:00:33,949] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:01:25,041] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 15:01:26,542] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 15:01:26,543] pyhamilton.interface INFO disconnected from server\n[2025-08-05 15:01:26,643] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-05 15:01:26,650] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 15:01:26,650] pyhamilton.interface INFO server thread exited\n[2025-08-05 15:11:22,982] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 15:11:22,983] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1807a1af02ad')\n[2025-08-05 15:11:22,983] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 15:11:22,984] pyhamilton.interface INFO started the server thread\n[2025-08-05 15:11:22,984] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-08-05 15:11:34,507] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 15:11:36,009] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 15:11:36,009] pyhamilton.interface INFO disconnected from server\n[2025-08-05 15:11:36,110] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-05 15:11:36,121] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 15:11:36,121] pyhamilton.interface INFO server thread exited\n[2025-08-05 15:13:16,486] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 15:13:16,486] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1807a891838d')\n[2025-08-05 15:13:16,486] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 15:13:16,487] pyhamilton.interface INFO started the server thread\n[2025-08-05 15:13:16,487] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-08-05 15:13:54,102] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:14:49,190] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:15:46,294] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:16:37,377] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:17:33,463] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:18:45,609] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:19:58,748] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-05 15:20:25,476] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 15:20:25,654] pyhamilton.interface INFO disconnected from server\n[2025-08-05 15:20:25,754] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-05 15:20:25,763] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 15:20:25,764] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:48:21,590] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:48:21,591] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b6d4ea40b')\n[2025-08-06 14:48:21,591] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:48:21,592] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:48:21,592] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:48:22,593] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:48:24,095] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:48:24,095] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:48:24,196] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 14:48:24,205] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:48:24,205] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:49:11,009] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:49:11,010] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b7040ab90')\n[2025-08-06 14:49:11,010] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:49:11,011] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:49:11,011] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:49:13,014] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:49:14,515] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:49:14,515] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:49:14,616] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 14:49:14,621] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:49:14,621] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:50:02,884] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:50:02,884] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b73678595')\n[2025-08-06 14:50:02,884] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:50:02,884] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:50:02,884] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:50:05,887] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:50:07,389] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:50:07,389] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:50:07,490] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 14:50:07,502] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:50:07,502] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:51:48,477] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:51:48,477] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b79b2b706')\n[2025-08-06 14:51:48,478] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:51:48,478] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:51:48,478] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:52:03,487] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:52:04,988] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:52:04,989] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:52:05,089] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 14:52:05,099] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:52:05,099] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:54:53,056] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:54:53,056] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b84b33288')\n[2025-08-06 14:54:53,056] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:54:53,057] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:54:53,057] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:55:07,064] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:55:08,565] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:55:08,565] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:55:08,666] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 14:55:08,677] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:55:08,678] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:58:40,874] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:58:40,874] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b92199482')\n[2025-08-06 14:58:40,874] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:58:40,875] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:58:40,875] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:58:42,877] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:58:44,378] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:58:44,379] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:58:44,480] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 14:58:44,488] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:58:44,488] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:01:17,018] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:01:17,019] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b9b95e3b0')\n[2025-08-06 15:01:17,019] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:01:17,019] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:01:17,020] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:01:19,023] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:01:20,524] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:01:20,524] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:01:20,625] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:01:20,632] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:01:20,632] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:05:18,688] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:05:18,688] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181ba9fda420')\n[2025-08-06 15:05:18,688] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:05:18,688] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:05:18,689] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:05:20,691] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:05:22,192] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:05:22,193] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:05:22,293] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:05:22,300] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:05:22,300] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:07:27,744] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:07:27,744] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bb1627fc3')\n[2025-08-06 15:07:27,744] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:07:27,745] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:07:27,745] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:07:29,747] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:07:31,248] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:07:31,248] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:07:31,348] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:07:31,354] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:07:31,354] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:08:38,623] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:08:38,623] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bb5e82607')\n[2025-08-06 15:08:38,623] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:08:38,623] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:08:38,624] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:08:41,627] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:08:43,128] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:08:43,129] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:08:43,230] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:08:43,239] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:08:43,239] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:09:56,162] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:09:56,163] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bba8770ad')\n[2025-08-06 15:09:56,163] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:09:56,163] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:09:56,163] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:09:59,165] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:10:00,666] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:10:00,666] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:10:00,767] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:10:00,779] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:10:00,779] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:12:38,219] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:12:38,220] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bc42fdfc1')\n[2025-08-06 15:12:38,221] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:12:38,221] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:12:38,222] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:12:40,225] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:12:41,727] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:12:41,728] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:12:41,829] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:12:41,839] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:12:41,839] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:14:31,897] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:14:31,898] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bcb061f4f')\n[2025-08-06 15:14:31,898] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:14:31,899] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:14:31,899] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:14:33,902] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:14:35,403] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:14:35,403] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:14:35,504] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:14:35,511] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:14:35,512] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:16:33,404] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:16:33,404] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bd2442240')\n[2025-08-06 15:16:33,405] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:16:33,405] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:16:33,405] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:16:39,408] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 5 sec while waiting for response id 0x181bd3ab5fe6')\n[2025-08-06 15:16:39,408] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:16:40,909] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:16:40,909] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:16:41,010] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:16:41,020] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:16:41,020] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:18:28,295] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:18:28,297] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bd90df881')\n[2025-08-06 15:18:28,297] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:18:28,298] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:18:28,298] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:18:43,305] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:18:44,811] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:18:44,811] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:18:44,912] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:18:44,920] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:18:44,920] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:20:38,209] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:20:38,209] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181be0cc5705')\n[2025-08-06 15:20:38,210] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:20:38,210] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:20:38,210] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:21:03,222] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:21:04,723] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:21:04,724] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:21:04,825] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-06 15:21:04,834] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:21:04,835] pyhamilton.interface INFO server thread exited\n[2025-08-11 13:42:51,400] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 13:42:51,401] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f11b190ef')\n[2025-08-11 13:42:51,401] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 13:42:51,401] pyhamilton.interface INFO started the server thread\n[2025-08-11 13:42:51,401] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 13:43:25,405] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 30 sec while waiting for response id 0x187f19f513de')\n[2025-08-11 13:43:25,406] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 13:43:26,907] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 13:43:26,908] pyhamilton.interface INFO disconnected from server\n[2025-08-11 13:43:27,008] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 13:43:27,017] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 13:43:27,017] pyhamilton.interface INFO server thread exited\n[2025-08-11 13:44:28,340] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 13:44:28,341] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f1e1816d5')\n[2025-08-11 13:44:28,341] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 13:44:28,341] pyhamilton.interface INFO started the server thread\n[2025-08-11 13:44:28,341] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 13:45:15,368] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 13:45:16,869] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 13:45:16,869] pyhamilton.interface INFO disconnected from server\n[2025-08-11 13:45:16,971] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 13:45:16,979] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 13:45:16,979] pyhamilton.interface INFO server thread exited\n[2025-08-11 13:46:27,739] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 13:46:27,740] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f250799e3')\n[2025-08-11 13:46:27,740] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 13:46:27,740] pyhamilton.interface INFO started the server thread\n[2025-08-11 13:46:27,740] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 13:47:01,745] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 30 sec while waiting for response id 0x187f26da2968')\n[2025-08-11 13:47:01,746] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 13:47:03,247] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 13:47:03,248] pyhamilton.interface INFO disconnected from server\n[2025-08-11 13:47:03,349] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 13:47:03,365] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 13:47:03,366] pyhamilton.interface INFO server thread exited\n[2025-08-11 13:49:35,744] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 13:49:35,745] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f306a8336')\n[2025-08-11 13:49:35,746] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 13:49:35,746] pyhamilton.interface INFO started the server thread\n[2025-08-11 13:49:35,746] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 13:49:42,752] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 13:49:44,254] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 13:49:44,254] pyhamilton.interface INFO disconnected from server\n[2025-08-11 13:49:44,355] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 13:49:44,363] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 13:49:44,363] pyhamilton.interface INFO server thread exited\n[2025-08-11 14:54:49,039] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 14:54:49,040] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188019a8f3ae')\n[2025-08-11 14:54:49,040] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 14:54:49,040] pyhamilton.interface INFO started the server thread\n[2025-08-11 14:54:49,040] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 14:54:52,042] pyhamilton.interface INFO move_plate: Moving plate HSP_Pipette2 to HSP_ODTC\n[2025-08-11 14:55:36,079] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 14:55:37,580] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 14:55:37,580] pyhamilton.interface INFO disconnected from server\n[2025-08-11 14:55:37,681] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 14:55:37,687] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 14:55:37,688] pyhamilton.interface INFO server thread exited\n[2025-08-11 14:59:49,291] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 14:59:49,291] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18802b348991')\n[2025-08-11 14:59:49,292] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 14:59:49,292] pyhamilton.interface INFO started the server thread\n[2025-08-11 14:59:49,292] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 14:59:54,304] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 14:59:55,805] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 14:59:55,806] pyhamilton.interface INFO disconnected from server\n[2025-08-11 14:59:55,907] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 14:59:55,915] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 14:59:55,915] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:07:33,836] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:07:33,837] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880474fb20b')\n[2025-08-11 15:07:33,837] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:07:33,837] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:07:33,838] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:07:36,851] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:07:38,351] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:07:38,352] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:07:38,453] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:07:38,461] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:07:38,461] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:10:17,855] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:10:17,855] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188050d99c78')\n[2025-08-11 15:10:17,855] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:10:17,855] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:10:17,855] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:10:20,869] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:10:20,869] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:10:22,370] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:10:22,371] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:10:22,471] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:10:22,480] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:10:22,480] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:12:26,558] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:12:26,559] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188058a3e9ee')\n[2025-08-11 15:12:26,559] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:12:26,560] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:12:26,560] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:12:34,579] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:12:34,579] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:12:36,080] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:12:36,080] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:12:36,181] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:12:36,187] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:12:36,187] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:13:44,138] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:13:44,139] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18805d52e2d5')\n[2025-08-11 15:13:44,139] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:13:44,139] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:13:44,139] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:13:47,155] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:13:50,157] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:13:51,658] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:13:51,658] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:13:51,759] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:13:51,764] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:13:51,764] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:15:43,581] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:15:43,582] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880647189fd')\n[2025-08-11 15:15:43,582] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:15:43,582] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:15:43,582] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:15:48,603] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:15:50,604] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:15:52,105] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:15:52,106] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:15:52,206] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:15:52,219] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:15:52,220] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:18:14,255] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:18:14,256] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18806d4e2351')\n[2025-08-11 15:18:14,257] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:18:14,257] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:18:14,257] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:18:17,271] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:18:18,272] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:18:19,773] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:18:19,774] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:18:19,874] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:18:19,883] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:18:19,884] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:20:26,997] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:20:26,998] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18807537850f')\n[2025-08-11 15:20:26,999] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:20:26,999] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:20:26,999] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-08-11 15:20:33,006] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:20:34,507] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:20:34,507] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:20:34,608] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:20:34,619] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:20:34,620] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:29:00,035] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:29:00,035] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188093bc932b')\n[2025-08-11 15:29:00,035] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:29:00,036] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:29:00,036] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:29:04,040] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:29:04,040] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:29:05,541] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:29:05,542] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:29:05,643] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:29:05,651] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:29:05,651] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:30:47,349] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:30:47,350] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188099e4e911')\n[2025-08-11 15:30:47,350] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:30:47,351] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:30:47,351] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:30:51,355] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:30:51,356] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:30:52,859] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:30:52,860] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:30:52,961] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:30:52,973] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:30:52,974] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:32:19,742] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:32:19,743] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18809fc26e20')\n[2025-08-11 15:32:19,743] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:32:19,744] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:32:19,744] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:32:22,747] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:32:45,768] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:32:47,268] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:32:47,269] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:32:47,370] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:32:47,378] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:32:47,378] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:37:43,138] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:37:43,138] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880b2db3647')\n[2025-08-11 15:37:43,139] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:37:43,139] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:37:43,139] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:37:47,143] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:38:11,162] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:38:12,664] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:38:12,664] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:38:12,765] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 15:38:12,776] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:38:12,776] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:40:38,709] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:40:38,710] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880bcc8e6ee')\n[2025-08-11 15:40:38,710] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:40:38,711] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:40:38,711] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:40:42,716] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:41:20,735] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:41:22,236] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:41:22,237] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:41:22,338] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:59:59,035] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:59:59,035] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188102b7fd05')\n[2025-08-11 15:59:59,035] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:59:59,036] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:59:59,036] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 16:00:03,038] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 16:00:46,066] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 16:00:47,567] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 16:00:47,568] pyhamilton.interface INFO disconnected from server\n[2025-08-11 16:00:47,668] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 16:00:47,677] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 16:00:47,677] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:40:05,524] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:40:05,526] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882685d426d')\n[2025-08-11 17:40:05,526] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:40:05,526] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:40:05,527] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:40:08,530] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:40:08,530] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:40:10,031] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:40:10,032] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:40:10,133] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 17:40:10,145] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:40:10,146] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:42:49,475] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:42:49,476] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18826d0522e3')\n[2025-08-11 17:42:49,476] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:42:49,476] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:42:49,476] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:42:56,482] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:42:56,482] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:42:57,983] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:42:57,984] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:42:58,085] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 17:42:58,093] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:42:58,093] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:46:19,482] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:46:19,483] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18827f066abf')\n[2025-08-11 17:46:19,484] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:46:19,484] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:46:19,485] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:46:24,491] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:46:25,492] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:46:26,993] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:46:26,994] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:46:27,095] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 17:46:27,103] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:46:27,103] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:48:42,519] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:48:42,520] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188287aba257')\n[2025-08-11 17:48:42,520] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:48:42,520] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:48:42,520] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:48:46,523] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:48:47,524] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:48:49,025] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:48:49,025] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:48:49,126] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 17:48:49,133] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:48:49,134] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:51:12,134] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:51:12,135] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188290782088')\n[2025-08-11 17:51:12,135] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:51:12,136] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:51:12,136] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:51:15,139] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:51:56,162] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:51:57,663] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:51:57,664] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:51:57,764] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 17:51:57,771] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:51:57,772] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:55:19,070] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:55:19,071] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18829ee3b74b')\n[2025-08-11 17:55:19,072] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:55:19,072] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:55:19,072] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:55:23,076] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:56:03,098] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:56:04,600] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:56:04,600] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:56:04,701] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 17:56:04,715] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:56:04,716] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:57:14,356] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:57:14,357] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882a5b36a1a')\n[2025-08-11 17:57:14,358] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:57:14,358] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:57:14,358] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:57:17,363] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:57:57,384] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:57:58,886] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:57:58,886] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:57:58,987] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 17:57:58,992] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:57:58,993] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:59:01,982] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:59:01,982] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882abe0b70c')\n[2025-08-11 17:59:01,983] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:59:01,983] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:59:01,984] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:59:05,988] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:59:46,012] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:59:47,513] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:59:47,514] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:59:47,614] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 17:59:47,623] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:59:47,624] pyhamilton.interface INFO server thread exited\n[2025-08-11 18:00:56,437] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 18:00:56,438] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882b2e0fe5f')\n[2025-08-11 18:00:56,438] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 18:00:56,438] pyhamilton.interface INFO started the server thread\n[2025-08-11 18:00:56,439] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 18:00:59,442] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 18:01:12,451] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 18:01:13,952] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 18:01:13,952] pyhamilton.interface INFO disconnected from server\n[2025-08-11 18:01:14,053] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 18:01:14,061] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 18:01:14,061] pyhamilton.interface INFO server thread exited\n[2025-08-11 18:02:45,889] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 18:02:45,890] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882b994def7')\n[2025-08-11 18:02:45,890] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 18:02:45,890] pyhamilton.interface INFO started the server thread\n[2025-08-11 18:02:45,890] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 18:02:48,909] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0003 to Ham_ComfortLid_ODTC\n[2025-08-11 18:03:31,930] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 18:03:33,431] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 18:03:33,432] pyhamilton.interface INFO disconnected from server\n[2025-08-11 18:03:33,533] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-11 18:03:33,540] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 18:03:33,540] pyhamilton.interface INFO server thread exited\n[2025-08-12 11:51:28,465] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 11:51:28,467] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891a1b9f449')\n[2025-08-12 11:51:28,467] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 11:51:28,467] pyhamilton.interface INFO started the server thread\n[2025-08-12 11:51:28,468] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 11:51:33,472] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 11:51:34,973] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-12 11:51:34,973] pyhamilton.interface INFO disconnected from server\n[2025-08-12 11:51:35,074] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-12 11:51:35,086] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 11:51:35,086] pyhamilton.interface INFO server thread exited\n[2025-08-12 11:52:42,216] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 11:52:42,217] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891ac28d48b')\n[2025-08-12 11:52:42,217] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 11:52:42,218] pyhamilton.interface INFO started the server thread\n[2025-08-12 11:52:42,218] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 11:52:48,229] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 11:52:49,731] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-12 11:52:49,731] pyhamilton.interface INFO disconnected from server\n[2025-08-12 11:52:49,832] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-12 11:52:49,837] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 11:52:49,838] pyhamilton.interface INFO server thread exited\n[2025-08-12 11:55:55,647] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 11:55:55,648] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891b763fb0c')\n[2025-08-12 11:55:55,648] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 11:55:55,648] pyhamilton.interface INFO started the server thread\n[2025-08-12 11:55:55,648] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 11:56:56,016] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 11:56:56,162] pyhamilton.interface INFO disconnected from server\n[2025-08-12 11:56:56,263] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-12 11:56:56,271] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 11:56:56,271] pyhamilton.interface INFO server thread exited\n[2025-08-12 12:06:37,779] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 12:06:37,780] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891ddf67cab')\n[2025-08-12 12:06:37,780] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 12:06:37,780] pyhamilton.interface INFO started the server thread\n[2025-08-12 12:06:37,781] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 12:06:39,783] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 12:06:41,284] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-12 12:06:41,285] pyhamilton.interface INFO disconnected from server\n[2025-08-12 12:06:41,386] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-12 12:06:41,394] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 12:06:41,394] pyhamilton.interface INFO server thread exited\n[2025-08-12 12:07:56,288] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 12:07:56,288] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891e2b3a30d')\n[2025-08-12 12:07:56,289] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 12:07:56,289] pyhamilton.interface INFO started the server thread\n[2025-08-12 12:07:56,289] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 12:09:30,337] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 12:09:31,838] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-12 12:09:31,839] pyhamilton.interface INFO disconnected from server\n[2025-08-12 12:09:31,940] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-12 12:09:31,951] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 12:09:31,951] pyhamilton.interface INFO server thread exited\n[2025-08-19 00:57:15,250] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 00:57:15,250] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19155546ca36')\n[2025-08-19 00:57:15,250] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 00:57:15,250] pyhamilton.interface INFO started the server thread\n[2025-08-19 00:57:15,250] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-08-19 00:57:36,825] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-08-19 00:58:13,824] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 00:58:14,038] pyhamilton.interface INFO disconnected from server\n[2025-08-19 00:58:14,139] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-19 00:58:14,147] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 00:58:14,147] pyhamilton.interface INFO server thread exited\n[2025-08-19 15:25:31,070] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 15:25:31,071] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1921764e7363')\n[2025-08-19 15:25:31,071] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 15:25:31,071] pyhamilton.interface INFO started the server thread\n[2025-08-19 15:25:31,071] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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'}\n[2025-08-19 15:25:32,149] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 15:25:33,650] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-19 15:25:33,650] pyhamilton.interface INFO disconnected from server\n[2025-08-19 15:25:33,751] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-19 15:25:33,762] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 15:25:33,762] pyhamilton.interface INFO server thread exited\n[2025-08-19 15:26:15,620] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 15:26:15,621] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x192178c9650d')\n[2025-08-19 15:26:15,621] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 15:26:15,621] pyhamilton.interface INFO started the server thread\n[2025-08-19 15:26:15,621] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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'}\n[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'}\n[2025-08-19 15:26:21,726] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-19 15:26:22,727] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 15:26:24,228] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-19 15:26:24,229] pyhamilton.interface INFO disconnected from server\n[2025-08-19 15:26:24,330] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-19 15:26:24,340] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 15:26:24,340] pyhamilton.interface INFO server thread exited\n[2025-08-19 15:27:59,413] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 15:27:59,413] pyhamilton.interface INFO running in simulation mode\n[2025-08-19 15:27:59,413] pyhamilton.interface INFO started the server thread\n[2025-08-19 15:27:59,413] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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'}\n[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'}\n[2025-08-19 15:27:59,479] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-19 15:27:59,479] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 15:27:59,479] pyhamilton.interface INFO disconnected from server\n[2025-08-19 15:27:59,580] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-19 15:27:59,586] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 15:27:59,587] pyhamilton.interface INFO server thread exited\n[2025-08-19 15:31:07,022] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 15:31:07,022] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x192181be7e79')\n[2025-08-19 15:31:07,022] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 15:31:07,022] pyhamilton.interface INFO started the server thread\n[2025-08-19 15:31:07,022] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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'}\n[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'}\n[2025-08-19 15:31:46,209] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-19 15:31:57,238] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 15:31:58,739] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-19 15:31:58,739] pyhamilton.interface INFO disconnected from server\n[2025-08-19 15:31:58,840] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-19 15:31:58,853] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 15:31:58,854] pyhamilton.interface INFO server thread exited\n[2025-08-19 16:02:04,515] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 16:02:04,515] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1921f827c4ee')\n[2025-08-19 16:02:04,515] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 16:02:04,516] pyhamilton.interface INFO started the server thread\n[2025-08-19 16:02:04,516] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-19 16:02:05,681] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-08-19 16:02:08,683] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 16:02:10,184] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-19 16:02:10,184] pyhamilton.interface INFO disconnected from server\n[2025-08-19 16:02:10,285] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-19 16:02:10,290] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 16:02:10,291] pyhamilton.interface INFO server thread exited\n[2025-08-26 14:48:58,950] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-26 14:48:58,952] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adc367a1dc')\n[2025-08-26 14:48:58,952] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-26 14:48:58,953] pyhamilton.interface INFO started the server thread\n[2025-08-26 14:48:58,953] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-26 14:49:00,889] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-08-26 14:49:03,893] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-26 14:49:05,393] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-26 14:49:05,394] pyhamilton.interface INFO disconnected from server\n[2025-08-26 14:49:05,495] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-26 14:49:05,505] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-26 14:49:05,505] pyhamilton.interface INFO server thread exited\n[2025-08-26 14:50:38,968] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-26 14:50:38,968] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adcacc49cb')\n[2025-08-26 14:50:38,968] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-26 14:50:38,968] pyhamilton.interface INFO started the server thread\n[2025-08-26 14:50:38,969] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-26 14:50:40,142] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-08-26 14:50:41,143] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-26 14:50:42,643] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-26 14:50:42,644] pyhamilton.interface INFO disconnected from server\n[2025-08-26 14:50:42,744] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-26 14:50:42,747] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-26 14:50:42,747] pyhamilton.interface INFO server thread exited\n[2025-08-26 14:51:25,292] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-26 14:51:25,293] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adcd70ccc8')\n[2025-08-26 14:51:25,293] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-26 14:51:25,294] pyhamilton.interface INFO started the server thread\n[2025-08-26 14:51:25,294] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-26 14:51:26,753] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-08-26 14:51:27,755] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-26 14:51:29,256] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-26 14:51:29,256] pyhamilton.interface INFO disconnected from server\n[2025-08-26 14:51:29,357] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[2025-08-26 14:51:29,367] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-26 14:51:29,368] pyhamilton.interface INFO server thread exited\n"
  },
  {
    "path": "pyhamilton/ngs/tests/log/main.log",
    "content": "[2025-07-27 23:03:16,524] root INFO ###########################################################################################################################\n[2025-07-27 23:03:16,524] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:03:16,525] root INFO #                                                                                                                         #\n[2025-07-27 23:03:16,525] root INFO ###########################################################################################################################\n[2025-07-27 23:03:16,526] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:03:16,526] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:03:16,526] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:03:16,526] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:03:16,530] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:03:17,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,061] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,064] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,066] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,070] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,072] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,074] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,079] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,082] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,085] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,087] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,090] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,093] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,095] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,098] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,101] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,104] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,106] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,109] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,113] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,116] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:03:17,118] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:03:17,119] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:03:17,119] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:03:17,119] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:03:17,219] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:03:17,222] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:03:17,225] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:03:17,225] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:03:17,226] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:05:40,552] root INFO ###########################################################################################################################\n[2025-07-27 23:05:40,553] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:05:40,553] root INFO #                                                                                                                         #\n[2025-07-27 23:05:40,553] root INFO ###########################################################################################################################\n[2025-07-27 23:05:40,553] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:05:40,554] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:05:40,554] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:05:40,554] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:05:40,557] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:05:41,064] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,066] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,070] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,072] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,074] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,078] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,080] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,082] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,084] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,087] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,089] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,091] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,093] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,095] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,097] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,099] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,101] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,103] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,105] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,107] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,109] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:05:41,112] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:05:41,113] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:05:41,113] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:05:41,113] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:05:41,213] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:05:41,217] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:05:41,219] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:05:41,220] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:05:41,220] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:07:20,329] root INFO ###########################################################################################################################\n[2025-07-27 23:07:20,329] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:07:20,329] root INFO #                                                                                                                         #\n[2025-07-27 23:07:20,330] root INFO ###########################################################################################################################\n[2025-07-27 23:07:20,330] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:07:20,330] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:07:20,330] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:07:20,331] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:07:20,334] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:07:21,005] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,008] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,011] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,013] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,015] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,017] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,022] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,027] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,029] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,032] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,034] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,038] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,041] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,043] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,045] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,048] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,051] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,055] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,057] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,060] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,062] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,065] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:07:21,067] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:07:21,067] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:07:21,068] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:07:21,068] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:07:21,168] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:07:21,171] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:07:21,173] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:07:21,174] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:07:21,174] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:08:23,414] root INFO ###########################################################################################################################\n[2025-07-27 23:08:23,415] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:08:23,415] root INFO #                                                                                                                         #\n[2025-07-27 23:08:23,415] root INFO ###########################################################################################################################\n[2025-07-27 23:08:23,415] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:08:23,415] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:08:23,415] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:08:23,416] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:08:23,419] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:08:23,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:23,976] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:23,978] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:23,981] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:23,983] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:23,986] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:23,988] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:23,990] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:23,993] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:23,995] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:23,997] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:24,000] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:24,002] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:24,005] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:24,008] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:24,010] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:24,013] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:24,015] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:24,017] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:24,020] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:24,023] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:24,025] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:24,028] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:24,030] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:24,030] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:08:24,030] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:08:24,030] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:08:24,131] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:08:24,135] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:08:24,137] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:08:24,138] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:08:24,139] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:08:36,624] root INFO ###########################################################################################################################\n[2025-07-27 23:08:36,624] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:08:36,624] root INFO #                                                                                                                         #\n[2025-07-27 23:08:36,624] root INFO ###########################################################################################################################\n[2025-07-27 23:08:36,625] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:08:36,625] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:08:36,625] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:08:36,625] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:08:36,629] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:08:37,141] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,143] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,147] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,149] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,151] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,153] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,155] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,157] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,160] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,162] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,164] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,166] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,171] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,173] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,175] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,178] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,180] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,182] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,184] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,187] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,189] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,192] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:08:37,193] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:08:37,194] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:08:37,194] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:08:37,194] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:08:37,294] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:08:37,297] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:08:37,298] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:08:37,299] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:08:37,299] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:09:18,415] root INFO ###########################################################################################################################\n[2025-07-27 23:09:18,415] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:09:18,416] root INFO #                                                                                                                         #\n[2025-07-27 23:09:18,416] root INFO ###########################################################################################################################\n[2025-07-27 23:09:18,416] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:09:18,416] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:09:18,417] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:09:18,417] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:09:18,420] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:09:18,927] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,929] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,932] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,934] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,938] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,940] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,943] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,945] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,947] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,949] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,952] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,954] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,956] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,958] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,961] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,963] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,965] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,967] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,969] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,971] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,975] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,978] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:18,979] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:18,979] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:09:18,980] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:09:18,980] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:09:19,080] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:09:19,083] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:09:19,085] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:09:19,086] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:09:19,086] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:09:51,867] root INFO ###########################################################################################################################\n[2025-07-27 23:09:51,867] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:09:51,867] root INFO #                                                                                                                         #\n[2025-07-27 23:09:51,867] root INFO ###########################################################################################################################\n[2025-07-27 23:09:51,868] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:09:51,868] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:09:51,868] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:09:51,868] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:09:51,873] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:09:52,433] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,437] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,440] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,443] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,446] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,448] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,451] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,455] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,458] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,461] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,464] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,467] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,474] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,477] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,479] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,482] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,485] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,488] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,492] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,495] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,498] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,500] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:09:52,504] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:09:52,504] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:09:52,504] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:09:52,504] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:09:52,605] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:09:52,608] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:09:52,610] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:09:52,611] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:09:52,611] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:10:38,145] root INFO ###########################################################################################################################\n[2025-07-27 23:10:38,146] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:10:38,146] root INFO #                                                                                                                         #\n[2025-07-27 23:10:38,146] root INFO ###########################################################################################################################\n[2025-07-27 23:10:38,146] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:10:38,147] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:10:38,147] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:10:38,147] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:10:38,150] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:10:38,685] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,688] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,691] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,693] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,696] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,699] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,701] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,704] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,707] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,710] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,717] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,720] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,723] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,726] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,729] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,732] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,735] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,738] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,741] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,744] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,746] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,749] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:10:38,752] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:10:38,752] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:10:38,752] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:10:38,752] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:10:38,852] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:10:38,855] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:10:38,856] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:10:38,857] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:10:38,857] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:10:59,595] root INFO ###########################################################################################################################\n[2025-07-27 23:10:59,596] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:10:59,596] root INFO #                                                                                                                         #\n[2025-07-27 23:10:59,596] root INFO ###########################################################################################################################\n[2025-07-27 23:10:59,597] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:10:59,597] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:10:59,598] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:10:59,598] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:10:59,602] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:11:00,128] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,131] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,134] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,135] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,138] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,141] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,143] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,145] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,148] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,150] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,153] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,156] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,159] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,161] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,164] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,166] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,172] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,174] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,176] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,178] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,180] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,182] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:00,184] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:00,185] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:11:00,185] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:11:00,185] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:11:00,286] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:11:00,290] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:11:00,292] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:11:00,293] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:11:00,293] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:11:18,473] root INFO ###########################################################################################################################\n[2025-07-27 23:11:18,473] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:11:18,473] root INFO #                                                                                                                         #\n[2025-07-27 23:11:18,473] root INFO ###########################################################################################################################\n[2025-07-27 23:11:18,474] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:11:18,474] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:11:18,474] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:11:18,474] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:11:18,478] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:11:19,006] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,009] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,011] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,014] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,016] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,018] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,021] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,023] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,026] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,028] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,030] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,033] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,035] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,037] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,040] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,042] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,045] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,047] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,049] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,052] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,055] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,058] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,060] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:19,062] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:19,063] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:11:19,063] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:11:19,063] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:11:19,163] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:11:19,167] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:11:19,169] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:11:19,170] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:11:19,170] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:11:37,204] root INFO ###########################################################################################################################\n[2025-07-27 23:11:37,204] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:11:37,204] root INFO #                                                                                                                         #\n[2025-07-27 23:11:37,205] root INFO ###########################################################################################################################\n[2025-07-27 23:11:37,205] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:11:37,206] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:11:37,206] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:11:37,206] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:11:37,209] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:11:37,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,716] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,719] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,723] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,726] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,729] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,732] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,735] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,739] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,742] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,745] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,748] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,751] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,754] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,758] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,761] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,763] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,767] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,769] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,773] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,775] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,779] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,781] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:11:37,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:11:37,785] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:11:37,785] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:11:37,785] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:11:37,885] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:11:37,888] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:11:37,890] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:11:37,891] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:11:37,891] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:13:55,732] root INFO ###########################################################################################################################\n[2025-07-27 23:13:55,732] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:13:55,733] root INFO #                                                                                                                         #\n[2025-07-27 23:13:55,733] root INFO ###########################################################################################################################\n[2025-07-27 23:13:55,733] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:13:55,734] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:13:55,734] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:13:55,734] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:13:55,738] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:13:56,359] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,363] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,366] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,369] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,373] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,377] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,380] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,386] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,389] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,394] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,397] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,401] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,404] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,409] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,412] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,416] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,419] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,423] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,426] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,432] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,435] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,441] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,444] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:13:56,449] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:13:56,449] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:13:56,449] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:13:56,449] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:13:56,550] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:13:56,554] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:13:56,557] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:13:56,558] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:13:56,558] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:15:20,759] root INFO ###########################################################################################################################\n[2025-07-27 23:15:20,760] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:15:20,760] root INFO #                                                                                                                         #\n[2025-07-27 23:15:20,760] root INFO ###########################################################################################################################\n[2025-07-27 23:15:20,761] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:15:20,761] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:15:20,761] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:15:20,761] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:15:20,764] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:15:21,322] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,327] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,329] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,333] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,336] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,341] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,345] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,353] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,356] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,363] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,367] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,373] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,375] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,383] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,387] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,390] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,393] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,400] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,404] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,409] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,411] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,418] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,423] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:15:21,430] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:15:21,431] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:15:21,431] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:15:21,431] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:15:21,531] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:15:21,535] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:15:21,536] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:15:21,537] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:15:21,537] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:16:07,710] root INFO ###########################################################################################################################\n[2025-07-27 23:16:07,710] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:16:07,711] root INFO #                                                                                                                         #\n[2025-07-27 23:16:07,711] root INFO ###########################################################################################################################\n[2025-07-27 23:16:07,711] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:16:07,711] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:16:07,712] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:16:07,712] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:16:07,714] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:16:08,243] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,249] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,253] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,257] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,260] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,265] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,268] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,274] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,276] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,280] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,285] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,291] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,295] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,300] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,304] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,308] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,312] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,317] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,321] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,326] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,329] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,337] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,341] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:16:08,349] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:16:08,349] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:16:08,349] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:16:08,349] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:16:08,450] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:16:08,453] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:16:08,455] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:16:08,456] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:16:08,458] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:17:17,053] root INFO ###########################################################################################################################\n[2025-07-27 23:17:17,053] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:17:17,053] root INFO #                                                                                                                         #\n[2025-07-27 23:17:17,053] root INFO ###########################################################################################################################\n[2025-07-27 23:17:17,054] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:17:17,054] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:17:17,054] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:17:17,054] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:17:17,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:17:17,594] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[2025-07-27 23:17:17,594] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:17:17,594] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:17:17,595] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:17:17,695] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:17:17,698] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:17:17,701] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:17:17,701] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:17:17,702] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:17:17,704] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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    ~~~~~~~~~^^^\n[2025-07-27 23:17:17,707] root ERROR IndexError: list assignment index out of range\n[2025-07-27 23:18:31,850] root INFO ###########################################################################################################################\n[2025-07-27 23:18:31,850] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:18:31,851] root INFO #                                                                                                                         #\n[2025-07-27 23:18:31,851] root INFO ###########################################################################################################################\n[2025-07-27 23:18:31,851] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:18:31,852] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:18:31,852] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:18:31,852] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:18:31,856] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:18:32,398] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[2025-07-27 23:18:32,399] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:18:32,399] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:18:32,399] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:18:32,500] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:18:32,502] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:18:32,503] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:18:32,504] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:18:32,504] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:18:32,506] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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    ~~~~~~~~~^^^\n[2025-07-27 23:18:32,507] root ERROR IndexError: list assignment index out of range\n[2025-07-27 23:18:58,015] root INFO ###########################################################################################################################\n[2025-07-27 23:18:58,015] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:18:58,015] root INFO #                                                                                                                         #\n[2025-07-27 23:18:58,015] root INFO ###########################################################################################################################\n[2025-07-27 23:18:58,015] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:18:58,016] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:18:58,016] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:18:58,016] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:18:58,020] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:18:58,585] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[2025-07-27 23:18:58,586] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:18:58,586] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:18:58,586] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:18:58,687] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:18:58,690] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:18:58,692] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:18:58,692] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:18:58,693] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:18:58,694] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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    ~~~~~~~~~^^^\n[2025-07-27 23:18:58,696] root ERROR IndexError: list assignment index out of range\n[2025-07-27 23:19:35,760] root INFO ###########################################################################################################################\n[2025-07-27 23:19:35,760] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:19:35,761] root INFO #                                                                                                                         #\n[2025-07-27 23:19:35,761] root INFO ###########################################################################################################################\n[2025-07-27 23:19:35,761] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:19:35,761] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:19:35,761] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:19:35,762] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:19:35,765] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:19:36,298] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:19:36,300] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:19:36,300] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:19:36,300] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:19:36,401] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:19:36,404] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:19:36,406] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:19:36,406] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:19:36,407] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:19:36,410] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:19:36,412] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:20:38,906] root INFO ###########################################################################################################################\n[2025-07-27 23:20:38,906] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:20:38,906] root INFO #                                                                                                                         #\n[2025-07-27 23:20:38,906] root INFO ###########################################################################################################################\n[2025-07-27 23:20:38,907] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:20:38,907] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:20:38,907] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:20:38,907] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:20:38,910] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:20:39,434] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:20:39,437] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:20:39,437] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:20:39,437] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:20:39,537] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:20:39,541] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:20:39,543] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:20:39,544] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:20:39,544] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:20:39,547] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:20:39,550] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:21:05,148] root INFO ###########################################################################################################################\n[2025-07-27 23:21:05,149] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:21:05,149] root INFO #                                                                                                                         #\n[2025-07-27 23:21:05,149] root INFO ###########################################################################################################################\n[2025-07-27 23:21:05,150] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:21:05,150] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:21:05,150] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:21:05,150] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:21:05,154] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:21:05,675] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:21:05,678] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:21:05,678] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:21:05,678] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:21:05,778] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:21:05,781] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:21:05,783] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:21:05,783] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:21:05,783] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:21:05,785] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:21:05,788] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:30:11,013] root INFO ###########################################################################################################################\n[2025-07-27 23:30:11,014] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:30:11,014] root INFO #                                                                                                                         #\n[2025-07-27 23:30:11,014] root INFO ###########################################################################################################################\n[2025-07-27 23:30:11,014] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:30:11,015] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:30:11,015] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:30:11,015] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:30:11,019] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:30:11,561] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:30:11,563] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:30:11,563] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:30:11,563] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:30:11,664] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:30:11,666] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:30:11,668] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:30:11,668] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:30:11,669] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:30:11,671] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:30:11,673] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:31:21,069] root INFO ###########################################################################################################################\n[2025-07-27 23:31:21,069] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:31:21,069] root INFO #                                                                                                                         #\n[2025-07-27 23:31:21,069] root INFO ###########################################################################################################################\n[2025-07-27 23:31:21,070] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:31:21,070] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:31:21,070] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:31:21,070] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:31:21,073] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:31:21,608] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:31:21,610] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:31:21,611] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:31:21,611] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:31:21,711] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:31:21,714] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:31:21,717] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:31:21,717] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:31:21,718] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:31:21,721] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:31:21,723] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:32:20,743] root INFO ###########################################################################################################################\n[2025-07-27 23:32:20,743] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:32:20,743] root INFO #                                                                                                                         #\n[2025-07-27 23:32:20,743] root INFO ###########################################################################################################################\n[2025-07-27 23:32:20,744] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:32:20,744] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:32:20,744] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:32:20,744] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:32:20,747] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:32:21,234] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:32:21,236] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:32:21,236] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:32:21,236] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:32:21,336] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:32:21,340] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:32:21,342] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:32:21,343] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:32:21,344] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:32:21,347] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:32:21,352] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:33:09,547] root INFO ###########################################################################################################################\n[2025-07-27 23:33:09,548] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:33:09,548] root INFO #                                                                                                                         #\n[2025-07-27 23:33:09,548] root INFO ###########################################################################################################################\n[2025-07-27 23:33:09,548] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:33:09,549] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:33:09,549] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:33:09,549] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:33:09,552] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:33:10,122] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:33:10,124] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:33:10,124] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:33:10,124] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:33:10,225] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:33:10,229] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:33:10,231] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:33:10,232] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:33:10,232] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:33:10,236] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:33:10,240] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:34:11,944] root INFO ###########################################################################################################################\n[2025-07-27 23:34:11,944] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:34:11,945] root INFO #                                                                                                                         #\n[2025-07-27 23:34:11,945] root INFO ###########################################################################################################################\n[2025-07-27 23:34:11,945] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:34:11,945] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:34:11,945] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:34:11,945] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:34:11,949] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:34:12,453] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:34:12,455] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:34:12,455] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:34:12,456] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:34:12,556] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:34:12,560] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:34:12,562] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:34:12,563] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:34:12,564] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:34:12,568] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:34:12,570] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:34:35,083] root INFO ###########################################################################################################################\n[2025-07-27 23:34:35,083] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:34:35,083] root INFO #                                                                                                                         #\n[2025-07-27 23:34:35,083] root INFO ###########################################################################################################################\n[2025-07-27 23:34:35,083] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:34:35,084] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:34:35,084] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:34:35,084] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:34:35,088] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:34:35,599] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[2025-07-27 23:34:35,601] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:34:35,601] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:34:35,601] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:34:35,701] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:34:35,706] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:34:35,708] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:34:35,710] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:34:35,710] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:34:35,714] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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')\n[2025-07-27 23:34:35,717] root ERROR ValueError: Lists must have parallel None entries\n[2025-07-27 23:35:55,455] root INFO ###########################################################################################################################\n[2025-07-27 23:35:55,455] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:35:55,455] root INFO #                                                                                                                         #\n[2025-07-27 23:35:55,455] root INFO ###########################################################################################################################\n[2025-07-27 23:35:55,456] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:35:55,456] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:35:55,456] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:35:55,456] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:35:55,459] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:35:55,983] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:55,989] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:55,992] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:55,998] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,001] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,006] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,009] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,015] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,019] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,028] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,033] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,036] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,042] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,045] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,051] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,054] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,059] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,063] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,068] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,072] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,077] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,080] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:35:56,085] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:35:56,086] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:35:56,086] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:35:56,086] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:35:56,186] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:35:56,190] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:35:56,192] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:35:56,193] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:35:56,193] pyhamilton.interface INFO server thread exited\n[2025-07-27 23:36:43,239] root INFO ###########################################################################################################################\n[2025-07-27 23:36:43,239] root INFO #                                                                                                                         #\n[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     #\n[2025-07-27 23:36:43,239] root INFO #                                                                                                                         #\n[2025-07-27 23:36:43,239] root INFO ###########################################################################################################################\n[2025-07-27 23:36:43,240] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-27 23:36:43,240] pyhamilton.interface INFO running in simulation mode\n[2025-07-27 23:36:43,240] pyhamilton.interface INFO started the server thread\n[2025-07-27 23:36:43,240] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-27 23:36:43,243] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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}\n[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)\n[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}\n[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'}\n[2025-07-27 23:36:43,748] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,762] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,768] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,783] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,788] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,799] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,803] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,813] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,817] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,827] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,831] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,840] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,844] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,854] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,858] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,869] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,873] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,883] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,888] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,899] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,903] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,914] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,918] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-27 23:36:43,930] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-27 23:36:43,931] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-27 23:36:43,931] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-27 23:36:43,931] pyhamilton.interface INFO disconnected from server\n[2025-07-27 23:36:44,032] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-27 23:36:44,035] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-27 23:36:44,037] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-27 23:36:44,038] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-27 23:36:44,039] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:47:37,095] root INFO ###########################################################################################################################\n[2025-07-28 09:47:37,096] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 09:47:37,096] root INFO #                                                                                                                         #\n[2025-07-28 09:47:37,096] root INFO ###########################################################################################################################\n[2025-07-28 09:47:37,096] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:47:37,098] pyhamilton.interface INFO running in simulation mode\n[2025-07-28 09:47:37,098] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:47:37,098] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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)\n[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}\n[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'}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:39,931] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:39,943] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:39,955] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:39,966] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:39,976] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:39,988] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:40,000] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:40,013] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:40,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:40,036] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:40,048] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:47:40,061] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-28 09:47:40,061] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:47:40,061] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-28 09:47:40,061] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:47:40,162] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 09:47:40,168] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 09:47:40,172] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 09:47:40,173] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:47:40,173] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:53:31,920] root INFO ###########################################################################################################################\n[2025-07-28 09:53:31,921] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 09:53:31,921] root INFO #                                                                                                                         #\n[2025-07-28 09:53:31,921] root INFO ###########################################################################################################################\n[2025-07-28 09:53:31,921] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:53:31,922] pyhamilton.interface INFO running in simulation mode\n[2025-07-28 09:53:31,922] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:53:31,922] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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)\n[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}\n[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'}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,473] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,486] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,499] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,511] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,526] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,540] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,554] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,565] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,576] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,602] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:53:32,613] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-28 09:53:32,613] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:53:32,613] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-28 09:53:32,613] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:53:32,714] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 09:53:32,717] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 09:53:32,719] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 09:53:32,720] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:53:32,721] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:54:08,341] root INFO ###########################################################################################################################\n[2025-07-28 09:54:08,341] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 09:54:08,341] root INFO #                                                                                                                         #\n[2025-07-28 09:54:08,341] root INFO ###########################################################################################################################\n[2025-07-28 09:54:08,342] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:54:08,342] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 09:54:08,342] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:54:08,342] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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)\n[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}\n[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'}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,041] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,053] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,064] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,089] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,103] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,116] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,128] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,143] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,159] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,174] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:54:09,189] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-28 09:54:09,189] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:54:09,189] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-28 09:54:09,189] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:54:09,290] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 09:54:09,296] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 09:54:09,298] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 09:54:09,299] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:54:09,299] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:55:06,840] root INFO ###########################################################################################################################\n[2025-07-28 09:55:06,841] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 09:55:06,841] root INFO #                                                                                                                         #\n[2025-07-28 09:55:06,841] root INFO ###########################################################################################################################\n[2025-07-28 09:55:06,841] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:55:06,842] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 09:55:06,842] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:55:06,842] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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)\n[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}\n[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'}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,541] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,554] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,570] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,583] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,594] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,607] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,624] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,640] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,655] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,667] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,679] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-28 09:55:07,690] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-28 09:55:07,691] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:55:07,691] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-28 09:55:07,691] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:55:07,791] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 09:55:07,795] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 09:55:07,797] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 09:55:07,798] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:55:07,798] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:55:50,100] root INFO ###########################################################################################################################\n[2025-07-28 09:55:50,101] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 09:55:50,101] root INFO #                                                                                                                         #\n[2025-07-28 09:55:50,101] root INFO ###########################################################################################################################\n[2025-07-28 09:55:50,102] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:55:50,102] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 09:55:50,103] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:55:50,104] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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)\n[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}\n[2025-07-28 09:56:19,507] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 09:56:19,693] pyhamilton.interface INFO disconnected from server\n[2025-07-28 09:56:19,794] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 09:56:19,800] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 09:56:19,803] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 09:56:19,804] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 09:56:19,805] pyhamilton.interface INFO server thread exited\n[2025-07-28 09:56:19,816] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)                                                    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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)\n[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']    )\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 09:56:19,824] root ERROR KeyboardInterrupt\n[2025-07-28 09:56:19,824] root ERROR During handling of the above exception, another exception occurred:\n[2025-07-28 09:56:19,825] root ERROR Traceback (most recent call last):\n[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 <module>    with HamiltonInterface(windowed=True, simulating=False) as ham_int:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 09:56:19,828] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 588, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 09:56:19,830] root ERROR KeyboardInterrupt\n[2025-07-28 09:59:48,448] root INFO ###########################################################################################################################\n[2025-07-28 09:59:48,449] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 09:59:48,450] root INFO #                                                                                                                         #\n[2025-07-28 09:59:48,450] root INFO ###########################################################################################################################\n[2025-07-28 09:59:48,451] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 09:59:48,451] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 09:59:48,452] pyhamilton.interface INFO started the server thread\n[2025-07-28 09:59:48,452] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 09:59:48,460] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1\n[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)\n[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}\n[2025-07-28 09:59:53,611] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-28 10:00:13,653] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:00:15,155] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:00:15,155] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:00:15,256] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:00:15,261] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:00:15,264] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:00:15,264] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:00:15,265] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:00:15,268] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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                       ^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:00:15,270] root ERROR AttributeError: 'HamiltonResponse' object has no attribute 'liquidHeights'\n[2025-07-28 10:05:47,433] root INFO ###########################################################################################################################\n[2025-07-28 10:05:47,433] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 10:05:47,433] root INFO #                                                                                                                         #\n[2025-07-28 10:05:47,433] root INFO ###########################################################################################################################\n[2025-07-28 10:05:47,434] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:05:47,434] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:05:47,435] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:05:47,435] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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)\n[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}\n[2025-07-28 10:05:52,480] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:05:53,981] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:05:53,982] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:05:54,083] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:05:54,088] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:05:54,089] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:05:54,090] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:05:54,090] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:05:54,093] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)                                                    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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)\n[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]),                  ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n[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'\n[2025-07-28 10:17:04,900] root INFO ###########################################################################################################################\n[2025-07-28 10:17:04,900] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 10:17:04,901] root INFO #                                                                                                                         #\n[2025-07-28 10:17:04,901] root INFO ###########################################################################################################################\n[2025-07-28 10:17:04,901] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:17:04,902] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:17:04,902] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:17:04,902] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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)\n[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}\n[2025-07-28 10:17:10,065] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:17:11,566] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:17:11,566] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:17:11,667] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:17:11,672] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:17:11,675] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:17:11,675] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:17:11,676] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:17:11,679] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)                                                    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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             ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:17:11,685] root ERROR TypeError: 'float' object is not iterable\n[2025-07-28 10:18:37,680] root INFO ###########################################################################################################################\n[2025-07-28 10:18:37,681] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 10:18:37,681] root INFO #                                                                                                                         #\n[2025-07-28 10:18:37,681] root INFO ###########################################################################################################################\n[2025-07-28 10:18:37,683] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:18:37,683] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:18:37,684] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:18:37,684] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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)\n[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}\n[2025-07-28 10:18:43,065] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:18:44,566] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:18:44,567] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:18:44,667] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:18:44,673] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:18:44,675] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:18:44,676] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:18:44,677] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:18:44,680] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)                                                    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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             ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:18:44,683] root ERROR TypeError: 'float' object is not iterable\n[2025-07-28 10:19:53,028] root INFO ###########################################################################################################################\n[2025-07-28 10:19:53,030] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 10:19:53,030] root INFO #                                                                                                                         #\n[2025-07-28 10:19:53,031] root INFO ###########################################################################################################################\n[2025-07-28 10:19:53,032] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:19:53,034] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:19:53,034] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:19:53,035] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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)\n[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}\n[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\n[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}\n[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}\n[2025-07-28 10:20:03,467] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-28 10:20:09,542] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-28 10:20:18,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-28 10:20:24,634] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-28 10:20:31,686] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[2025-07-28 10:20:37,712] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:20:37,870] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:20:37,971] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:20:37,977] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:20:37,980] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:20:37,981] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:20:37,981] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:20:37,990] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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        ^^^^^^^^^^^^^^^^^^^^^^^^^^    )    ^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:20:37,996] root ERROR KeyboardInterrupt\n[2025-07-28 10:20:37,997] root ERROR During handling of the above exception, another exception occurred:\n[2025-07-28 10:20:37,998] root ERROR Traceback (most recent call last):\n[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 <module>    with HamiltonInterface(windowed=True, simulating=False) as ham_int:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:20:38,002] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 588, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:20:38,005] root ERROR KeyboardInterrupt\n[2025-07-28 10:26:11,388] root INFO ###########################################################################################################################\n[2025-07-28 10:26:11,389] root INFO #                                                                                                                         #\n[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     #\n[2025-07-28 10:26:11,389] root INFO #                                                                                                                         #\n[2025-07-28 10:26:11,389] root INFO ###########################################################################################################################\n[2025-07-28 10:26:11,390] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:26:11,390] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:26:11,391] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:26:11,391] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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)\n[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}\n[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\n[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}\n[2025-07-28 10:26:19,187] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:26:19,362] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:26:19,463] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:26:19,467] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:26:19,469] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:26:19,469] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:26:19,470] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:26:19,473] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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']    )\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:26:19,478] root ERROR KeyboardInterrupt\n[2025-07-28 10:26:19,479] root ERROR During handling of the above exception, another exception occurred:\n[2025-07-28 10:26:19,479] root ERROR Traceback (most recent call last):\n[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 <module>    with HamiltonInterface(windowed=True, simulating=False) as ham_int:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:26:19,480] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 588, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:26:19,482] root ERROR KeyboardInterrupt\n[2025-07-28 10:26:54,219] root INFO ########################################################################################################################\n[2025-07-28 10:26:54,219] root INFO #                                                                                                                      #\n[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     #\n[2025-07-28 10:26:54,219] root INFO #                                                                                                                      #\n[2025-07-28 10:26:54,220] root INFO ########################################################################################################################\n[2025-07-28 10:26:54,220] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:26:54,220] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:26:54,220] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:26:54,221] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:26:54,221] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:26:55,722] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:26:55,723] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:26:55,823] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:26:55,831] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:26:55,834] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:26:55,835] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:26:55,835] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:26:55,837] root ERROR Traceback (most recent call last):\n[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 <module>    mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:26:55,839] root ERROR TypeError: mix_plate() got multiple values for argument 'liquid_class'\n[2025-07-28 10:47:47,432] root INFO ########################################################################################################################\n[2025-07-28 10:47:47,433] root INFO #                                                                                                                      #\n[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     #\n[2025-07-28 10:47:47,433] root INFO #                                                                                                                      #\n[2025-07-28 10:47:47,434] root INFO ########################################################################################################################\n[2025-07-28 10:47:47,435] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:47:47,436] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:47:47,436] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:47:47,436] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:47:47,438] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:47:48,939] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:47:48,940] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:47:49,042] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:47:49,046] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:47:49,048] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:47:49,049] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:47:49,049] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:47:49,051] root ERROR Traceback (most recent call last):\n[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 <module>    mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:47:49,053] root ERROR TypeError: mix_plate() got multiple values for argument 'liquid_class'\n[2025-07-28 10:48:47,273] root INFO ########################################################################################################################\n[2025-07-28 10:48:47,274] root INFO #                                                                                                                      #\n[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     #\n[2025-07-28 10:48:47,274] root INFO #                                                                                                                      #\n[2025-07-28 10:48:47,274] root INFO ########################################################################################################################\n[2025-07-28 10:48:47,275] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:48:47,276] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:48:47,276] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:48:47,276] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:48:47,742] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-07-28 10:48:48,744] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:48:50,246] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:48:50,246] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:48:50,347] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:48:50,352] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:48:50,354] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:48:50,355] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:48:50,355] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:48:50,360] root ERROR Traceback (most recent call last):\n[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 <module>    mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^\n[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        ^^^^^^^^^^^^^^^^^^^^^^^^^^    )    ^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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)\n[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\"}\n[2025-07-28 10:51:26,111] root INFO ########################################################################################################################\n[2025-07-28 10:51:26,112] root INFO #                                                                                                                      #\n[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     #\n[2025-07-28 10:51:26,112] root INFO #                                                                                                                      #\n[2025-07-28 10:51:26,112] root INFO ########################################################################################################################\n[2025-07-28 10:51:26,113] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:51:26,114] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:51:26,114] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:51:26,114] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:51:26,500] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-07-28 10:51:28,503] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:51:30,003] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:51:30,004] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:51:30,104] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:51:30,110] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:51:30,112] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:51:30,113] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:51:30,113] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:51:30,114] root ERROR Traceback (most recent call last):\n[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 <module>    mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 10:51:30,118] root ERROR TypeError: HamiltonInterface.aspirate_96() missing 1 required positional argument: 'vol'\n[2025-07-28 10:57:01,744] root INFO ########################################################################################################################\n[2025-07-28 10:57:01,745] root INFO #                                                                                                                      #\n[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     #\n[2025-07-28 10:57:01,746] root INFO #                                                                                                                      #\n[2025-07-28 10:57:01,746] root INFO ########################################################################################################################\n[2025-07-28 10:57:01,747] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:57:01,747] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:57:01,747] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:57:01,747] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:57:02,125] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[2025-07-28 10:57:04,127] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:57:05,628] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:57:05,629] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:57:05,730] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:57:05,735] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:57:05,737] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:57:05,737] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:57:05,738] pyhamilton.interface INFO server thread exited\n[2025-07-28 10:57:05,741] root ERROR Traceback (most recent call last):\n[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 <module>    mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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        ^^^^^^^^^^^^^^    ),    ^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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))\n[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\n[2025-07-28 10:58:11,946] root INFO ########################################################################################################################\n[2025-07-28 10:58:11,946] root INFO #                                                                                                                      #\n[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     #\n[2025-07-28 10:58:11,947] root INFO #                                                                                                                      #\n[2025-07-28 10:58:11,947] root INFO ########################################################################################################################\n[2025-07-28 10:58:11,948] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 10:58:11,948] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 10:58:11,949] pyhamilton.interface INFO started the server thread\n[2025-07-28 10:58:11,949] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 10:58:12,338] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[2025-07-28 10:58:17,343] pyhamilton.interface INFO tip_eject_96: Eject tips to default waste\n[2025-07-28 10:58:18,346] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 10:58:19,847] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 10:58:19,847] pyhamilton.interface INFO disconnected from server\n[2025-07-28 10:58:19,948] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 10:58:19,953] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 10:58:19,955] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 10:58:19,956] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 10:58:19,956] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:06:39,384] root INFO ##########################################################################################################################\n[2025-07-28 11:06:39,385] root INFO #                                                                                                                        #\n[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     #\n[2025-07-28 11:06:39,385] root INFO #                                                                                                                        #\n[2025-07-28 11:06:39,385] root INFO ##########################################################################################################################\n[2025-07-28 11:06:39,386] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 11:06:39,386] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 11:06:39,387] pyhamilton.interface INFO started the server thread\n[2025-07-28 11:06:39,387] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 11:06:39,387] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 11:06:40,888] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 11:06:40,889] pyhamilton.interface INFO disconnected from server\n[2025-07-28 11:06:40,989] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 11:06:40,997] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 11:06:41,000] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 11:06:41,002] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 11:06:41,002] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:06:41,005] root ERROR Traceback (most recent call last):\n[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 <module>    transfer_96(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 11:06:41,006] root ERROR TypeError: transfer_96() missing 1 required positional argument: 'volume'\n[2025-07-28 11:08:02,701] root INFO ##########################################################################################################################\n[2025-07-28 11:08:02,702] root INFO #                                                                                                                        #\n[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     #\n[2025-07-28 11:08:02,703] root INFO #                                                                                                                        #\n[2025-07-28 11:08:02,703] root INFO ##########################################################################################################################\n[2025-07-28 11:08:02,704] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 11:08:02,705] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 11:08:02,705] pyhamilton.interface INFO started the server thread\n[2025-07-28 11:08:02,705] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 11:08:02,707] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 11:08:04,208] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 11:08:04,209] pyhamilton.interface INFO disconnected from server\n[2025-07-28 11:08:04,310] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 11:08:04,317] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 11:08:04,321] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 11:08:04,322] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 11:08:04,322] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:08:04,324] root ERROR Traceback (most recent call last):\n[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 <module>    transfer_96(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 11:08:04,327] root ERROR TypeError: transfer_96() missing 1 required positional argument: 'volume'\n[2025-07-28 11:09:00,002] root INFO ##########################################################################################################################\n[2025-07-28 11:09:00,003] root INFO #                                                                                                                        #\n[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     #\n[2025-07-28 11:09:00,003] root INFO #                                                                                                                        #\n[2025-07-28 11:09:00,004] root INFO ##########################################################################################################################\n[2025-07-28 11:09:00,005] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 11:09:00,006] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 11:09:00,007] pyhamilton.interface INFO started the server thread\n[2025-07-28 11:09:00,008] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 11:09:00,666] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[2025-07-28 11:09:02,670] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 11:09:04,171] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 11:09:04,171] pyhamilton.interface INFO disconnected from server\n[2025-07-28 11:09:04,271] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 11:09:04,279] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 11:09:04,283] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 11:09:04,284] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 11:09:04,284] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:09:04,289] root ERROR Traceback (most recent call last):\n[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 <module>    transfer_96(ham_int, tips, MIDI_OffMagnet, MIDI_OnMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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        ^^^^^^^^^^^^^^    ),    ^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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))\n[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\n[2025-07-28 11:10:34,789] root INFO ##########################################################################################################################\n[2025-07-28 11:10:34,790] root INFO #                                                                                                                        #\n[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     #\n[2025-07-28 11:10:34,791] root INFO #                                                                                                                        #\n[2025-07-28 11:10:34,791] root INFO ##########################################################################################################################\n[2025-07-28 11:10:34,793] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 11:10:34,793] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 11:10:34,794] pyhamilton.interface INFO started the server thread\n[2025-07-28 11:10:34,794] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 11:10:35,418] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[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}\n[2025-07-28 11:10:41,426] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 11:10:42,927] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 11:10:42,927] pyhamilton.interface INFO disconnected from server\n[2025-07-28 11:10:43,028] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 11:10:43,038] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 11:10:43,041] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 11:10:43,042] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 11:10:43,042] pyhamilton.interface INFO server thread exited\n[2025-07-28 11:10:43,045] root ERROR Traceback (most recent call last):\n[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 <module>    transfer_96(ham_int, tips, MIDI_OffMagnet, MIDI_OnMagnet, 20, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ^^^^^^^^^^^^^^^^^^^^^\n[2025-07-28 11:10:43,048] root ERROR AttributeError: 'HamiltonInterface' object has no attribute 'eject_tips_96'\n[2025-07-28 12:17:14,299] root INFO ##########################################################################################################################\n[2025-07-28 12:17:14,300] root INFO #                                                                                                                        #\n[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     #\n[2025-07-28 12:17:14,300] root INFO #                                                                                                                        #\n[2025-07-28 12:17:14,300] root INFO ##########################################################################################################################\n[2025-07-28 12:17:14,301] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 12:17:14,302] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 12:17:14,302] pyhamilton.interface INFO started the server thread\n[2025-07-28 12:17:14,302] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 12:17:14,893] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[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}\n[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}\n[2025-07-28 12:17:20,900] pyhamilton.interface INFO tip_eject_96: Eject tips to default waste\n[2025-07-28 12:17:21,902] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 12:17:23,403] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 12:17:23,403] pyhamilton.interface INFO disconnected from server\n[2025-07-28 12:17:23,504] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 12:17:23,509] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 12:17:23,511] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 12:17:23,512] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 12:17:23,512] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:14:58,661] root INFO ##################################################################################################################\n[2025-07-28 13:14:58,663] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:14:58,664] root INFO #                                                                                                                #\n[2025-07-28 13:14:58,664] root INFO ##################################################################################################################\n[2025-07-28 13:14:58,666] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:14:58,667] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:14:58,667] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:14:58,668] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:14:59,670] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:15:01,171] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:15:01,171] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:15:01,272] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:15:01,281] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:15:01,284] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:15:01,284] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:15:01,285] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:15:01,289] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_create_star_device(ham_int, 'STAR', 0)    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 13:19:40,795] root INFO ##################################################################################################################\n[2025-07-28 13:19:40,795] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:19:40,796] root INFO #                                                                                                                #\n[2025-07-28 13:19:40,796] root INFO ##################################################################################################################\n[2025-07-28 13:19:40,797] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:19:40,798] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:19:40,798] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:19:40,798] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:19:41,799] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:19:43,300] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:19:43,301] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:19:43,402] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:19:43,405] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:19:43,406] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:19:43,407] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:19:43,407] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:19:43,409] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_create_star_device(ham_int, 'ML_STAR', 1)    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 13:22:34,590] root INFO ##################################################################################################################\n[2025-07-28 13:22:34,590] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:22:34,591] root INFO #                                                                                                                #\n[2025-07-28 13:22:34,591] root INFO ##################################################################################################################\n[2025-07-28 13:22:34,592] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:22:34,592] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:22:34,592] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:22:34,592] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:22:35,594] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:22:37,095] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:22:37,095] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:22:37,196] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:22:37,202] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:22:37,204] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:22:37,205] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:22:37,205] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:22:37,209] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_create_star_device(ham_int, 'ML_STAR', 1)    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 13:23:37,042] root INFO ##################################################################################################################\n[2025-07-28 13:23:37,043] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:23:37,043] root INFO #                                                                                                                #\n[2025-07-28 13:23:37,044] root INFO ##################################################################################################################\n[2025-07-28 13:23:37,045] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:23:37,046] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:23:37,046] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:23:37,046] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:23:38,048] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:23:39,549] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:23:39,550] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:23:39,650] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:23:39,654] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:23:39,656] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:23:39,656] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:23:39,657] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:23:39,660] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_set_simulation(ham_int, True)  # Set simulation mode if needed    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 13:32:10,352] root INFO ##################################################################################################################\n[2025-07-28 13:32:10,353] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:32:10,353] root INFO #                                                                                                                #\n[2025-07-28 13:32:10,353] root INFO ##################################################################################################################\n[2025-07-28 13:32:10,355] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:32:10,355] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:32:10,356] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:32:10,356] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:32:11,358] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:32:12,859] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:32:12,860] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:32:12,961] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:32:12,966] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:32:12,968] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:32:12,969] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:32:12,969] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:32:12,971] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_set_simulation(ham_int, True)  # Set simulation mode if needed    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 13:41:48,128] root INFO ##################################################################################################################\n[2025-07-28 13:41:48,129] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:41:48,129] root INFO #                                                                                                                #\n[2025-07-28 13:41:48,129] root INFO ##################################################################################################################\n[2025-07-28 13:41:48,131] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:41:48,131] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:41:48,132] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:41:48,132] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:41:49,134] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:41:50,635] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:41:50,636] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:41:50,736] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:41:50,741] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:41:50,743] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:41:50,744] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:41:50,744] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:41:50,749] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_set_simulation(ham_int, True)  # Set simulation mode if needed    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 13:43:02,616] root INFO ##################################################################################################################\n[2025-07-28 13:43:02,617] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:43:02,618] root INFO #                                                                                                                #\n[2025-07-28 13:43:02,618] root INFO ##################################################################################################################\n[2025-07-28 13:43:02,619] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:43:02,621] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:43:02,621] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:43:02,622] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:43:03,625] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:43:05,126] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:43:05,127] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:43:05,228] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:43:05,235] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:43:05,238] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:43:05,239] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:43:05,240] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:43:05,244] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_set_simulation(ham_int, True)  # Set simulation mode if needed    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 13:44:35,266] root INFO ##################################################################################################################\n[2025-07-28 13:44:35,267] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:44:35,268] root INFO #                                                                                                                #\n[2025-07-28 13:44:35,268] root INFO ##################################################################################################################\n[2025-07-28 13:44:35,269] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:44:35,270] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:44:35,270] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:44:35,271] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:44:36,273] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:44:37,774] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:44:37,775] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:44:37,875] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:44:37,883] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:44:37,886] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:44:37,886] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:44:37,887] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:44:37,891] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_set_simulation(ham_int, True)  # Set simulation mode if needed    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 13:59:44,315] root INFO ##################################################################################################################\n[2025-07-28 13:59:44,316] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 13:59:44,316] root INFO #                                                                                                                #\n[2025-07-28 13:59:44,316] root INFO ##################################################################################################################\n[2025-07-28 13:59:44,318] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 13:59:44,319] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 13:59:44,319] pyhamilton.interface INFO started the server thread\n[2025-07-28 13:59:44,319] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 13:59:45,321] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 13:59:46,823] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 13:59:46,824] pyhamilton.interface INFO disconnected from server\n[2025-07-28 13:59:46,925] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 13:59:46,933] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 13:59:46,936] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 13:59:46,937] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 13:59:46,938] pyhamilton.interface INFO server thread exited\n[2025-07-28 13:59:46,943] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_set_simulation(ham_int, 1)  # Set simulation mode if needed    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 14:11:33,009] root INFO ##################################################################################################################\n[2025-07-28 14:11:33,010] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 14:11:33,010] root INFO #                                                                                                                #\n[2025-07-28 14:11:33,010] root INFO ##################################################################################################################\n[2025-07-28 14:11:33,012] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 14:11:33,012] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 14:11:33,013] pyhamilton.interface INFO started the server thread\n[2025-07-28 14:11:33,013] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 14:11:34,016] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 14:11:35,516] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 14:11:35,517] pyhamilton.interface INFO disconnected from server\n[2025-07-28 14:11:35,618] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 14:11:35,626] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 14:11:35,630] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 14:11:35,631] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 14:11:35,631] pyhamilton.interface INFO server thread exited\n[2025-07-28 14:11:35,637] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_set_simulation(ham_int, 1)  # Set simulation mode if needed    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 14:45:37,562] root INFO ##################################################################################################################\n[2025-07-28 14:45:37,564] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 14:45:37,565] root INFO #                                                                                                                #\n[2025-07-28 14:45:37,565] root INFO ##################################################################################################################\n[2025-07-28 14:45:37,566] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 14:45:37,568] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 14:45:37,568] pyhamilton.interface INFO started the server thread\n[2025-07-28 14:45:37,569] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 14:45:38,572] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 14:45:40,073] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 14:45:40,073] pyhamilton.interface INFO disconnected from server\n[2025-07-28 14:45:40,174] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 14:45:40,181] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 14:45:40,184] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 14:45:40,184] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 14:45:40,185] pyhamilton.interface INFO server thread exited\n[2025-07-28 14:45:40,187] root ERROR Traceback (most recent call last):\n[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 <module>    hhs_set_simulation(ham_int, 1)  # Set simulation mode if needed    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-28 14:50:41,780] root INFO ##################################################################################################################\n[2025-07-28 14:50:41,781] root INFO #                                                                                                                #\n[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     #\n[2025-07-28 14:50:41,781] root INFO #                                                                                                                #\n[2025-07-28 14:50:41,781] root INFO ##################################################################################################################\n[2025-07-28 14:50:41,782] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-28 14:50:41,782] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-28 14:50:41,782] pyhamilton.interface INFO started the server thread\n[2025-07-28 14:50:41,782] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-07-28 14:50:45,786] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-28 14:50:47,288] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-28 14:50:47,288] pyhamilton.interface INFO disconnected from server\n[2025-07-28 14:50:47,388] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-28 14:50:47,394] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-28 14:50:47,396] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-28 14:50:47,397] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-28 14:50:47,398] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:54:22,432] root INFO #############################################################################################################################\n[2025-07-29 12:54:22,432] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 12:54:22,433] root INFO #                                                                                                                           #\n[2025-07-29 12:54:22,433] root INFO #############################################################################################################################\n[2025-07-29 12:54:22,433] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:54:22,434] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:54:22,434] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:54:22,434] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:54:22,946] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:54:22,946] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 12:54:22,946] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:54:23,047] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 12:54:23,054] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 12:54:23,058] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 12:54:23,058] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:54:23,059] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:54:23,060] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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')\n[2025-07-29 12:54:23,063] root ERROR ValueError: Can only pick up 8 tips at a time\n[2025-07-29 12:55:16,187] root INFO #############################################################################################################################\n[2025-07-29 12:55:16,187] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 12:55:16,187] root INFO #                                                                                                                           #\n[2025-07-29 12:55:16,187] root INFO #############################################################################################################################\n[2025-07-29 12:55:16,188] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:55:16,188] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:55:16,188] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:55:16,188] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:55:16,693] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:55:16,693] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 12:55:16,693] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:55:16,794] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 12:55:16,797] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 12:55:16,799] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 12:55:16,800] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:55:16,800] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:55:16,802] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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')\n[2025-07-29 12:55:16,805] root ERROR ValueError: Can only pick up 8 tips at a time\n[2025-07-29 12:55:36,988] root INFO #############################################################################################################################\n[2025-07-29 12:55:36,988] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 12:55:36,988] root INFO #                                                                                                                           #\n[2025-07-29 12:55:36,988] root INFO #############################################################################################################################\n[2025-07-29 12:55:36,988] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:55:36,989] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:55:36,989] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:55:36,989] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:55:37,507] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:55:37,507] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 12:55:37,508] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:55:37,608] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 12:55:37,612] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 12:55:37,614] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 12:55:37,615] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:55:37,615] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:55:37,619] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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')\n[2025-07-29 12:55:37,621] root ERROR ValueError: Can only pick up 8 tips at a time\n[2025-07-29 12:56:03,847] root INFO #############################################################################################################################\n[2025-07-29 12:56:03,848] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 12:56:03,848] root INFO #                                                                                                                           #\n[2025-07-29 12:56:03,848] root INFO #############################################################################################################################\n[2025-07-29 12:56:03,848] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:56:03,848] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:56:03,848] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:56:03,848] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:56:04,357] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:56:04,357] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 12:56:04,357] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:56:04,458] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 12:56:04,461] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 12:56:04,463] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 12:56:04,464] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:56:04,464] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:56:04,467] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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')\n[2025-07-29 12:56:04,470] root ERROR ValueError: Can only pick up 8 tips at a time\n[2025-07-29 12:56:55,211] root INFO #############################################################################################################################\n[2025-07-29 12:56:55,211] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 12:56:55,211] root INFO #                                                                                                                           #\n[2025-07-29 12:56:55,211] root INFO #############################################################################################################################\n[2025-07-29 12:56:55,212] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 12:56:55,212] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 12:56:55,212] pyhamilton.interface INFO started the server thread\n[2025-07-29 12:56:55,212] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-07-29 12:56:55,713] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 12:56:55,714] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 12:56:55,714] pyhamilton.interface INFO disconnected from server\n[2025-07-29 12:56:55,814] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 12:56:55,817] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 12:56:55,819] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 12:56:55,820] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 12:56:55,820] pyhamilton.interface INFO server thread exited\n[2025-07-29 12:56:55,822] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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')\n[2025-07-29 12:56:55,824] root ERROR ValueError: Can only pick up 8 tips at a time\n[2025-07-29 14:21:04,946] root INFO #############################################################################################################################\n[2025-07-29 14:21:04,946] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:21:04,946] root INFO #                                                                                                                           #\n[2025-07-29 14:21:04,946] root INFO #############################################################################################################################\n[2025-07-29 14:21:04,947] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:21:04,947] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:21:04,947] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:21:04,947] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[2025-07-29 14:21:05,663] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:21:05,664] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:21:05,664] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:21:05,765] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:21:05,769] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:21:05,771] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:21:05,772] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:21:05,772] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:21:05,775] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)                                              ^^^^^^^^^^^^^^^^^^\n[2025-07-29 14:21:05,777] root ERROR UnboundLocalError: cannot access local variable 'aspiration_volumes' where it is not associated with a value\n[2025-07-29 14:22:29,527] root INFO #############################################################################################################################\n[2025-07-29 14:22:29,528] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:22:29,528] root INFO #                                                                                                                           #\n[2025-07-29 14:22:29,528] root INFO #############################################################################################################################\n[2025-07-29 14:22:29,529] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:22:29,529] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:22:29,529] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:22:29,529] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[2025-07-29 14:22:30,299] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:22:30,299] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:22:30,299] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:22:30,400] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:22:30,404] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:22:30,406] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:22:30,407] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:22:30,407] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:22:30,411] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)) +    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 14:22:30,417] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 797, in <genexpr>    '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) +               ~~~~~~~~~~~~~~~^^^^^\n[2025-07-29 14:22:30,419] root ERROR TypeError: labware_pos_str() takes 2 positional arguments but 96 were given\n[2025-07-29 14:25:30,907] root INFO #############################################################################################################################\n[2025-07-29 14:25:30,907] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:25:30,907] root INFO #                                                                                                                           #\n[2025-07-29 14:25:30,907] root INFO #############################################################################################################################\n[2025-07-29 14:25:30,908] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:25:30,908] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:25:30,908] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:25:30,908] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[2025-07-29 14:25:31,570] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:25:31,571] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:25:31,571] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:25:31,671] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:25:31,675] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:25:31,677] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:25:31,678] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:25:31,678] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:25:31,681] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)) +    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 14:25:31,684] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 797, in <genexpr>    '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) +               ~~~~~~~~~~~~~~~^^^^^\n[2025-07-29 14:25:31,685] root ERROR TypeError: labware_pos_str() takes 2 positional arguments but 96 were given\n[2025-07-29 14:26:02,538] root INFO #############################################################################################################################\n[2025-07-29 14:26:02,539] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:26:02,539] root INFO #                                                                                                                           #\n[2025-07-29 14:26:02,539] root INFO #############################################################################################################################\n[2025-07-29 14:26:02,540] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:26:02,540] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:26:02,540] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:26:02,540] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[2025-07-29 14:26:03,173] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:26:03,173] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:26:03,173] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:26:03,274] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:26:03,277] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:26:03,279] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:26:03,280] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:26:03,280] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:26:03,283] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)) +    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 14:26:03,288] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 797, in <genexpr>    '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) +               ~~~~~~~~~~~~~~~^^^^^\n[2025-07-29 14:26:03,288] root ERROR TypeError: labware_pos_str() takes 2 positional arguments but 96 were given\n[2025-07-29 14:27:43,466] root INFO #############################################################################################################################\n[2025-07-29 14:27:43,467] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:27:43,467] root INFO #                                                                                                                           #\n[2025-07-29 14:27:43,467] root INFO #############################################################################################################################\n[2025-07-29 14:27:43,468] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:27:43,468] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:27:43,468] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:27:43,468] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:27:44,242] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:27:44,242] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:27:44,242] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:27:44,342] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:27:44,346] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:27:44,348] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:27:44,348] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:27:44,349] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:27:44,351] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ^^^^^^^^^^^^^^^^^^\n[2025-07-29 14:27:44,354] root ERROR AttributeError: 'HamiltonInterface' object has no attribute 'eject_tips'\n[2025-07-29 14:28:35,379] root INFO #############################################################################################################################\n[2025-07-29 14:28:35,380] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:28:35,380] root INFO #                                                                                                                           #\n[2025-07-29 14:28:35,380] root INFO #############################################################################################################################\n[2025-07-29 14:28:35,380] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:28:35,381] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:28:35,381] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:28:35,381] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:28:36,261] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,263] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,264] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,265] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,266] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,267] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:28:36,337] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,338] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,340] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,341] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,342] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:28:36,343] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:28:36,344] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:28:36,344] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:28:36,344] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:28:36,444] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:28:36,448] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:28:36,451] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:28:36,452] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:28:36,452] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:32:53,248] root INFO #############################################################################################################################\n[2025-07-29 14:32:53,249] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:32:53,249] root INFO #                                                                                                                           #\n[2025-07-29 14:32:53,249] root INFO #############################################################################################################################\n[2025-07-29 14:32:53,249] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:32:53,249] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:32:53,250] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:32:53,250] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[2025-07-29 14:32:53,929] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:32:53,929] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:32:53,929] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:32:54,030] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:32:54,034] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:32:54,036] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:32:54,036] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:32:54,037] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:32:54,039] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 14:32:54,041] root ERROR ValueError: too many values to unpack (expected 2)\n[2025-07-29 14:33:55,294] root INFO #############################################################################################################################\n[2025-07-29 14:33:55,294] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:33:55,295] root INFO #                                                                                                                           #\n[2025-07-29 14:33:55,295] root INFO #############################################################################################################################\n[2025-07-29 14:33:55,295] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:33:55,295] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:33:55,295] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:33:55,295] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[2025-07-29 14:33:55,926] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:33:55,926] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:33:55,926] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:33:56,027] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:33:56,030] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:33:56,032] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:33:56,033] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:33:56,033] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:33:56,037] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 14:33:56,041] root ERROR ValueError: too many values to unpack (expected 2)\n[2025-07-29 14:35:00,020] root INFO #############################################################################################################################\n[2025-07-29 14:35:00,020] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:35:00,020] root INFO #                                                                                                                           #\n[2025-07-29 14:35:00,020] root INFO #############################################################################################################################\n[2025-07-29 14:35:00,021] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:35:00,021] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:35:00,021] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:35:00,021] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:35:00,776] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,780] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,787] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,789] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,792] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:35:00,865] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,868] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,869] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,871] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,873] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:00,875] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:00,875] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:35:00,875] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:35:00,875] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:35:00,976] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:35:00,980] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:35:00,983] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:35:00,984] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:35:00,984] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:35:19,885] root INFO #############################################################################################################################\n[2025-07-29 14:35:19,885] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:35:19,885] root INFO #                                                                                                                           #\n[2025-07-29 14:35:19,885] root INFO #############################################################################################################################\n[2025-07-29 14:35:19,886] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:35:19,886] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:35:19,886] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:35:19,887] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:35:20,585] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,587] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,592] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,593] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,595] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:35:20,669] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,671] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,674] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,676] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,678] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:35:20,680] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:35:20,680] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:35:20,680] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:35:20,680] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:35:20,781] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:35:20,785] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:35:20,787] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:35:20,788] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:35:20,788] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:36:07,694] root INFO #############################################################################################################################\n[2025-07-29 14:36:07,694] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:36:07,694] root INFO #                                                                                                                           #\n[2025-07-29 14:36:07,694] root INFO #############################################################################################################################\n[2025-07-29 14:36:07,695] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:36:07,695] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:36:07,695] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:36:07,695] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:36:08,545] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,548] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,551] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,553] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,556] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,558] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:36:08,622] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,624] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,626] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,627] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,629] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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}\n[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'}\n[2025-07-29 14:36:08,631] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:36:08,631] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:36:08,631] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:36:08,631] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:36:08,732] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:36:08,736] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:36:08,739] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:36:08,740] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:36:08,740] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:41:06,703] root INFO #############################################################################################################################\n[2025-07-29 14:41:06,703] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:41:06,703] root INFO #                                                                                                                           #\n[2025-07-29 14:41:06,703] root INFO #############################################################################################################################\n[2025-07-29 14:41:06,704] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:41:06,704] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:41:06,704] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:41:06,704] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,487] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,558] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,620] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,681] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,744] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,803] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,863] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,922] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:07,981] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:08,040] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:08,102] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:08,175] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:41:08,175] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:41:08,175] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:41:08,175] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:41:08,276] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:41:08,280] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:41:08,282] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:41:08,283] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:41:08,283] pyhamilton.interface INFO server thread exited\n[2025-07-29 14:41:18,727] root INFO #############################################################################################################################\n[2025-07-29 14:41:18,727] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 14:41:18,727] root INFO #                                                                                                                           #\n[2025-07-29 14:41:18,727] root INFO #############################################################################################################################\n[2025-07-29 14:41:18,727] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 14:41:18,727] pyhamilton.interface INFO running in simulation mode\n[2025-07-29 14:41:18,727] pyhamilton.interface INFO started the server thread\n[2025-07-29 14:41:18,728] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,450] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,519] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,649] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,710] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,774] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,837] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,897] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:19,960] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:20,023] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:20,085] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-07-29 14:41:20,153] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-07-29 14:41:20,153] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 14:41:20,153] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-07-29 14:41:20,153] pyhamilton.interface INFO disconnected from server\n[2025-07-29 14:41:20,254] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 14:41:20,260] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 14:41:20,262] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 14:41:20,264] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 14:41:20,264] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:15:29,997] root INFO #############################################################################################################################\n[2025-07-29 15:15:29,997] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 15:15:29,998] root INFO #                                                                                                                           #\n[2025-07-29 15:15:29,998] root INFO #############################################################################################################################\n[2025-07-29 15:15:29,998] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:15:29,999] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:15:29,999] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:15:29,999] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[2025-07-29 15:15:36,358] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:15:42,468] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:15:56,620] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 15:15:58,584] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:15:59,167] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:15:59,268] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 15:15:59,272] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 15:15:59,276] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 15:15:59,280] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:15:59,280] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:15:59,287] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~^^\n[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        ^^^^^^^^^^^^^^^^^^^^^^^^^^    )    ^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:15:59,293] root ERROR KeyboardInterrupt\n[2025-07-29 15:15:59,293] root ERROR During handling of the above exception, another exception occurred:\n[2025-07-29 15:15:59,294] root ERROR Traceback (most recent call last):\n[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 <module>    with HamiltonInterface(windowed=True, simulating=False) as ham_int:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:15:59,298] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 588, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:15:59,299] root ERROR KeyboardInterrupt\n[2025-07-29 15:18:18,078] root INFO #############################################################################################################################\n[2025-07-29 15:18:18,078] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 15:18:18,078] root INFO #                                                                                                                           #\n[2025-07-29 15:18:18,078] root INFO #############################################################################################################################\n[2025-07-29 15:18:18,079] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:18:18,079] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:18:18,079] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:18:18,080] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[2025-07-29 15:18:25,228] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:18:31,335] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[2025-07-29 15:18:41,940] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:18:42,143] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:18:42,244] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 15:18:42,249] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 15:18:42,251] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 15:18:42,252] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:18:42,252] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:18:42,258] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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']    )\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:18:42,266] root ERROR KeyboardInterrupt\n[2025-07-29 15:18:42,266] root ERROR During handling of the above exception, another exception occurred:\n[2025-07-29 15:18:42,267] root ERROR Traceback (most recent call last):\n[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 <module>    with HamiltonInterface(windowed=True, simulating=False) as ham_int:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:18:42,271] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 588, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:18:42,274] root ERROR KeyboardInterrupt\n[2025-07-29 15:20:01,548] root INFO #############################################################################################################################\n[2025-07-29 15:20:01,548] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 15:20:01,548] root INFO #                                                                                                                           #\n[2025-07-29 15:20:01,549] root INFO #############################################################################################################################\n[2025-07-29 15:20:01,549] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:20:01,550] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:20:01,550] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:20:01,550] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[2025-07-29 15:20:07,644] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:20:14,780] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:20:20,980] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-07-29 15:20:38,149] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[2025-07-29 15:20:44,075] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:20:44,270] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:20:44,371] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 15:20:44,379] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 15:20:44,381] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 15:20:44,382] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:20:44,383] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:20:44,387] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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        ^^^^^^^^^^^^^^^^^^^^^^^^^^    )    ^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:20:44,392] root ERROR KeyboardInterrupt\n[2025-07-29 15:20:44,393] root ERROR During handling of the above exception, another exception occurred:\n[2025-07-29 15:20:44,393] root ERROR Traceback (most recent call last):\n[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 <module>    with HamiltonInterface(windowed=True, simulating=False) as ham_int:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:20:44,397] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 588, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:20:44,400] root ERROR KeyboardInterrupt\n[2025-07-29 15:23:09,600] root INFO #############################################################################################################################\n[2025-07-29 15:23:09,601] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 15:23:09,601] root INFO #                                                                                                                           #\n[2025-07-29 15:23:09,601] root INFO #############################################################################################################################\n[2025-07-29 15:23:09,602] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:23:09,602] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:23:09,602] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:23:09,603] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[2025-07-29 15:23:14,788] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:23:16,290] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-29 15:23:16,290] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:23:16,390] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 15:23:16,394] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 15:23:16,396] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 15:23:16,397] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:23:16,398] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:23:16,401] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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']    )\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-07-29 15:23:50,330] root INFO #############################################################################################################################\n[2025-07-29 15:23:50,331] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 15:23:50,332] root INFO #                                                                                                                           #\n[2025-07-29 15:23:50,332] root INFO #############################################################################################################################\n[2025-07-29 15:23:50,333] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:23:50,333] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:23:50,333] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:23:50,333] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[2025-07-29 15:23:51,421] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:23:52,922] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-29 15:23:52,922] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:23:53,023] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-07-29 15:23:53,026] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-07-29 15:23:53,028] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-07-29 15:23:53,029] pyhamilton.interface INFO dummy get request sent to server\n[2025-07-29 15:23:53,029] pyhamilton.interface INFO server thread exited\n[2025-07-29 15:23:53,031] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_1000ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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)):       ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-07-29 15:23:53,033] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton_examples\\pyhamilton_advanced\\pipetting\\pipetting.py\", line 37, in <genexpr>    if all(v <= a for v, a in zip(new_total, asp_vols)):           ^^^^^^\n[2025-07-29 15:23:53,033] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType'\n[2025-07-29 15:25:17,964] root INFO #############################################################################################################################\n[2025-07-29 15:25:17,964] root INFO #                                                                                                                           #\n[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     #\n[2025-07-29 15:25:17,965] root INFO #                                                                                                                           #\n[2025-07-29 15:25:17,965] root INFO #############################################################################################################################\n[2025-07-29 15:25:17,966] pyhamilton.interface INFO starting a Hamilton interface\n[2025-07-29 15:25:17,967] pyhamilton.interface INFO started the oem application for simulation\n[2025-07-29 15:25:17,968] pyhamilton.interface INFO started the server thread\n[2025-07-29 15:25:17,969] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-07-29 15:26:08,239] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-07-29 15:26:11,242] pyhamilton.interface INFO sending end run command to simulator\n[2025-07-29 15:26:12,743] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-07-29 15:26:12,744] pyhamilton.interface INFO disconnected from server\n[2025-07-29 15:26:12,845] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:49:58,852] root INFO #############################################################################################################################\n[2025-08-04 14:49:58,853] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 14:49:58,853] root INFO #                                                                                                                           #\n[2025-08-04 14:49:58,853] root INFO #############################################################################################################################\n[2025-08-04 14:49:58,853] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 14:49:58,854] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 14:49:58,854] pyhamilton.interface INFO started the server thread\n[2025-08-04 14:49:58,854] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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)\n[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)\n[2025-08-04 14:49:59,638] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 14:49:59,638] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 14:49:59,640] pyhamilton.interface INFO disconnected from server\n[2025-08-04 14:49:59,741] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 14:49:59,743] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 14:49:59,746] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 14:49:59,746] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 14:49:59,747] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:49:59,748] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'HighVolumeFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)}\")\n[2025-08-04 14:49:59,750] root ERROR ValueError: Tip type does not match liquid class: 50 != 1000\n[2025-08-04 14:50:29,596] root INFO #############################################################################################################################\n[2025-08-04 14:50:29,596] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 14:50:29,597] root INFO #                                                                                                                           #\n[2025-08-04 14:50:29,597] root INFO #############################################################################################################################\n[2025-08-04 14:50:29,597] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 14:50:29,597] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 14:50:29,597] pyhamilton.interface INFO started the server thread\n[2025-08-04 14:50:29,597] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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)\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:30,223] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:30,466] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:30,709] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:30,954] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:31,193] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:31,652] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:32,534] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:33,452] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:34,318] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:35,141] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:36,232] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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)\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 14:50:38,655] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-08-04 14:50:38,656] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 14:50:38,656] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 14:50:38,656] pyhamilton.interface INFO disconnected from server\n[2025-08-04 14:50:38,756] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 14:50:38,762] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 14:50:38,765] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 14:50:38,766] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 14:50:38,766] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:55:35,654] root INFO #############################################################################################################################\n[2025-08-04 14:55:35,654] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 14:55:35,654] root INFO #                                                                                                                           #\n[2025-08-04 14:55:35,654] root INFO #############################################################################################################################\n[2025-08-04 14:55:35,655] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 14:55:35,655] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 14:55:35,655] pyhamilton.interface INFO started the server thread\n[2025-08-04 14:55:35,655] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 14:55:35,685] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 14:55:35,685] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 14:55:35,685] pyhamilton.interface INFO disconnected from server\n[2025-08-04 14:55:35,786] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 14:55:35,788] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 14:55:35,790] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 14:55:35,790] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 14:55:35,791] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:55:35,792] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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)):       ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-04 14:55:35,795] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton_examples\\pyhamilton_advanced\\pipetting\\pipetting.py\", line 37, in <genexpr>    if all(v <= a for v, a in zip(new_total, asp_vols)):           ^^^^^^\n[2025-08-04 14:55:35,795] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType'\n[2025-08-04 14:58:16,358] root INFO #############################################################################################################################\n[2025-08-04 14:58:16,358] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 14:58:16,358] root INFO #                                                                                                                           #\n[2025-08-04 14:58:16,358] root INFO #############################################################################################################################\n[2025-08-04 14:58:16,358] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 14:58:16,359] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 14:58:16,359] pyhamilton.interface INFO started the server thread\n[2025-08-04 14:58:16,359] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 14:58:16,381] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 14:58:16,381] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 14:58:16,381] pyhamilton.interface INFO disconnected from server\n[2025-08-04 14:58:16,482] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 14:58:16,485] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 14:58:16,486] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 14:58:16,487] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 14:58:16,487] pyhamilton.interface INFO server thread exited\n[2025-08-04 14:58:16,489] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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)):       ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-04 14:58:16,492] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton_examples\\pyhamilton_advanced\\pipetting\\pipetting.py\", line 39, in <genexpr>    if all(v <= a for v, a in zip(new_total, asp_vols)):           ^^^^^^\n[2025-08-04 14:58:16,492] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType'\n[2025-08-04 15:01:20,150] root INFO #############################################################################################################################\n[2025-08-04 15:01:20,150] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 15:01:20,151] root INFO #                                                                                                                           #\n[2025-08-04 15:01:20,151] root INFO #############################################################################################################################\n[2025-08-04 15:01:20,151] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:01:20,151] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:01:20,151] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:01:20,151] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:01:20,172] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:01:20,173] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 15:01:20,173] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:01:20,274] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 15:01:20,278] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 15:01:20,280] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 15:01:20,281] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:01:20,281] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:01:20,284] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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)):       ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-04 15:01:20,287] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton_examples\\pyhamilton_advanced\\pipetting\\pipetting.py\", line 39, in <genexpr>    if all(v <= a for v, a in zip(new_total, asp_vols)):           ^^^^^^\n[2025-08-04 15:01:20,288] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType'\n[2025-08-04 15:05:44,982] root INFO #############################################################################################################################\n[2025-08-04 15:05:44,982] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 15:05:44,982] root INFO #                                                                                                                           #\n[2025-08-04 15:05:44,982] root INFO #############################################################################################################################\n[2025-08-04 15:05:44,983] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:05:44,983] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:05:44,983] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:05:44,983] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:05:45,003] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:05:45,004] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 15:05:45,004] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:05:45,105] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 15:05:45,109] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 15:05:45,111] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 15:05:45,112] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:05:45,113] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:05:45,115] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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)):       ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-04 15:05:45,119] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton_examples\\pyhamilton_advanced\\pipetting\\pipetting.py\", line 39, in <genexpr>    if all(v <= a for v, a in zip(new_total, asp_vols)):           ^^^^^^\n[2025-08-04 15:05:45,119] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType'\n[2025-08-04 15:07:18,430] root INFO #############################################################################################################################\n[2025-08-04 15:07:18,430] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 15:07:18,430] root INFO #                                                                                                                           #\n[2025-08-04 15:07:18,430] root INFO #############################################################################################################################\n[2025-08-04 15:07:18,431] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:07:18,431] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:07:18,432] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:07:18,432] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:07:18,455] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:07:18,456] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 15:07:18,456] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:07:18,556] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 15:07:18,559] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 15:07:18,561] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 15:07:18,561] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:07:18,561] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:07:18,563] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)\n[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)):       ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-04 15:07:18,566] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton_examples\\pyhamilton_advanced\\pipetting\\pipetting.py\", line 37, in <genexpr>    if all(v <= a for v, a in zip(new_total, asp_vols)):           ^^^^^^\n[2025-08-04 15:07:18,567] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType'\n[2025-08-04 15:08:40,503] root INFO #############################################################################################################################\n[2025-08-04 15:08:40,503] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 15:08:40,503] root INFO #                                                                                                                           #\n[2025-08-04 15:08:40,503] root INFO #############################################################################################################################\n[2025-08-04 15:08:40,504] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:08:40,504] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:08:40,504] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:08:40,504] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:08:40,521] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:08:40,522] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 15:08:40,522] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:08:40,622] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 15:08:40,626] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 15:08:40,628] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 15:08:40,629] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:08:40,629] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:08:40,635] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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\n[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)\n[2025-08-04 15:08:40,642] root ERROR   File \"<string>\", line 2, in create_engine\n[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]\n[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()\n[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)\n[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)    )\n[2025-08-04 15:08:40,644] root ERROR sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:access.pyodbc\n[2025-08-04 15:10:39,763] root INFO #############################################################################################################################\n[2025-08-04 15:10:39,763] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 15:10:39,763] root INFO #                                                                                                                           #\n[2025-08-04 15:10:39,763] root INFO #############################################################################################################################\n[2025-08-04 15:10:39,764] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:10:39,764] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:10:39,764] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:10:39,765] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:10:39,788] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:10:39,789] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 15:10:39,789] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:10:39,890] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 15:10:39,893] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 15:10:39,895] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 15:10:39,896] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:10:39,896] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:10:39,902] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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\n[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)\n[2025-08-04 15:10:39,906] root ERROR   File \"<string>\", line 2, in create_engine\n[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]\n[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()\n[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)\n[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)    )\n[2025-08-04 15:10:39,909] root ERROR sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:access.pyodbc\n[2025-08-04 15:12:11,109] root INFO #############################################################################################################################\n[2025-08-04 15:12:11,109] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 15:12:11,109] root INFO #                                                                                                                           #\n[2025-08-04 15:12:11,109] root INFO #############################################################################################################################\n[2025-08-04 15:12:11,109] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:12:11,110] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:12:11,110] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:12:11,110] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-04 15:12:11,111] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:12:11,111] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 15:12:11,111] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:12:11,212] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:12:11,214] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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\n[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)\n[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()    ~~~~~~~~~~~~~~~~~~~~~^^\n[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>...    )\n[2025-08-04 15:12:11,216] root ERROR ModuleNotFoundError: SQLAlchemy Access dialect not found. Install with: pip install sqlalchemy-access\n[2025-08-04 15:12:58,290] root INFO #############################################################################################################################\n[2025-08-04 15:12:58,290] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 15:12:58,290] root INFO #                                                                                                                           #\n[2025-08-04 15:12:58,290] root INFO #############################################################################################################################\n[2025-08-04 15:12:58,291] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:12:58,291] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:12:58,291] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:12:58,291] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:12:59,191] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:12:59,485] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:12:59,939] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:00,489] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:00,972] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:01,497] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:01,996] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:02,470] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:02,998] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:03,471] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:04,001] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:13:04,559] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-08-04 15:13:04,560] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:13:04,560] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 15:13:04,560] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:13:04,660] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 15:13:04,664] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 15:13:04,667] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 15:13:04,667] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:13:04,668] pyhamilton.interface INFO server thread exited\n[2025-08-04 15:16:58,433] root INFO #############################################################################################################################\n[2025-08-04 15:16:58,433] root INFO #                                                                                                                           #\n[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     #\n[2025-08-04 15:16:58,433] root INFO #                                                                                                                           #\n[2025-08-04 15:16:58,433] root INFO #############################################################################################################################\n[2025-08-04 15:16:58,433] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-04 15:16:58,434] pyhamilton.interface INFO running in simulation mode\n[2025-08-04 15:16:58,434] pyhamilton.interface INFO started the server thread\n[2025-08-04 15:16:58,434] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:16:59,303] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:16:59,751] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:00,281] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:00,840] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:01,392] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:01,960] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:02,441] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:02,943] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:03,442] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:03,926] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:04,413] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[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\n[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}\n[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}\n[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'}\n[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}\n[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'}\n[2025-08-04 15:17:04,964] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-08-04 15:17:04,964] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-04 15:17:04,965] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-04 15:17:04,965] pyhamilton.interface INFO disconnected from server\n[2025-08-04 15:17:05,065] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-04 15:17:05,071] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-04 15:17:05,073] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-04 15:17:05,074] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-04 15:17:05,074] pyhamilton.interface INFO server thread exited\n[2025-08-05 14:34:38,897] root INFO #############################################################################################################################\n[2025-08-05 14:34:38,899] root INFO #                                                                                                                           #\n[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     #\n[2025-08-05 14:34:38,899] root INFO #                                                                                                                           #\n[2025-08-05 14:34:38,899] root INFO #############################################################################################################################\n[2025-08-05 14:34:38,900] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 14:34:38,901] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18071e8c723f')\n[2025-08-05 14:34:38,901] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 14:34:38,901] pyhamilton.interface INFO started the server thread\n[2025-08-05 14:34:38,901] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-08-05 14:35:47,522] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 14:35:49,023] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 14:35:49,023] pyhamilton.interface INFO disconnected from server\n[2025-08-05 14:35:49,124] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-05 14:35:49,128] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-05 14:35:49,130] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-05 14:35:49,131] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 14:35:49,131] pyhamilton.interface INFO server thread exited\n[2025-08-05 14:35:49,134] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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']    )\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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]()\n[2025-08-05 14:35:49,139] root ERROR pyhamilton.oemerr.NotAspiratedError\n[2025-08-05 14:46:36,520] root INFO #############################################################################################################################\n[2025-08-05 14:46:36,520] root INFO #                                                                                                                           #\n[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     #\n[2025-08-05 14:46:36,521] root INFO #                                                                                                                           #\n[2025-08-05 14:46:36,521] root INFO #############################################################################################################################\n[2025-08-05 14:46:36,523] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 14:46:36,524] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x180749528583')\n[2025-08-05 14:46:36,524] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 14:46:36,525] pyhamilton.interface INFO started the server thread\n[2025-08-05 14:46:36,525] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-08-05 14:47:52,159] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[2025-08-05 14:48:17,885] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 14:48:19,386] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 14:48:19,386] pyhamilton.interface INFO disconnected from server\n[2025-08-05 14:48:19,487] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-05 14:48:19,492] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-05 14:48:19,493] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-05 14:48:19,494] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 14:48:19,494] pyhamilton.interface INFO server thread exited\n[2025-08-05 14:48:19,501] root ERROR Traceback (most recent call last):\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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        ^^^^^^^^^^^^^^^^^^^^^^^^^^    )    ^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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]()\n[2025-08-05 14:48:19,504] root ERROR pyhamilton.oemerr.NoTipError\n[2025-08-05 14:48:19,504] root ERROR During handling of the above exception, another exception occurred:\n[2025-08-05 14:48:19,505] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Part')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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]              ~~~~~~~~~~~~~~^^^^^^^\n[2025-08-05 14:48:19,507] root ERROR TypeError: list indices must be integers or slices, not list\n[2025-08-05 14:52:51,795] root INFO ###########################################################################################################################\n[2025-08-05 14:52:51,795] root INFO #                                                                                                                         #\n[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     #\n[2025-08-05 14:52:51,796] root INFO #                                                                                                                         #\n[2025-08-05 14:52:51,796] root INFO ###########################################################################################################################\n[2025-08-05 14:52:51,797] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 14:52:51,798] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18075f54f850')\n[2025-08-05 14:52:51,798] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 14:52:51,798] pyhamilton.interface INFO started the server thread\n[2025-08-05 14:52:51,798] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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\n[2025-08-05 14:53:21,732] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 14:53:23,232] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 14:53:23,233] pyhamilton.interface INFO disconnected from server\n[2025-08-05 14:53:23,333] pyhamilton.interface INFO server thread exited\n[2025-08-05 14:53:23,342] root ERROR Traceback (most recent call last):\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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        ^^^^^^^^^^^^^^^^^^^^^^^^^^    )    ^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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]()\n[2025-08-05 14:53:23,347] root ERROR pyhamilton.oemerr.TipPresentError\n[2025-08-05 14:53:23,348] root ERROR During handling of the above exception, another exception occurred:\n[2025-08-05 14:53:23,348] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n[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]              ~~~~~~~~~~~~~~^^^^^^^\n[2025-08-05 14:53:23,350] root ERROR TypeError: list indices must be integers or slices, not list\n[2025-08-05 14:57:14,888] root INFO ###########################################################################################################################\n[2025-08-05 14:57:14,888] root INFO #                                                                                                                         #\n[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     #\n[2025-08-05 14:57:14,889] root INFO #                                                                                                                         #\n[2025-08-05 14:57:14,889] root INFO ###########################################################################################################################\n[2025-08-05 14:57:14,890] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 14:57:14,890] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18076f5f5689')\n[2025-08-05 14:57:14,890] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 14:57:14,890] pyhamilton.interface INFO started the server thread\n[2025-08-05 14:57:14,890] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[2025-08-05 14:58:04,693] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 14:58:53,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 14:59:44,861] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:00:33,949] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:01:25,041] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 15:01:26,542] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 15:01:26,543] pyhamilton.interface INFO disconnected from server\n[2025-08-05 15:01:26,643] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-05 15:01:26,647] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-05 15:01:26,649] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-05 15:01:26,650] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 15:01:26,650] pyhamilton.interface INFO server thread exited\n[2025-08-05 15:01:26,654] root ERROR Traceback (most recent call last):\n[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 <module>    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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']    )\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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]()\n[2025-08-05 15:01:26,657] root ERROR pyhamilton.oemerr.LiquidLevelError\n[2025-08-05 15:11:22,980] root INFO ###########################################################################################################################\n[2025-08-05 15:11:22,981] root INFO #                                                                                                                         #\n[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     #\n[2025-08-05 15:11:22,982] root INFO #                                                                                                                         #\n[2025-08-05 15:11:22,982] root INFO ###########################################################################################################################\n[2025-08-05 15:11:22,982] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 15:11:22,983] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1807a1af02ad')\n[2025-08-05 15:11:22,983] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 15:11:22,984] pyhamilton.interface INFO started the server thread\n[2025-08-05 15:11:22,984] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-08-05 15:11:34,507] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 15:11:36,009] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-05 15:11:36,009] pyhamilton.interface INFO disconnected from server\n[2025-08-05 15:11:36,110] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-05 15:11:36,118] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-05 15:11:36,120] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-05 15:11:36,121] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 15:11:36,121] pyhamilton.interface INFO server thread exited\n[2025-08-05 15:11:36,124] root ERROR Traceback (most recent call last):\n[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 <module>    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)                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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\n[2025-08-05 15:13:16,485] root INFO ###########################################################################################################################\n[2025-08-05 15:13:16,485] root INFO #                                                                                                                         #\n[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     #\n[2025-08-05 15:13:16,485] root INFO #                                                                                                                         #\n[2025-08-05 15:13:16,485] root INFO ###########################################################################################################################\n[2025-08-05 15:13:16,486] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-05 15:13:16,486] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1807a891838d')\n[2025-08-05 15:13:16,486] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-05 15:13:16,487] pyhamilton.interface INFO started the server thread\n[2025-08-05 15:13:16,487] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[2025-08-05 15:13:54,102] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:14:49,190] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:15:46,294] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:16:37,377] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:17:33,463] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:18:45,609] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[2025-08-05 15:19:58,748] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-05 15:20:25,476] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-05 15:20:25,654] pyhamilton.interface INFO disconnected from server\n[2025-08-05 15:20:25,754] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-05 15:20:25,760] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-05 15:20:25,762] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-05 15:20:25,763] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-05 15:20:25,764] pyhamilton.interface INFO server thread exited\n[2025-08-05 15:20:25,776] root ERROR Traceback (most recent call last):\n[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 <module>    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)                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~^^\n[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        ^^^^^^^^^^^^^^^^^^^^^^^^^^    )    ^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-05 15:20:25,791] root ERROR KeyboardInterrupt\n[2025-08-05 15:20:25,792] root ERROR During handling of the above exception, another exception occurred:\n[2025-08-05 15:20:25,793] root ERROR Traceback (most recent call last):\n[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 <module>    with HamiltonInterface(windowed=True, simulating=False) as ham_int:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-05 15:20:25,798] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 642, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-05 15:20:25,799] root ERROR KeyboardInterrupt\n[2025-08-06 14:48:21,588] root INFO ##################################################################################################################\n[2025-08-06 14:48:21,589] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 14:48:21,589] root INFO #                                                                                                                #\n[2025-08-06 14:48:21,590] root INFO ##################################################################################################################\n[2025-08-06 14:48:21,590] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:48:21,591] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b6d4ea40b')\n[2025-08-06 14:48:21,591] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:48:21,592] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:48:21,592] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:48:22,593] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:48:24,095] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:48:24,095] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:48:24,196] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 14:48:24,202] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 14:48:24,204] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 14:48:24,205] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:48:24,205] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:48:24,206] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 'ML_STAR', '1')\n[2025-08-06 14:48:24,207] root ERROR TypeError: hhs_create_usb_device() takes 2 positional arguments but 3 were given\n[2025-08-06 14:49:11,006] root INFO ##################################################################################################################\n[2025-08-06 14:49:11,007] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 14:49:11,007] root INFO #                                                                                                                #\n[2025-08-06 14:49:11,008] root INFO ##################################################################################################################\n[2025-08-06 14:49:11,009] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:49:11,010] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b7040ab90')\n[2025-08-06 14:49:11,010] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:49:11,011] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:49:11,011] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:49:13,014] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:49:14,515] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:49:14,515] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:49:14,616] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 14:49:14,619] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 14:49:14,620] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 14:49:14,621] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:49:14,621] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:49:14,627] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int,'1')\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 14:50:02,881] root INFO ##################################################################################################################\n[2025-08-06 14:50:02,882] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 14:50:02,883] root INFO #                                                                                                                #\n[2025-08-06 14:50:02,883] root INFO ##################################################################################################################\n[2025-08-06 14:50:02,884] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:50:02,884] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b73678595')\n[2025-08-06 14:50:02,884] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:50:02,884] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:50:02,884] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:50:05,887] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:50:07,389] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:50:07,389] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:50:07,490] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 14:50:07,499] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 14:50:07,501] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 14:50:07,502] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:50:07,502] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:51:48,474] root INFO ##################################################################################################################\n[2025-08-06 14:51:48,475] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 14:51:48,476] root INFO #                                                                                                                #\n[2025-08-06 14:51:48,476] root INFO ##################################################################################################################\n[2025-08-06 14:51:48,477] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:51:48,477] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b79b2b706')\n[2025-08-06 14:51:48,478] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:51:48,478] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:51:48,478] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:52:03,487] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:52:04,988] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:52:04,989] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:52:05,089] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 14:52:05,096] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 14:52:05,098] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 14:52:05,099] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:52:05,099] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:54:53,054] root INFO ##################################################################################################################\n[2025-08-06 14:54:53,055] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 14:54:53,055] root INFO #                                                                                                                #\n[2025-08-06 14:54:53,055] root INFO ##################################################################################################################\n[2025-08-06 14:54:53,056] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:54:53,056] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b84b33288')\n[2025-08-06 14:54:53,056] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:54:53,057] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:54:53,057] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:55:07,064] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:55:08,565] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:55:08,565] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:55:08,666] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 14:55:08,673] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 14:55:08,676] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 14:55:08,677] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:55:08,678] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:58:40,872] root INFO ##################################################################################################################\n[2025-08-06 14:58:40,873] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 14:58:40,873] root INFO #                                                                                                                #\n[2025-08-06 14:58:40,873] root INFO ##################################################################################################################\n[2025-08-06 14:58:40,874] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 14:58:40,874] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b92199482')\n[2025-08-06 14:58:40,874] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 14:58:40,875] pyhamilton.interface INFO started the server thread\n[2025-08-06 14:58:40,875] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 14:58:42,877] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 14:58:44,378] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 14:58:44,379] pyhamilton.interface INFO disconnected from server\n[2025-08-06 14:58:44,480] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 14:58:44,486] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 14:58:44,487] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 14:58:44,488] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 14:58:44,488] pyhamilton.interface INFO server thread exited\n[2025-08-06 14:58:44,491] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int,1)\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 15:01:17,014] root INFO ##################################################################################################################\n[2025-08-06 15:01:17,014] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:01:17,015] root INFO #                                                                                                                #\n[2025-08-06 15:01:17,016] root INFO ##################################################################################################################\n[2025-08-06 15:01:17,018] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:01:17,019] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b9b95e3b0')\n[2025-08-06 15:01:17,019] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:01:17,019] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:01:17,020] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:01:19,023] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:01:20,524] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:01:20,524] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:01:20,625] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:01:20,629] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:01:20,631] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:01:20,632] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:01:20,632] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:01:20,634] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 1)\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 15:05:18,686] root INFO ##################################################################################################################\n[2025-08-06 15:05:18,686] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:05:18,687] root INFO #                                                                                                                #\n[2025-08-06 15:05:18,687] root INFO ##################################################################################################################\n[2025-08-06 15:05:18,688] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:05:18,688] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181ba9fda420')\n[2025-08-06 15:05:18,688] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:05:18,688] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:05:18,689] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:05:20,691] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:05:22,192] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:05:22,193] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:05:22,293] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:05:22,298] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:05:22,300] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:05:22,300] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:05:22,300] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:05:22,302] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 1)\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 15:07:27,741] root INFO ##################################################################################################################\n[2025-08-06 15:07:27,742] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:07:27,742] root INFO #                                                                                                                #\n[2025-08-06 15:07:27,742] root INFO ##################################################################################################################\n[2025-08-06 15:07:27,744] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:07:27,744] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bb1627fc3')\n[2025-08-06 15:07:27,744] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:07:27,745] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:07:27,745] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:07:29,747] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:07:31,248] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:07:31,248] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:07:31,348] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:07:31,351] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:07:31,353] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:07:31,354] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:07:31,354] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:07:31,358] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 1)\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 15:08:38,621] root INFO ##################################################################################################################\n[2025-08-06 15:08:38,621] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:08:38,622] root INFO #                                                                                                                #\n[2025-08-06 15:08:38,622] root INFO ##################################################################################################################\n[2025-08-06 15:08:38,623] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:08:38,623] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bb5e82607')\n[2025-08-06 15:08:38,623] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:08:38,623] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:08:38,624] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:08:41,627] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:08:43,128] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:08:43,129] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:08:43,230] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:08:43,236] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:08:43,238] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:08:43,239] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:08:43,239] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:08:43,245] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 1)\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 15:09:56,161] root INFO ##################################################################################################################\n[2025-08-06 15:09:56,161] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:09:56,161] root INFO #                                                                                                                #\n[2025-08-06 15:09:56,162] root INFO ##################################################################################################################\n[2025-08-06 15:09:56,162] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:09:56,163] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bba8770ad')\n[2025-08-06 15:09:56,163] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:09:56,163] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:09:56,163] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:09:59,165] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:10:00,666] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:10:00,666] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:10:00,767] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:10:00,775] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:10:00,778] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:10:00,779] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:10:00,779] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:10:00,782] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 1)\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 15:12:38,215] root INFO ##################################################################################################################\n[2025-08-06 15:12:38,216] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:12:38,217] root INFO #                                                                                                                #\n[2025-08-06 15:12:38,217] root INFO ##################################################################################################################\n[2025-08-06 15:12:38,219] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:12:38,220] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bc42fdfc1')\n[2025-08-06 15:12:38,221] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:12:38,221] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:12:38,222] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:12:40,225] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:12:41,727] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:12:41,728] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:12:41,829] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:12:41,835] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:12:41,837] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:12:41,839] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:12:41,839] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:12:41,842] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 1)\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 15:14:31,895] root INFO ##################################################################################################################\n[2025-08-06 15:14:31,895] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:14:31,896] root INFO #                                                                                                                #\n[2025-08-06 15:14:31,896] root INFO ##################################################################################################################\n[2025-08-06 15:14:31,897] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:14:31,898] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bcb061f4f')\n[2025-08-06 15:14:31,898] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:14:31,899] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:14:31,899] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:14:33,902] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:14:35,403] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:14:35,403] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:14:35,504] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:14:35,509] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:14:35,510] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:14:35,511] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:14:35,512] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:14:35,513] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 1)\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-06 15:16:33,402] root INFO ##################################################################################################################\n[2025-08-06 15:16:33,403] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:16:33,403] root INFO #                                                                                                                #\n[2025-08-06 15:16:33,403] root INFO ##################################################################################################################\n[2025-08-06 15:16:33,404] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:16:33,404] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bd2442240')\n[2025-08-06 15:16:33,405] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:16:33,405] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:16:33,405] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:16:39,408] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 5 sec while waiting for response id 0x181bd3ab5fe6')\n[2025-08-06 15:16:39,408] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:16:40,909] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:16:40,909] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:16:41,010] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:16:41,017] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:16:41,019] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:16:41,020] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:16:41,020] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:16:41,023] root ERROR Traceback (most recent call last):\n[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 <module>    device_id = hhs_create_usb_device(ham_int, 1)\n[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'])\n[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)))    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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\n[2025-08-06 15:16:41,025] root ERROR pyhamilton.oemerr.HamiltonTimeoutError: Timed out after 5 sec while waiting for response id 0x181bd3ab5fe6\n[2025-08-06 15:18:28,293] root INFO ##################################################################################################################\n[2025-08-06 15:18:28,294] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:18:28,294] root INFO #                                                                                                                #\n[2025-08-06 15:18:28,295] root INFO ##################################################################################################################\n[2025-08-06 15:18:28,295] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:18:28,297] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bd90df881')\n[2025-08-06 15:18:28,297] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:18:28,298] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:18:28,298] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:18:43,305] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:18:44,811] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:18:44,811] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:18:44,912] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:18:44,916] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:18:44,919] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:18:44,920] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:18:44,920] pyhamilton.interface INFO server thread exited\n[2025-08-06 15:20:38,206] root INFO ##################################################################################################################\n[2025-08-06 15:20:38,207] root INFO #                                                                                                                #\n[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     #\n[2025-08-06 15:20:38,208] root INFO #                                                                                                                #\n[2025-08-06 15:20:38,208] root INFO ##################################################################################################################\n[2025-08-06 15:20:38,209] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-06 15:20:38,209] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181be0cc5705')\n[2025-08-06 15:20:38,210] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-06 15:20:38,210] pyhamilton.interface INFO started the server thread\n[2025-08-06 15:20:38,210] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-06 15:21:03,222] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-06 15:21:04,723] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-06 15:21:04,724] pyhamilton.interface INFO disconnected from server\n[2025-08-06 15:21:04,825] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-06 15:21:04,830] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-06 15:21:04,833] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-06 15:21:04,834] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-06 15:21:04,835] pyhamilton.interface INFO server thread exited\n[2025-08-11 13:42:51,396] root INFO ############################################################################################################################################\n[2025-08-11 13:42:51,399] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 13:42:51,399] root INFO #                                                                                                                                          #\n[2025-08-11 13:42:51,399] root INFO ############################################################################################################################################\n[2025-08-11 13:42:51,400] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 13:42:51,401] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f11b190ef')\n[2025-08-11 13:42:51,401] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 13:42:51,401] pyhamilton.interface INFO started the server thread\n[2025-08-11 13:42:51,401] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 13:43:25,405] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 30 sec while waiting for response id 0x187f19f513de')\n[2025-08-11 13:43:25,406] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 13:43:26,907] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 13:43:26,908] pyhamilton.interface INFO disconnected from server\n[2025-08-11 13:43:27,008] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 13:43:27,015] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 13:43:27,017] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 13:43:27,017] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 13:43:27,017] pyhamilton.interface INFO server thread exited\n[2025-08-11 13:43:27,019] root ERROR Traceback (most recent call last):\n[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 <module>    odtc_initialize(ham_int, device_id)    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)))    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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\n[2025-08-11 13:43:27,022] root ERROR pyhamilton.oemerr.HamiltonTimeoutError: Timed out after 30 sec while waiting for response id 0x187f19f513de\n[2025-08-11 13:44:28,339] root INFO ############################################################################################################################################\n[2025-08-11 13:44:28,339] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 13:44:28,340] root INFO #                                                                                                                                          #\n[2025-08-11 13:44:28,340] root INFO ############################################################################################################################################\n[2025-08-11 13:44:28,340] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 13:44:28,341] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f1e1816d5')\n[2025-08-11 13:44:28,341] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 13:44:28,341] pyhamilton.interface INFO started the server thread\n[2025-08-11 13:44:28,341] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 13:45:15,368] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 13:45:16,869] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 13:45:16,869] pyhamilton.interface INFO disconnected from server\n[2025-08-11 13:45:16,971] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 13:45:16,976] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 13:45:16,978] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 13:45:16,979] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 13:45:16,979] pyhamilton.interface INFO server thread exited\n[2025-08-11 13:46:27,736] root INFO ############################################################################################################################################\n[2025-08-11 13:46:27,737] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 13:46:27,737] root INFO #                                                                                                                                          #\n[2025-08-11 13:46:27,737] root INFO ############################################################################################################################################\n[2025-08-11 13:46:27,739] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 13:46:27,740] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f250799e3')\n[2025-08-11 13:46:27,740] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 13:46:27,740] pyhamilton.interface INFO started the server thread\n[2025-08-11 13:46:27,740] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 13:47:01,745] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 30 sec while waiting for response id 0x187f26da2968')\n[2025-08-11 13:47:01,746] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 13:47:03,247] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 13:47:03,248] pyhamilton.interface INFO disconnected from server\n[2025-08-11 13:47:03,349] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 13:47:03,360] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 13:47:03,363] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 13:47:03,365] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 13:47:03,366] pyhamilton.interface INFO server thread exited\n[2025-08-11 13:47:03,370] root ERROR Traceback (most recent call last):\n[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 <module>    odtc_open_door(ham_int, device_id)    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^\n[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)\n[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)))    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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\n[2025-08-11 13:47:03,383] root ERROR pyhamilton.oemerr.HamiltonTimeoutError: Timed out after 30 sec while waiting for response id 0x187f26da2968\n[2025-08-11 13:49:35,740] root INFO ############################################################################################################################################\n[2025-08-11 13:49:35,741] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 13:49:35,742] root INFO #                                                                                                                                          #\n[2025-08-11 13:49:35,743] root INFO ############################################################################################################################################\n[2025-08-11 13:49:35,744] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 13:49:35,745] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f306a8336')\n[2025-08-11 13:49:35,746] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 13:49:35,746] pyhamilton.interface INFO started the server thread\n[2025-08-11 13:49:35,746] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 13:49:42,752] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 13:49:44,254] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 13:49:44,254] pyhamilton.interface INFO disconnected from server\n[2025-08-11 13:49:44,355] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 13:49:44,360] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 13:49:44,362] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 13:49:44,363] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 13:49:44,363] pyhamilton.interface INFO server thread exited\n[2025-08-11 14:54:49,038] root INFO ############################################################################################################################################\n[2025-08-11 14:54:49,039] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 14:54:49,039] root INFO #                                                                                                                                          #\n[2025-08-11 14:54:49,039] root INFO ############################################################################################################################################\n[2025-08-11 14:54:49,039] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 14:54:49,040] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188019a8f3ae')\n[2025-08-11 14:54:49,040] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 14:54:49,040] pyhamilton.interface INFO started the server thread\n[2025-08-11 14:54:49,040] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 14:54:52,042] pyhamilton.interface INFO move_plate: Moving plate HSP_Pipette2 to HSP_ODTC\n[2025-08-11 14:55:36,079] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 14:55:37,580] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 14:55:37,580] pyhamilton.interface INFO disconnected from server\n[2025-08-11 14:55:37,681] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 14:55:37,685] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 14:55:37,687] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 14:55:37,687] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 14:55:37,688] pyhamilton.interface INFO server thread exited\n[2025-08-11 14:59:49,290] root INFO ############################################################################################################################################\n[2025-08-11 14:59:49,290] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 14:59:49,290] root INFO #                                                                                                                                          #\n[2025-08-11 14:59:49,290] root INFO ############################################################################################################################################\n[2025-08-11 14:59:49,291] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 14:59:49,291] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18802b348991')\n[2025-08-11 14:59:49,292] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 14:59:49,292] pyhamilton.interface INFO started the server thread\n[2025-08-11 14:59:49,292] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 14:59:54,304] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 14:59:55,805] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 14:59:55,806] pyhamilton.interface INFO disconnected from server\n[2025-08-11 14:59:55,907] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 14:59:55,912] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 14:59:55,914] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 14:59:55,915] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 14:59:55,915] pyhamilton.interface INFO server thread exited\n[2025-08-11 14:59:55,917] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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.\")\n[2025-08-11 14:59:55,918] root ERROR TypeError: source & destination must be DeckResource instances for iSWAP moves.\n[2025-08-11 15:07:33,832] root INFO ############################################################################################################################################\n[2025-08-11 15:07:33,833] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:07:33,834] root INFO #                                                                                                                                          #\n[2025-08-11 15:07:33,834] root INFO ############################################################################################################################################\n[2025-08-11 15:07:33,836] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:07:33,837] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880474fb20b')\n[2025-08-11 15:07:33,837] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:07:33,837] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:07:33,838] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:07:36,851] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:07:38,351] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:07:38,352] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:07:38,453] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:07:38,458] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:07:38,460] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:07:38,461] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:07:38,461] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:07:38,465] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,        ^^^^^^^^^^^^    )    ^\n[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())                                           ^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-11 15:07:38,468] root ERROR AttributeError: 'str' object has no attribute 'layout_name'\n[2025-08-11 15:10:17,854] root INFO ############################################################################################################################################\n[2025-08-11 15:10:17,854] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:10:17,854] root INFO #                                                                                                                                          #\n[2025-08-11 15:10:17,854] root INFO ############################################################################################################################################\n[2025-08-11 15:10:17,855] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:10:17,855] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188050d99c78')\n[2025-08-11 15:10:17,855] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:10:17,855] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:10:17,855] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:10:20,869] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:10:20,869] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:10:22,370] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:10:22,371] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:10:22,471] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:10:22,477] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:10:22,479] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:10:22,480] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:10:22,480] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:10:22,482] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)\n[2025-08-11 15:10:22,484] root ERROR TypeError: pyhamilton.interface.HamiltonInterface.send_command() got multiple values for keyword argument 'transportMode'\n[2025-08-11 15:12:26,555] root INFO ############################################################################################################################################\n[2025-08-11 15:12:26,556] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:12:26,556] root INFO #                                                                                                                                          #\n[2025-08-11 15:12:26,557] root INFO ############################################################################################################################################\n[2025-08-11 15:12:26,558] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:12:26,559] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188058a3e9ee')\n[2025-08-11 15:12:26,559] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:12:26,560] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:12:26,560] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:12:34,579] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:12:34,579] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:12:36,080] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:12:36,080] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:12:36,181] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:12:36,185] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:12:36,186] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:12:36,187] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:12:36,187] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:12:36,191] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)\n[2025-08-11 15:12:36,194] root ERROR TypeError: pyhamilton.interface.HamiltonInterface.send_command() got multiple values for keyword argument 'transportMode'\n[2025-08-11 15:13:44,137] root INFO ############################################################################################################################################\n[2025-08-11 15:13:44,137] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:13:44,137] root INFO #                                                                                                                                          #\n[2025-08-11 15:13:44,137] root INFO ############################################################################################################################################\n[2025-08-11 15:13:44,138] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:13:44,139] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18805d52e2d5')\n[2025-08-11 15:13:44,139] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:13:44,139] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:13:44,139] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:13:47,155] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:13:50,157] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:13:51,658] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:13:51,658] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:13:51,759] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:13:51,762] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:13:51,764] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:13:51,764] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:13:51,764] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:13:51,767] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-11 15:15:43,579] root INFO ############################################################################################################################################\n[2025-08-11 15:15:43,580] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:15:43,580] root INFO #                                                                                                                                          #\n[2025-08-11 15:15:43,580] root INFO ############################################################################################################################################\n[2025-08-11 15:15:43,581] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:15:43,582] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880647189fd')\n[2025-08-11 15:15:43,582] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:15:43,582] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:15:43,582] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:15:48,603] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:15:50,604] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:15:52,105] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:15:52,106] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:15:52,206] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:15:52,216] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:15:52,219] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:15:52,219] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:15:52,220] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:15:52,226] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-11 15:18:14,252] root INFO ############################################################################################################################################\n[2025-08-11 15:18:14,253] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:18:14,253] root INFO #                                                                                                                                          #\n[2025-08-11 15:18:14,253] root INFO ############################################################################################################################################\n[2025-08-11 15:18:14,255] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:18:14,256] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18806d4e2351')\n[2025-08-11 15:18:14,257] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:18:14,257] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:18:14,257] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:18:17,271] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:18:18,272] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:18:19,773] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:18:19,774] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:18:19,874] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:18:19,880] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:18:19,882] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:18:19,883] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:18:19,884] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:18:19,888] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-11 15:20:26,994] root INFO ############################################################################################################################################\n[2025-08-11 15:20:26,994] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:20:26,995] root INFO #                                                                                                                                          #\n[2025-08-11 15:20:26,995] root INFO ############################################################################################################################################\n[2025-08-11 15:20:26,997] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:20:26,998] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18807537850f')\n[2025-08-11 15:20:26,999] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:20:26,999] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:20:26,999] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[2025-08-11 15:20:33,006] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:20:34,507] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:20:34,507] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:20:34,608] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:20:34,615] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:20:34,618] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:20:34,619] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:20:34,620] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:20:34,626] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC_lid',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-11 15:29:00,031] root INFO ############################################################################################################################################\n[2025-08-11 15:29:00,031] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:29:00,032] root INFO #                                                                                                                                          #\n[2025-08-11 15:29:00,032] root INFO ############################################################################################################################################\n[2025-08-11 15:29:00,035] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:29:00,035] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188093bc932b')\n[2025-08-11 15:29:00,035] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:29:00,036] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:29:00,036] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:29:04,040] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:29:04,040] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:29:05,541] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:29:05,542] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:29:05,643] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:29:05,649] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:29:05,651] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:29:05,651] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:29:05,651] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:29:05,654] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ^^~~~~~~~~~~~~\n[2025-08-11 15:29:05,658] root ERROR TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'dict'\n[2025-08-11 15:30:47,346] root INFO ############################################################################################################################################\n[2025-08-11 15:30:47,347] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:30:47,348] root INFO #                                                                                                                                          #\n[2025-08-11 15:30:47,348] root INFO ############################################################################################################################################\n[2025-08-11 15:30:47,349] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:30:47,350] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188099e4e911')\n[2025-08-11 15:30:47,350] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:30:47,351] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:30:47,351] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:30:51,355] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:30:51,356] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:30:52,859] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:30:52,860] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:30:52,961] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:30:52,969] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:30:52,972] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:30:52,973] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:30:52,974] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:30:52,979] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ^^~~~~~~~~~~~~\n[2025-08-11 15:30:52,986] root ERROR TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'dict'\n[2025-08-11 15:32:19,740] root INFO ############################################################################################################################################\n[2025-08-11 15:32:19,741] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:32:19,741] root INFO #                                                                                                                                          #\n[2025-08-11 15:32:19,741] root INFO ############################################################################################################################################\n[2025-08-11 15:32:19,742] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:32:19,743] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18809fc26e20')\n[2025-08-11 15:32:19,743] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:32:19,744] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:32:19,744] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:32:22,747] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:32:45,768] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:32:47,268] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:32:47,269] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:32:47,370] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:32:47,375] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:32:47,377] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:32:47,378] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:32:47,378] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:32:47,380] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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,                  ^^^^^^^^^^^^^^^^\n[2025-08-11 15:32:47,383] root ERROR NameError: name 'target_plate_seq' is not defined\n[2025-08-11 15:37:43,136] root INFO ############################################################################################################################################\n[2025-08-11 15:37:43,137] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:37:43,137] root INFO #                                                                                                                                          #\n[2025-08-11 15:37:43,137] root INFO ############################################################################################################################################\n[2025-08-11 15:37:43,138] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:37:43,138] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880b2db3647')\n[2025-08-11 15:37:43,139] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:37:43,139] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:37:43,139] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:37:47,143] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:38:11,162] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:38:12,664] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:38:12,664] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:38:12,765] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 15:38:12,773] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 15:38:12,775] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 15:38:12,776] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 15:38:12,776] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:38:12,780] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-11 15:40:38,708] root INFO ############################################################################################################################################\n[2025-08-11 15:40:38,708] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:40:38,709] root INFO #                                                                                                                                          #\n[2025-08-11 15:40:38,709] root INFO ############################################################################################################################################\n[2025-08-11 15:40:38,709] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:40:38,710] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880bcc8e6ee')\n[2025-08-11 15:40:38,710] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:40:38,711] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:40:38,711] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 15:40:42,716] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 15:41:20,735] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 15:41:22,236] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 15:41:22,237] pyhamilton.interface INFO disconnected from server\n[2025-08-11 15:41:22,338] pyhamilton.interface INFO server thread exited\n[2025-08-11 15:59:59,031] root INFO ############################################################################################################################################\n[2025-08-11 15:59:59,033] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 15:59:59,034] root INFO #                                                                                                                                          #\n[2025-08-11 15:59:59,034] root INFO ############################################################################################################################################\n[2025-08-11 15:59:59,035] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 15:59:59,035] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188102b7fd05')\n[2025-08-11 15:59:59,035] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 15:59:59,036] pyhamilton.interface INFO started the server thread\n[2025-08-11 15:59:59,036] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 16:00:03,038] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 16:00:46,066] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 16:00:47,567] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 16:00:47,568] pyhamilton.interface INFO disconnected from server\n[2025-08-11 16:00:47,668] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 16:00:47,675] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 16:00:47,676] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 16:00:47,677] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 16:00:47,677] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:40:05,520] root INFO ############################################################################################################################################\n[2025-08-11 17:40:05,522] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 17:40:05,523] root INFO #                                                                                                                                          #\n[2025-08-11 17:40:05,523] root INFO ############################################################################################################################################\n[2025-08-11 17:40:05,524] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:40:05,526] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882685d426d')\n[2025-08-11 17:40:05,526] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:40:05,526] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:40:05,527] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:40:08,530] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:40:08,530] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:40:10,031] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:40:10,032] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:40:10,133] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 17:40:10,141] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 17:40:10,144] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 17:40:10,145] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:40:10,146] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:40:10,150] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)\n[2025-08-11 17:40:10,153] root ERROR TypeError: pyhamilton.interface.HamiltonInterface.send_command() got multiple values for keyword argument 'transportMode'\n[2025-08-11 17:42:49,473] root INFO ############################################################################################################################################\n[2025-08-11 17:42:49,473] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 17:42:49,474] root INFO #                                                                                                                                          #\n[2025-08-11 17:42:49,474] root INFO ############################################################################################################################################\n[2025-08-11 17:42:49,475] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:42:49,476] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18826d0522e3')\n[2025-08-11 17:42:49,476] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:42:49,476] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:42:49,476] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:42:56,482] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:42:56,482] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:42:57,983] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:42:57,984] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:42:58,085] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 17:42:58,090] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 17:42:58,092] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 17:42:58,093] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:42:58,093] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:42:58,096] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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))\n[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\n[2025-08-11 17:46:19,479] root INFO ############################################################################################################################################\n[2025-08-11 17:46:19,480] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 17:46:19,480] root INFO #                                                                                                                                          #\n[2025-08-11 17:46:19,481] root INFO ############################################################################################################################################\n[2025-08-11 17:46:19,482] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:46:19,483] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18827f066abf')\n[2025-08-11 17:46:19,484] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:46:19,484] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:46:19,485] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:46:24,491] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:46:25,492] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:46:26,993] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:46:26,994] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:46:27,095] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 17:46:27,099] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 17:46:27,102] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 17:46:27,103] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:46:27,103] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:46:27,107] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-11 17:48:42,518] root INFO ############################################################################################################################################\n[2025-08-11 17:48:42,518] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 17:48:42,519] root INFO #                                                                                                                                          #\n[2025-08-11 17:48:42,519] root INFO ############################################################################################################################################\n[2025-08-11 17:48:42,519] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:48:42,520] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188287aba257')\n[2025-08-11 17:48:42,520] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:48:42,520] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:48:42,520] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:48:46,523] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:48:47,524] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:48:49,025] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:48:49,025] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:48:49,126] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 17:48:49,130] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 17:48:49,133] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 17:48:49,133] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:48:49,134] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:48:49,137] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-11 17:51:12,132] root INFO ############################################################################################################################################\n[2025-08-11 17:51:12,133] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 17:51:12,133] root INFO #                                                                                                                                          #\n[2025-08-11 17:51:12,133] root INFO ############################################################################################################################################\n[2025-08-11 17:51:12,134] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:51:12,135] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188290782088')\n[2025-08-11 17:51:12,135] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:51:12,136] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:51:12,136] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:51:15,139] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:51:56,162] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:51:57,663] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:51:57,664] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:51:57,764] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 17:51:57,768] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 17:51:57,770] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 17:51:57,771] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:51:57,772] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:55:19,068] root INFO ############################################################################################################################################\n[2025-08-11 17:55:19,069] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 17:55:19,069] root INFO #                                                                                                                                          #\n[2025-08-11 17:55:19,069] root INFO ############################################################################################################################################\n[2025-08-11 17:55:19,070] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:55:19,071] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18829ee3b74b')\n[2025-08-11 17:55:19,072] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:55:19,072] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:55:19,072] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:55:23,076] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:56:03,098] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:56:04,600] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:56:04,600] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:56:04,701] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 17:56:04,708] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 17:56:04,713] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 17:56:04,715] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:56:04,716] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:57:14,353] root INFO ############################################################################################################################################\n[2025-08-11 17:57:14,354] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 17:57:14,355] root INFO #                                                                                                                                          #\n[2025-08-11 17:57:14,355] root INFO ############################################################################################################################################\n[2025-08-11 17:57:14,356] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:57:14,357] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882a5b36a1a')\n[2025-08-11 17:57:14,358] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:57:14,358] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:57:14,358] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:57:17,363] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:57:57,384] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:57:58,886] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:57:58,886] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:57:58,987] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 17:57:58,991] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 17:57:58,992] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 17:57:58,992] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:57:58,993] pyhamilton.interface INFO server thread exited\n[2025-08-11 17:59:01,978] root INFO ############################################################################################################################################\n[2025-08-11 17:59:01,979] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 17:59:01,980] root INFO #                                                                                                                                          #\n[2025-08-11 17:59:01,980] root INFO ############################################################################################################################################\n[2025-08-11 17:59:01,982] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 17:59:01,982] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882abe0b70c')\n[2025-08-11 17:59:01,983] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 17:59:01,983] pyhamilton.interface INFO started the server thread\n[2025-08-11 17:59:01,984] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 17:59:05,988] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 17:59:46,012] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 17:59:47,513] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 17:59:47,514] pyhamilton.interface INFO disconnected from server\n[2025-08-11 17:59:47,614] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 17:59:47,620] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 17:59:47,622] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 17:59:47,623] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 17:59:47,624] pyhamilton.interface INFO server thread exited\n[2025-08-11 18:00:56,434] root INFO ############################################################################################################################################\n[2025-08-11 18:00:56,435] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 18:00:56,436] root INFO #                                                                                                                                          #\n[2025-08-11 18:00:56,436] root INFO ############################################################################################################################################\n[2025-08-11 18:00:56,437] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 18:00:56,438] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882b2e0fe5f')\n[2025-08-11 18:00:56,438] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 18:00:56,438] pyhamilton.interface INFO started the server thread\n[2025-08-11 18:00:56,439] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 18:00:59,442] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC\n[2025-08-11 18:01:12,451] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 18:01:13,952] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 18:01:13,952] pyhamilton.interface INFO disconnected from server\n[2025-08-11 18:01:14,053] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 18:01:14,057] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 18:01:14,060] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 18:01:14,061] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 18:01:14,061] pyhamilton.interface INFO server thread exited\n[2025-08-11 18:01:14,065] root ERROR Traceback (most recent call last):\n[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 <module>    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC',    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                  resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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,                               ^^^^^^^^^^^^                               )                               ^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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]()\n[2025-08-11 18:01:14,070] root ERROR pyhamilton.oemerr.LabwareError\n[2025-08-11 18:02:45,885] root INFO ############################################################################################################################################\n[2025-08-11 18:02:45,886] root INFO #                                                                                                                                          #\n[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     #\n[2025-08-11 18:02:45,887] root INFO #                                                                                                                                          #\n[2025-08-11 18:02:45,887] root INFO ############################################################################################################################################\n[2025-08-11 18:02:45,889] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-11 18:02:45,890] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882b994def7')\n[2025-08-11 18:02:45,890] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-11 18:02:45,890] pyhamilton.interface INFO started the server thread\n[2025-08-11 18:02:45,890] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-11 18:02:48,909] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0003 to Ham_ComfortLid_ODTC\n[2025-08-11 18:03:31,930] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-11 18:03:33,431] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-11 18:03:33,432] pyhamilton.interface INFO disconnected from server\n[2025-08-11 18:03:33,533] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-11 18:03:33,537] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-11 18:03:33,539] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-11 18:03:33,540] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-11 18:03:33,540] pyhamilton.interface INFO server thread exited\n[2025-08-12 11:51:28,460] root INFO ####################################################################################################################################\n[2025-08-12 11:51:28,463] root INFO #                                                                                                                                  #\n[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     #\n[2025-08-12 11:51:28,463] root INFO #                                                                                                                                  #\n[2025-08-12 11:51:28,464] root INFO ####################################################################################################################################\n[2025-08-12 11:51:28,465] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 11:51:28,467] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891a1b9f449')\n[2025-08-12 11:51:28,467] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 11:51:28,467] pyhamilton.interface INFO started the server thread\n[2025-08-12 11:51:28,468] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 11:51:33,472] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 11:51:34,973] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-12 11:51:34,973] pyhamilton.interface INFO disconnected from server\n[2025-08-12 11:51:35,074] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-12 11:51:35,082] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-12 11:51:35,085] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-12 11:51:35,086] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 11:51:35,086] pyhamilton.interface INFO server thread exited\n[2025-08-12 11:51:35,090] root ERROR Traceback (most recent call last):\n[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 <module>    initialize(simulation=False)  # Initialize the HamiltonInterface    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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, _)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-12 11:52:42,213] root INFO ####################################################################################################################################\n[2025-08-12 11:52:42,214] root INFO #                                                                                                                                  #\n[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     #\n[2025-08-12 11:52:42,214] root INFO #                                                                                                                                  #\n[2025-08-12 11:52:42,214] root INFO ####################################################################################################################################\n[2025-08-12 11:52:42,216] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 11:52:42,217] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891ac28d48b')\n[2025-08-12 11:52:42,217] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 11:52:42,218] pyhamilton.interface INFO started the server thread\n[2025-08-12 11:52:42,218] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 11:52:48,229] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 11:52:49,731] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-12 11:52:49,731] pyhamilton.interface INFO disconnected from server\n[2025-08-12 11:52:49,832] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-12 11:52:49,835] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-12 11:52:49,837] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-12 11:52:49,837] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 11:52:49,838] pyhamilton.interface INFO server thread exited\n[2025-08-12 11:55:55,644] root INFO ####################################################################################################################################\n[2025-08-12 11:55:55,645] root INFO #                                                                                                                                  #\n[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     #\n[2025-08-12 11:55:55,645] root INFO #                                                                                                                                  #\n[2025-08-12 11:55:55,645] root INFO ####################################################################################################################################\n[2025-08-12 11:55:55,647] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 11:55:55,648] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891b763fb0c')\n[2025-08-12 11:55:55,648] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 11:55:55,648] pyhamilton.interface INFO started the server thread\n[2025-08-12 11:55:55,648] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 11:56:56,016] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 11:56:56,162] pyhamilton.interface INFO disconnected from server\n[2025-08-12 11:56:56,263] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-12 11:56:56,267] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-12 11:56:56,270] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-12 11:56:56,271] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 11:56:56,271] pyhamilton.interface INFO server thread exited\n[2025-08-12 11:56:56,275] root ERROR Traceback (most recent call last):\n[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)    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-12 11:56:56,279] root ERROR KeyboardInterrupt\n[2025-08-12 11:56:56,280] root ERROR During handling of the above exception, another exception occurred:\n[2025-08-12 11:56:56,281] root ERROR Traceback (most recent call last):\n[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 <module>    initialize(simulation=False)  # Initialize the HamiltonInterface    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-12 11:56:56,286] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 642, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-12 11:56:56,289] root ERROR KeyboardInterrupt\n[2025-08-12 12:06:37,777] root INFO ####################################################################################################################################\n[2025-08-12 12:06:37,777] root INFO #                                                                                                                                  #\n[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     #\n[2025-08-12 12:06:37,778] root INFO #                                                                                                                                  #\n[2025-08-12 12:06:37,778] root INFO ####################################################################################################################################\n[2025-08-12 12:06:37,779] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 12:06:37,780] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891ddf67cab')\n[2025-08-12 12:06:37,780] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 12:06:37,780] pyhamilton.interface INFO started the server thread\n[2025-08-12 12:06:37,781] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 12:06:39,783] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 12:06:41,284] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-12 12:06:41,285] pyhamilton.interface INFO disconnected from server\n[2025-08-12 12:06:41,386] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-12 12:06:41,391] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-12 12:06:41,393] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-12 12:06:41,394] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 12:06:41,394] pyhamilton.interface INFO server thread exited\n[2025-08-12 12:06:41,397] root ERROR Traceback (most recent call last):\n[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 <module>    initialize(simulation=False)  # Initialize the HamiltonInterface    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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'])\n[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)           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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()    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n[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 + ' )')\n[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\"} )\n[2025-08-12 12:07:56,284] root INFO ####################################################################################################################################\n[2025-08-12 12:07:56,285] root INFO #                                                                                                                                  #\n[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     #\n[2025-08-12 12:07:56,286] root INFO #                                                                                                                                  #\n[2025-08-12 12:07:56,286] root INFO ####################################################################################################################################\n[2025-08-12 12:07:56,288] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-12 12:07:56,288] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891e2b3a30d')\n[2025-08-12 12:07:56,289] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-12 12:07:56,289] pyhamilton.interface INFO started the server thread\n[2025-08-12 12:07:56,289] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-12 12:09:30,337] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-12 12:09:31,838] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-12 12:09:31,839] pyhamilton.interface INFO disconnected from server\n[2025-08-12 12:09:31,940] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-12 12:09:31,947] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-12 12:09:31,950] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-12 12:09:31,951] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-12 12:09:31,951] pyhamilton.interface INFO server thread exited\n[2025-08-19 00:57:15,246] root INFO #############################################################################################################################\n[2025-08-19 00:57:15,248] root INFO #                                                                                                                           #\n[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     #\n[2025-08-19 00:57:15,249] root INFO #                                                                                                                           #\n[2025-08-19 00:57:15,249] root INFO #############################################################################################################################\n[2025-08-19 00:57:15,250] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 00:57:15,250] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19155546ca36')\n[2025-08-19 00:57:15,250] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 00:57:15,250] pyhamilton.interface INFO started the server thread\n[2025-08-19 00:57:15,250] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-08-19 00:57:36,825] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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\n[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}\n[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}\n[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}\n[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}\n[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}\n[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}\n[2025-08-19 00:58:13,824] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 00:58:14,038] pyhamilton.interface INFO disconnected from server\n[2025-08-19 00:58:14,139] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-19 00:58:14,143] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-19 00:58:14,146] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-19 00:58:14,147] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 00:58:14,147] pyhamilton.interface INFO server thread exited\n[2025-08-19 00:58:14,152] root ERROR Traceback (most recent call last):\n[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 <module>    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes,    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                 liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Part')                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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)\n[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']    )\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-19 00:58:14,157] root ERROR KeyboardInterrupt\n[2025-08-19 00:58:14,157] root ERROR During handling of the above exception, another exception occurred:\n[2025-08-19 00:58:14,157] root ERROR Traceback (most recent call last):\n[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 <module>    with HamiltonInterface(windowed=True, simulating=False) as ham_int:         ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-19 00:58:14,159] root ERROR   File \"C:\\Users\\stefan.golas\\pyhamilton\\pyhamilton\\interface.py\", line 642, in __exit__    self.stop()    ~~~~~~~~~^^\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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):             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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))    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n[2025-08-19 00:58:14,160] root ERROR KeyboardInterrupt\n[2025-08-19 15:25:31,066] root INFO #######################################################################################################################\n[2025-08-19 15:25:31,069] root INFO #                                                                                                                     #\n[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     #\n[2025-08-19 15:25:31,069] root INFO #                                                                                                                     #\n[2025-08-19 15:25:31,069] root INFO #######################################################################################################################\n[2025-08-19 15:25:31,070] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 15:25:31,071] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1921764e7363')\n[2025-08-19 15:25:31,071] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 15:25:31,071] pyhamilton.interface INFO started the server thread\n[2025-08-19 15:25:31,071] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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'}\n[2025-08-19 15:25:32,149] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 15:25:33,650] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-19 15:25:33,650] pyhamilton.interface INFO disconnected from server\n[2025-08-19 15:25:33,751] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-19 15:25:33,759] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-19 15:25:33,761] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-19 15:25:33,762] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 15:25:33,762] pyhamilton.interface INFO server thread exited\n[2025-08-19 15:25:33,764] root ERROR Traceback (most recent call last):\n[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 <module>    ham_int.aspirate(aspiration_positions, vols=[50]*8, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n[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        ^^^^^^^^^^^^^^    ),    ^\n[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)\n[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)    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^\n[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))\n[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\n[2025-08-19 15:26:15,619] root INFO #######################################################################################################################\n[2025-08-19 15:26:15,619] root INFO #                                                                                                                     #\n[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     #\n[2025-08-19 15:26:15,619] root INFO #                                                                                                                     #\n[2025-08-19 15:26:15,619] root INFO #######################################################################################################################\n[2025-08-19 15:26:15,620] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 15:26:15,621] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x192178c9650d')\n[2025-08-19 15:26:15,621] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 15:26:15,621] pyhamilton.interface INFO started the server thread\n[2025-08-19 15:26:15,621] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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'}\n[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'}\n[2025-08-19 15:26:21,726] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-19 15:26:22,727] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 15:26:24,228] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-19 15:26:24,229] pyhamilton.interface INFO disconnected from server\n[2025-08-19 15:26:24,330] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-19 15:26:24,336] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-19 15:26:24,339] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-19 15:26:24,340] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 15:26:24,340] pyhamilton.interface INFO server thread exited\n[2025-08-19 15:27:59,412] root INFO #######################################################################################################################\n[2025-08-19 15:27:59,412] root INFO #                                                                                                                     #\n[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     #\n[2025-08-19 15:27:59,412] root INFO #                                                                                                                     #\n[2025-08-19 15:27:59,412] root INFO #######################################################################################################################\n[2025-08-19 15:27:59,413] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 15:27:59,413] pyhamilton.interface INFO running in simulation mode\n[2025-08-19 15:27:59,413] pyhamilton.interface INFO started the server thread\n[2025-08-19 15:27:59,413] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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}\n[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'}\n[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'}\n[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'}\n[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'}\n[2025-08-19 15:27:59,479] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[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}\n[2025-08-19 15:27:59,479] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 15:27:59,479] JSONLogger INFO {'command': 'end', 'id': '0x0'}\n[2025-08-19 15:27:59,479] pyhamilton.interface INFO disconnected from server\n[2025-08-19 15:27:59,580] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-19 15:27:59,583] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-19 15:27:59,585] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-19 15:27:59,586] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 15:27:59,587] pyhamilton.interface INFO server thread exited\n[2025-08-19 15:31:07,020] root INFO #######################################################################################################################\n[2025-08-19 15:31:07,020] root INFO #                                                                                                                     #\n[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     #\n[2025-08-19 15:31:07,021] root INFO #                                                                                                                     #\n[2025-08-19 15:31:07,021] root INFO #######################################################################################################################\n[2025-08-19 15:31:07,022] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 15:31:07,022] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x192181be7e79')\n[2025-08-19 15:31:07,022] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 15:31:07,022] pyhamilton.interface INFO started the server thread\n[2025-08-19 15:31:07,022] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[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\n[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'}\n[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'}\n[2025-08-19 15:31:46,209] pyhamilton.interface INFO tip_eject: Eject tips to default waste\n[2025-08-19 15:31:57,238] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 15:31:58,739] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-19 15:31:58,739] pyhamilton.interface INFO disconnected from server\n[2025-08-19 15:31:58,840] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-19 15:31:58,848] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-19 15:31:58,851] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-19 15:31:58,853] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 15:31:58,854] pyhamilton.interface INFO server thread exited\n[2025-08-19 16:02:04,513] root INFO #######################################################################################################################\n[2025-08-19 16:02:04,513] root INFO #                                                                                                                     #\n[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     #\n[2025-08-19 16:02:04,514] root INFO #                                                                                                                     #\n[2025-08-19 16:02:04,514] root INFO #######################################################################################################################\n[2025-08-19 16:02:04,515] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-19 16:02:04,515] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1921f827c4ee')\n[2025-08-19 16:02:04,515] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-19 16:02:04,516] pyhamilton.interface INFO started the server thread\n[2025-08-19 16:02:04,516] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-19 16:02:05,681] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-08-19 16:02:08,683] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-19 16:02:10,184] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-19 16:02:10,184] pyhamilton.interface INFO disconnected from server\n[2025-08-19 16:02:10,285] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-19 16:02:10,288] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-19 16:02:10,290] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-19 16:02:10,290] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-19 16:02:10,291] pyhamilton.interface INFO server thread exited\n[2025-08-26 14:48:58,945] root INFO #######################################################################################################################\n[2025-08-26 14:48:58,948] root INFO #                                                                                                                     #\n[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     #\n[2025-08-26 14:48:58,949] root INFO #                                                                                                                     #\n[2025-08-26 14:48:58,949] root INFO #######################################################################################################################\n[2025-08-26 14:48:58,950] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-26 14:48:58,952] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adc367a1dc')\n[2025-08-26 14:48:58,952] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-26 14:48:58,953] pyhamilton.interface INFO started the server thread\n[2025-08-26 14:48:58,953] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-26 14:49:00,889] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-08-26 14:49:03,893] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-26 14:49:05,393] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-26 14:49:05,394] pyhamilton.interface INFO disconnected from server\n[2025-08-26 14:49:05,495] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-26 14:49:05,501] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-26 14:49:05,504] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-26 14:49:05,505] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-26 14:49:05,505] pyhamilton.interface INFO server thread exited\n[2025-08-26 14:50:38,966] root INFO #######################################################################################################################\n[2025-08-26 14:50:38,966] root INFO #                                                                                                                     #\n[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     #\n[2025-08-26 14:50:38,966] root INFO #                                                                                                                     #\n[2025-08-26 14:50:38,966] root INFO #######################################################################################################################\n[2025-08-26 14:50:38,968] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-26 14:50:38,968] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adcacc49cb')\n[2025-08-26 14:50:38,968] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-26 14:50:38,968] pyhamilton.interface INFO started the server thread\n[2025-08-26 14:50:38,969] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-26 14:50:40,142] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-08-26 14:50:41,143] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-26 14:50:42,643] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-26 14:50:42,644] pyhamilton.interface INFO disconnected from server\n[2025-08-26 14:50:42,744] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-26 14:50:42,746] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-26 14:50:42,747] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-26 14:50:42,747] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-26 14:50:42,747] pyhamilton.interface INFO server thread exited\n[2025-08-26 14:51:25,290] root INFO #######################################################################################################################\n[2025-08-26 14:51:25,290] root INFO #                                                                                                                     #\n[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     #\n[2025-08-26 14:51:25,291] root INFO #                                                                                                                     #\n[2025-08-26 14:51:25,291] root INFO #######################################################################################################################\n[2025-08-26 14:51:25,292] pyhamilton.interface INFO starting a Hamilton interface\n[2025-08-26 14:51:25,293] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adcd70ccc8')\n[2025-08-26 14:51:25,293] pyhamilton.interface INFO started the oem application for simulation\n[2025-08-26 14:51:25,294] pyhamilton.interface INFO started the server thread\n[2025-08-26 14:51:25,294] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {}\n[2025-08-26 14:51:26,753] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001\n[2025-08-26 14:51:27,755] pyhamilton.interface INFO sending end run command to simulator\n[2025-08-26 14:51:29,256] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0')\n[2025-08-26 14:51:29,256] pyhamilton.interface INFO disconnected from server\n[2025-08-26 14:51:29,357] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop\n[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)\n[2025-08-26 14:51:29,364] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221\n[2025-08-26 14:51:29,367] urllib3.connectionpool DEBUG http://127.0.0.1:3221 \"GET / HTTP/1.1\" 200 None\n[2025-08-26 14:51:29,367] pyhamilton.interface INFO dummy get request sent to server\n[2025-08-26 14:51:29,368] pyhamilton.interface INFO server thread exited\n"
  },
  {
    "path": "pyhamilton/ngs/tests/log/robot_json.log",
    "content": "{'command': 'channelTipPickUp', 'id': '0x17592e501c35', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17592e582f13', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e5842c9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e585996', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e586a6e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e587f3a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e58968f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e58a9cf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e58be45', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e58d461', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e58e89c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e58fb8a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17592e590dde', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175936e5cbdb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175936ed88ab', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936ed9f3e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936edafc7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936edbee2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936edcdff', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936ede150', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936edf1d7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936ee006d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936ee0fa9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936ee219b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936ee302f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175936ee3e28', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17593cd84764', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17593ce2842c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce29832', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce2aa68', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce2c43a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce2d822', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce2eae3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce30448', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce31879', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce32c90', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce3460c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce358bf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17593ce36c4e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x1759409ade76', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175940a355fb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a36869', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a37b98', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a38d20', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a3a09a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a3b257', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a3c501', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a3d9e1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a3ee25', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a40013', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a41520', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175940a42843', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175941646efe', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x1759416c40b1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416c5710', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416c68a3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416c7901', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416c8a1b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416c9b87', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416caca4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416cbe87', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416cd033', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416ce159', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416cf4b2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759416d0640', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175943e21fbf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175943e9dbf6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943e9efcc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea0504', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea1840', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea2a84', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea3b6a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea4e43', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea5f17', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea6f5b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea7edf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943ea90e3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175943eaa06a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175945e09485', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175945e91d14', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e93afc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e94f55', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e9638f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e97f69', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e9980b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e9b0a6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e9c920', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e9de0c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945e9f630', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945ea0fb3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175945ea25a0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175948a2b467', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175948aadc1c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948aaf4ee', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948ab0796', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948ab1dc8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948ab3347', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948ab4cd9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948ab676c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948ab7f45', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948ab956e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948abae00', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948abc25b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175948abd657', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175949ea0a6b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175949f20f4e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f22509', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f23781', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f24b6d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f25e33', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f272c5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f2878c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f29b88', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f2af97', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f2c419', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f2d458', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175949f2e433', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17594b0a0f64', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17594b121f4d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b12327c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b12442c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b125825', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b126acd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b127c0d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b128e6b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b12a15f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b12b463', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b12c59c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b12dbc5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594b12f0cd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17594c27df10', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17594c2f91dd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c2fa7c1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c2fc27b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c2fd991', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c2ff44d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c300db4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c302282', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c303df5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c305452', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c306ca6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c30832a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17594c3099ba', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17595469a936', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175954732216', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175954733b3a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759547357bf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175954737388', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175954739912', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595473b73f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595473d31e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595473ef69', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175954740b4c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175954742902', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175954744a57', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175954746fb7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x1759597b0d0b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17595983914c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595983ac08', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595983c718', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595983e907', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595984137e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175959844016', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595984616a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175959848e42', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595984a6e7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595984cf0f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595984edc5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x175959851a52', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17595c477472', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17595c4f83fa', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c4fab38', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c4fc8f1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c4fe839', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c500852', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c502ab8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c505230', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c5073a2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c509512', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c50b739', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c50d5e3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x17595c510466', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175960699013', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17596071bc55', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175964dee139', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175964e727ee', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x1759666e1bc2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17596676bd3c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175968ae102d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175968b6322c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17596c71931c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17596c7990d3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17596e0205a3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17596e09fabe', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17598e8b432f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17598e938961', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x175992b83504', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x175992c05e59', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17599646c2a2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x1759964e311d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x1759992f77e1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17599938298b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17599ce79143', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17599cef414f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x17599e48a29e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x17599e50703b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x1759a313008c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x1759a31afe28', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31b2341', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31b4492', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31b6615', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31b8a30', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31bae00', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31bcf15', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31bf27b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31c13c2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31c35fd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31c58c6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a31c7986', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'channelTipPickUp', 'id': '0x1759a5ec218d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f3d5d7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f42331', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f471d6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f4ac62', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f4e1d0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f518eb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f54d58', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f58173', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f5bdd8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f5f65f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f63339', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'channelTipPickUp', 'id': '0x1759a5f66d1c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n{'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}\n{'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'}\n{'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'}\n{'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}\n{'command': 'end', 'id': '0x0'}\n"
  },
  {
    "path": "pyhamilton/ngs/tests/magnetic_bead_cleanup.py",
    "content": "\nimport os\nfrom pyhamilton import (HamiltonInterface, hhs_create_usb_device, hhs_set_simulation, normal_logging, odtc_execute_protocol, \n                        odtc_get_status, odtc_open_door, odtc_close_door, Plate96, Tip96, TrackedTips,\n                        hhs_start_shaker, hhs_stop_shaker, layout_item, LayoutManager, Reservoir60mL,\n                        StackedResources)\n                 \nfrom pyhamilton_advanced import (shear_plate_96, pip_mix, mix_plate, double_aspirate_supernatant_96,\n                                 transfer_96, multi_dispense, pip_transfer, ethanol_wash, multi_dispense,\n                                 transport_resource, GripDirection, GrippedResource, GripperParams)\n\n\nimport time\n\ndef magnetic_bead_cleanup():\n    pass\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\nMIDI_Pipette = layout_item(lmgr, Plate96, 'MIDI_Pipette')\nHHS5_MIDI = layout_item(lmgr, Plate96, 'HHS5_MIDI')\nMIDI_OnMagnet = layout_item(lmgr, Plate96, 'MIDI_OnMagnet')\nLiquidWaste = layout_item(lmgr, Plate96, 'LiquidWaste_MPH')\n\n#Ethanol80 = layout_item(lmgr, Plate96, 'Ethanol80')\n\n#RGT_50 = layout_item(lmgr, Reservoir60mL, 'RGT_50')\n#Ethanol80 = [(RGT_50, 1)] # Position 1, 2mL tube\n#QIAseq_Beads = [(RGT_50, 5)] # Position 5, 2mL tube\n#Nuclease_Free_Water_positions = [(RGT_50, 7)] # Position 10, 2mL tube\n\nHSP_Stack = StackedResources.from_prefix(\n                        tracker_id=\"HSP_L\",\n                        prefix=\"HSP_L\",\n                        count=4,\n                        reset=True)\n\nLid_Stack = StackedResources.from_prefix(\n                        tracker_id=\"LID_L\",\n                        prefix=\"LID_L\",\n                        count=2,\n                        reset=True)\n\nMIDI_Stack = StackedResources.from_prefix(\n                        tracker_id=\"MIDI_L\",\n                        prefix=\"MIDI_L\",\n                        count=4,\n                        reset=True)\n\ntracked_tips_50uL = TrackedTips.from_prefix(\n                        tracker_id=\"TIP_50uLF_L\",\n                        volume_capacity=50,\n                        prefix=\"TIP_50uLF_L\",\n                        count=8,\n                        tip_type=Tip96, \n                        lmgr=lmgr)\n\n\ntracked_tips_300uL = TrackedTips.from_prefix(\n                        tracker_id=\"STF_L\",\n                        volume_capacity=300,\n                        prefix=\"STF_L\",\n                        count=8,\n                        tip_type=Tip96,\n                        lmgr=lmgr)\n\ntracked_tips_1000uL = TrackedTips.from_prefix(\n                        tracker_id=\"HTF_L\",\n                        volume_capacity=1000,\n                        prefix=\"HTF_L\",\n                        count=2,\n                        tip_type=Tip96,\n                        lmgr=lmgr)\n\n\nnum_samples = 24\n\nclass HHS:\n\n    def __init__(self, node, layout_name):\n        self.node = node\n        self.layout_name = layout_name\n\n\nHHS_MIDI_1 = HHS(node=4, layout_name=\"HHS4_MIDI\")\nHHS_MIDI_2 = HHS(node=5, layout_name=\"HHS5_MIDI\")\nHHS_MIDI_3 = HHS(node=3, layout_name=\"HHS3_MIDI\")\n\nHHS_HSP_1 = HHS(node=1, layout_name=\"HHS1_HSP\")\nHHS_HSP_2 = HHS(node=2, layout_name=\"HHS2_HSP\")\n\n\ndef initialize_hhs(ham_int, simulating):\n        \n        hhs_set_simulation(ham_int, simulating)  # Set simulation mode if needed\n        for node in range(1,5):\n            hhs_create_usb_device(ham_int, node)\n            print(f\"Created USB device for ML_STAR {node}\")\n\nif __name__ == \"__main__\":\n    with HamiltonInterface(windowed=True, simulating=False) as ham_int:\n        # Magnetic bead cleanup workflow (assuming beads already bound to samples)\n        # Starting with samples + beads already mixed in MIDI_Pipette\n\n        ham_int.initialize()  # Initialize the HamiltonInterface\n        initialize_hhs(ham_int, simulating=False)  # Initialize the HHS modules\n\n        # Step 1: Transport to shaker for initial mixing\n        transport_resource(ham_int, MIDI_Pipette.layout_name(), HHS_MIDI_1.layout_name, \n                        resource_type=GrippedResource.MIDI, core_gripper=True)\n    \n        # Step 2: Shake to ensure proper bead binding\n        hhs_start_shaker(ham_int, HHS_MIDI_1.node, shaking_speed=1000)  # 1000 RPM for 30 seconds\n        time.sleep(30)\n        hhs_stop_shaker(ham_int, HHS_MIDI_1.node)\n\n        # Step 3: Transport to magnetic separation\n        transport_resource(ham_int, HHS_MIDI_1.layout_name, 'MIDI_OnMagnet', \n                        grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, \n                        core_gripper=True)\n\n\"\"\"         # Step 4: Wait for magnetic separation\n        time.sleep(60)  # Allow beads to settle\n\n        # Step 5: Remove supernatant (unbound material)\n        supernatant_removal_volume = 50  # Adjust as needed\n        double_aspirate_supernatant_96(ham_int, tracked_tips_300uL, MIDI_OnMagnet, LiquidWaste,\n                                    supernatant_removal_volume,\n                                    liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', \n                                    aspirate_height_from_bottom=1)\n\n        # Step 6: First ethanol wash\n        # Move back to shaker for wash\n        transport_resource(ham_int, 'MIDI_OnMagnet', 'HHS5_MIDI', \n                        grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, \n                        core_gripper=True)\n\n        # Add ethanol\n        hhs5_positions = [(HHS5_MIDI, idx) for idx in range(num_samples)]\n        post_shear_etoh_wash_volume = 200  # Adjust as needed\n        pip_transfer(ham_int, tracked_tips_300uL, Ethanol80, hhs5_positions, \n                [post_shear_etoh_wash_volume] * num_samples,\n                liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', \n                aspirate_height_from_bottom=1, dispense_height_from_bottom=1)\n\n        # Shake with ethanol\n        hhs_start_shaker(ham_int, 'HHS5_MIDI', 1000, 30)\n        time.sleep(30)\n        hhs_stop_shaker(ham_int, 'HHS5_MIDI')\n\n        # Back to magnet\n        transport_resource(ham_int, 'HHS5_MIDI', 'MIDI_OnMagnet', \n                        grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, \n                        core_gripper=True)\n\n        # Wait for separation\n        time.sleep(60)\n\n        # Remove ethanol supernatant\n        double_aspirate_supernatant_96(ham_int, tracked_tips_300uL, magnet_positions, \n                                    post_shear_etoh_wash_volume + 10,  # Remove slightly more\n                                    liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', \n                                    aspirate_height_from_bottom=1)\n\n        # Step 7: Second ethanol wash (repeat of step 6)\n        transport_resource(ham_int, 'MIDI_OnMagnet', 'HHS5_MIDI', \n                        grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, \n                        core_gripper=True)\n\n        pip_transfer(ham_int, tracked_tips_300uL, Ethanol80, hhs5_positions, \n                [post_shear_etoh_wash_volume] * num_samples,\n                liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', \n                aspirate_height_from_bottom=1, dispense_height_from_bottom=1)\n\n        hhs_start_shaker(ham_int, 'HHS5_MIDI', 1000, 30)\n        time.sleep(30)\n        hhs_stop_shaker(ham_int, 'HHS5_MIDI')\n\n        transport_resource(ham_int, 'HHS5_MIDI', 'MIDI_OnMagnet', \n                        grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, \n                        core_gripper=True)\n\n        time.sleep(60)\n\n        double_aspirate_supernatant_96(ham_int, tracked_tips_300uL, magnet_positions, \n                                    post_shear_etoh_wash_volume + 10,\n                                    liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', \n                                    aspirate_height_from_bottom=1)\n\n        # Step 8: Air dry beads\n        transport_resource(ham_int, 'MIDI_OnMagnet', 'HHS5_MIDI', \n                        grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, \n                        core_gripper=True)\n\n        time.sleep(300)  # Air dry for 5 minutes\n\n        # Step 9: Elution\n        # Add elution buffer\n        pip_transfer(ham_int, tracked_tips_300uL, NucleaseFreeWater, hhs5_positions, \n                [post_shear_elution_buffer_volume] * num_samples,\n                liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', \n                aspirate_height_from_bottom=1, dispense_height_from_bottom=1)\n\n        # Mix with elution buffer\n        pip_mix(ham_int, tracked_tips_300uL, hhs5_positions, post_shear_elution_buffer_volume, \n            mix_cycles=10, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', \n            mix_height_from_bottom=1)\n\n        # Shake for elution\n        hhs_start_shaker(ham_int, 'HHS5_MIDI', 1000, 30)\n        time.sleep(30)\n        hhs_stop_shaker(ham_int, 'HHS5_MIDI')\n\n        # Final magnetic separation\n        transport_resource(ham_int, 'HHS5_MIDI', 'MIDI_OnMagnet', \n                        grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, \n                        core_gripper=True)\n\n        time.sleep(60)\n\n        # Step 10: Collect eluted samples\n        # Get fresh plate for clean samples\n        transport_resource(ham_int, HSP_Stack.fetch_next(), 'HSP_Pipette2', \n                        resource_type=GrippedResource.PCR, core_gripper=True)\n\n        hsp_positions = [(HSP_Pipette2, idx) for idx in range(num_samples)]\n\n        # Transfer eluted samples to clean plate\n        transfer_96(ham_int, tracked_tips_300uL, magnet_positions, hsp_positions, \n                [post_shear_elution_volume] * num_samples,\n                liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', \n                aspirate_height_from_bottom=1, dispense_height_from_bottom=1)\n\n        # Step 11: Cleanup - move waste plate\n        transport_resource(ham_int, 'MIDI_OnMagnet', 'MIDI_Waste', \n                        resource_type=GrippedResource.MIDI, core_gripper=True)\n \"\"\""
  },
  {
    "path": "pyhamilton/ngs/tests/mix_plate.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item,\n                        normal_logging)\n\nimport os\n\nfrom pyhamilton_advanced import shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer, mix_plate\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n# Perhaps import stack management\n\nMIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette')  # Assuming this is defined elsewhere in the layout\nMagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001')\nER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002')\nEDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003')\n\ntips = tip_tracker_50uL = TrackedTips.from_prefix(\n    tracker_id=\"TIP_50uLF_L\",\n    prefix=\"TIP_50uLF_L\",\n    count=8,\n    tip_type=Tip96,\n    lmgr=lmgr,\n    reset=True  # Reset the tracker state\n)\n\n# This works\nwith HamiltonInterface(windowed=True, simulating=False) as ham_int:\n    ham_int.initialize()\n    normal_logging(ham_int, os.getcwd())\n\n\n    mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')"
  },
  {
    "path": "pyhamilton/ngs/tests/multi_dispense.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item,\n                        normal_logging)\n\nimport os\n\nfrom pyhamilton_advanced import (shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer, multi_dispense, \n                                    build_dispense_batches, batch_columnwise_positions, split_aspiration_positions)\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n# Perhaps import stack management\n\nMIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette')  # Assuming this is defined elsewhere in the layout\nMagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001')\nER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002')\nEDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003')\n\ntips = tip_tracker_300uL = TrackedTips.from_prefix(\n    tracker_id=\"STF_L\",\n    prefix=\"STF_L\",\n    volume_capacity=300,\n    count=3,\n    tip_type=Tip96,\n    lmgr=lmgr,\n    reset=True  # Reset the tracker state\n)\n\n\ndef condense_volumes(lst, max_volume):\n    total = sum(lst)\n    return [max_volume] * (total // max_volume) + ([total % max_volume] if 0 < total % max_volume >= min(lst) else [])\n\n\n#dispense_positions = [(MIDI_OffMagnet, idx) for idx in range(96)]\n#dispense_volumes = [50]*96  # Assuming 50 uL for each sample\n\n#aspirate_positions = [(MagBeads_Container, idx) for idx in range(8)]\n\n#aspirate_volumes = condense_volumes(dispense_volumes, 200)\n#column_dispense_positions = batch_columnwise_positions(dispense_positions) # Batch dispense positions into columns of 8\n#column_volumes_list = batch_columnwise_positions(dispense_volumes)\n\n#column_aspiration_positions = batch_columnwise_positions(aspirate_positions) # Batch aspiration positions into columns of 8\n#column_aspiration_volumes_list = batch_columnwise_positions(aspirate_volumes)\n\n#column_aspiration_volumes = [300]*8\n#batched_vols = build_dispense_batches(column_aspiration_volumes, column_dispense_positions, column_volumes_list)\n#print(\"Batched Volumes:\", batched_vols)\n\n# Account for air transport volume in volume balance on the tips\n\n# Automated liquid class detection with integrated scale\n# TADM tool to pull up specific data for commands\n# Resource loading and error-proofing user inputs\n# Record every selection that the user makes in prompt windows\n# Error handling/ recovery\n\n\n# User prompts\n## Radio buttons for step selection (start and stop)\n## Input a worklist with list of samples\n## Resource use calculations\n## Visibility parameters for loading resources\n## Specific tubes/ reagents on deck changing during run\n## Variable start and stop selection\n\n\n# step_list = [function_1, function_2, function_3, ...]\n# for step in range(2,5):\n    # step_list[step]()\n# Valid ranges, decision branching based on sample type\n# Start and stop points\n# User prompts related to steps chosen and relevant instruments\n# ODTC dynamic parameterization\n# Intermediate plating patterns and logic\n# Reagent plate creation specify tubes and volumes, reagent plate sequence specification\n# Time speedup for reagent plating (volume excess usage tradeoff compared to timing)\n\n# Firmware discussion with example\n## Engineer firmware dispense command to prevent channel retract\n## Firmware engine for custom commands (at what Z do you start, at what Z do you end)\n## Mix by overturn\n## Record that, go to bottom a configurable amount, aspirate a certain volume from there, go up to height and mix\n\n# Data tracking for trouble shooting\n## cLLD for height tracking\n## TADM\n## If you are dispensing and you know what the liquid height should be, go to a fixed height\n## Aspirate from reagent tube with cLLD and dispense to fixed height in sample container\n## Reload tips while ODTC is working and general pre-defined tip reload prompts\n\n# Dead volume information management\n\n# Loading and user prompts, specific kit information <- top priority for NGS internal \n# Counterparts in EMEA convince these/ train how to use Python\n\n# Combined multi aspirate multi dispense for target volumes over the tip capacity in a single container\n\n# Start with known liquid classes that work well and pulling from database, good starting points for liquid class selection\n# Automated liquid class construction, correction curves for volumes\n# Predefined heights and other parameters for specific operations like bead aspiration similar to how the transport controller works, override potential for users\n\n# Pure Python tasks: randomizer, statistics, arbitrary data formats (xlsx, csv, JSON)\n# Python library for reading different data formats\n\n# Add tip support functionality (channel patterns, columnwise sequence inverting)''\n\n# Highlight carrier X to simplify loading in loading dialog, other deck visibility functions (hxx 3D file, .x file)\n\n# Pre and post dispense with multidispense to enhance accuracy\n\nwith HamiltonInterface(windowed=True, simulating=False) as ham_int:\n    ham_int.initialize()\n    normal_logging(ham_int, os.getcwd())\n    aspiration_positions = [(MagBeads_Container, idx) for idx in range(8)]\n    dispense_positions = [(MIDI_OffMagnet, idx) for idx in range(96)]\n    volumes = [50]*96\n#\n    multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, \n                 liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Part')\n    \n    "
  },
  {
    "path": "pyhamilton/ngs/tests/ngs_demo.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item,\n                        normal_logging, tracked_tip_pick_up, tracked_tip_pick_up_96)\n\nimport os\n\nfrom pyhamilton_advanced import (shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer, multi_dispense, \n                                    build_dispense_batches, batch_columnwise_positions, split_aspiration_positions)\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\nMIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette')  # Assuming this is defined elsewhere in the layout\n\ntips = tip_tracker_50uL = TrackedTips.from_prefix(\n    tracker_id=\"TIP_50uLF_L\",\n    prefix=\"TIP_50uLF_L\",\n    volume_capacity=50,\n    count=8,\n    tip_type=Tip96,\n    lmgr=lmgr,\n    reset=True  # Reset the tracker state\n)\n\nwith HamiltonInterface(windowed=True, simulating=False) as ham_int:\n    ham_int.initialize()\n    normal_logging(ham_int, os.getcwd())\n\n    tracked_tip_pick_up_96(ham_int, tip_tracker_50uL)"
  },
  {
    "path": "pyhamilton/ngs/tests/pip_transfer.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item,\n                        normal_logging)\n\nimport os\n\nfrom pyhamilton_advanced import shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n# Perhaps import stack management\n\nMIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette')  # Assuming this is defined elsewhere in the layout\nMagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001')\nER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002')\nEDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003')\n\ntips = tip_tracker_50uL = TrackedTips.from_prefix(\n    tracker_id=\"TIP_50uLF_L\",\n    prefix=\"TIP_50uLF_L\",\n    volume_capacity=50,\n    count=8,\n    tip_type=Tip96,\n    lmgr=lmgr,\n    reset=True  # Reset the tracker state\n)\n\n\n# This seems to mostly work. We don't yet query the user for refilling troughs or try to accumulate residual volumes.\n# 50 seconds between dispense cycles\nwith HamiltonInterface(windowed=True, simulating=False) as ham_int:\n    ham_int.initialize()\n    normal_logging(ham_int, os.getcwd())\n\n    aspiration_positions = [(MagBeads_Container, idx) for idx in range(8)]\n    dispense_positions = [(MIDI_OffMagnet, idx) for idx in range(96)]\n    volumes = [50]*96\n\n    pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, \n                 liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty', aspirate_height_from_bottom=1,\n                 dispense_height_from_bottom=1)"
  },
  {
    "path": "pyhamilton/ngs/tests/set_labware_property.py",
    "content": "from pyhamilton import HamiltonInterface, TipType\n\nwith HamiltonInterface(simulating=False, windowed=True) as ham_int:\n    ham_int.initialize()\n    ham_int.set_labware_property('TipSupport_0001', 'MlStarCore96TipRack', TipType.uL_300)"
  },
  {
    "path": "pyhamilton/ngs/tests/stacking.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Tip96, TrackedTips, resource_list_with_prefix, \n                        Tip96, Plate96, ResourceType, tip_pick_up, DeckResource, \n                        tracked_tip_pick_up, tracked_tip_pick_up_96, StackedResources, move_plate_using_gripper)\n\nfrom pyhamilton_advanced import (transport_resource, GripDirection, GrippedResource, GripperParams)\n\n\nBioRadHardShell_Stack = StackedResources.from_prefix(\"BioRadHardShell_Stack\", \"BioRadHardShell_Stack\", 3)\nAbgeneMIDI_Stack = StackedResources.from_prefix(\"AbgeneMIDI_Stack1\", \"AbgeneMIDI_Stack1\", 3)\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n# TODO: Don't eject core gripper tool between pickups\n\nwith HamiltonInterface(windowed=True) as ham_int:\n    ham_int.initialize()\n    for _ in range(3):\n        plate_seq = AbgeneMIDI_Stack.fetch_next()\n        transport_resource(ham_int, plate_seq, 'HHS3_MIDI', resource_type=GrippedResource.MIDI, \n                           stack=True, core_gripper=True)"
  },
  {
    "path": "pyhamilton/ngs/tests/thermal_cycler/thermal_cycler_with_transport.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Plate96, Tip96, hhs_set_simulation, move_plate_using_gripper, \n                        hhs_create_star_device, hhs_create_usb_device, hhs_set_temp_param, \n                        hhs_start_temp_ctrl, hhs_stop_temp_ctrl, hhs_start_shaker, hhs_stop_shaker, TrackedTips, \n                        StackedResources, Reservoir60mL, normal_logging, layout_item, odtc_connect, odtc_initialize, odtc_close_door, odtc_download_protocol,\n                        odtc_evaluate_error, odtc_abort, odtc_reset, odtc_open_door, odtc_execute_protocol, odtc_get_status)\n\n\nfrom pyhamilton_advanced import (shear_plate_96, double_aspirate_supernatant_96, pip_mix, mix_plate, \n                                 transfer_96, multi_dispense, pip_transfer, ethanol_wash, multi_dispense,\n                                 transport_resource, GripDirection, GrippedResource, GripperParams)\nimport time\nimport os\n\n\ndef thermal_cycle_with_plate_movement(ham_int, source_plate_sequence, odtc_location_sequence, lid_stack, protocol_file_path):\n    \"\"\"\n    Common pattern for thermal cycling: Move plate to thermal cycler, add lid, run program, remove lid, move back\n    \n    Args:\n        ham_int: Hamilton interface object\n        source_plate_name: Name of the source plate position (e.g., 'HSP_Pipette2')\n        destination_plate_name: Name of the destination plate position (e.g., 'HSP_ODTC')\n        lid_stack: StackedResources object for lids\n        thermal_cycler: ODTC thermal cycler object\n    \"\"\"\n    # Open thermal cycler door\n    odtc_open_door(ham_int, device_id)\n\n    # Move plate from source to destination (usually ODTC) using iswap\n    transport_resource(ham_int, source_plate_sequence, odtc_location_sequence, \n                      grip_direction=GripDirection.RIGHT, resource_type=GrippedResource.PCR, iswap=True)\n    \n    # Add lid to the plate\n    lid = lid_stack.fetch_next()\n    transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', \n                      resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)\n\n    # Close door and run thermal cycler program\n    odtc_close_door(ham_int, device_id)\n    duration, resultID = odtc_execute_protocol(ham_int, device_id, protocol_file_path, priority=1)\n    odtc_ready = False\n    while not odtc_ready:\n        odtc_ready = odtc_get_status(ham_int, device_id) == 'idle'\n        time.sleep(5)\n\n    \n    odtc_get_status(ham_int, device_id)\n    \n    # Open door after program completion\n    odtc_open_door(ham_int, device_id)\n\n    # Remove lid from the plate\n    transport_resource(ham_int, 'Ham_ComfortLid_ODTC', lid_stack.fetch_next_unoccupied(), \n                      resource_type=GrippedResource.LID, core_gripper=True)\n    \n    # Move plate back to source position using iswap\n    transport_resource(ham_int, odtc_location_sequence, source_plate_sequence, \n                      resource_type=GrippedResource.PCR, iswap=True)\n    \n    return duration, resultID\n\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\nLidStack = StackedResources.from_prefix(\n    tracker_id=\"Ham_ComfortLid_Stack\",\n    prefix=\"Ham_ComfortLid_Stack\",\n    count=3,\n    reset=True)\n\nHSP_Pipette2 = layout_item(lmgr, Plate96, 'HSP_Pipette2')\nHSP_ODTC = layout_item(lmgr, Plate96, 'HSP_ODTC')\n\nif __name__ == \"__main__\":\n    with HamiltonInterface(windowed=True, simulating=False) as ham_int:\n        ham_int.initialize()\n        normal_logging(ham_int, os.getcwd())\n\n        # Create thermal cycler instance\n        device_id = odtc_connect(ham_int, simulation_mode=False, local_ip='192.168.1.200', device_ip='192.168.1.50')\n        odtc_initialize(ham_int, device_id)\n        odtc_open_door(ham_int, device_id)\n        transport_resource(ham_int, HSP_Pipette2, HSP_ODTC, grip_direction=GripDirection.RIGHT, resource_type=GrippedResource.PCR, iswap=True)\n        \n        # Move lid from lid stack to ODTC\n        lid = LidStack.fetch_next()\n        print(\"Lid fetched from stack:\", lid)\n        transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', \n                      resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True)\n\n        duration, resultID = odtc_execute_protocol(ham_int, device_id, 'protocol.xml', priority=1)\n        odtc_ready = False\n        while not odtc_ready:\n            odtc_ready = odtc_get_status(ham_int, device_id) == 'idle'\n            time.sleep(5)\n\n        \n        odtc_get_status(ham_int, device_id)\n        \n        # Open door after program completion\n        odtc_open_door(ham_int, device_id)\n"
  },
  {
    "path": "pyhamilton/ngs/tests/tip_support.py",
    "content": "from pyhamilton import HamiltonInterface, LayoutManager, Tip96, layout_item, Plate96, TrackedTips, tip_support_pickup_columns, TipSupportTracker\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\ntip_support_resource = layout_item(lmgr, Tip96, 'TipSupport_0001')\n\ntracked_tips_50uL = TrackedTips.from_prefix(\n                        tracker_id=\"TIP_50uLF_L\",\n                        volume_capacity=50,\n                        prefix=\"TIP_50uLF_L\",\n                        count=8,\n                        tip_type=Tip96, \n                        lmgr=lmgr)\n\ntip_support = TipSupportTracker(tip_support_resource)  \n\nwith HamiltonInterface(simulating=False, windowed=True) as ham_int:\n    ham_int.initialize()\n    for _ in range(3):\n        tip_support_pickup_columns(ham_int, tracked_tips_50uL, tip_support_tracker=tip_support, num_columns=4)\n        ham_int.tip_eject_96()"
  },
  {
    "path": "pyhamilton/ngs/tests/tip_tracker.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Tip96, TrackedTips, resource_list_with_prefix, \n                        Tip96, Plate96, ResourceType, tip_pick_up, DeckResource, tracked_tip_pick_up, tracked_tip_pick_up_96)\n\nfrom typing import List, Tuple\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n#tips_50uL = resource_list_with_prefix(lmgr, 'TIP_50uLF_L_000', Tip96, 5) # Need zero padding for the resource names\n\ntips_50uL_tracker = TrackedTips.from_prefix(\n    tracker_id=\"TIP_50uLF_L\",\n    prefix=\"TIP_50uLF_L\",\n    count=8,\n    lmgr=lmgr,\n    tip_type=Tip96,\n    reset=False  # Reset the tracker state\n)\n\n#tips = tips_50uL_tracker.fetch_next(5)\n#print(f'Fetched tips: {tips}')\n\nwith HamiltonInterface(windowed=True) as ham_int:\n    ham_int.initialize()\n    tracked_tip_pick_up(ham_int, tips_50uL_tracker, 5)\n"
  },
  {
    "path": "pyhamilton/ngs/tests/transfer_96.py",
    "content": "from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item,\n                        normal_logging)\n\nimport os\n\nfrom pyhamilton_advanced import transfer_96\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\n# Perhaps import stack management\n\nMIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette')  # Assuming this is defined elsewhere in the layout\nMIDI_OnMagnet = layout_item(lmgr, Plate96, 'MIDI_OnMagnet')  # Assuming this is defined elsewhere in the layout\n\nMagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001')\nER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002')\nEDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003')\n\ntips = tip_tracker_50uL = TrackedTips.from_prefix(\n    tracker_id=\"TIP_50uLF_L\",\n    prefix=\"TIP_50uLF_L\",\n    count=8,\n    tip_type=Tip96,\n    lmgr=lmgr,\n    reset=True  # Reset the tracker state\n)\n\n\n# This works\nwith HamiltonInterface(windowed=True, simulating=False) as ham_int:\n    ham_int.initialize()\n    normal_logging(ham_int, os.getcwd())\n\n\n    transfer_96(ham_int, tips, MIDI_OffMagnet, MIDI_OnMagnet, 20, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty')"
  },
  {
    "path": "pyhamilton/ngs/tests/transport.py",
    "content": "from pyhamilton import HamiltonInterface, LayoutManager, Reservoir60mL, Tip96, layout_item, Plate96\nfrom pyhamilton_advanced import transport_resource, GripDirection, GrippedResource, GripperParams\n\n\n\nlmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay')\n\nHSP_Pipette2 = layout_item(lmgr, Plate96, 'HSP_Pipette2')\n\nHHS2_HSP = layout_item(lmgr, Plate96, 'HHS2_HSP')\n\n\nwith HamiltonInterface(windowed=True, simulating=False) as ham_int:\n    ham_int.initialize()\n\n    # HSP Pipette 2 to HHS2 HSP\n    transport_resource(ham_int, HSP_Pipette2.layout_name(), HHS2_HSP.layout_name(), core_gripper=True, resource_type=GrippedResource.PCR)\n"
  },
  {
    "path": "pyhamilton/odtc/__init__.py",
    "content": "from .odtc_protocol import ThermalCyclerProtocol"
  },
  {
    "path": "pyhamilton/odtc/odtc_protocol.py",
    "content": "import xml.etree.ElementTree as ET\nfrom datetime import datetime\n\nclass ThermalCyclerProtocol:\n    \"\"\"\n    A class to programmatically generate thermal cycler protocols in XML format.\n    \"\"\"\n    def __init__(self, creator=\"stefan\", variant=960000, plate_type=0, fluid_quantity=1):\n        self.creator = creator\n        self.variant = variant\n        self.plate_type = plate_type\n        self.fluid_quantity = fluid_quantity\n        self.pre_method = {\n            \"methodName\": \"PreMethod\",\n            \"TargetBlockTemperature\": 25,\n            \"TargetLidTemp\": 110\n        }\n        self.steps = []\n        self.pid_set = {\n            1: {\n                \"PHeating\": 60, \"PCooling\": 80,\n                \"IHeating\": 250, \"ICooling\": 100,\n                \"DHeating\": 10, \"DCooling\": 10,\n                \"PLid\": 100, \"ILid\": 70\n            }\n        }\n\n    def add_step(self, plateau_temp, plateau_time, slope=1, overshoot_temp=0, overshoot_time=0,\n                 overshoot_slope1=0.1, overshoot_slope2=0.1, goto_number=0, loop_number=0, pid_number=1,\n                 lid_temp=110):\n        \"\"\"Adds a single step to the protocol.\"\"\"\n        step_data = {\n            \"Number\": len(self.steps) + 1,\n            \"Slope\": slope,\n            \"PlateauTemperature\": plateau_temp,\n            \"PlateauTime\": plateau_time,\n            \"OverShootSlope1\": overshoot_slope1,\n            \"OverShootTemperature\": overshoot_temp,\n            \"OverShootTime\": overshoot_time,\n            \"OverShootSlope2\": overshoot_slope2,\n            \"GotoNumber\": goto_number,\n            \"LoopNumber\": loop_number,\n            \"PIDNumber\": pid_number,\n            \"LidTemp\": lid_temp,\n        }\n        self.steps.append(step_data)\n        return self\n\n    def add_pcr_cycle(self, denaturation_temp, denaturation_time, annealing_temp, annealing_time,\n                      extension_temp, extension_time, num_cycles):\n        \"\"\"Adds a complete PCR cycle block with looping.\"\"\"\n        start_loop_step = len(self.steps) + 1\n        \n        # Denaturation step\n        self.add_step(denaturation_temp, denaturation_time)\n        \n        # Annealing step (part of the loop)\n        self.add_step(annealing_temp, annealing_time)\n        \n        # Extension step (part of the loop, with loop parameters)\n        self.add_step(extension_temp, extension_time, goto_number=start_loop_step, loop_number=num_cycles)\n        \n        return self\n    \n    def add_final_extension(self, temp, time):\n        \"\"\"Adds a final extension step.\"\"\"\n        return self.add_step(temp, time)\n\n    def set_pid_parameters(self, pid_number, p_heating, p_cooling, i_heating, i_cooling, d_heating, d_cooling, p_lid, i_lid):\n        \"\"\"Sets custom PID parameters for a given PID number.\"\"\"\n        self.pid_set[pid_number] = {\n            \"PHeating\": p_heating, \"PCooling\": p_cooling,\n            \"IHeating\": i_heating, \"ICooling\": i_cooling,\n            \"DHeating\": d_heating, \"DCooling\": d_cooling,\n            \"PLid\": p_lid, \"ILid\": i_lid\n        }\n        return self\n\n    def set_pre_method(self, block_temp=25, lid_temp=110):\n        \"\"\"Sets the pre-method parameters.\"\"\"\n        self.pre_method[\"TargetBlockTemperature\"] = block_temp\n        self.pre_method[\"TargetLidTemp\"] = lid_temp\n        return self\n\n    def generate_xml(self, filename=\"protocol.xml\"):\n        \"\"\"Generates the XML file from the class data.\"\"\"\n        method_set = ET.Element(\"MethodSet\")\n        \n        # PreMethod\n        pre_method = ET.SubElement(method_set, \"PreMethod\", \n                                   methodName=self.pre_method[\"methodName\"], \n                                   creator=self.creator, \n                                   dateTime=datetime.now().isoformat())\n        ET.SubElement(pre_method, \"TargetBlockTemperature\").text = str(self.pre_method[\"TargetBlockTemperature\"])\n        ET.SubElement(pre_method, \"TargetLidTemp\").text = str(self.pre_method[\"TargetLidTemp\"])\n        \n        # Method\n        method = ET.SubElement(method_set, \"Method\", \n                               methodName=\"Method\", \n                               creator=self.creator, \n                               dateTime=datetime.now().isoformat())\n        ET.SubElement(method, \"Variant\").text = str(self.variant)\n        ET.SubElement(method, \"PlateType\").text = str(self.plate_type)\n        ET.SubElement(method, \"FluidQuantity\").text = str(self.fluid_quantity)\n        ET.SubElement(method, \"PostHeating\").text = \"true\"\n        ET.SubElement(method, \"StartBlockTemperature\").text = str(self.pre_method[\"TargetBlockTemperature\"])\n        ET.SubElement(method, \"StartLidTemperature\").text = str(self.pre_method[\"TargetLidTemp\"])\n        \n        # Steps\n        for step_data in self.steps:\n            step = ET.SubElement(method, \"Step\")\n            for key, value in step_data.items():\n                ET.SubElement(step, key).text = str(value)\n        \n        # PIDSet\n        pid_set_elem = ET.SubElement(method, \"PIDSet\")\n        for num, params in self.pid_set.items():\n            pid = ET.SubElement(pid_set_elem, \"PID\", number=str(num))\n            for key, value in params.items():\n                ET.SubElement(pid, key).text = str(value)\n        \n        # Write to file\n        tree = ET.ElementTree(method_set)\n        ET.indent(tree, space=\"  \", level=0)\n        tree.write(filename, encoding=\"utf-8\", xml_declaration=True)\n\n\n\nif __name__ == \"__main__\":\n    # Create an instance of the class\n    protocol = ThermalCyclerProtocol(creator=\"Your Name\", fluid_quantity=25)\n\n    # Build a standard PCR protocol using the class methods\n    protocol.add_step(plateau_temp=95, plateau_time=120) \n    protocol.add_pcr_cycle(\n        denaturation_temp=95, denaturation_time=30,\n        annealing_temp=60, annealing_time=30,\n        extension_temp=72, extension_time=60,\n        num_cycles=35\n    )\n    protocol.add_final_extension(temp=72, time=300) \n    protocol.add_step(plateau_temp=4, plateau_time=600)\n\n    # Generate the XML file\n    protocol.generate_xml(\"pcr_protocol_class.xml\")\n\n    print(\"pcr_protocol_class.xml has been generated.\")\n"
  },
  {
    "path": "pyhamilton/oemerr.py",
    "content": "\"\"\"`pyhamilton`-specific exception definitions.\n\"\"\"\nclass HamiltonError(Exception):\n    \"\"\"\n    Exceptions raised in package pyhamilton\n    \"\"\"\n    pass\n\n###########################################\n### BEGIN HAMILTON DECK RESOURCE ERRORS ###\n###########################################\n\nclass HamiltonDeckResourceError(HamiltonError):\n    \"\"\"\n    Error with any deck object in interface with robot.\n    \"\"\"\n    pass\n\nclass ResourceUnavailableError(HamiltonDeckResourceError):\n    \"\"\"\n    Layout manager found deck resource type not present or all of this type assigned\n    \"\"\"\n    pass\n\n#######################################\n### BEGIN HAMILTON INTERFACE ERRORS ###\n#######################################\n\nclass HamiltonInterfaceError(HamiltonError):\n    \"\"\"\n    Error in any phase of communication with robot.\n    \"\"\"\n    pass\n\nclass HamiltonTimeoutError(HamiltonInterfaceError):\n    \"\"\"\n    An asynchronous request to the Hamilton robot timed out.\n    \"\"\"\n    pass\n\nclass InvalidErrCodeError(HamiltonInterfaceError):\n    \"\"\"\n    Error code returned from instrument not known.\n    \"\"\"\n    pass\n\nclass HamiltonReturnParseError(HamiltonInterfaceError):\n    \"\"\"\n    Return string from instrument was malformed.\n    \"\"\"\n    pass\n\n########################################################\n### BEGIN HAMILTON CODED STEP ERRORS, CODE MAP BELOW ###\n########################################################\n\nclass HamiltonStepError(HamiltonError):\n    \"\"\"\n    Errors in steps executed by VENUS software coded in the Hamilton error specification.\n    \"\"\"\n    pass\n\nclass HamiltonSyntaxError(HamiltonStepError):\n    \"\"\"\n    There is a wrong set of parameters or parameter ranges.\n    \"\"\"\n    pass\n \nclass HardwareError(HamiltonStepError):\n    \"\"\"\n    Steps lost on one or more hardware components, or component not initialized or not functioning.\n    \"\"\"\n    pass\n \nclass NotExecutedError(HamiltonStepError):\n    \"\"\"\n    There was an error in previous part command.\n    \"\"\"\n    pass\n\nclass ClotError(HamiltonStepError):\n    \"\"\"\n    Blood clot detected.\n    \"\"\"\n    pass\n\nclass BarcodeError(HamiltonStepError):\n    \"\"\"\n    Barcode could not be read or is missing.\n    \"\"\"\n    pass\n\nclass InsufficientLiquidError(HamiltonStepError):\n    \"\"\"\n    Not enough liquid available.\n    \"\"\"\n    pass\n\nclass TipPresentError(HamiltonStepError):\n    \"\"\"\n    A tip has already been picked up.\n    \"\"\"\n    pass\n\nclass NoTipError(HamiltonStepError):\n    \"\"\"\n    Tip is missing or not picked up.\n    \"\"\"\n    pass\n\nclass NoCarrierError(HamiltonStepError):\n    \"\"\"\n    No carrier present for loading.\n    \"\"\"\n    pass\n\nclass ExecutionError(HamiltonStepError):\n    \"\"\"\n    A step or a part of a step could not be processed.\n    \"\"\"\n    pass\n\nclass PressureLLDError(HamiltonStepError):\n    \"\"\"\n    A dispense with pressure liquid level detection is not allowed.\n    \"\"\"\n    pass\n\nclass CalibrateError(HamiltonStepError):\n    \"\"\"\n    No capacitive signal detected during carrier calibration procedure.\n    \"\"\"\n    pass\n\nclass UnloadError(HamiltonStepError):\n    \"\"\"\n    Not possible to unload the carrier due to occupied loading tray position.\n    \"\"\"\n    pass\n\nclass PressureLLDError(HamiltonStepError):\n    \"\"\"\n    Pressure liquid level detection in a consecutive aspiration is not allowed.\n    \"\"\"\n    pass\n\nclass ParameterError(HamiltonStepError):\n    \"\"\"\n    Dispense in jet mode with pressure liquid level detection is not allowed.\n    \"\"\"\n    pass\n\nclass CoverOpenError(HamiltonStepError):\n    \"\"\"\n    Cover not closed or can not be locked.\n    \"\"\"\n    pass\n\nclass ImproperAspirationOrDispenseError(HamiltonStepError):\n    \"\"\"\n    The pressure-based aspiration / dispensation control reported an error ( not enough liquid ).\n    \"\"\"\n    pass\n\nclass WashLiquidError(HamiltonStepError):\n    \"\"\"\n    Waste full or no more wash liquid available.\n    \"\"\"\n    pass\n\nclass TemperatureError(HamiltonStepError):\n    \"\"\"\n    Incubator temperature out of range.\n    \"\"\"\n    pass\n\nclass TADMOvershotError(HamiltonStepError):\n    \"\"\"\n    Overshot of limits during aspirate or dispense.\n\n    Note:\n\n    On aspirate this error is returned as main error 17.\n\n    On dispense this error is returned as main error 4.\n    \"\"\"\n    pass\n\nclass LabwareError(HamiltonStepError):\n    \"\"\"\n    Labware not available.\n    \"\"\"\n    pass\n\nclass LabwareGrippedError(HamiltonStepError):\n    \"\"\"\n    Labware already gripped.\n    \"\"\"\n    pass\n\nclass LabwareLostError(HamiltonStepError):\n    \"\"\"\n    Labware lost during transport.\n    \"\"\"\n    pass\n\nclass IllegalTargetPlatePositionError(HamiltonStepError):\n    \"\"\"\n    Cannot place plate, plate was gripped in a wrong direction.\n    \"\"\"\n    pass\n\nclass IllegalInterventionError(HamiltonStepError):\n    \"\"\"\n    Cover was opened or a carrier was removed manually.\n    \"\"\"\n    pass\n\nclass TADMUndershotError(HamiltonStepError):\n    \"\"\"\n    Undershot of limits during aspirate or dispense.\n\n    Note:\n\n    On aspirate this error is returned as main error 4.\n\n    On dispense this error is returned as main error 17.\n    \"\"\"\n    pass\n\nclass PositionError(HamiltonStepError):\n    \"\"\"\n    The position is out of range.\n    \"\"\"\n    pass\n\nclass UnexpectedcLLDError(HamiltonStepError):\n    \"\"\"\n    The cLLD detected a liquid level above start height of liquid level search.\n    \"\"\"\n    pass\n\nclass AreaAlreadyOccupiedError(HamiltonStepError):\n    \"\"\"\n    Instrument region already reserved.\n    \"\"\"\n    pass\n\nclass ImpossibleToOccupyAreaError(HamiltonStepError):\n    \"\"\"\n    A region on the instrument cannot be reserved.\n    \"\"\"\n    pass\n\nclass AntiDropControlError(HamiltonStepError):\n    \"\"\"\n    Anti drop controlling out of tolerance.\n    \"\"\"\n    pass\n\nclass DecapperError(HamiltonStepError):\n    \"\"\"\n    Decapper lock error while screw / unscrew a cap by twister channels.\n    \"\"\"\n    pass\n\nclass DecapperHandlingError(HamiltonStepError):\n    \"\"\"\n    Decapper station error while lock / unlock a cap.\n    \"\"\"\n    pass\n\nclass SlaveError(HamiltonStepError):\n    \"\"\"\n    Slave error.\n    \"\"\"\n    pass\n\nclass WrongCarrierError(HamiltonStepError):\n    \"\"\"\n    Wrong carrier barcode detected.\n    \"\"\"\n    pass\n\nclass NoCarrierBarcodeError(HamiltonStepError):\n    \"\"\"\n    Carrier barcode could not be read or is missing.\n    \"\"\"\n    pass\n\nclass LiquidLevelError(HamiltonStepError):\n    \"\"\"\n    Liquid surface not detected.\n\n    This error is created from main / slave error 06/70, 06/73 and 06/87.\n    \"\"\"\n    pass\n\nclass NotDetectedError(HamiltonStepError):\n    \"\"\"\n    Carrier not detected at deck end position.\n    \"\"\"\n    pass\n\nclass NotAspiratedError(HamiltonStepError):\n    \"\"\"\n    Dispense volume exceeds the aspirated volume.\n\n    This error is created from main / slave error 02/54.\n    \"\"\"\n    pass\n\nclass ImproperDispensationError(HamiltonStepError):\n    \"\"\"\n    The dispensed volume is out of tolerance (may only occur for Nano Pipettor Dispense steps). \n\n    This error is created from main / slave error 02/52 and 02/54.\n    \"\"\"\n    pass\n\nclass NoLabwareError(HamiltonStepError):\n    \"\"\"\n    The labware to be loaded was not detected by autoload module.\n\n    Note:\n\n    May only occur on a Reload Carrier step if the labware property 'MlStarCarPosAreRecognizable' is set to 1.\n    \"\"\"\n    pass\n\nclass UnexpectedLabwareError(HamiltonStepError):\n    \"\"\"\n    The labware contains unexpected barcode ( may only occur on a Reload Carrier step ).\n    \"\"\"\n    pass\n\nclass WrongLabwareError(HamiltonStepError):\n    \"\"\"\n    The labware to be reloaded contains wrong barcode ( may only occur on a Reload Carrier step ).\n    \"\"\"\n    pass\n\nclass BarcodeMaskError(HamiltonStepError):\n    \"\"\"\n    The barcode read doesn't match the barcode mask defined.\n    \"\"\"\n    pass\n\nclass BarcodeNotUniqueError(HamiltonStepError):\n    \"\"\"\n    The barcode read is not unique. Previously loaded labware with same barcode was loaded without unique barcode check.\n    \"\"\"\n    pass\n\nclass BarcodeAlreadyUsedError(HamiltonStepError):\n    \"\"\"\n    The barcode read is already loaded as unique barcode ( it's not possible to load the same barcode twice ).\n    \"\"\"\n    pass\n\nclass KitLotExpiredError(HamiltonStepError):\n    \"\"\"\n    Kit Lot expired.\n    \"\"\"\n    pass\n\nclass DelimiterError(HamiltonStepError):\n    \"\"\"\n    Barcode contains character which is used as delimiter in result string.\n    \"\"\"\n    pass\n\n\nHAMILTON_ERROR_MAP = { \n    1: HamiltonSyntaxError,\n    2: HardwareError,\n    3: NotExecutedError,\n    4: ClotError,\n    5: BarcodeError,\n    6: InsufficientLiquidError,\n    7: TipPresentError,\n    8: NoTipError,\n    9: NoCarrierError,\n    10: ExecutionError,\n    11: PressureLLDError,\n    12: CalibrateError,\n    13: UnloadError,\n    14: PressureLLDError,\n    15: ParameterError,\n    16: CoverOpenError,\n    17: ImproperAspirationOrDispenseError,\n    18: WashLiquidError,\n    19: TemperatureError,\n    20: TADMOvershotError,\n    21: LabwareError,\n    22: LabwareGrippedError,\n    23: LabwareLostError,\n    24: IllegalTargetPlatePositionError,\n    25: IllegalInterventionError,\n    26: TADMUndershotError,\n    27: PositionError,\n    28: UnexpectedcLLDError,\n    29: AreaAlreadyOccupiedError,\n    30: ImpossibleToOccupyAreaError,\n    31: AntiDropControlError,\n    32: DecapperError,\n    33: DecapperHandlingError,\n    99: SlaveError,\n    100: WrongCarrierError,\n    101: NoCarrierBarcodeError,\n    102: LiquidLevelError,\n    103: NotDetectedError,\n    104: NotAspiratedError,\n    105: ImproperDispensationError,\n    106: NoLabwareError,\n    107: UnexpectedLabwareError,\n    108: WrongLabwareError,\n    109: BarcodeMaskError,\n    110: BarcodeNotUniqueError,\n    111: BarcodeAlreadyUsedError,\n    112: KitLotExpiredError,\n    113: DelimiterError\n}\n\"\"\"\nMaps integer error codes from Hamilton step return data to the appropriate `pyhamilton` errors\n\"\"\"\n\n"
  },
  {
    "path": "pyhamilton/paths.py",
    "content": "import os\nfrom pyhamilton import PACKAGE_PATH\n\nLAY_BACKUP_DIR = os.path.join(PACKAGE_PATH, 'LAY-BACKUP')\nif not os.path.exists(LAY_BACKUP_DIR):\n    os.mkdir(LAY_BACKUP_DIR)\nOEM_STAR_PATH = os.path.join(PACKAGE_PATH, 'star-oem')\nif not (os.path.exists(OEM_STAR_PATH)\n\t\tand os.path.exists(os.path.join(OEM_STAR_PATH, 'RunHSLExecutor.dll'))\n\t\tand os.path.exists(os.path.join(OEM_STAR_PATH, 'HSLHttp.dll'))):\n    raise FileNotFoundError('pyhamilton requires .../site-packages/pyhamilton/STAR-OEM, distributed separately.')\nOEM_LAY_PATH = os.path.join(OEM_STAR_PATH, 'VENUS_Method', 'STAR_OEM_Test.lay')\nOEM_HSL_PATH = os.path.join(OEM_STAR_PATH, 'VENUS_Method', 'STAR_OEM_noFan.hsl')\nOEM_RUN_EXE_PATH = 'C:\\\\Program Files (x86)\\\\HAMILTON\\\\Bin\\\\HxRun.exe'\n"
  },
  {
    "path": "pyhamilton/pipetting/__init__.py",
    "content": "from .pipetting import (pip_transfer, shear_plate_96, mix_plate, multi_dispense, transfer_96, \n                        double_aspirate_supernatant_96, aspirate_all, pip_mix, ethanol_wash,\n                        build_dispense_batches, batch_columnwise_positions, distribute_positions_to_channel_ops,\n                        multi_dispense, multi_aspirate, pip_pool, mph_tip_pickup_support)"
  },
  {
    "path": "pyhamilton/pipetting/pipetting.py",
    "content": "from .trough_manager import manage_multiple_troughs\nfrom ..consumables import tracked_volume_aspirate, tracked_volume_aspirate_96\nimport time\nfrom ..liquid_class_db import get_liquid_class_volume\nfrom ..interface import HamiltonInterface\nfrom ..resources import DeckResource, LayoutManager, StackedResources, TrackedTips, TipSupportTracker\nfrom ..liquid_handling_wrappers import normal_logging, tip_support_pickup_columns, tracked_tip_pick_up, tracked_tip_pick_up_96\nfrom typing import List, Tuple, Iterable, List\n\n\ndef prewet_tips(ham_int, tip_type, dispense_mode):\n    pass\n\ndef condense_volumes(lst, vol, max_volume):\n    total = sum(lst)\n    return [max_volume] * (total // max_volume) + ([total % max_volume] if 0 < total % max_volume >= vol else [])\n\n\ndef get_fitting_dispense_positions(asp_vols, disp_vols, disp_pos):\n    running_total = [0] * len(asp_vols)\n    result = []\n\n    for pos_block, vol_block in zip(disp_pos, disp_vols):\n        new_total = [a + b for a, b in zip(running_total, vol_block)]\n        if all(v <= a for v, a in zip(new_total, asp_vols)):\n            running_total = new_total\n            result.append((pos_block, vol_block))\n        else:\n            break\n\n    return result\n\n# Now build full batch list\ndef build_dispense_batches(aspiration_volumes, all_dispense_positions, all_dispense_volumes):\n    '''\n    Batch together multiple dispenses from a single aspiration based on tip volume capacity.\n\n    Returns:\n        List of tuples: (batch, aspiration_volumes)\n        where batch = list of (positions, volumes)\n              aspiration_volumes = list of total volumes needed per tip\n    '''\n    batches = []\n\n    disp_vols = all_dispense_volumes[:]\n    disp_pos  = all_dispense_positions[:]\n\n    while disp_vols:\n        batch_positions = get_fitting_dispense_positions(aspiration_volumes, disp_vols, disp_pos)\n        if not batch_positions:\n            raise ValueError(\"Dispense volumes of {} exceed available aspiration volume of {}. Check tip capacity.\".format(disp_vols, aspiration_volumes))\n\n        n = len(batch_positions)\n        batch = batch_positions\n\n        # Calculate how much volume per tip will be needed for this batch\n        num_tips = len(batch[0][1])  # assuming 8 tips\n        batch_asp_vols = [0] * num_tips\n        for _, column_volumes in batch:\n            for i in range(num_tips):\n                batch_asp_vols[i] += column_volumes[i]\n\n        batches.append((batch, batch_asp_vols))\n\n        disp_vols = disp_vols[n:]\n        disp_pos  = disp_pos[n:]\n\n    return batches\n\ndef distribute_positions_to_channel_ops(positions_to_distribute, reference_positions):\n    '''\n    Expand the larger list of positions into a list of lists so we can sequentially operate on those positions\n    using each of the channels. Use when there are <8 positions to aspirate or dispense from.\n\n    Example:\n    aspiration_positions = [(plate, 0), (plate, 1)]\n    dispense_positions = [(plate, 0), (plate, 1), (plate, 2), (plate, 3), (plate, 4), (plate, 5), (plate, 6), (plate, 7)]\n\n    Output:\n    [\n        [(plate, 0), (plate, 1), None, None, None, None, None, None],\n        [None, None, (plate, 0), (plate, 1), None, None, None, None],\n        [None, None, None, None, (plate, 0), (plate, 1), None, None],\n        [None, None, None, None, None, None, (plate, 0), (plate, 1)],\n    ]\n    '''\n    # Sanity check: the set of positions to distribute must not exceed the total channel slots\n    if len(positions_to_distribute) > len(reference_positions):\n        raise ValueError(\"Positions to distribute must be less than or equal to reference positions\")\n\n    num_reference_positions = len(reference_positions)        # e.g. 8 channels on a pipette head\n    num_positions_to_distribute = len(positions_to_distribute) # e.g. 2 wells to transfer\n    result = []\n\n    # Slide the smaller set across the larger channel frame in steps\n    # Step size = number of positions to distribute (so each group is aligned together)\n    for i in range(0, num_reference_positions, num_positions_to_distribute):\n        # Start with a \"blank\" row (all channels set to None)\n        row = [None] * num_reference_positions\n\n        # Place the positions into this row, offset by i\n        for j, pos in enumerate(positions_to_distribute):\n            if i + j < num_reference_positions:  # don’t go past the channel frame\n                row[i + j] = pos\n\n        # Add this row to the list of operation sets\n        result.append(row)\n\n    return result\n\ndef print_transfers(source_wells, destination_wells, vols):\n    for source_well_tuple, destination_well_tuple, destination_vol in zip(source_wells, destination_wells, vols):\n        if destination_well_tuple:\n            dest_plate, dest_well_idx = destination_well_tuple\n        else:\n            dest_plate, dest_well_idx = None, None\n                    \n        source_plate, source_well_idx = source_well_tuple\n        dest_plate_name = dest_plate.layout_name()\n        source_plate_name = source_plate.layout_name()\n        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))\n    print(\"\\n\")\n\n\ndef batch_columnwise_positions(positions):\n    '''\n    Convert a list into a list of lists where each sublist is length 8 or less\n    '''\n    return [positions[i:i + 8] for i in range(0, len(positions), 8)]\n\ndef split_volumes_by_max_volume(volumes, max_volume):\n    result = []\n    remaining = volumes[:]\n    \n    while any(v > 0 for v in remaining):\n        current = []\n        for i, vol in enumerate(remaining):\n            if vol > 0:\n                use = min(vol, max_volume)\n                current.append(use)\n                remaining[i] -= use\n            else:\n                current.append(0)\n        result.append(current)\n    \n    return result\n\ndef set_parallel_nones(positions, reference):\n    '''\n    Set None values in the positions list to match the reference list.\n    '''\n    # Copy the original positions to avoid modifying the input\n    modified_positions = positions.copy()\n    for i, ref in enumerate(reference):\n        if ref is None:\n            modified_positions[i] = None\n    return modified_positions\n\ndef pip_transfer(ham_int: HamiltonInterface, tips: List[Tuple[DeckResource, int]] | TrackedTips, source_positions: List[Tuple[DeckResource, int]], \n                    dispense_positions: List[Tuple[DeckResource, int]], volumes: List[float], liquid_class: str, prewet_cycles=0,\n                    mix_cycles=0, prewet_volume=0, vol_mix_dispense=0, aspiration_height=0,\n                    dispense_height=0, submerge_depth=2, liquid_following_aspiration=False, liquid_following_dispense=False):\n    '''\n    Transfer liquid from source positions to dispense positions using pipetting. Handles pipetting logic for\n    unmatched lengths of source and dispense positions.\n\n    Arguments:\n    - ham_int: HamiltonInterface instance\n    - tips: List of tuples (DeckResource, int) or TrackedTips instance\n    - source_positions: List of tuples (DeckResource, int) for aspiration positions\n\n        Example: [ (source_plate, 1), (source_plate, 2), (source_plate, 3)... ]\n\n    - dispense_positions: List of tuples (DeckResource, int) for dispense positions\n\n        Example: [ (dest_plate, 1), (dest_plate, 2), (dest_plate, 3)... ]\n\n    - volumes: List of volumes to dispense (should be matched to dispense_positions)\n    '''\n\n    liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True)  # Fetch the volume for the liquid class\n    if max(volumes) > liquid_class_vol_capacity:\n        raise ValueError(f\"Volume exceeds tip capacity: {max(volumes)} > {liquid_class_vol_capacity}\")\n\n    if tips.volume_capacity != liquid_class_vol_capacity:\n        raise ValueError(f\"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}\")\n\n\n    if len(source_positions) > 8:\n        raise ValueError(\"Source positions cannot exceed 8 with single aspiration.\")\n\n    aspirate_capacitative_LLD = 1 if aspiration_height == 0 else 0\n\n    total_volume_needed = 0 # Calculate total volume needed for the transfer\n    performed_additional_volume_transfer = False\n    #if aspirate_capacitative_LLD != 0:\n    #    troughs, performed_additional_volume_transfer = manage_multiple_troughs(ham_int, source_positions, total_volume_needed, liquid_class, 0, 0, check_volumes=True)\n\n    aspirate_mode = 2 if performed_additional_volume_transfer else 0\n\n    column_dispense_positions = batch_columnwise_positions(dispense_positions) # Batch dispense positions into lists of length eight\n    column_volumes_list = batch_columnwise_positions(volumes) # Batch volumes into lists of length eight\n\n    for column, column_volumes in zip(column_dispense_positions, column_volumes_list):\n        if isinstance(tips, TrackedTips):\n            num_tips = len([pos for pos in column if pos is not None])\n            tracked_tip_pick_up(ham_int, tips, num_tips)\n        else:\n            ham_int.tip_pick_up(tips)\n\n        aspiration_positions = distribute_positions_to_channel_ops(source_positions, column) # Aspirate sequentially because container has <8 positions\n        for positions in aspiration_positions:\n            vols = set_parallel_nones(column_volumes, positions)\n            response = tracked_volume_aspirate(ham_int, positions, vols, liquidClass=liquid_class,\n                                    mixCycles=prewet_cycles, mixVolume=prewet_volume,\n                                    liquidHeight=aspiration_height, liquidFollowing=liquid_following_aspiration,\n                                    capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode,\n                                    submergeDepth=submerge_depth)\n\n            aspirate_heights = response.liquidHeights\n\n        dispense_capacitative_LLD = 2 if dispense_height == 0 else 0\n        response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class, \n                                    mixCycles=mix_cycles, mixVolume=vol_mix_dispense,\n                                    liquidHeight=dispense_height, \n                                    capacitiveLLD=dispense_capacitative_LLD,\n                                    liquidFollowing=liquid_following_dispense)\n        \n        dispense_heights = response.liquidHeights\n\n        ham_int.tip_eject()\n\ndef pip_pool(ham_int: HamiltonInterface, tips: List[Tuple[DeckResource, int]] | TrackedTips, source_positions: List[Tuple[DeckResource, int]], \n                    dispense_positions: List[Tuple[DeckResource, int]], volumes: List[float], liquid_class: str, prewet_cycles=0,\n                    mix_cycles=0, prewet_volume=0, vol_mix_dispense=0, aspiration_height=0,\n                    dispense_height=0, tip_exchange_during_transfer=True,\n                    liquid_following_aspiration=False, liquid_following_dispense=False):\n    '''\n    Transfer liquid from source positions to dispense positions using pipetting. Handles pipetting logic for\n    unmatched lengths of source and dispense positions.\n\n    Arguments:\n    - ham_int: HamiltonInterface instance\n    - tips: List of tuples (DeckResource, int) or TrackedTips instance\n    - source_positions: List of tuples (DeckResource, int) for aspiration positions\n\n        Example: [ (source_plate, 1), (source_plate, 2), (source_plate, 3)... ]\n\n    - dispense_positions: List of tuples (DeckResource, int) for dispense positions\n\n        Example: [ (dest_plate, 1), (dest_plate, 2), (dest_plate, 3)... ]\n\n    - volumes: List of volumes to dispense (should be matched to dispense_positions)\n    '''\n\n\n    liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True)  # Fetch the volume for the liquid class\n    if max(volumes) > liquid_class_vol_capacity:\n        raise ValueError(f\"Volume exceeds tip capacity: {max(volumes)} > {liquid_class_vol_capacity}\")\n\n    if tips.volume_capacity != liquid_class_vol_capacity:\n        raise ValueError(f\"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}\")\n\n\n    if len(dispense_positions) > 8:\n        raise ValueError(\"Dispense positions cannot exceed 8 with single aspiration.\")\n\n    aspirate_capacitative_LLD = 5 if aspiration_height == 0 else 0\n\n    column_aspirate_positions = batch_columnwise_positions(source_positions) # Batch source positions into lists of length eight\n    column_volumes_list = batch_columnwise_positions(volumes) # Batch volumes into lists of length eight\n\n    for column, column_volumes in zip(column_aspirate_positions, column_volumes_list):\n        if isinstance(tips, TrackedTips):\n            num_tips = len([pos for pos in column if pos is not None])\n            tracked_tip_pick_up(ham_int, tips, num_tips)\n        else:\n            ham_int.tip_pick_up(tips)\n\n        vols = set_parallel_nones(column_volumes, column)\n        response = ham_int.aspirate(column, vols, liquidClass=liquid_class,\n                                mixCycles=0, mixVolume=0,\n                                liquidHeight=aspiration_height,\n                                capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=2,\n                                submergeDepth=2)\n\n\n        channel_mapped_dispense_positions = distribute_positions_to_channel_ops(dispense_positions, column) # Aspirate sequentially because container has <8 positions\n        for positions in channel_mapped_dispense_positions:\n            vols = set_parallel_nones(column_volumes, positions)\n\n            aspirate_heights = response.liquidHeights\n\n            dispense_capacitative_LLD = 2 if dispense_height == 0 else 0\n            response = ham_int.dispense(positions, vols, liquidClass=liquid_class, \n                                        mixCycles=mix_cycles, mixVolume=vol_mix_dispense,\n                                        liquidHeight=dispense_height,\n                                        capacitiveLLD=dispense_capacitative_LLD,\n                                        liquidFollowing=liquid_following_dispense)\n            \n            dispense_heights = response.liquidHeights\n\n            ham_int.tip_eject()\n\n\ndef shear_plate_96(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource, int]] | TrackedTips, plate:DeckResource, \n                   mixing_volume:float, mix_cycles:int, liquid_class:str,  liquid_height=0):\n    '''\n    Shear DNA in plate with 96 channel head.\n    '''\n    if isinstance(tips, TrackedTips):\n        tracked_tip_pick_up_96(ham_int, tips)\n    else:\n        ham_int.tip_pick_up_96(tips)\n\n\n\n    cLLD = 1 if liquid_height == 0 else 0\n    volume = 0\n    ham_int.aspirate_96(plate, volume, liquid_class,mix_volume = mixing_volume, mix_cycles=mix_cycles, liquid_height=liquid_height, capacitative_LLD=cLLD)\n\n    ham_int.tip_eject_96()\n\n\ndef mix_plate(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource, int]] | TrackedTips, tip_support, num_samples,\n               plate:DeckResource, mixing_volume:float, mix_cycles:int, liquid_class:str, liquid_height:float=0):\n    '''\n    Mix plate with 96 channel head.\n    '''\n    liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True)  # Fetch the volume for the liquid class\n    if tips.volume_capacity != liquid_class_vol_capacity:\n        raise ValueError(f\"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}\")\n    \n    if mixing_volume > liquid_class_vol_capacity:\n        raise ValueError(f\"Mixing volume exceeds tip capacity: {mixing_volume} > {liquid_class_vol_capacity}\")\n\n    mph_tip_pickup_support(ham_int, tips, tip_support, num_tips=num_samples)\n\n    cLLD, liquidFollowing = (5, True) if liquid_height == 0 else (0, False)\n    ham_int.aspirate_96(plate, 0, liquidClass=liquid_class, mixCycles=mix_cycles, mixVolume=mixing_volume,\n                        liquidHeight=liquid_height, capacitiveLLD=cLLD, liquidFollowing=liquidFollowing)\n\n    ham_int.tip_eject_96()\n\n\ndef multi_dispense(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource, int]] | TrackedTips,\n                   source_positions:List[Tuple[DeckResource, int]], dispense_positions:List[Tuple[DeckResource, int]],\n                   volumes:List[float], liquid_class:str, pre_aspirate_volume = 0, post_dispense_volume = 0,\n                   post_dispense_to_source = False, mix_cycles=0, aspiration_height=0, dispense_height=0):\n    '''\n    Dispenses a reagent across multiple columns for each aspiration. This is useful for quickly plating out reagent from a source trough.\n\n    source_positions: A list of tuples specifying the source positions for aspiration.\n    Example: [ (source_plate, 1), (source_plate, 2), (source_plate, 3)... ]\n\n    dispense_positions: A list of tuples specifying the destination positions for dispensing.\n    Example: [ (dest_plate, 1), (dest_plate, 2), (dest_plate, 3)... ]\n    '''\n\n    max_volume_tips = get_liquid_class_volume(liquid_class)  # Fetch the volume for the liquid class\n\n    column_dispense_positions = batch_columnwise_positions(dispense_positions) # Batch dispense positions into lists of length eight\n    column_dispense_volumes = batch_columnwise_positions(volumes) # Batch volumes into lists of length eight\n\n    max_channel_volumes = [max_volume_tips]*8 # Placeholder that can be changed to different numbers of channels\n    dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes)\n\n    for batch, batch_aspiration_volumes in dispense_batches:\n        \n        if isinstance(tips, TrackedTips):\n            if tips.volume_capacity != get_liquid_class_volume(liquid_class, nominal=True):\n                raise ValueError(f\"Tip type does not match liquid class: {tips.volume_capacity} != {get_liquid_class_volume(liquid_class, nominal=True)}\")\n            tracked_tip_pick_up(ham_int, tips, n=8)  # Pick up tips for the first column of the batch\n        else:\n            ham_int.pick_up_tips(tips)\n        \n        aspiration_positions = distribute_positions_to_channel_ops(source_positions, batch[0][0]) # First column of first batch\n        \n\n        for positions in aspiration_positions:\n            vols = set_parallel_nones(batch_aspiration_volumes, positions)\n\n            vols = [\n                (v + pre_aspirate_volume + post_dispense_volume) if v is not None else None\n                for v in vols\n            ]\n\n            cLLD = 5 if aspiration_height == 0 else 0\n\n            tracked_volume_aspirate(ham_int, positions, vols, liquidClass=liquid_class,\n                                    mixCycles=0, mixVolume=0,\n                                    liquidHeight=aspiration_height,\n                                    capacitiveLLD=cLLD, aspirateMode=2,\n                                    submergeDepth=2)\n            \n            if pre_aspirate_volume > 0:\n                pre_dispense_vols = [pre_aspirate_volume if v is not None else None for v in vols]\n                ham_int.dispense(positions, pre_dispense_vols, liquidClass=liquid_class, liquidHeight=dispense_height)\n\n        for column, column_volumes in batch:\n            response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class,\n                                        mixCycles=mix_cycles, mixVolume=0,\n                                        liquidHeight=dispense_height,\n                                        capacitiveLLD=0,\n                                        liquidFollowing=0)\n            \n        if post_dispense_volume > 0 and post_dispense_to_source:\n            post_dispense_vols = [post_dispense_volume for v in vols if v is not None]\n            ham_int.dispense(positions, post_dispense_vols, liquidClass=liquid_class, liquidHeight=dispense_height)\n\n\n        ham_int.tip_eject()\n\n\ndef multi_aspirate(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource, int]] | TrackedTips, \n                   source_positions:List[Tuple[DeckResource, int]], dispense_positions:List[Tuple[DeckResource, int]], \n                   num_aspiration_cycles:int, volumes:List[float], liquid_class:str, mix_cycles=0, aspiration_height=0):\n    '''\n    Plate out a reagent in volumes greater than the tip capacity with an outer loop over aspirations and an inner loop over dispenses.\n    This works for plating out reagent from a source trough.\n    '''\n    \n    max_volume_tips = get_liquid_class_volume(liquid_class)  # Fetch the volume for the liquid class\n\n\n    liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True)  # Fetch the volume for the liquid class\n    if tips.volume_capacity != liquid_class_vol_capacity:\n        raise ValueError(f\"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}\")\n\n    column_dispense_positions = batch_columnwise_positions(dispense_positions) # Batch dispense positions into lists of length eight\n    column_dispense_volumes = batch_columnwise_positions(volumes) # Batch volumes into lists of length eight\n\n    max_channel_volumes = [max_volume_tips]*8\n    dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes)\n\n    for aspiration_cycle in range(num_aspiration_cycles):\n        if isinstance(tips, TrackedTips):\n            if tips.volume_capacity != get_liquid_class_volume(liquid_class, nominal=True):\n                raise ValueError(f\"Tip type does not match liquid class: {tips.volume_capacity} != {get_liquid_class_volume(liquid_class, nominal=True)}\")\n            tracked_tip_pick_up(ham_int, tips, n=8)\n\n        else:\n            ham_int.pick_up_tips(tips)\n\n        aspiration_positions = distribute_positions_to_channel_ops(source_positions, column_dispense_positions[0]) # First column of first batch, fix this later\n        split_column_volumes = distribute_positions_to_channel_ops(volumes, column_dispense_positions[0])\n        for positions, vols in zip(aspiration_positions, split_column_volumes):\n            vols = set_parallel_nones(volumes, positions)\n            tracked_volume_aspirate(ham_int, aspiration_positions, vols, liquidClass=liquid_class,\n                                    mixCycles=0, mixVolume=0,\n                                    liquidHeight=aspiration_height,\n                                    capacitiveLLD=1, aspirateMode=2,\n                                    submergeDepth=2)\n\n        for batch, batch_aspiration_volumes in dispense_batches:\n            for column, column_volumes in batch:\n                response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class,\n                                            mixCycles=0, mixVolume=0,\n                                            liquidHeight=0,\n                                            capacitiveLLD=0,\n                                            liquidFollowing=0)\n\ndef mph_tip_pickup_support(ham_int: HamiltonInterface, tips: TrackedTips, tip_support: TipSupportTracker, num_tips: int):\n    '''\n    Pick up tips using the multi-channel head from a tip support resource. Requires TrackedTips to be specified in\n    case the tips loaded on the support have to be switched out.\n    '''\n    if isinstance(tips, TrackedTips):\n        num_columns = num_tips//8 + 1*(num_tips % 8 > 0)\n        tip_support_pickup_columns(ham_int, tips, tip_support, num_columns)\n    else:\n        ham_int.tip_pick_up_96(tips)\n\ndef transfer_96(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource,int]]|TrackedTips, tip_support:TipSupportTracker, num_samples:int, \n                source_plate:DeckResource, target_plate:DeckResource, volume:float, liquid_class:str, \n                aspiration_mix_cycles:int=0, aspiration_mix_volume:float=0, aspiration_height:float=0,  \n                dispense_mix_cycles:int=0, dispense_mix_volume:float=0, dispense_height:float=0):\n    '''\n    Dispense to multiple positions with 96 channel head.\n    '''\n\n    liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True)  # Fetch the volume for the liquid class\n    if volume > liquid_class_vol_capacity:\n        raise ValueError(f\"Volume exceeds tip capacity: {volume} > {liquid_class_vol_capacity}\")\n    \n    if tips.volume_capacity != liquid_class_vol_capacity:\n        raise ValueError(f\"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}\")\n\n\n    mph_tip_pickup_support(ham_int, tips, tip_support, num_tips=num_samples)\n\n    tracked_volume_aspirate_96(ham_int, source_plate, volume, liquidClass=liquid_class, mixCycles=aspiration_mix_cycles,\n                                mixVolume=aspiration_mix_volume, liquidHeight=aspiration_height)\n    \n    ham_int.dispense_96(target_plate, volume, liquidClass=liquid_class, liquidHeight=dispense_height, \n                        mixCycles=dispense_mix_cycles, mixVolume=dispense_mix_volume)\n    \n    ham_int.tip_eject_96()\n\n\ndef double_aspirate_supernatant_96(ham_int: HamiltonInterface, tips: TrackedTips, tip_support: TipSupportTracker, num_samples:int,\n                                    source_plate: DeckResource, destination_plate: DeckResource, first_volume: float, second_volume: float, \n                                    liquid_class: str, second_aspiration_height: float=0.75, mix_cycles=0, dispense_height=0):\n    '''\n    Double aspiration to remove supernatant from a plate with 96 channel head. Double aspiration is used to\n    allow residual liquid to settle between aspirations.\n    '''\n\n    liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True)  # Fetch the volume for the liquid class\n    volume = first_volume + second_volume\n    \n    if volume > liquid_class_vol_capacity:\n        raise ValueError(f\"Volume exceeds tip capacity: {volume} > {liquid_class_vol_capacity}\")\n\n    if tips.volume_capacity != liquid_class_vol_capacity:\n        raise ValueError(f\"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}\")\n\n    if second_aspiration_height<=0.5:\n        raise ValueError(f\"Second aspiration height must be greater than 0.5 mm to avoid bead disturbance: {second_aspiration_height} <= 0.5\")\n\n    mph_tip_pickup_support(ham_int, tips, tip_support, num_tips=num_samples)\n\n    ham_int.aspirate_96(source_plate, first_volume, liquidClass=liquid_class, mixCycles=mix_cycles,\n                        capacitiveLLD=1, liquidFollowing=True, aspirateMode=2, submergeDepth=0.5)  # First aspiration uses cLLD and liquid following\n\n    ham_int.aspirate_96(source_plate, second_volume, liquidClass=liquid_class, mixCycles=mix_cycles, \n                        liquidHeight=second_aspiration_height, capacitiveLLD=0, aspirateMode=1) # Second aspiration uses fixed height, no liquid following\n\n    total_volume = first_volume + second_volume\n    ham_int.dispense_96(destination_plate, total_volume, liquidClass=liquid_class, liquidHeight=dispense_height, dispenseMode=4)\n\n    ham_int.tip_eject_96()\n\n\ndef ethanol_wash(ham_int: HamiltonInterface, tips: TrackedTips, tip_support: TipSupportTracker, num_samples: int, \n                 ethanol_plate: DeckResource, magnet_plate: DeckResource, waste_plate: DeckResource, wash_volume: float, \n                 first_removal_volume: float, second_removal_volume: float, liquid_class: str, mix_cycles=0, liquid_height=0):\n\n    ''' Wash beads with ethanol twice and then remove supernatant.'''\n\n    mph_tip_pickup_support(ham_int, tips, tip_support, num_tips=num_samples)\n\n    # First ethanol wash\n    tracked_volume_aspirate_96(ham_int, ethanol_plate, wash_volume, liquidClass=liquid_class, \n                               mixCycles=mix_cycles, liquidHeight=liquid_height, capacitiveLLD=1, submergeDepth=2)\n    ham_int.dispense_96(magnet_plate, wash_volume, liquidClass=liquid_class, dispenseMode=4, liquidHeight=10, airTransportRetractDist=5)\n    ham_int.tip_eject_96()\n\n    time.sleep(5)  # Brief incubation\n\n    # Remove supernatant with double aspiration\n    double_aspirate_supernatant_96(ham_int, tips, tip_support, num_samples, magnet_plate, waste_plate, \n                                    first_removal_volume, second_removal_volume,\n                                    second_aspiration_height=0.8, liquid_class=liquid_class, mix_cycles=mix_cycles, \n                                    dispense_height=3)\n\n\ndef pip_mix(ham_int: HamiltonInterface, tips: TrackedTips, positions_to_mix: List[Tuple[DeckResource, int]], liquid_class: str,\n            mix_volume: float, mix_cycles=0, liquid_height=0):\n    '''\n    Mix only without aspiration or dispense. Need to change this so it loops over columns.\n    '''\n\n    if isinstance(tips, TrackedTips):\n        if tips.volume_capacity != get_liquid_class_volume(liquid_class, nominal=True):\n            raise ValueError(f\"Tip type does not match liquid class: {tips.volume_capacity} != {get_liquid_class_volume(liquid_class, nominal=True)}\")\n        tracked_tip_pick_up(ham_int, tips, n=8)  # Pick up tips for the first column of the batch\n    else:\n        ham_int.tip_pick_up(tips)\n\n    # Let's batch positions to mix into columns of 8\n    mixing_columns = batch_columnwise_positions(positions_to_mix)\n\n    for col in mixing_columns:\n        col = col + [None]*(8 - len(col))  # Pad to length 8\n        # Create a volume list of zeros where col is not None and None where col is None\n        zero_vols = [0 if pos is not None else None for pos in col]\n        response = ham_int.aspirate(col, zero_vols, liquidClass=liquid_class, mixVolume=0, mixCycles=0, liquidHeight=0, capacitiveLLD=1)\n        volumes = response.liquidVolumes\n\n        mixing_volume = min(volumes)*0.75 # Calculate mixing volume based on volume in container\n        if mixing_volume < 0:\n            mixing_volume = max(5, min(volumes))\n\n        capacitative_LLD, liquidFollowing = (5, True) if liquid_height==0 else (0, False)\n\n        ham_int.aspirate(col, zero_vols, liquidClass=liquid_class, mixVolume=mixing_volume, mixCycles=mix_cycles, \n                     liquidHeight=liquid_height, capacitiveLLD=capacitative_LLD, liquidFollowing=liquidFollowing)\n\n        ham_int.tip_eject()\n\n\n# Delete everything below??\ndef aspirate_all_for_stamp(ham_int, tips, source_plate, volume, liquid_class,\n                          mix_cycles=0, liquid_height=0):\n    '''\n    Aspirate all from a plate with 96 channel head for stamping.\n    '''\n    ham_int.tip_pick_up_96(tips)\n    ham_int.aspirate_96(source_plate, volume, liquid_class, mix_cycles=mix_cycles, \n                        liquid_height=liquid_height, capacitative_LLD=5, aspirateMode=2, submergeDepth=0.5)\n    ham_int.dispense_96(source_plate, volume, liquid_class, liquidHeight=liquid_height, dispenseMode=4)\n    ham_int.eject_tips_96()\n\n\ndef aspirate_all(ham_int, tips, source_plate, volume, liquid_class,\n                 mix_cycles=0, liquid_height=0):\n    '''\n    Aspirate all from a plate with 96 channel head.\n    '''\n    ham_int.pick_up_tips_96(tips)\n    ham_int.aspirate_96(source_plate, volume, liquid_class, mix_cycles=mix_cycles, \n                        liquid_height=liquid_height, capacitative_LLD=5)\n    ham_int.eject_tips_96()\n\n\n\nif __name__ == \"__main__\":\n    pass"
  },
  {
    "path": "pyhamilton/pipetting/trough_manager.py",
    "content": "from pyhamilton import HamiltonInterface\nfrom itertools import groupby\n\ndef check_volumes_in_troughs(ham_int: HamiltonInterface, aspiration_positions, liquid_class):\n    trough_volumes = []\n\n    aspiration_positions.sort(key=lambda x: x[0].layout_name())\n    troughs = [list(group) for _, group in groupby(aspiration_positions, key=lambda x: x[0])]\n\n    for trough_positions in troughs:\n        vols = [0 if pos is not None else None for pos in trough_positions]\n        print(trough_positions)\n        response = ham_int.aspirate(trough_positions, vols, liquidClass=liquid_class, capacitiveLLD=1)\n        print(response.liquidVolumes)\n        volume = min(response.liquidVolumes)\n        trough_volumes.append((trough_positions, volume))\n    return trough_volumes\n\ndef select_trough(ham_int: HamiltonInterface, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume):\n    trough_volumes = check_volumes_in_troughs(ham_int, aspiration_positions, liquid_class)\n    for trough_positions, vol in trough_volumes:\n        if abs(vol) >= (volume + prealiquot_volume + postaliquot_volume): # We have to do abs because Venus simulator insanely returns negative volumes\n            return trough_positions\n    return None\n\ndef prompt_insufficient_volume(ham_int, troughs, volume):\n    pass\n\ndef accumulate_residual_volume(ham_int, troughs, volumes):\n    return\n    total_volume = 0\n    for trough in troughs:\n        heights = ham_int.aspirate(trough)\n        vol = trough.height_to_volume(heights)\n        total_volume += vol\n    return total_volume\n\ndef manage_multiple_troughs(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume, check_volumes=True):\n    performed_additional_volume_transfer = False\n    trough = select_trough(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume)\n    if trough is None: # No trough has enough volume\n        # volumes = prompt_insufficient_volume(ham_int, troughs, volume)\n        performed_additional_volume_transfer = accumulate_residual_volume(ham_int, aspiration_positions, volume)\n        trough = select_trough(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume)\n    else:\n        return trough, performed_additional_volume_transfer\n"
  },
  {
    "path": "pyhamilton/resources/__init__.py",
    "content": "from .enums import *\nfrom .managed_resources import *\nfrom .deckresource import *"
  },
  {
    "path": "pyhamilton/resources/deckresource.py",
    "content": "\"\"\"\nCouplings to Hamilton deck layouts.\n\nModule `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.\n\"\"\"\nimport string, shutil, os, string, re\nfrom datetime import datetime\nfrom pyhamilton import OEM_LAY_PATH, LAY_BACKUP_DIR\nfrom ..oemerr import ResourceUnavailableError\nfrom typing import List, Tuple, Union\n\n\nclass ResourceType:\n    \"\"\"\n    Specifies a type of labware to extract using LayoutManager, and how.\n\n    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`.\n\n    Typical usage:\n\n    ```\n    plate_type = ResourceType(Plate96, 'Cos_96_Rd_0001')\n    lmgr = LayoutManager('layout.lay')\n    plate = lmgr.assign_unused_resource(plate_type)\n    ```\n\n    Or:\n\n    ```\n    plate_type = ResourceType(Plate96,\n            LayoutManager.line_has_prefixed_name('Cos_96_Rd_'),\n            LayoutManager.name_from_line)\n    lmgr = LayoutManager('layout.lay')\n    plate1 = lmgr.assign_unused_resource(plate_type)\n    plate2 = lmgr.assign_unused_resource(plate_type)\n    ```\n\n    Args:\n      resource_class (class): a class that inherits from `DeckResource`. Instances of this class will be returned from `LayoutManager` when assigning resources, factory-style.\n      *name_specifiers (list): This argument is unpacked with the \"splat\" operator (`*`) to enable polymorphism. One or the other of:\n      - (two-argument form) an exact name (`str`) of a labware item that appears in the target layout file, or\n      - (three-argument form) `test` and `extract_name` (see usage above):\n          * `test`: a function [(`str`) -> `bool`] that identifies Layout file lines (`str`) that could be used to assign resources of this type\n          * `extract_name`: a function [(`str`) -> `str`] that gets the desired name out of a line identified with `test`.\n\n    \"\"\"\n\n    def __init__(self, resource_class, *args):\n        self.resource_class = resource_class\n        self.not_found_msg = None\n        try:\n            specific_name, = args\n            self.test = lambda line: specific_name in re.split(r'\\W', line)\n            self.extract_name = lambda line: specific_name\n            self.not_found_msg = 'No exact match for name \"' + specific_name + '\" to assign a resource of type ' + resource_class.__name__\n        except ValueError:\n            self.test, self.extract_name = args\n\n\nclass LayoutManager:\n    \"\"\"Optionally activates a Hamilton layout and helps access its contents.\n\n    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.\n\n    Example usage:\n\n    ```\n    lmgr = LayoutManager('layout.lay')\n    plate = lmgr.assign_unused_resource(ResourceType(Plate24, 'plate_0'))\n    culture_reservoir = lmgr.assign_unused_resource(ResourceType(Plate96, 'culture'))\n    inducer_tips = lmgr.assign_unused_resource(ResourceType(Tip96, 'inducer_tips'))\n    ```\n    \"\"\"\n\n    _managers = {}\n    @staticmethod\n    def get_manager(checksum):\n        \"\"\"Return a `LayoutManager` previously instantiated for a layout file that has the specified checksum.\n\n        Typically used when accessing the same layout file from multiple \"threads\" in the same process (using the `threading` module) to prevent name double-counting.\n\n        Args:\n          checksum (str): a checksum found at the end of a Hamilton Layout (`.lay`) file.\n        \"\"\"\n        return LayoutManager._managers[checksum]\n\n    @staticmethod\n    def initial_printable(line, start=0):\n        if not line:\n            return ''\n        end = start\n        while end < len(line) and line[end] in string.printable:\n            end += 1\n        return line[start:end]\n\n    @staticmethod\n    def layline_objid(line):\n        keys = 'ObjId', 'LabwareName'\n        if 'Labware' in LayoutManager.layline_first_field(line):\n            keys = 'Id', *keys\n        for key in keys:\n            try:\n                start = line.index(key) + len(key) + 1\n                return LayoutManager.initial_printable(line, start)\n            except ValueError:\n                pass\n        else:\n            return None\n\n    @staticmethod\n    def layline_first_field(line):\n        return LayoutManager.initial_printable(line)\n\n    @staticmethod\n    def field_starts_with(field, prefix):\n        try:\n            return field.index(prefix) == 0\n        except ValueError:\n            return False\n\n    @staticmethod\n    def name_from_line(line):\n        field = LayoutManager.layline_objid(line)\n        if field:\n            return field\n        return LayoutManager.layline_first_field(line)\n\n    @staticmethod\n    def line_has_prefixed_name(prefix):\n        def has_prefix(line):\n            return LayoutManager.field_starts_with(LayoutManager.name_from_line(line), prefix)\n        return has_prefix\n\n    @staticmethod\n    def _read_layfile_lines(layfile_path):\n        buff = ''\n        lines = []\n        with open(layfile_path, 'rb') as f:\n            for c in f.read():\n                try:\n                    c = bytes([c]).decode('utf-8')\n                except UnicodeDecodeError:\n                    continue\n                buff += c\n                if c in '\\n\\r\\t':\n                    lines.append(buff.strip())\n                    buff = ''\n        if buff:\n            lines.append(buff)\n        return lines\n\n    @staticmethod\n    def _layfile_checksum(layfile_path):\n        lay_lines = LayoutManager._read_layfile_lines(layfile_path)\n        return lay_lines[-1].split('checksum=')[1].split('$$')[0]\n\n    @staticmethod\n    def layfiles_equal(lay_path_1, lay_path_2):\n        return LayoutManager._layfile_checksum(lay_path_1) == LayoutManager._layfile_checksum(lay_path_2)\n\n    def __init__(self, layfile_path, install=True):\n        self.lines = self._read_layfile_lines(layfile_path)\n        self.resources = {}\n        self.checksum = self._layfile_checksum(layfile_path)\n        self._managers[self.checksum] = self\n        if install and not LayoutManager.layfiles_equal(layfile_path, OEM_LAY_PATH):\n                print('BACKING UP AND INSTALLING NEW LAYFILE')\n                shutil.copy2(layfile_path, os.path.join(LAY_BACKUP_DIR, datetime.today().strftime('%Y%m%d_%H%M%S_') + os.path.basename(layfile_path)))\n                shutil.copy2(layfile_path, OEM_LAY_PATH)\n\n    def assign_unused_resource(self, restype, order_key=None, reverse=False, verify_positions=True):\n        \"\"\"Create a new deck resource after finding and assigning an unused name that matches the resource type.\n\n        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`.\n\n        Args:\n        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.\n        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.\n        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.\n        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.\n        Returns:\n\n        A new instance of the resource class (descendent of `DeckResource`) from the given `ResourceType` `restype`.\n\n        Raises:\n        ResourceUnavailableError: no names in the layout file that have not already been assigned match the resource type\n        ValueError: if verify_positions is True and position IDs don't match\n\n        \"\"\"\n        if order_key is None:\n            order_key = lambda r: r.layout_name()\n        if not isinstance(restype, ResourceType):\n            raise TypeError('Must provide a ResourceType to be assigned')\n        matching_ress = []\n        for line in self.lines:\n            if restype.test(line):\n                match_name = restype.extract_name(line)\n                if match_name in self.resources:\n                    continue\n                matching_ress.append(restype.resource_class(match_name))\n        if not matching_ress:\n            msg = restype.not_found_msg or 'No unassigned resource of type ' + restype.resource_class.__name__ + ' available'\n            raise ResourceUnavailableError(msg)\n        choose = max if reverse else min\n        new_res = choose(matching_ress, key=order_key)\n        \n        # Verify position IDs if requested\n        if verify_positions:\n            success, errors = self.verify_position_ids(new_res)\n            if not success:\n                error_msg = f\"Position ID verification failed for resource '{new_res.layout_name()}':\\n\"\n                error_msg += \"\\n\".join(errors)\n                #raise ValueError(error_msg)\n        \n        self.resources[new_res.layout_name()] = new_res\n        return new_res\n\n    def verify_position_ids(self, resource):\n        \"\"\"Verify that position IDs in layout file match resource.position_id() output.\n        \n        Args:\n            resource (DeckResource): The resource to verify\n            \n        Returns:\n            tuple: (bool, list) - (success, list of mismatches)\n        \"\"\"\n        layout_name = resource.layout_name()\n        \n        # Check if this resource type has position IDs\n        # Try calling position_id(0) - if it raises NotImplementedError, skip verification\n        try:\n            resource.position_id(0)\n        except NotImplementedError:\n            return True, []  # Skip verification for resources without positions\n        except (ValueError, IndexError, AssertionError):\n            # These exceptions are fine - just means there are positions, we'll verify them\n            pass\n        \n        # Find the line with this resource\n        target_line = self._find_resource_line(layout_name)\n        \n        if not target_line:\n            return False, [f\"No layout line found for resource {layout_name}\"]\n        \n        # Extract position IDs from the line\n        layout_pos_ids = self._extract_position_ids_from_line(target_line, layout_name)\n        \n        # Generate expected position IDs from the resource\n        expected_pos_ids = []\n        if hasattr(resource, '_num_items'):\n            # Use the defined number of positions\n            for idx in range(resource._num_items):\n                expected_pos_ids.append(resource.position_id(idx))\n        else:\n            # Fallback: try until we get an error (for resources without _num_items)\n            idx = 0\n            while True:\n                try:\n                    expected_pos_ids.append(resource.position_id(idx))\n                    idx += 1\n                except (IndexError, AssertionError, AttributeError, ValueError):\n                    break\n        \n        layout_set = set(layout_pos_ids)\n        expected_set = set(expected_pos_ids)\n        \n        if layout_set != expected_set:\n            missing = expected_set - layout_set\n            extra = layout_set - expected_set\n            mismatches = []\n            if missing:\n                mismatches.append(f\"Missing in layout: {sorted(missing)}\")\n            if extra:\n                mismatches.append(f\"Extra in layout: {sorted(extra)}\")\n            return False, mismatches\n        \n        return True, []\n\n    def _find_resource_line(self, resource_name):\n        \"\"\"Find the line(s) containing position IDs for a given resource name.\"\"\"\n        \n        matching_lines = []\n        \n        # Pattern 1: ObjId and name on same line (most common case)\n        obj_pattern = rf\"ObjId[\\s\\x00-\\x1f]*{re.escape(resource_name)}(?:[\\s\\x00-\\x1f]|Seq)\"\n        for i, line in enumerate(self.lines):\n            if re.search(obj_pattern, line):\n                matching_lines.append(line)\n        \n        # Pattern 2: Line starts with resource name (tab-split case)\n        # The resource name is at the start because tab split it from \"ObjId\" on previous line\n        start_pattern = rf\"^{re.escape(resource_name)}[\\s\\x00-\\x1f]\"\n        for i, line in enumerate(self.lines):\n            if re.search(start_pattern, line) and 'PosId' in line:\n                matching_lines.append(line)\n        \n        if matching_lines:\n            if len(matching_lines) == 1:\n                return matching_lines[0]\n            else:\n                # Multiple lines - concatenate\n                merged = ''.join(matching_lines)\n                return merged\n        \n        # Fallback: Name pattern\n        name_pattern = rf\"Seq\\.\\d+\\.Name[\\s\\x00-\\x1f]*{re.escape(resource_name)}(?:[\\s\\x00-\\x1f]+|(?=Seq))\"\n        for i, line in enumerate(self.lines):\n            if re.search(name_pattern, line):\n                return line\n        \n        print(f\"No matching patterns found!\")\n        return None\n\n    @staticmethod\n    def _extract_position_ids_from_line(line, obj_id):\n        \"\"\"Extract position IDs for a specific ObjId from a line.\"\"\"\n        pos_ids = []\n        \n        # Pattern 1: Standard case with ObjId prefix\n        # Capture the position ID which is alphanumeric, stopping before control chars or uppercase letters starting new fields\n        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|$)\"\n        \n        for match in re.finditer(pattern1, line):\n            pos_id = match.group(1)\n            if pos_id:\n                pos_ids.append(pos_id)\n        \n        # Pattern 2: Line starts with obj_id (tab-split case - first item only)\n        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|$)\"\n        match = re.search(pattern2, line)\n        if match:\n            pos_id = match.group(1)\n            if pos_id:\n                # Only add if not already captured by pattern1\n                if pos_id not in pos_ids:\n                    pos_ids.insert(0, pos_id)\n        \n        return pos_ids\n\nclass ResourceIterItem:\n\n    def __init__(self, resource, index):\n        self.parent_resource = resource\n        self.index = index\n        self.history = []\n\n\nclass Tip(ResourceIterItem):\n    pass\n\n\nclass Vessel(ResourceIterItem):\n\n    ADD = 0\n    REMOVE = 1\n\n    def record_removal(self, ml, dest=None):\n        if dest is not None and not isinstance(dest, Vessel):\n            raise ValueError('Sources and destinations in Vessel contents records must be Vessels')\n        self.history.append((Vessel.REMOVE, ml, dest))\n\n    def record_addition(self, ml, source):\n        if not isinstance(source, Vessel):\n            raise ValueError('Sources and destinations in Vessel contents records must be Vessels')\n        self.history.append((Vessel.ADD, ml, source))\n\n    def current_volume(self):\n        return sum((ml if direction == Vessel.ADD else -ml) for direction, ml, _ in self.history)\n\n\nclass DeckResource:\n\n    class align:\n        VERTICAL = 'v'\n        STD_96 = 'std_96'\n\n    class types:\n        TIP, VESSEL = range(2)\n\n    def __init__(self, layout_name):\n        raise NotImplementedError()\n\n    def _alignment_delta(self, int_start, int_end):\n        raise NotImplementedError() # (delta x, delta y, alignment properties list)\n\n    def _assert_idx_in_range(self, idx_or_vessel):\n        if isinstance(idx_or_vessel, Vessel):\n            idx = idx_or_vessel.index\n        else:\n            idx = idx_or_vessel\n        if not 0 <= idx < self._num_items:\n            raise ValueError('Index ' + str(idx) + ' not in range for resource')\n\n    def layout_name(self):\n        \"\"\"The layout name of this specific deck resource.\n\n        Returns:\n          The name (`str`) associated with this specific deck resource in the Hamilton Layout (`.lay`) file it came from.\n        \"\"\"\n        return self._layout_name # default; override if needed. (str) \n\n    def position_id(self, idx):\n        \"\"\"The identifier used for one of a sequence of positions inside this labware.\n\n        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.\n\n        Examples\n\n        - 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'`.\n        - 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'`.\n\n        Args:\n          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.\n\n        Returns:\n          The identifier (`str`) associated with the position `idx` specific deck resource in the Hamilton Layout (`.lay`) file it came from.\n\n        Raises:\n          NotImplementedError: The deck resource does not have positions.\n        \"\"\"\n        raise NotImplementedError()\n\n    def alignment_delta(self, start, end):\n        args = {'start':start, 'end':end}\n        for pos in args:\n            if isinstance(args[pos], Vessel):\n                if args[pos].parent_resource is not self:\n                    raise ValueError('Positions provided as vessels, '\n                            'but do not belong to this resource')\n                args[pos] = start.index\n            else:\n                try:\n                    args[pos] += 0\n                except TypeError:\n                    raise ValueError('Positions provided for delta must be integers or vessels')\n            self._assert_idx_in_range(args[pos])\n        return self._alignment_delta(args['start'], args['end'])\n\n    def __iter__(self):\n        for i in self._items:\n            yield i\n\n    def assign_label(self, label: str):\n        \"\"\"Assign a custom label to this vessel for visualization purposes.\"\"\"\n        self.custom_label = label\n        return self\n\n\n\nclass Standard96(DeckResource):\n    \"\"\"Labware types with 96 positions that use a letter-number id scheme like `'A1'`.\n    \"\"\"\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//8, int(idx)%8\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.STD_96]\n                                  + ([DeckResource.align.VERTICAL] if xs == xe and ys != ye else []))\n\n    def position_id(self, idx):\n        x, y = self.well_coords(idx)\n        return 'ABCDEFGH'[y] + str(x + 1)\n\n\nclass Tip96(Standard96):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 96\n        self.resource_type = DeckResource.types.TIP\n        self._items = [Tip(self, i) for i in range(self._num_items)]\n\n    def position_id(self, idx): # tips use 1-indexed int ids descending columns first\n        self._assert_idx_in_range(idx)\n        return str(idx + 1) # switch to standard advance through row first\n\n# tips = lmgr.layout_item(Tip96, 'tips_0')\n\ndef resource_list_with_prefix(layout_manager:LayoutManager, prefix:str, res_class:DeckResource, num_ress:int, order_key=None, reverse=False):\n    def name_from_line(line):\n        field = LayoutManager.layline_objid(line)\n        if field:\n            return field\n        return LayoutManager.layline_first_field(line)\n    layline_test = lambda line: LayoutManager.field_starts_with(name_from_line(line), prefix)\n    res_type = ResourceType(res_class, layline_test, name_from_line)\n    res_list = [layout_manager.assign_unused_resource(res_type, order_key=order_key, reverse=reverse) for _ in range(num_ress)]\n    return res_list\n\nclass BulkReagentPlate(Standard96):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 96\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def position_id(self, idx):\n        self._assert_idx_in_range(idx)\n        return str(idx + 1)\n\n\nclass Waste96(BulkReagentPlate):\n\n    def __init__(self, layout_name):\n        super().__init__(layout_name)\n\nclass Plate96(Standard96):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 96\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n\nclass Plate24(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 24\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//4, int(idx)%4\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])\n\n    def position_id(self, idx):\n        x, y = self.well_coords(idx)\n        return 'ABCD'[y] + str(x + 1)\n\n\nclass Plate12(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 12\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//3, int(idx)%3\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])\n\n    def position_id(self, idx):\n        x, y = self.well_coords(idx)\n        return 'ABC'[y] + str(x + 1)\n\nclass Plate6(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 6\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//2, int(idx)%2\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])\n\n    def position_id(self, idx):\n        x, y = self.well_coords(idx)\n        return 'AB'[y] + str(x + 1)\n\n\nclass Plate384(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 384\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//16, int(idx)%16\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])\n\n    def position_id(self, idx):\n        x, y = self.well_coords(idx)\n        return 'ABCDEFGHIJKLMNOP'[y] + str(x + 1)\n\nclass Plate1536(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 1536\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//32, int(idx)%32\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])\n\n    def position_id(self, idx):\n        x, y = self.well_coords(idx)\n        row_letters = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ') + ['AA', 'AB', 'AC', 'AD', 'AE', 'AF']\n        return row_letters[y] + str(x + 1)\n\nclass Reservoir60mL(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 8\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//8, int(idx)%8\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])\n\n    def position_id(self, idx):\n        return '12345678'[idx]\n\nclass LVKBalanceVial(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 1\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return (0, 0)\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [])\n\n    def position_id(self, idx):\n        return '1'\n\nclass EppiCarrier32(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 32\n        self.positions = [str(i+1) for i in range(self._num_items)]\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//32, int(idx)%32\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])\n\n    def position_id(self, idx):\n        return self.positions[idx]\n\n\nclass FalconCarrier24(DeckResource):\n\n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n        self._num_items = 24\n        self.positions = [str(i+1) for i in range(self._num_items)]\n        self.resource_type = DeckResource.types.VESSEL\n        self._items = [Vessel(self, i) for i in range(self._num_items)]\n\n    def well_coords(self, idx):\n        self._assert_idx_in_range(idx)\n        return int(idx)//24, int(idx)%24\n\n    def _alignment_delta(self, start, end):\n        [self._assert_idx_in_range(p) for p in (start, end)]\n        xs, ys = self.well_coords(start)\n        xe, ye = self.well_coords(end)\n        return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])\n\n    def position_id(self, idx):\n        return self.positions[idx]\n\nclass Lid(DeckResource):\n    \n    def __init__(self, layout_name):\n        self._layout_name = layout_name\n\ndef layout_item(lmgr, item_class, item_name): \n    return lmgr.assign_unused_resource(ResourceType(item_class, item_name))\n"
  },
  {
    "path": "pyhamilton/resources/enums.py",
    "content": "from enum import IntEnum\nfrom dataclasses import dataclass\n\n\nclass TipType(IntEnum):\n    \"\"\"Hamilton tip types mapped to their database codes (values).\"\"\"\n    uL_10   = 3\n    uL_300  = 1\n    uL_50   = 23\n    uL_1000 = 5\n    \n    # Additional tip types from the table\n    uL_300_base = 0\n    uL_10_with_filter = 2\n    uL_1000_with_filter = 4\n    needle_50_old = 6\n    needle_300_old = 7\n    needle_1000_old = 8\n    needle_10 = 11\n    needle_300 = 12\n    needle_1000 = 13\n    uL_30_for_384 = 15\n    uL_50_for_384 = 20\n    uL_50_with_filter = 22\n    uL_5000 = 25\n    rocket_300_for_384 = 28\n    uL_4000_with_filter = 29\n    uL_300_clear = 30\n    uL_50_clear = 31\n    uL_10_clear = 32\n    uL_50_conductive_for_384 = 33\n    piercing_250 = 35\n    slim_core_300 = 36\n    uL_50_clear_for_384 = 37\n    piercing_150_with_filter = 44\n    slim_core_300_with_filter = 45\n\n    @property\n    def volume(self) -> int:\n        \"\"\"Return the volume in µL for this tip type.\"\"\"\n        mapping = {\n            TipType.uL_10: 10,\n            TipType.uL_300: 300,\n            TipType.uL_50: 50,\n            TipType.uL_1000: 1000,\n            TipType.uL_300_base: 300,\n            TipType.uL_10_with_filter: 10,\n            TipType.uL_1000_with_filter: 1000,\n            TipType.needle_50_old: 50,\n            TipType.needle_300_old: 300,\n            TipType.needle_1000_old: 1000,\n            TipType.needle_10: 10,\n            TipType.needle_300: 300,\n            TipType.needle_1000: 1000,\n            TipType.uL_30_for_384: 30,\n            TipType.uL_50_for_384: 50,\n            TipType.uL_50_with_filter: 50,\n            TipType.uL_5000: 5000,\n            TipType.rocket_300_for_384: 300,\n            TipType.uL_4000_with_filter: 4000,\n            TipType.uL_300_clear: 300,\n            TipType.uL_50_clear: 50,\n            TipType.uL_10_clear: 10,\n            TipType.uL_50_conductive_for_384: 50,\n            TipType.piercing_250: 250,\n            TipType.slim_core_300: 300,\n            TipType.uL_50_clear_for_384: 50,\n            TipType.piercing_150_with_filter: 150,\n            TipType.slim_core_300_with_filter: 300,\n        }\n        return mapping[self]\n\n    @classmethod\n    def from_volume(cls, volume: int) -> \"TipType\":\n        \"\"\"Look up a TipType enum from a µL volume.\"\"\"\n        reverse_map = {\n            10: cls.uL_10,\n            300: cls.uL_300,\n            50: cls.uL_50,\n            1000: cls.uL_1000,\n        }\n        try:\n            return reverse_map[volume]\n        except KeyError:\n            raise ValueError(f\"No TipType defined for volume {volume} µL\")\n\n    @property\n    def has_filter(self) -> bool:\n        \"\"\"Return True if this tip type has a filter.\"\"\"\n        filter_tips = {\n            self.uL_10_with_filter,\n            self.uL_1000_with_filter,\n            self.uL_50_with_filter,\n            self.uL_4000_with_filter,\n            self.piercing_150_with_filter,\n            self.slim_core_300_with_filter,\n        }\n        return self in filter_tips\n\n    @property\n    def is_needle(self) -> bool:\n        \"\"\"Return True if this is a needle tip type.\"\"\"\n        needle_tips = {\n            self.needle_50_old,\n            self.needle_300_old,\n            self.needle_1000_old,\n            self.needle_10,\n            self.needle_300,\n            self.needle_1000,\n        }\n        return self in needle_tips\n\n    @property\n    def is_384_compatible(self) -> bool:\n        \"\"\"Return True if this tip is designed for 384-well plates.\"\"\"\n        plate_384_tips = {\n            self.uL_30_for_384,\n            self.uL_50_for_384,\n            self.rocket_300_for_384,\n            self.uL_50_conductive_for_384,\n            self.uL_50_clear_for_384,\n        }\n        return self in plate_384_tips"
  },
  {
    "path": "pyhamilton/resources/managed_resources.py",
    "content": "# Fully self‑contained implementation of TrackedTips + StackedResources\n# with on‑disk persistence (SQLite in ~/.pyhamilton/tip_tracker.db).\n\n\nfrom __future__ import annotations\nimport string, shutil, os, string, re\nfrom datetime import datetime\n\nimport sqlite3\nfrom pathlib import Path\nfrom contextlib import contextmanager\nfrom collections import defaultdict\nfrom typing import List, Tuple, Optional, Dict, TypeVar, Type\n\n# ────────────────────────── HAMILTON imports ──────────────────────────\nfrom pyhamilton import OEM_LAY_PATH, LAY_BACKUP_DIR        # noqa: F401 (kept for context)\nfrom ..oemerr import ResourceUnavailableError               # noqa: F401\nfrom .deckresource import (LayoutManager, ResourceType,    # noqa: F401\n                            Plate24, Plate96, Tip96,\n                            resource_list_with_prefix, layout_item, DeckResource)\nfrom ..interface import HamiltonInterface\nfrom .enums import TipType\nfrom .deckresource import LayoutManager\n\n# ────────────────────────── Persistence helpers ───────────────────────\n_DOTDIR   = Path.home() / \".pyhamilton\"\n_DOTDIR.mkdir(parents=True, exist_ok=True)\n_DB_PATH  = _DOTDIR / \"tip_tracker.db\"\n\n@contextmanager\ndef _get_conn():\n    \"\"\"Yield a SQLite connection with WAL enabled and autocommit on exit.\"\"\"\n    conn = sqlite3.connect(_DB_PATH)\n    conn.execute(\"PRAGMA journal_mode=WAL;\")\n    try:\n        yield conn\n        conn.commit()\n    finally:\n        conn.close()\n\ndef _ensure_table() -> None:\n    with _get_conn() as conn:\n        conn.execute(\"\"\"\n          CREATE TABLE IF NOT EXISTS tips(\n              tracker_id     TEXT,\n              position_idx   INTEGER,\n              rack_name      TEXT,\n              occupied       INTEGER,\n              PRIMARY KEY (tracker_id, position_idx)\n          )\n        \"\"\")\n\n_ensure_table()  # one‑time at import\n\n# ────────────────────────── TrackedTips ──────────────────────────\nclass TrackedTips:\n    \"\"\"\n    Persistently tracks individual tips across one or more DeckResources.\n\n    State lives both in-memory (`self.occupancy`) and on disk\n    (`~/.pyhamilton/tip_tracker.db`).  All mutating operations sync to disk.\n    \"\"\"\n\n    # ------------------------------------------------------------------\n    def __init__(self,\n                 tip_racks: List[DeckResource],\n                 volume_capacity: int,\n                 tracker_id: str | None = None,\n                 reset: bool = True,\n                 ):\n        \"\"\"\n        Parameters\n        ----------\n        tip_racks : list[DeckResource]\n            The racks this tracker manages.\n        tracker_id : str, optional\n            Identifier used as the namespace inside the shared DB.\n            Defaults to a deterministic hash of rack layout names.\n        \"\"\"\n        self.tip_racks   : List[DeckResource] = tip_racks\n        self.tracker_id  : str = tracker_id or \"|\".join(r.layout_name() for r in tip_racks)\n        self.volume_capacity: int = volume_capacity\n\n        # Build default in‑RAM state (all tips occupied).\n        self.occupancy: List[Tuple[DeckResource, bool]] = []\n        for rack in tip_racks:\n            self.occupancy.extend([(rack, True) for _ in range(rack._num_items)])\n\n        # Reconcile with on‑disk data (or seed the DB if brand‑new).\n        if reset:           # optional hard‑reset switch\n            self._flush_entire_state()\n            self.restored_from_db = False\n        else:\n            self.restored_from_db = self._hydrate_from_db()\n\n    # ----------------------------- Factories --------------------------\n    @classmethod\n    def from_prefix(cls,\n                    tracker_id: str,\n                    volume_capacity: int,\n                    prefix   : str,\n                    count    : int,\n                    lmgr     : LayoutManager,\n                    tip_type : ResourceType = Tip96,\n                    reset    : bool = True) -> TrackedTips:\n        \"\"\"\n        Allocate `count` racks named f\"{prefix}_{i:04d}\" via `lmgr`,\n        then return a new TrackedTips instance managing them.\n        \"\"\"\n        resources = [\n            lmgr.assign_unused_resource(ResourceType(tip_type, f\"{prefix}_{i:04d}\"))\n            for i in range(1, count + 1)\n        ]\n        return cls(resources, volume_capacity=volume_capacity, tracker_id=tracker_id, reset=reset)\n\n    # ------------------------ Public API ------------------------------\n    def mark_occupied(self, index: int) -> None:\n        rack, _ = self.occupancy[index]\n        self.occupancy[index] = (rack, True)\n        self._update_row(index, True)\n\n    def mark_unoccupied(self, index: int) -> None:\n        rack, _ = self.occupancy[index]\n        self.occupancy[index] = (rack, False)\n        self._update_row(index, False)\n\n    def is_occupied(self, index: int) -> bool:\n        return self.occupancy[index][1]\n\n    def count_remaining(self) -> int:\n        return sum(1 for _, occ in self.occupancy if occ)\n\n    def total_tips(self) -> int:\n        return len(self.occupancy)\n\n    def fetch_next(self, n: int) -> List[Tuple[DeckResource, int]]:\n        \"\"\"\n        Return and mark unoccupied the next `n` available tips.\n        Output format: (DeckResource, position_within_rack).\n        \"\"\"\n        fetched: List[Tuple[int, DeckResource, int]] = []\n\n        for idx, (rack, occ) in enumerate(self.occupancy):\n            if not occ:\n                continue\n\n            # Correct position inside this rack (0‑based)\n            pos_in_rack = idx % rack._num_items      # works for any rack size\n\n            fetched.append((idx, rack, pos_in_rack))\n            if len(fetched) == n:\n                break\n\n        if len(fetched) < n:\n            raise ValueError(\n                f\"Only {len(fetched)} tips available; {n} requested.\"\n            )\n\n        # Mark the returned tips as used and sync to DB\n        for idx, _, _ in fetched:\n            self.mark_unoccupied(idx)\n\n        # Strip the internal absolute index before returning\n        return [(rack, pos) for _, rack, pos in fetched]\n\n    def fetch_rack(self) -> Optional[DeckResource]:\n        \"\"\"\n        If an entire rack of 96 still‑occupied tips exists, return that rack\n        and mark its tips unoccupied. Otherwise return None.\n        \"\"\"\n        by_rack: Dict[DeckResource, List[int]] = defaultdict(list)\n        for idx, (rack, occ) in enumerate(self.occupancy):\n            by_rack[rack].append(idx if occ else -1)  # -1 for used\n\n        for rack, indices in by_rack.items():\n            if len(indices) == 96 and all(i >= 0 for i in indices):\n                for idx in indices:\n                    self.mark_unoccupied(idx)        # syncs each tip\n                return rack\n        return None\n\n    def fetch_rack_with_min_columns(self, min_columns: int) -> Optional[Tuple[DeckResource, List[int]]]:\n        \"\"\"\n        Return the first rack that has at least `min_columns` complete columns of occupied tips\n        (anywhere in the rack). If found, returns a tuple of:\n            (rack, occupancy_map)\n        where `occupancy_map` is a list of 96 integers (1 = occupied, 0 = used)\n        representing the rack's tips **before** they are marked unoccupied.\n\n        Side-effect: If a qualifying rack is found, ALL tips in that rack are marked unoccupied.\n\n        Parameters\n        ----------\n        min_columns : int\n            Minimum number of complete columns (of 8 tips) that must be occupied.\n\n        Returns\n        -------\n        Optional[Tuple[DeckResource, List[int]]]\n            (rack, occupancy_map) if found; otherwise None.\n        \"\"\"\n        # Build rack → starting absolute index map once\n        rack_start_indices = {rack: sum(r._num_items for r in self.tip_racks[:i])\n                            for i, rack in enumerate(self.tip_racks)}\n\n        for rack in self.tip_racks:\n            rack_start = rack_start_indices[rack]\n            # Snapshot occupancy for this rack (booleans, length 96 expected)\n            occupancy_bools = [self.occupancy[rack_start + i][1] for i in range(96)]\n            # Count full columns (12 columns × 8 rows layout assumed)\n            full_columns = sum(\n                1 for col in range(12)\n                if all(occupancy_bools[col * 8 + row] for row in range(8))\n            )\n\n            if full_columns >= min_columns:\n                # Convert to 1/0 map BEFORE mutating state\n                occupancy_map = [1 if b else 0 for b in occupancy_bools]\n\n                # Mark all tips as unoccupied (persisted via mark_unoccupied)\n                for i in range(96):\n                    self.mark_unoccupied(rack_start + i)\n\n                return rack, occupancy_map\n\n        raise Exception(f\"No rack found with at least {min_columns} full columns.\")\n\n    def reset_all(self) -> None:\n        \"\"\"\n        Mark **every** tip in every managed rack as present/available again\n        and persist that state to the on-disk SQLite table.\n\n        This is functionally the same as constructing the tracker with\n        ``reset=True``—but it can be invoked at any time after the object\n        exists.\n\n        Example\n        -------\n        >>> tracker.reset_all()      # all tips are now 'full' again\n        \"\"\"\n        # 1) Update the in-memory occupancy list\n        for i, (rack, _) in enumerate(self.occupancy):\n            self.occupancy[i] = (rack, True)\n\n        # 2) Push the fresh state to disk in one shot\n        self._flush_entire_state()\n\n    def replace_tips(self, positions: List[Tuple[DeckResource, int]]) -> None:\n        \"\"\"\n        Mark the given tips as present/available again.\n\n        Parameters\n        ----------\n        positions : list[tuple[DeckResource, int]]\n            A collection of (rack, pos_in_rack) pairs where `pos_in_rack`\n            is 0-based within that rack.\n\n        Raises\n        ------\n        ValueError\n            • If the rack is not managed by this tracker  \n            • If the position is out of range for that rack  \n            • If the tip at that location is already occupied\n        \"\"\"\n        # Build a mapping of rack → starting absolute index once\n        rack_starts: Dict[DeckResource, int] = {}\n        offset = 0\n        for rack in self.tip_racks:\n            rack_starts[rack] = offset\n            offset += rack._num_items\n\n        for rack, pos_in_rack in positions:\n            if rack not in rack_starts:\n                raise ValueError(f\"Rack {rack.layout_name()} not managed by this tracker.\")\n            if not (0 <= pos_in_rack < rack._num_items):\n                raise ValueError(f\"Position {pos_in_rack} out of range for rack {rack.layout_name()}.\")\n\n            abs_idx = rack_starts[rack] + pos_in_rack\n\n            if self.is_occupied(abs_idx):\n                raise ValueError(f\"Tip at {rack.layout_name()}[{pos_in_rack}] is already occupied.\")\n\n            # Persistently mark the tip as available again\n            self.mark_occupied(abs_idx)\n\n    def fill_rack_from_occupancy_map(self, rack: DeckResource, occupancy_map: List[int]) -> None:\n        \"\"\"\n        Set the occupancy state of a specific rack based on the provided occupancy map.\n        \n        This method complements fetch_rack_with_min_columns() by allowing you to restore\n        a rack's state from a previously captured occupancy map.\n        \n        Parameters\n        ----------\n        rack : DeckResource\n            The specific rack to update. Must be managed by this tracker.\n        occupancy_map : List[int]\n            A list of 96 integers where 1 = occupied/available and 0 = unoccupied/used.\n            The list should match the rack's layout (12 columns × 8 rows).\n            \n        Raises\n        ------\n        ValueError\n            • If the rack is not managed by this tracker\n            • If occupancy_map length doesn't match the rack size (expected 96)\n            • If occupancy_map contains values other than 0 or 1\n            \n        Example\n        -------\n        >>> # Capture state before fetching\n        >>> rack, old_occupancy = tracker.fetch_rack_with_min_columns(4)\n        >>> # ... use the rack for some operations ...\n        >>> # Later, restore the original state\n        >>> tracker.fill_rack_from_occupancy_map(rack, old_occupancy)\n        \"\"\"\n        # Validate that we manage this rack\n        if rack not in self.tip_racks:\n            raise ValueError(f\"Rack {rack.layout_name()} is not managed by this tracker.\")\n        \n        # Validate occupancy map size\n        if len(occupancy_map) != 96:\n            raise ValueError(f\"Occupancy map must have 96 entries, got {len(occupancy_map)}.\")\n        \n        # Validate occupancy map values\n        if not all(val in (0, 1) for val in occupancy_map):\n            raise ValueError(\"Occupancy map must contain only 0 (unoccupied) or 1 (occupied) values.\")\n        \n        # Find the starting absolute index for this rack\n        rack_start_idx = 0\n        for r in self.tip_racks:\n            if r == rack:\n                break\n            rack_start_idx += r._num_items\n        else:\n            # This shouldn't happen given our first check, but just in case\n            raise ValueError(f\"Rack {rack.layout_name()} not found in tip_racks.\")\n        \n        # Update each position in the rack according to the occupancy map\n        for pos_in_rack, should_be_occupied in enumerate(occupancy_map):\n            abs_idx = rack_start_idx + pos_in_rack\n            \n            if should_be_occupied == 1:\n                # Should be occupied/available\n                if not self.is_occupied(abs_idx):\n                    self.mark_occupied(abs_idx)\n            else:\n                # Should be unoccupied/used\n                if self.is_occupied(abs_idx):\n                    self.mark_unoccupied(abs_idx)\n\n    # ------------------- Persistence internals ------------------------\n    def _hydrate_from_db(self) -> bool:\n        with _get_conn() as conn:\n            cur = conn.execute(\n                \"SELECT position_idx, rack_name, occupied \"\n                \"FROM tips WHERE tracker_id = ?;\",\n                (self.tracker_id,)\n            )\n            rows = cur.fetchall()\n\n            if not rows:  # first‑time tracker → seed DB\n                self._flush_entire_state()\n                return False\n\n            # overwrite default RAM state with DB contents\n            rack_map = {r.layout_name(): r for r in self.tip_racks}\n            for pos, rack_name, occ_int in rows:\n                rack = rack_map.get(rack_name)\n                if rack is None:\n                    continue  # stale DB row; ignore\n                self.occupancy[pos] = (rack, bool(occ_int))\n\n            return True\n\n    def _update_row(self, position_idx: int, occupied: bool) -> None:\n        rack = self.occupancy[position_idx][0]\n        with _get_conn() as conn:\n            conn.execute(\"\"\"INSERT OR REPLACE INTO tips\n                               (tracker_id, position_idx, rack_name, occupied)\n                            VALUES (?,?,?,?);\"\"\",\n                         (self.tracker_id,\n                          position_idx,\n                          rack.layout_name(),\n                          int(occupied)))\n\n    def _flush_entire_state(self) -> None:\n        with _get_conn() as conn:\n            conn.executemany(\"\"\"INSERT OR REPLACE INTO tips\n                                   (tracker_id, position_idx, rack_name, occupied)\n                                VALUES (?,?,?,?);\"\"\",\n                             [(self.tracker_id,\n                               idx,\n                               rack.layout_name(),\n                               int(occ))\n                              for idx, (rack, occ) in enumerate(self.occupancy)])\n\n# ────────────────────────── StackedResources ──────────────────────────\n_STACKED_DB = _DOTDIR / \"stacked_resources.db\"   # separate file so schemas stay tidy\n\n\ndef _get_stacked_conn():\n    \"\"\"SQLite connection for stacked‑resource tracking (WAL enabled).\"\"\"\n    conn = sqlite3.connect(_STACKED_DB)\n    conn.execute(\"PRAGMA journal_mode=WAL;\")\n    return conn\n\n\ndef _ensure_stacked_table() -> None:\n    with _get_stacked_conn() as conn:\n        conn.execute(\"\"\"\n          CREATE TABLE IF NOT EXISTS stacked(\n              tracker_id   TEXT,\n              rack_name    TEXT,\n              slot_idx     INTEGER,\n              available    INTEGER,\n              PRIMARY KEY (tracker_id, rack_name, slot_idx)\n          )\n        \"\"\")\n        conn.commit()\n\n\n_ensure_stacked_table()          # run at import time\n\nT = TypeVar('T', bound='DeckResource')\n\nclass StackedResources:\n    \"\"\"\n    A persistent stack of named resources (as strings), supporting\n    top-of-stack-first access and database-backed availability tracking.\n    \"\"\"\n\n    def __init__(self,\n                 resource_names: List[str],\n                 tracker_id: Optional[str],\n                 lmgr: Optional[LayoutManager],\n                 resource_type: Type[T],\n                 reset: bool = True):\n        \n        self.resource_names = list(resource_names)  # fixed order definition\n        self.tracker_id     = tracker_id or \"|\".join(resource_names)\n        self._stacked: List[str] = list(resource_names)\n        self.resource_type = resource_type\n\n        self.lmgr = lmgr\n        if lmgr is not None:\n            for rname in resource_names:\n                resource_present_in_layfile = any([rname in line for line in lmgr.lines])\n                if not resource_present_in_layfile:\n                    raise ValueError(f\"Resource '{rname}' not found in LayoutManager.\")\n\n        if reset:\n            # Hard reset: clear any prior rows for this tracker_id and seed to \"full\"\n            with _get_stacked_conn() as conn:\n                conn.execute(\"DELETE FROM stacked WHERE tracker_id = ?;\", (self.tracker_id,))\n                self._flush_entire_state(conn)\n                conn.commit()\n        else:\n            # Rehydrate from DB if present; otherwise seed to full\n            self._hydrate_from_db()\n\n    @classmethod\n    def from_prefix(cls,\n                    tracker_id: str,\n                    prefix    : str,\n                    count     : int,\n                    lmgr      : LayoutManager,\n                    resource_type: Type[T],\n                    reset     : bool = True) -> StackedResources:\n        \"\"\"\n        Create a stack with HIGHEST index at the TOP (fetched first).\n        Example: count=4 → top: prefix_0004, prefix_0003, prefix_0002, prefix_0001\n        \"\"\"\n        ascending = [f\"{prefix}_{i:04d}\" for i in range(1, count + 1)]\n        top_first = list(reversed(ascending))\n        return cls(top_first, tracker_id=tracker_id, lmgr=lmgr, resource_type=resource_type, reset=reset)\n\n    def get_stacked(self) -> List[str]:\n        \"\"\"Return the current list of available resources (top-first).\"\"\"\n        return self._stacked\n\n    def count(self) -> int:\n        \"\"\"Return the number of available resources.\"\"\"\n        return len(self._stacked)\n\n    def fetch_next(self) -> str:\n        \"\"\"\n        Pop and return the next resource from the top of the stack.\n        Persistently marks it as unavailable and remembers it for put_back_top().\n        \"\"\"\n        if len(self._stacked) < 1:\n            raise ValueError(f\"Only {len(self._stacked)} resources available; 1 requested.\")\n\n        rname = self._stacked.pop(0)\n        self._last_fetched = rname\n        self._update_row(rname, available=False)\n        resource = self.resource_type(rname)\n        return resource\n\n    def put_back(self) -> str:\n        \"\"\"\n        Restore the next positional resource to the TOP of the stack, mark it available,\n        and return its name.\n\n        Logic:\n        - self.resource_names is the canonical, top-first order (e.g. 0004,0003,0002,0001).\n        - self._stacked is a subsequence (available ones).\n        - Putting back picks the highest-priority *missing* name and inserts it at index 0.\n        \"\"\"\n        # Compute which names are currently missing (unavailable), in top-first order.\n        missing = [r for r in self.resource_names if r not in self._stacked]\n\n        if not missing:\n            raise RuntimeError(\"Stack is already full; nothing to put back.\")\n\n        rname = missing[0]          # highest-priority missing item\n        self._stacked.insert(0, rname)\n        self._update_row(rname, available=True)\n        resource = self.resource_type(rname)\n        return resource\n\n    def reset_all(self) -> None:\n        \"\"\"\n        Reset all resources to available state and restore the full stack.\n        This marks every resource as available again and rebuilds the stack\n        to its original top-first order.\n        \n        This is functionally the same as constructing the tracker with\n        ``reset=True``—but it can be invoked at any time after the object\n        exists.\n        \n        Example\n        -------\n        >>> stack.reset_all()      # all resources are now available again\n        \"\"\"\n        # 1) Update the in-memory stack to full state\n        self._stacked = list(self.resource_names)\n        \n        # 2) Push the fresh state to disk in one shot\n        with _get_stacked_conn() as conn:\n            # Clear existing entries for this tracker\n            conn.execute(\"DELETE FROM stacked WHERE tracker_id = ?;\", (self.tracker_id,))\n            # Write all resources as available\n            self._flush_entire_state(conn)\n            conn.commit()\n\n    # ---------------------- Persistence Helpers ----------------------\n\n    def _hydrate_from_db(self) -> None:\n        \"\"\"Restore from DB or seed from initial list if new.\"\"\"\n        with _get_stacked_conn() as conn:\n            cur = conn.execute(\n                \"SELECT rack_name, available FROM stacked WHERE tracker_id = ?;\",\n                (self.tracker_id,))\n            rows = cur.fetchall()\n\n            if not rows:\n                self._flush_entire_state(conn)\n                conn.commit()\n                return\n\n            valid_names = set(self.resource_names)\n            availability = {r: bool(a) for r, a in rows if r in valid_names}\n            self._stacked = [r for r in self.resource_names if availability.get(r, False)]\n\n    def _update_row(self, rname: str, *, available: bool) -> None:\n        \"\"\"Insert or update a single row in the DB.\"\"\"\n        with _get_stacked_conn() as conn:\n            conn.execute(\"\"\"INSERT OR REPLACE INTO stacked\n                               (tracker_id, rack_name, slot_idx, available)\n                            VALUES (?,?,NULL,?);\"\"\",\n                         (self.tracker_id, rname, int(available)))\n            conn.commit()\n\n    def _flush_entire_state(self, conn) -> None:\n        \"\"\"Write the full available list to the DB.\"\"\"\n        conn.executemany(\"\"\"INSERT OR REPLACE INTO stacked\n                               (tracker_id, rack_name, slot_idx, available)\n                            VALUES (?,?,NULL,?);\"\"\",\n                         [(self.tracker_id, rname, 1) for rname in self._stacked])\n\n\nclass TipSupportTracker:\n    WELLS_PER_COL = 8\n    NUM_COLS = 12\n    TOTAL_WELLS = WELLS_PER_COL * NUM_COLS  # 96\n\n    def __init__(self, resource):\n        self.resource = resource\n        self.occupancy = [0] * self.TOTAL_WELLS  # 1 = available, 0 = empty\n        self.tip_vol = None\n        self.source_rack = None  # set on add_rack\n        self.source_tip_tracker = None  # set on add_rack\n\n    def _update_rack_in_tracker(self, rack, tip_occupancies, tip_tracker, tip_vol):\n        \"\"\"Load a full fresh rack into the support (assumes all wells have tips).\"\"\"\n        self.occupancy = tip_occupancies\n        self.tip_vol = tip_vol\n        self.source_rack = rack\n        self.source_tip_tracker = tip_tracker\n\n    def remove_rack(self, rack=None):\n        \"\"\"Clear current rack state.\"\"\"\n        self.occupancy = [0] * self.TOTAL_WELLS\n        self.tip_vol = None\n        self.source_rack = None\n\n    def has_available_tips(self, num_tips: int) -> bool:\n        return sum(self.occupancy) >= num_tips\n\n    def _rightmost_indices_for_n_columns(self, n: int):\n        if not (1 <= n <= self.NUM_COLS):\n            raise ValueError(f\"n must be between 1 and {self.NUM_COLS}, got {n}\")\n        full = [all(self.occupancy[c*self.WELLS_PER_COL + r] for r in range(self.WELLS_PER_COL))\n                for c in range(self.NUM_COLS)]\n        cols = [c for c in range(self.NUM_COLS-1, -1, -1) if full[c]][:n]\n        if len(cols) < n:\n            raise ValueError(f\"Only found {len(cols)} full columns; {n} requested.\")\n        return sorted(i for c in cols for i in range(c*self.WELLS_PER_COL, (c+1)*self.WELLS_PER_COL))\n\n    def fetch_n_columns(self, ham_int: HamiltonInterface, n: int, tip_tracker: TrackedTips):\n        \"\"\"\n        Returns (tips, leftmost_col_idx) where tips are the wells in the right-most\n        n columns, and leftmost_col_idx is 1-based column index of the left-most column fetched.\n        \"\"\"\n        if self.source_rack is None:\n            self.tip_support_add_rack(ham_int, tip_tracker, n)\n        \n        if self.tip_vol != tip_tracker.volume_capacity:\n            print(f\"Tip volume mismatch: support has {self.tip_vol}, tracker has {tip_tracker.volume_capacity}. Replacing rack.\")\n            self.tip_support_add_rack(ham_int, tip_tracker, n)\n        \n        try:\n            indices = self._rightmost_indices_for_n_columns(n)\n        except ValueError:\n            self.tip_support_add_rack(ham_int, tip_tracker, n)\n            indices = self._rightmost_indices_for_n_columns(n)\n\n        # If available, mark and return\n        if all(self.occupancy[i] == 1 for i in indices):\n            for i in indices:\n                self.occupancy[i] = 0\n\n            leftmost_col_idx = indices[0] // self.WELLS_PER_COL + 1\n            return leftmost_col_idx\n\n        if not all(self.occupancy[i] == 1 for i in indices):\n            raise RuntimeError(f\"After replacing rack, still no right-most {n} columns available.\")\n\n\n    def tip_support_add_rack(self, ham_int: HamiltonInterface, tracked_tips: TrackedTips, num_columns: int):\n        \"\"\"\n        Eject current rack (if any), fetch another with >= num_columns available columns,\n        and load it here. Assumes `tracked_tips.fetch_rack_with_min_columns` returns a rack\n        object with tips in the left-most columns populated (or all).\n        \"\"\"\n        \n        tip_rack, tip_occupancies = tracked_tips.fetch_rack_with_min_columns(num_columns)\n\n        if self.source_rack is not None:\n            # Place any currently-held tips back and eject the existing rack\n            ham_int.tip_pick_up_96(self.resource)\n            ham_int.tip_eject_96(self.source_rack)\n            self.source_tip_tracker.fill_rack_from_occupancy_map(self.source_rack, self.occupancy)\n\n        # Load the new rack into the support\n        # We have to modify the labware property of the tip support at runtime\n        ham_int.set_labware_property(self.resource.layout_name(), 'MlStarCore96TipRack', TipType.from_volume(tracked_tips.volume_capacity))\n        \n\n        ham_int.tip_pick_up_96(tip_rack)\n        ham_int.tip_eject_96(self.resource)\n        self._update_rack_in_tracker(tip_rack, tip_occupancies, tracked_tips, tracked_tips.volume_capacity)\n\n\n"
  },
  {
    "path": "pyhamilton/run_venus_client.py",
    "content": "from pyhamilton.interface import run_hamilton_process\nfrom multiprocessing import Process\nimport time\nimport os\nimport signal\n\nif __name__ == '__main__':\n    oem_process = Process(target=run_hamilton_process, args=())\n    oem_process.start()\n    while True:\n        try:\n            time.sleep(1)\n        except:\n             try:\n                os.kill(oem_process.pid, signal.SIGTERM)\n                oem_process.join()\n             except PermissionError:\n                 time.sleep(1)\n\n\n"
  },
  {
    "path": "pyhamilton/star-oem/HslHamHeaterShakerLib.hs_",
    "content": "// ======================================================================\r\n// This is a part of the HSLHamHeaterShaker Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//   \r\n//\t2008-09-11  tbenz >  V1.0 first creation\r\n//\r\n// 2008-12-03  tbenz >  V1.1 check of input parameter removed\r\n//\r\n// 2009-08-13  tbenz >  V1.2 Initialize routine enlarget with close ond open plate lock\r\n//                      changed in function InitializeNode()\r\n//\r\n// 2013-03-06  tbenz >  V4.4 No change in the library.\r\n//\t\t\t\t\t\tUSB driver changed from UsbIoComm.dll to HxUsbComm.dll\r\n//\t\t\t\t\t\tthis driver is trace into the same UsbCom.trc file than the phoenix software.\r\n//\t\t\t\t\t\tVersion is new dependet of the software version.\r\n//\r\n// >>>>> if you change the version update HamHeaterShakerVersion too <<<<\r\n//\r\n//\t**********************************************************************\r\n// This library version supports following hardware:\r\n//\t\t- Hamilton Heater Shaker PN 186280/02\r\n//\t**********************************************************************\r\n\r\n\r\n#ifndef __HSLHeaterShakerLibImpl_hsl__\r\n#define __HSLHeaterShakerLibImpl_hsl__\t1\r\n\r\n\r\nstatic const variable HamHeaterShakerVersion(\"Version: V4.4\");\r\n\r\n// ----------------------------------------------------------------------------------------------------\r\n// Includes\r\n// ----------------------------------------------------------------------------------------------------\r\n\r\n#ifndef __HSLStrLib_hsl__\r\n\t#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLSynLib_hsl__\r\n\t#include \"HSLSynLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLMthLib_hsl__\r\n\t#include \"HSLMthLib.hsl\"\r\n#endif\r\n\r\n\r\n// ----------------------------------------------------------------------------------------------------\r\n// Device (for development only! Comment out for release version.)\r\n// ----------------------------------------------------------------------------------------------------\r\n//device ML_STAR;\r\n\r\n// --------------------------------------------------------------------------------------\r\n// Implementation of Hamilton Heater Shaker library \r\n// --------------------------------------------------------------------------------------\r\nnamespace HSLHamHeaterShaker\r\n{\r\n\t#ifndef __HSLStringTableLib_hsl__\r\n\t#include \"HSLStringTableLib.hs_\"\r\n\t#endif\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Debugging and Developing (for development only! Comment out for release version.)\r\n\t// --------------------------------------------------------------------------------------\r\n\t//#define _DEBUG\t\t1\t\t// specifies the debug version of the HSLHamHeaterShaker library\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Tracing\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace TraceStatus\r\n   {\r\n\t\tstatic const variable cmd_start(1);\t\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_complete(2);\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_error(3);\t\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_progress(4);\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_errComplete(5);\t\t\t// action status for formated trace and step return\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Parameter definitions\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace ShakingParam\r\n   {\r\n      static const variable directionLeft(0);         // Shaking direction\r\n      static const variable directionRight(1);        // Shaking direction\r\n      static const variable directionDefault(0);      // Shaking direction\r\n      static const variable speedParamLenght(4);      // Length of firmware parameter string\r\n      static const variable accelParamLenght(5);      // Length of firmware parameter string\r\n      static const variable timeParamLenght(5);       // Length of firmware parameter string\r\n      static const variable rampMin(630);             // Accelerator ramp min\r\n      static const variable rampMax(12500);           // Accelerator ramp max\r\n      static const variable rampDefault(1250);        // Accelerator ramp default\r\n      static const variable rpmMin(30);               // min revolutions per minutes RPM (steps per second (48 steps == 1 revolution)\r\n      static const variable rpmMax(2500);             // max revolutions per minutes RPM\r\n      static const variable rpmDefault(1000);         // Revolutions per minutes RPM\r\n\t\tstatic const variable rmpStepFactor(1.25);\t\t// Factor to calculate RPM to steps (Steps = RPM / rmpStepFactor)\r\n      static const variable shakingTimeMin(0);        // min shaking time\r\n      static const variable shakingTimeMax(30000);    // max shaking time\r\n      static const variable shakeTolMin(0);    \t\t\t// min shaking tolerance\r\n      static const variable shakeTolMax(100);    \t\t// max shaking tolerance\r\n\t\t\r\n   }\r\n\r\n   namespace TemperateParam\r\n   {\r\n      static const variable startTimeOutDefault(1800);// Time before temperature will be checked\r\n      static const variable startTimeOutMin(1);       // Time before temperature will be checked\r\n      static const variable startTimeOutMax(3600);    // Time before temperature will be checked\r\n      static const variable paramLength(4);           // Length of all temperature step parameter\r\n      static const variable tempStateOk(0);           // Temperature was allways in temperature range\r\n      static const variable tempStateOutOfRange(1);   // Temperature was out of temperature range\r\n      static const variable tempStateOutOfSecurity(2);// Temperature was out of security range\r\n      static const variable tempStateTimeOut(3);\t\t// Temperature timeout\r\n      static const variable tempMin(0.0);             // min temperature\r\n      static const variable tempMax(105.0);           // max temperature\r\n      static const variable tempToleranceDefault(2.0);// Tolerance of incubation time\r\n      static const variable tempToleranceMin(0.0);    // Tolerance of incubation time\r\n      static const variable tempToleranceMax(100.0);  // Tolerance of incubation time\r\n      static const variable tempSecurityDefault(6.0); // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempSecurityMin(0.0);     // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempSecurityMax(100.0);   // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempTempRequestLength(13);// Length of temperature response string\r\n      static const variable tempStateRequestLength(4);// Length of temperature state response string\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Monitoring\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace MonitorStatus\r\n   {\r\n\t\tstatic const variable monitorOK(0);\t\t\t\t\t\t\t// no error\r\n\t\tstatic const variable monitorErrHeating(1);\t\t\t\t// heating out of range\r\n\t\tstatic const variable monitorErrShaking(2);\t\t\t\t// shaking out of range\r\n\t\tstatic const variable monitorErrHeatingAndShaking(3);\t// heating and shaking out of range\r\n   }\r\n\r\n   namespace MonitorAction\r\n   {\r\n\t\tstatic const variable monitorActionMin(0);\t\t\t\t// min value\r\n\t\tstatic const variable monitorActionCont(0);\t\t\t\t// Continue\r\n\t\tstatic const variable monitorActionStop(1);\t\t\t\t// Stop Heating, shaking and monitoring\r\n\t\tstatic const variable monitorActionAbort(2);\t\t\t\t// Abort run\r\n\t\tstatic const variable monitorActionMax(2);\t\t\t\t// max value\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module local constants/variables\r\n\t// --------------------------------------------------------------------------------------\r\n   static const variable m_maxHHS(10);                      // node 0..9\r\n   static const variable m_firstStarNode(1);                // node 1 and 2 for ML_Star\r\n   static const variable m_lastStarNode(2);                 // node 1 and 2 for ML_Star\r\n   static const variable m_firstUsbNode(1);                 // node 1 to 8 for USB (0..7)\r\n   static const variable m_lastUsbNode(8);                  // node 1 to 8 for USB (0..7)\r\n   static const variable m_firstDeviceNumber(1);            // generated deviceNumber range\r\n   static const variable m_lastDeviceNumber(m_maxHHS);      // generated deviceNumber range\r\n\r\n   static const variable m_usbMsgTimeout(240);              // timeout for comand which are send to USB\r\n   static const variable m_usbInitTimeout(15);              // timeout for init comands which are send to USB\r\n   static const variable m_OFF(0);\r\n   static const variable m_ON(1);\r\n   static const variable m_firmwareCmdLength(2);            // length of firmware command without node (Tx)\r\n   static const variable m_waitTimeOutSecurity(60);         // Security time which will be added oto wait timeout of function waitShaker()\r\n\tstatic const variable m_starSimulateModeKey(18);\t\t\t// key for read simulate flag of STAR with GetCfgValueWithKey()\r\n\tstatic const variable m_shakingPropertyHeatAndShake(0);\t// HHS is usable for heating and shaking\r\n\tstatic const variable m_shakingPropertyOnlyHeat(1);\t\t// HHS is usable for heating only\r\n\tstatic const variable m_shakingPropertyOnlyShake(2);\t\t// HHS is usable for shaking only\r\n\tstatic const variable m_shakingPropertyNothing(3);\t\t\t// HHS is defined wrong, no shaking and no heating ????\r\n\r\n   // special error definition for direct check in step result string\r\n   static const variable m_fwNoError(\"er00\");               // no error\r\n   static const variable m_fwCanError(\"er10\");              // can error\r\n   static const variable m_fwShNotInitError(\"er51\");        // Shaker not initialized\r\n   static const variable m_fwShStepLostError(\"er52\");       // Shaker step lost\r\n   static const variable m_fwPlNotInitError(\"er56\");        // Plate lock not initialized\r\n   static const variable m_fwPlStepLostError(\"er57\");       // Plate lock step lost\r\n   static const variable m_fwTimeoutError(\"er98\");          // Time out during send of a command\r\n   static const variable m_fwIsInitialized(\"qw1\");          // QW answere, initialize = flag == 1\r\n   static const variable m_noStarConnectionError(\"er03\");   // No connection to star\r\n\r\n\t// definition for USB component\r\n   static variable   m_hhsUsbObjectName(\"HamHeaterShakerUSB.USB\");   // name of USB component\r\n   // \"{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}\", bufferSize(4090), vendorId(2223), productId(32770), serialNumber(00));\r\n   static variable   m_hhsUsbProductNum(32770);             // productId and serialNumber as string\r\n   static variable   m_hhsUsbSerieNum(\"00\");             \t// productId and serialNumber as string\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module globale constants/variables\r\n\t// --------------------------------------------------------------------------------------\r\n\tstatic global variable  m_hhsCriticalSection(0);   // critical section object for library synchronization \r\n   static global object    m_usbComObject;            // USB device object\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module local constants/variables which must be locked during set / get\r\n\t// --------------------------------------------------------------------------------------\r\n   static variable m_isStringTableInitialized(hslFalse);   \t\t\t// flag for init string table\r\n\tstatic global variable m_initializedLib(hslFalse);\t\t\t\t   // initialization state of the HSL HamHeaterShaker library\r\n\tstatic global variable m_isSimulate(hslFalse);                 // flag for simulate mode of heater shaker\r\n   static global variable m_usbTrace(hslTrue);\t\t\t\t\t\t\t// flag vor trace the send and receive from USB device\r\n\tstatic global variable m_initializedHeater[](m_maxHHS);        // initialization state of the used device\r\n   static global variable m_shakingDirection[](m_maxHHS);         // Shaking direction left/right (0/1)\r\n   static global variable m_shakingAccRamp[](m_maxHHS);           // Acceleration ramp (rpm)\r\n   static global variable m_shakingTimeOut[](m_maxHHS);           // Time out for waiting function after StartTimed 0 = not started\r\n   static global variable m_tempStartTimeOut[](m_maxHHS);         // Time to elapse until the time controlling is satrt\r\n   static global variable m_tempToleranceRange[](m_maxHHS);       // Tolerance of incubation temperature\r\n   static global variable m_tempSecurityRange[](m_maxHHS);        // Security tolerance before the heater is automatic switched off\r\n   static global variable m_userShakingSpeed[](m_maxHHS);         // The given speed from start function\r\n   static global variable m_userTemperature[](m_maxHHS);         \t// The given temperature from start function\r\n\r\n\t// device management\r\n\t// note: the assigned deviceNumber correspond with the array index (deviceNumber-1 == arrayIndex)\r\n\tstatic global variable m_deviceName[](m_maxHHS);\t\t\t\t\t// Name of ML_STAR or \"USB\" on USB\r\n\tstatic global variable m_nodeNumber[](m_maxHHS);\t\t\t\t\t// can node number 1 based\r\n\tstatic global object   m_starDeviceObj[](m_maxHHS);\t\t\t\t// object of ML_STAR device, for USB use m_usbComObject\r\n\tstatic global variable m_isStarSimulate[](m_maxHHS);\t\t\t\t// ML_STAR is in simulate mode\r\n\tstatic global variable m_hhsSetting[](m_maxHHS);\t\t\t\t\t// 0..2, 0=both, 1=onlyHeat, 2=onlyShake\r\n\r\n\tstatic function saveAndCreateDeviceNumber(variable funcId, variable deviceName,\r\n\t\t\tobject& starObject, variable isStarSimulate,\tvariable usedNode);\r\n   // m_initializedHeater value with data access lock\r\n   static function isUsbConnected(variable funcId);\r\n \tstatic function isSimulate(variable funcId, variable deviceNumber, variable makeTrace );\r\n   // uses node from 0 to 9\r\n   static function isHeaterInitialized(variable deviceNumber);\r\n   // uses node from 0 to 9\r\n   static function setHeaterInitialized(variable deviceNumber);\r\n   static function isUsbTrace();\r\n\r\n\t// definitions for Monitoring function\r\n   static const variable m_minSampleInterval(5);\r\n   static const variable m_maxSampleInterval(300);\r\n\r\n   // Prepare the globals for the hsl thread.\r\n   static global event\t  m_monitorStartEvent;\r\n   static global variable m_monitorDeviceNumber;\r\n   static global variable m_monitorShakerMin;\r\n   static global variable m_monitorShakerMax;\r\n\tstatic global variable m_monitorHeaterMin;\r\n\tstatic global variable m_monitorHeaterMax;\r\n   static global variable m_monitorSampleInterval;\r\n   static global variable m_monitorAction;\r\n   static global event\t  m_monitorEvent[](m_maxHHS);\r\n   static global variable m_monitorResult[](m_maxHHS);\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Firmware Error Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDE\r\n\t{\r\n\t\tstatic const variable first(0);\t\t\t\t\t\t            // guard\r\n\t\tstatic const variable noError(first);\t\t\t\t\t\t\t\t// No error\r\n      static const variable retErr(first + 1);\t\t\t\t\t\t\t// fatalError\r\n      static const variable retNotInitErr(first + 2);\t\t\t\t\t// node not initialized\r\n      static const variable retNotConnectErr(first + 3);\t\t\t\t// device not connected\r\n\t\tstatic const variable canError(first + 4);\t\t\t\t\t   // No communication to CAN node\r\n\t\tstatic const variable eepromError(first + 5);\t\t\t\t   // No communication to EEPROM\r\n\t\tstatic const variable syntaxCmdError(first + 6);\t\t\t   // Unknown command\r\n\t\tstatic const variable syntaxParUnkError(first + 7);\t\t\t// Unknown parameter.\r\n\t\tstatic const variable syntaxParRangeError(first + 8);\t\t\t// Parameter out of range.\r\n\t\tstatic const variable generalVoltError(first + 9);\t\t\t   // Voltage outside permitted range\r\n\t\tstatic const variable generalStopError(first + 10);\t\t\t// Stop received\r\n\t\tstatic const variable generalAddrError(first + 11);\t\t\t// Wrong system address\r\n\t\tstatic const variable parallelError(first + 12);\t\t\t\t// Parallel commands are nor allowed\r\n\t\tstatic const variable shakerInitError(first + 13);          // Shaker initialization failt\r\n\t\tstatic const variable shakerNotInitError(first + 14);\t\t\t// Shaker not initialized\r\n\t\tstatic const variable shakerStepLossError(first + 15);\t\t// Shaker step loss\r\n\t\tstatic const variable shakerStartModeError(first + 16);     // Shaker is not started with timeout\r\n\t\tstatic const variable plateLockInitError(first + 17);\t\t\t// Plate lock initialization failt\r\n\t\tstatic const variable plateLockNotInitError(first + 18);\t\t// Plate lock not initialized\r\n\t\tstatic const variable plateLockStepLossError(first + 19);\t// Plate lock step loss\r\n\t\tstatic const variable tempNotStartError(first + 20);\t\t   // Temperature controlling not started\r\n\t\tstatic const variable tempTimeoutError(first + 21);\t      // Timeout of temperature supervision\r\n\t\tstatic const variable tempSuperRangeError(first + 22);\t\t// Temperature out of supervision range\r\n\t\tstatic const variable tempSecurRangeError(first + 23);\t   // Temperature out of security range\r\n\t\tstatic const variable tempSensorError(first + 24);\t         // Temperature out of security range\r\n\t\tstatic const variable commandSendTimeout(first + 25);\t      // Time out occured on command ='%s'\r\n\t\tstatic const variable unknowFwError(first + 26);\t         // Unknow firmware error = '%s'\r\n      // none firmware errors\r\n\t\tstatic const variable noStringValue(first + 27);\t         // Wrong type of parameter; '%s1(%s2)' must be a sting..\r\n\t\tstatic const variable noIntegerValue(first + 28);\t         // Wrong type of parameter; '%s1(%s2)' must be a whole number.\r\n\t\tstatic const variable noDoubleValue(first + 29);\t         // Wrong type of parameter; '%s1(%s2)' must be a whole or decimal number.\r\n      static const variable neededNodeNotAvailable(first + 30);\t// Node '%s1' not found, please set it to 0 on parameter '%s2' at position '%s3'.\r\n      static const variable unknownResultFormat(first + 31);      // Unknown format of firmware result string.\\r\\nExpected: '%s1'.\\r\\nReceived: '%s2'.\r\n      static const variable wrongParameterLength(first + 32);     // Wrong length of input parameter.\\r\\nParameter = '%s1' length (%s2).\\r\\nExpected lenght (%s3).\r\n\r\n\t\tstatic const variable last(first + 32);\t\t\t\t\t\t\t// guard\r\n\t}\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// String Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDS\r\n\t{\r\n\t\tstatic const variable first(IDE::last + 1);\t\t\t\t\t   // guard\r\n\t\tstatic const variable traceSource(first);\t\t\t\t\t\t   // Text: \"SYSTEM\", source for formated trace\r\n\t\tstatic const variable helpFileName(first + 1);\t\t         // Text: \"HSLHAMHEATERSHAKERLIB%s.CHM\", language independend language name\r\n\t\tstatic const variable sendMessageTitle(first + 2);\t\t\t\t// Text: \"Send message = \"\r\n\t\tstatic const variable receiveMessageTitle(first + 3);\t\t   // Text: \"Received answere = \"\r\n\t\tstatic const variable setSimulate(first + 4);\t\t\t\t\t// Text: \"Set simulate mode = \"\r\n\t\tstatic const variable starNode(first + 5);\t\t\t\t\t   // Text: \"ML_Star node\"\r\n\t\tstatic const variable usbNode(first + 6);\t\t\t\t\t      // Text: \"USB node\"\r\n\t\tstatic const variable noUsbConnection(first + 7);\t         // Text: \"No connection to USB device.\"\r\n\t\tstatic const variable parameterOutOfRange(first + 8);\t      // Text: \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n      static const variable neededNodeNotInitialized(first + 9);\t// Text: \"Node '%s1' not initialized'.\"\r\n      static const variable setTrace(first + 10);\t\t\t\t\t\t// Text:\t\"Set USB trace mode = \"\r\n\t\tstatic const variable firmwareVersion(first + 11);\t\t\t\t// Text: \"%s1 '%s2' firmware version = \"\r\n\t\tstatic const variable cannotCreateUsbPort(first + 12);\t   // Text: \"USB communication cannot be created.\"\r\n      static const variable timeoutDuringWaitShaker(first + 13);  // Text: \"Time out during wait for end shaking. Shaking will be stop.\"\r\n      static const variable progressSendTo(first + 14);           // Text: \"Send command to %s1 ( %s2 ).\"\r\n      static const variable startTimeout(first + 15);             // Text: \"Start time out = \"\r\n      static const variable toleranceRange(first + 16);           // Text: \"Temperature range = \"\r\n      static const variable securityRange(first + 17);            // Text: \"Security range = \"\r\n      static const variable shakingDirection(first + 18);         // Text: \"Shaking direction = \"\r\n      static const variable shakingSpeed(first + 19);             // Text: \"Shaking speed = \"\r\n      static const variable shakingAccRamp(first + 20);           // Text: \"Shaking acceleration ramp = \"\r\n      static const variable sendToStar(first + 21);               // Text: \"HSLHamHeaterShakerLib::SendToStar\"\r\n      static const variable sendToUsb(first + 22);                // Text: \"HSLHamHeaterShakerLib::SendToUsb\"\r\n      static const variable invalidStarDevice(first + 23);      \t// Text: \"Parameter 'starDevice' contains an invalid object.\"\r\n      static const variable invalidDeviceNumber(first + 24);      // Text: \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n      static const variable maxHHSReached(first + 25);      \t\t// Text: \"Cannot create the deviceNumber; Maximum count of usable HHS is reached.\"\r\n      static const variable shakingNotActivated(first + 26);      // Text: \"Current HHS module on %s1 '%s2' cannot used as shaker.\");\r\n      static const variable heatingNotActivated(first + 27);      // Text: \"Current HHS module on %s1 '%s2' cannot used as heater.\");\r\n      static const variable monitoringShakingTitle(first + 28);   // Text: \"Current speed (RPM) = \");\r\n      static const variable monitoringTempTitle(first + 29);      // Text: \"Current temperature = \");\r\n      static const variable monitoringTempHeatUpTitle(first + 30);// Text:\t\"Current temperature (heating up mode) = \");\r\n      static const variable monitoringStateTitle(first + 31);\t\t// Text:\t\"Current monitored state = \");\r\n      static const variable monitoringWarning(first + 32);\t\t\t// Text:\t\"Warning: \");\r\n      static const variable monitoringShNotStart(first + 33);\t\t// Text:\t\"Shaking not started, check of speed limit will be disabled!\");\r\n      static const variable monitoringHeNotStart(first + 34);\t\t// Text:\t\"Heating up not started, check of temperature limit will be disabled!\");\r\n      static const variable monitoringAbort(first + 35);\t\t\t\t// Text:\t\"Heating or shaking is out of range; Method will be abort!\");\r\n\r\n\t\tstatic const variable last(first + 35);\t\t\t\t\t\t   // guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Function Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDF\r\n\t{\r\n      // do not change the sort of this list of function and his IDs\r\n\t\tstatic const variable first(IDS::last + 1);\t\t\t\t\t   // guard\r\n\t\tstatic const variable CreateStarDevice(first);\t\t         // Text: \"HSLHamHeaterShakerLib - CreateStarDevice\"\r\n\t\tstatic const variable CreateUsbDevice(first+1);\t\t         // Text: \"HSLHamHeaterShakerLib - CreateUsbDevice\"\r\n\t\tstatic const variable Terminate(first + 2);\t\t\t\t      // Text: \"HSLHamHeaterShakerLib - Terminate\"\r\n\r\n\t\tstatic const variable StartShaker(first + 3);\t\t\t\t   // Text: \"HSLHamHeaterShakerLib - StartShaker\"\r\n\t\tstatic const variable StopShaker(first + 4);\t\t            // Text: \"HSLHamHeaterShakerLib - StopShaker\"\r\n\t\tstatic const variable StartShakerTimed(first + 5);\t\t      // Text: \"HSLHamHeaterShakerLib - StartShakerTimed\"\r\n\t\tstatic const variable WaitForShaker(first + 6);\t\t         // Text: \"HSLHamHeaterShakerLib - WaitForShaker\"\r\n\t\tstatic const variable StartAllShaker(first + 7);\t\t      // Text: \"HSLHamHeaterShakerLib - StartAllShaker\"\r\n\t\tstatic const variable StartAllShakerTimed(first + 8);\t\t   // Text: \"HSLHamHeaterShakerLib - StartAllShakerTimed\"\r\n\t\tstatic const variable StopAllShaker(first + 9);\t\t         // Text: \"HSLHamHeaterShakerLib - StopAllShaker\"\r\n\t\tstatic const variable SetShakerParameter(first + 10);\t\t   // Text: \"HSLHamHeaterShakerLib - SetShakerParameter\"\r\n\t\tstatic const variable GetShakerParameter(first + 11);\t\t   // Text: \"HSLHamHeaterShakerLib - GetShakerParameter\"\r\n\t\tstatic const variable GetShakerSpeed(first + 12);\t   \t\t// Text: \"HSLHamHeaterShakerLib - GetShakerSpeed\"\r\n\r\n\t\tstatic const variable StartTempCtrl(first + 13);\t\t      // Text: \"HSLHamHeaterShakerLib - StartTempCtrl\"\r\n\t\tstatic const variable StopTempCtrl(first + 14);\t\t         // Text: \"HSLHamHeaterShakerLib - StopTempCtrl\"\r\n\t\tstatic const variable WaitForTempCtrl(first + 15);\t\t      // Text: \"HSLHamHeaterShakerLib - WaitForTempCtrl\"\r\n\t\tstatic const variable GetTemperature(first + 16);\t\t      // Text: \"HSLHamHeaterShakerLib - GetTemperature\"\r\n\t\tstatic const variable GetTemperatureState(first + 17);\t\t// Text: \"HSLHamHeaterShakerLib - GetTemperatureState\"\r\n\t\tstatic const variable SetTempParameter(first + 18);\t      // Text: \"HSLHamHeaterShakerLib - SetTempParameter\"\r\n\t\tstatic const variable GetTempParameter(first + 19);\t      // Text: \"HSLHamHeaterShakerLib - GetTempParameter\"\r\n\r\n\t\tstatic const variable SetPlateLock(first + 20);\t\t         // Text: \"HSLHamHeaterShakerLib - SetPlateLock\"\r\n\t\tstatic const variable GetFirmwareVersion(first + 21);\t      // Text: \"HSLHamHeaterShakerLib - GetFirmwareVersion\"\r\n\t\tstatic const variable GetSerialNumber(first + 22);\t\t      // Text: \"HSLHamHeaterShakerLib - GetSerialNumber\"\r\n\t\tstatic const variable BeginMonitoring(first + 23);\t\t      // Text: \"HSLHamHeaterShakerLib - BeginMonitoring\"\r\n\t\tstatic const variable EndMonitoring(first + 24);\t\t      // Text: \"HSLHamHeaterShakerLib - EndMonitoring\"\r\n\r\n\t\tstatic const variable SendFirmwareCommand(first + 25);\t   // Text: \"HSLHamHeaterShakerLib - SendFirmwareCommand\"\r\n\t\tstatic const variable SetSimulation(first + 26);\t\t      // Text: \"HSLHamHeaterShakerLib - SetSimulation\"\r\n\t\tstatic const variable SetUSBTrace(first + 27);\t\t\t\t\t// Text: \"HSLHamHeaterShakerLib - SetUSBTrace\"\r\n\r\n\r\n\t\tstatic const variable Monitoring(first + 28);\t\t\t\t\t// Text: \"HSLHamHeaterShakerLib - Monitoring\"\r\n\r\n\t\tstatic const variable last(first + 28);\t\t\t\t\t\t   // guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Exception handling\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tnamespace Error\r\n\t{\r\n\t\tstatic function Raise(\t\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t// i: error id, one of IDE\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t// i: file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t// i: function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t// i: line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\t\t\tstring hlpFileName;\r\n\r\n\t\t\t// set error description\r\n\t\t\tif (\"\" == funcName)\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + StringTable::Load(errorId);\r\n\t\t\telse\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + funcName + \"()\\n\" + StringTable::Load(errorId);\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\thlpFileName = StringTable::Load(IDS::helpFileName);\r\n\t\t\tStrReplace(hlpFileName, \"%s\", GetLanguage());\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), hlpFileName);\r\n\t\t}\r\n\r\n\t\tstatic function RaiseEx(\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t// i: error id, one of IDE\r\n\t\t\tvariable errorDesc,\t\t\t\t\t\t\t\t\t\t\t\t// i: error description\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t// i: file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t// i: function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t// i: line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\t\t\tstring hlpFileName;\r\n\r\n\t\t\t// set error description\r\n\t\t\tif (\"\" == funcName)\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + errorDesc;\r\n\t\t\telse\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + funcName + \"()\\n\" + errorDesc;\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\thlpFileName = StringTable::Load(IDS::helpFileName);\r\n\t\t\tStrReplace(hlpFileName, \"%s\", GetLanguage());\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), hlpFileName);\r\n\t\t}\r\n\r\n\t\tstatic function RaiseLast()\t\t\t\t\t\t\t\t\t\t// re-throws the last runtime error\r\n\t\t{\r\n\t\t\t// re-raise error\r\n\t\t\terr.Raise();\r\n\t\t}\r\n\t}\r\n\r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Internal helper function declaration\r\n\t*\r\n\t****************************************************************************************/\r\n\tstatic function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker);\r\n   static function checkStringInput(variable funcId, variable parameterName, variable input);\r\n   static function checkIntegerInput(variable funcId, variable parameterName, variable input);\r\n   static function checkIntegerInputRange(variable funcId, variable parameterName, variable input, variable min, variable max);\r\n   static function checkDoubleInput(variable funcId, variable parameterName, variable input);\r\n   static function checkDoubleInputRange(variable funcId, variable parameterName, variable input, variable min, variable max);\r\n\tstatic function isStarDevice(variable deviceNumber);\r\n\tstatic function getNodeFromDeviceNumber(variable deviceNumber);\r\n\tstatic function checkDeviceNumber(variable funcId, variable deviceNumber);\r\n\tstatic function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting);\r\n\tstatic function hasHeater(variable funcId, variable deviceNumber, variable throw);\r\n\tstatic function hasShaker(variable funcId, variable deviceNumber, variable throw);\r\n   static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace);\r\n   static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut);\r\n   static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace);\r\n   static function startTrace(variable funcName) void;\r\n   static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void;\r\n   static function errorTrace(variable funcName, variable errMsg) void;\r\n   static function errorCompleteTrace(variable funcName, variable errMsg) void;\r\n   static function endTrace(variable funcName) void;\r\n   static function getSendState(variable funcId, variable deviceNumber, variable isShaker);\r\n   static function isFirmwError(variable funcId, string cmdResult, variable makeTrace);\r\n   static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock);\r\n   static function startShakingCmd(variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart);\r\n   synchronized function monitorHeaterShaker();\r\n\tstatic function wait(variable waitTime);\r\n\tstatic function getCurrentShakerRPM(variable deviceNumber, variable makeTrace);\r\n\tstatic function getCurrentTemp(variable deviceNumber, variable makeTrace);\r\n\tstatic function pollingForRunningShaker(variable deviceNumber, variable maxPollingTime);\r\n\tstatic function pollingForRunningHeater(variable deviceNumber, variable maxPollingTime);\r\n\tstatic function OnAbortHHSLibrary();\r\n\r\n   static function versionTrace() void;\r\n\t// this function is used in InitializeLibrary() and uses index 0..10\r\n\tstatic function traceFirmwareVersion(variable funcId, variable deviceNumber);\r\n   static function sendToProgressTrace(variable funcName, variable deviceNumber) void;\r\n\r\n   // get the given parameter with filled 0 before value\r\n\tstatic function formatParam(variable param, variable strWidth);\r\n   // returns the given parameter normalized (*10) for firmware command as string\r\n\tstatic function normalizeParam(variable param, variable strWidth);\r\n\r\n      \r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Interface functions\r\n\t*\r\n\t****************************************************************************************/\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function CreateStarDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Initialize shaker/heater module on ML_Star device.\r\n   //  Only NOT initialized nodes will be initialize, the function will\r\n   //  check first the initialization state before.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : starDevice   : Used STAR device for node T1 and T2 of STAR\r\n   //  in : usedNode     : Node which must be create and initialized. (1 or 2)\r\n\t//\t out: deviceNumber : generated device number which must be used in all other functions\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction CreateStarDevice(\r\n\t\tdevice& starDevice,\t\t\t\t\t\t// in:  ML_STAR device\r\n\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1 or 2)\r\n\t\tvariable& deviceNumber)\t\t\t\t\t// out: generated deviceNumber\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::CreateStarDevice);\r\n\t\tvariable deviceName;\r\n\t\tvariable isSimulate(m_ON);\r\n\t\tvariable isStarSimulate(hslFalse);\r\n\t\tvariable shakingProperty(0);\r\n\t\tobject\tstarObject;\r\n\r\n      versionTrace();\r\n      startTrace(funcId);\r\n\r\n\t\t// check input parameter\r\n\t\tcheckIntegerInputRange(funcId, \"usedNode\", usedNode, m_firstStarNode, m_lastStarNode);\r\n\r\n\t\tonerror goto DeviceError;\r\n\t\tdeviceName = starDevice.GetInstrumentName();\r\n\t\tisSimulate = starDevice.GetCfgValueWithKey(m_starSimulateModeKey);\r\n\t\tstarObject = starDevice.GetCommandObject();\r\n\t\tonerror goto 0;\r\n\r\n\t\tif(starObject.IsNull())\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::invalidStarDevice);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      if(GetType(isSimulate) == \"i\")\r\n      {\r\n         if(isSimulate != m_OFF)\r\n            isStarSimulate = hslTrue;\r\n      }\r\n\r\n\t\t// initialize the library variables\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tdeviceNumber = saveAndCreateDeviceNumber(funcId, deviceName, starObject, isStarSimulate, usedNode);\r\n\r\n\t\t// initialize the shaker\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t\tDeviceError:\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::invalidStarDevice);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\t}\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function CreateUsbDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Initialize shaker/heater module on USB device.\r\n   //  Only NOT initialized nodes will be initialize, the function will\r\n   //  check first the initialization state before.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : usedNode     : Node which must be create and initialized. (1 or 2)\r\n\t//\t out: deviceNumber : generated device number which must be used in all other functions\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction CreateUsbDevice(\r\n\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1..8)\r\n\t\tvariable& deviceNumber)\t\t\t\t\t// out: generated deviceNumber\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::CreateUsbDevice);\r\n\t\tvariable isStarSimulate(hslFalse);\r\n\t\tvariable shakingProperty(0);\r\n\t\tobject\tstarObject;\r\n\r\n      versionTrace();\r\n      startTrace(funcId);\r\n\r\n\t\t// check input parameter\r\n\t\tcheckIntegerInputRange(funcId, \"usedNode\", usedNode, m_firstUsbNode, m_lastUsbNode);\r\n\r\n\t\t// initialize the library variables\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tdeviceNumber = saveAndCreateDeviceNumber(funcId, m_hhsUsbObjectName, starObject, isStarSimulate, usedNode);\r\n\r\n\t\t// initialize the shaker\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t}\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function Terminate()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Terminate the USB device connection.\r\n   //....................................................................\r\n   // Parameters:\r\n   //    none\r\n   // ...................................................................\r\n   // return value:\r\n   //    none\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction Terminate() void\r\n   {\r\n      variable funcId(IDF::Terminate);\r\n      variable nodeIndex(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++)\r\n      {\r\n         m_initializedHeater[nodeIndex] = hslFalse;\r\n\t\t\tm_deviceName[nodeIndex] = \"\";\r\n\t\t\tm_nodeNumber[nodeIndex] = 0;\r\n\t\t\tm_hhsSetting[nodeIndex] = 0;\r\n      }\r\n\r\n      if(!m_usbComObject.IsNull())\r\n      {\r\n         // release the usb object \r\n         // run is crash in cae of multi thread and a call of ReleaseObject() while commands are send / receive\r\n        // m_usbComObject.ReleaseObject();\r\n      }\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartShaker(variable deviceNumber, variable shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartShaker);\r\n      variable node;\r\n      variable command(\"SB\");\r\n      string   parameter(\"st%s1sv%s2sr%s3\");\r\n      string   cmdResult;\r\n      variable shakingDirection;\r\n      variable shakingAccRamp;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingSpeed\", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax);\r\n      checkIntegerInput(funcId, \"shakingSpeed\", shakingSpeed);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n \t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n\t\tm_userShakingSpeed[deviceNumber-1] = shakingSpeed;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n\t\t// change RPM to steps\r\n\t\tshakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0));\r\n\t\tshakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0));\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // add saved parameter\r\n      StrReplace(parameter, \"%s1\", IStr(shakingDirection));\r\n      StrReplace(parameter, \"%s2\", formatParam(shakingSpeed, ShakingParam::speedParamLenght));\r\n      StrReplace(parameter, \"%s3\", formatParam(shakingAccRamp, ShakingParam::accelParamLenght));\r\n\r\n      // lock plate\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      // start shaker\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Stop shaking and unlock plate.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopShaker(variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StopShaker);\r\n      variable command(\"SC\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n  \t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // stop shaking\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslFalse);\r\n\r\n      // open plate lock\r\n      startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userShakingSpeed[deviceNumber-1] = 0;\r\n\t\tm_shakingTimeOut[deviceNumber-1] = m_OFF;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // check error of stop shaker after open plate lock\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartShakerTimed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   //  shakingTime\t:  Shaking time in seconds\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartShakerTimed(\r\n         variable deviceNumber,\r\n\t\t\tvariable shakingSpeed,\r\n         variable shakingTime)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartShakerTimed);\r\n      variable command(\"ST\");\r\n      string   parameter(\"sd%s1st%s2sv%s3sr%s4\");\r\n      string   cmdResult;\r\n      variable shakingDirection;\r\n      variable shakingAccRamp;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingSpeed\", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax);\r\n      checkIntegerInput(funcId, \"shakingSpeed\", shakingSpeed);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingTime\", shakingTime, ShakingParam::shakingTimeMin, ShakingParam::shakingTimeMax);\r\n      checkIntegerInput(funcId, \"shakingTime\", shakingTime);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n      m_shakingTimeOut[deviceNumber-1] = shakingTime;\r\n\t\tm_userShakingSpeed[deviceNumber-1] = shakingSpeed;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// change RPM to steps\r\n\t\tshakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0));\r\n\t\tshakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0));\r\n\r\n\r\n      // add saved parameter\r\n      StrReplace(parameter, \"%s1\", formatParam(shakingTime, ShakingParam::timeParamLenght));\r\n      StrReplace(parameter, \"%s2\", IStr(shakingDirection));\r\n      StrReplace(parameter, \"%s3\", formatParam(shakingSpeed, ShakingParam::speedParamLenght));\r\n      StrReplace(parameter, \"%s4\", formatParam(shakingAccRamp, ShakingParam::accelParamLenght));\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // lock plate\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      // start shaker timed\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function WaitForShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Waits until a timed shaking has end.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function WaitForShaker(variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::WaitForShaker);\r\n      variable shakingTime(ShakingParam::shakingTimeMax);\r\n      variable command(\"SW\");\r\n      string   parameter(\"\");\r\n      string   cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\t\t\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (funcRc);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingTime = m_shakingTimeOut.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // add 60 seconds to the started shaking time (secure that the shaking time out is reached before the wait time out)\r\n      shakingTime = shakingTime + m_waitTimeOutSecurity;\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(shakingTime));\r\n      #endif\r\n\r\n\t\t// pollen \r\n\t\tpollingForRunningShaker(deviceNumber, shakingTime - m_waitTimeOutSecurity);\r\n\r\n      // start wait for shaker\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, shakingTime, hslTrue);\r\n\r\n      // shaker was started with StartShaker or StartAllShaker\r\n      if(cmdResult.Find(m_fwNoError) < 0)\r\n      {\r\n         // stop shaker\r\n         sendMsg(deviceNumber, \"SC\", \"\", m_usbMsgTimeout, hslTrue);\r\n      }\r\n\r\n      // open plate lock\r\n      startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userShakingSpeed[deviceNumber-1] = m_OFF;\r\n\t\tm_shakingTimeOut[deviceNumber-1] = m_OFF;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartAllShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking for all initialized shaker.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartAllShaker(variable shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StartAllShaker);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// parameter are checked in StartShaker() function\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n            funcRc = StartShaker(deviceNumber, shakingSpeed);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartAllShakerTimed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration for all initialized shaker.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   //  shakingTime\t:  Shaking time in seconds\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartAllShakerTimed(variable shakingSpeed, variable shakingTime)\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StartAllShakerTimed);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// parameter are checked in StartShakerTimed() function\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n            funcRc = StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopAllShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Stop shaking and unlock plate for all initialized shaker.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  none\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopAllShaker()\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StopAllShaker);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StopShaker with 1 base node\r\n            funcRc = StopShaker(deviceNumber);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetShakerParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  shakingDirection :  Shaking direction left/right (0/1)\r\n   //  shakingAccRamp   :  Acceleration ramp (1..4)\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetShakerParameter(\r\n      variable deviceNumber,\r\n      variable shakingDirection,\r\n      variable shakingAccRamp) void\r\n   {\r\n      variable funcId(IDF::SetShakerParameter);\r\n\t\tvariable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"shakingDirection\", shakingDirection, m_OFF, m_ON);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingAccRamp\", shakingAccRamp, ShakingParam::rampMin, ShakingParam::rampMax);\r\n      checkIntegerInput(funcId, \"shakingAccRamp\", shakingAccRamp);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection));\r\n      progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp));\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_shakingDirection[deviceNumber-1] = shakingDirection;\r\n      m_shakingAccRamp[deviceNumber-1] = shakingAccRamp;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetShakerParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the parameter for plate shaking\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  shakingDirection :  Shaking direction left/right (0/1)\r\n   //  shakingAccRamp   :  Acceleration ramp (1..4)\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetShakerParameter(\r\n      variable deviceNumber,\r\n      variable& shakingDirection,\r\n      variable& shakingAccRamp) void\r\n   {\r\n      variable funcId(IDF::GetShakerParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      shakingDirection = ShakingParam::directionDefault;\r\n      shakingAccRamp = ShakingParam::rampDefault;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection));\r\n      progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp));\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetShakerSpeed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  out: shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetShakerSpeed(\r\n         variable deviceNumber,\r\n\t\t\tvariable& shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetShakerSpeed);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\t\tshakingSpeed = 0;\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tshakingSpeed = getCurrentShakerRPM(deviceNumber, hslTrue);\r\n\r\n\t   endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set incubation temperature and wait (if set) until temperature is reached\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperature         :  Incubation temperature\r\n   //  waitForTempReached  :  Flag for waiting until temperature is reached\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartTempCtrl(\r\n      variable deviceNumber,\r\n      variable temperature,\r\n      variable waitForTempReached)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartTempCtrl);\r\n      variable tempStartTimeOut;\r\n      variable tempToleranceRange;\r\n      variable tempSecurityRange;\r\n      variable command(\"TA\");\r\n      variable parameter(\"ta%s1tb%s2tc%s3td%s4\");\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"temperature\", temperature, TemperateParam::tempMin, TemperateParam::tempMax);\r\n      checkDoubleInput(funcId, \"temperature\", temperature);\r\n      checkIntegerInputRange(funcId, \"waitForTempReached\", waitForTempReached, m_OFF, m_ON);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      tempToleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n      tempSecurityRange = m_tempSecurityRange.GetAt(deviceNumber-1);\r\n\t\tm_userTemperature[deviceNumber-1] = temperature;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      StrReplace(parameter, \"%s1\", normalizeParam(temperature, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s2\", formatParam(tempStartTimeOut, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s3\", normalizeParam(tempToleranceRange, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s4\", normalizeParam(tempSecurityRange, TemperateParam::paramLength));\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out)\r\n      tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity;\r\n      if(tempStartTimeOut < m_usbMsgTimeout)\r\n         tempStartTimeOut = m_usbMsgTimeout;\r\n\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(tempStartTimeOut));\r\n      #endif\r\n\r\n      // set temperature\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n\r\n\t\t// command waits until temperature is in controlling mode\r\n      if(waitForTempReached == m_ON && funcRc == IDE::noError)\r\n\t\t{\r\n\t\t\tpollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity);\r\n\r\n\t      // wait for temperature\r\n\t      cmdResult = sendMsg(deviceNumber, \"TW\", \"\", m_usbMsgTimeout, hslTrue);\r\n\t\t}\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set incubation temperature control off\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopTempCtrl(\r\n      variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StopTempCtrl);\r\n      variable command(\"TO\");\r\n      variable parameter(\"\");\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // set temperature\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userTemperature[deviceNumber-1] = 0;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function WaitForTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Waits until the on StartTempCtrl() given temperature is reached\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function WaitForTempCtrl(\r\n      variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::WaitForTempCtrl);\r\n      variable tempStartTimeOut;\r\n      variable command(\"TW\");\r\n      variable parameter(\"\");\r\n      variable cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out)\r\n      tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity;\r\n      if(tempStartTimeOut < m_usbMsgTimeout)\r\n         tempStartTimeOut = m_usbMsgTimeout;\r\n\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(tempStartTimeOut));\r\n      #endif\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// make a polling until temperature controlling is in controlling mode\r\n\t\tpollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity);\r\n\r\n      // wait for temperature is reached (get heating up errors)\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTemperature()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the current temperatur\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperature         :  Actual carrier temperature \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTemperature(\r\n      variable deviceNumber,\r\n      variable& temperature)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetTemperature);\r\n\r\n      startTrace(funcId);\r\n\r\n      temperature = 0;\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\ttemperature = getCurrentTemp(deviceNumber, hslTrue);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTemperatureState()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the state of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperatureState    :  State of temperature supervision 0 = OK, 1 = out of range, 2 = out of security\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTemperatureState(\r\n      variable deviceNumber,\r\n      variable& temperatureState)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetTemperatureState);\r\n      variable command(\"QE\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n      variable startPos;\r\n\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      temperatureState = TemperateParam::tempStateOk;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // format: qe##\r\n      startPos = cmdResult.Find(\"qe\");\r\n\r\n      if((cmdResult.GetLength() < TemperateParam::tempStateRequestLength) || (startPos < 0))\r\n      {\r\n         variable errMsg;\r\n         // \"Unknown format of firmware result string.\\r\\nExpected: '%s1'.\\r\\nReceived: '%s2'.\"\r\n         errMsg = StringTable::Load(IDE::unknownResultFormat);\r\n\r\n         StrReplace(errMsg, \"%s1\", \"qe##\");\r\n         StrReplace(errMsg, \"%s2\", cmdResult);\r\n\r\n         errorCompleteTrace(funcId, errMsg);\r\n         return (IDE::unknownResultFormat);\r\n      }\r\n\r\n      // read both temperature and calculate the average \r\n      // format: qe## ( 00, 62 or 63 )\r\n      if(cmdResult.Find(\"qe62\") >= 0)\r\n         temperatureState = TemperateParam::tempStateOutOfRange;\r\n      else\r\n      if(cmdResult.Find(\"qe63\") >= 0)\r\n         temperatureState = TemperateParam::tempStateOutOfSecurity;\r\n      else\r\n      if(cmdResult.Find(\"qe00\") < 0)\r\n         temperatureState = TemperateParam::tempStateTimeOut;\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetTempParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  startTimeout        :  Time which must elapse before temperature will be controlled\r\n   //  toleranceRange      :  Range of temperature tolerance\r\n   //  securityRange       :  Range of temperature security, on leave heater will be switched off\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetTempParameter(\r\n      variable deviceNumber,\r\n      variable startTimeout, variable toleranceRange, variable securityRange) void\r\n   {\r\n      variable funcId(IDF::SetTempParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"startTimeout\", startTimeout, TemperateParam::startTimeOutMin, TemperateParam::startTimeOutMax);\r\n      checkIntegerInput(funcId, \"startTimeout\", startTimeout);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"toleranceRange\", toleranceRange, TemperateParam::tempToleranceMin, TemperateParam::tempToleranceMax);\r\n      checkDoubleInput(funcId, \"toleranceRange\", toleranceRange);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"securityRange\", securityRange, TemperateParam::tempSecurityMin, TemperateParam::tempSecurityMax);\r\n      checkDoubleInput(funcId, \"securityRange\", securityRange);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::startTimeout, IStr(startTimeout));\r\n      progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue));\r\n      progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue));\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n \r\n \t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_tempStartTimeOut[deviceNumber-1] = startTimeout;\r\n      m_tempToleranceRange[deviceNumber-1] = toleranceRange;\r\n      m_tempSecurityRange[deviceNumber-1] = securityRange;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTempParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the parameter of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  startTimeout        :  Time which must elapse before temperature will be controlled\r\n   //  toleranceRange      :  Range of temperature tolerance\r\n   //  securityRange       :  Range of temperature security, on leave heater will be switched off\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTempParameter(\r\n      variable deviceNumber,\r\n      variable& startTimeout, variable& toleranceRange, variable& securityRange) void\r\n   {\r\n      variable funcId(IDF::GetTempParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      // init output parameter\r\n      startTimeout = TemperateParam::startTimeOutDefault;\r\n      toleranceRange = TemperateParam::tempToleranceDefault;\r\n      securityRange = TemperateParam::tempSecurityDefault;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      // set output parameter\r\n      startTimeout = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      toleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n      securityRange = m_tempSecurityRange.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::startTimeout, IStr(startTimeout));\r\n      progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue));\r\n      progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue));\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetPlateLock()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  plateLock        :  Lock / unlock flag\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetPlateLock(\r\n            variable deviceNumber,\r\n            variable plateLock)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::SetPlateLock);\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"plateLock\", plateLock, m_OFF, m_ON);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // start lock command\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, plateLock);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetFirmwareVersion()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get firmware version of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  out: firmwareVersion   :  firmware version format: \"1.0P 1999-03-10\"\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetFirmwareVersion(\r\n\t\t\tvariable deviceNumber,\r\n\t\t\tvariable& firmwareVersion)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetFirmwareVersion);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n      \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      firmwareVersion = \"0.0S 2008-01-01\";\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"RF\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\tstartPos = answString.Find(\"rf\");\r\n\t\tif(startPos >= 0)\r\n\t\t{\r\n\t\t\tfirmwareVersion = answString.Right(answString.GetLength()-(startPos+2));\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetSerialNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  out: firmwareVersion   :  firmware serial number format: \"####\"\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetSerialNumber(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable& serialNumber)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetSerialNumber);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      serialNumber = \"0000\";\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"QT\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\t// format: qt######/##/#### part number, revision, serial number\r\n\t\tstartPos = answString.Find(\"qt\");\r\n\t\tif(startPos >= 0 && answString.GetLength() > startPos+12)\r\n\t\t{\r\n\t\t\tserialNumber = answString.Mid((startPos+2+10), 4);\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function BeginMonitoring()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  in : shakerMin   \t:  Minimum RPM\r\n   //  in : shakerMax   \t:  Maximum RPM\r\n   //  in : sampleInterval :  Interval in sec. for check RPM and temperature\r\n   //  in : action   \t\t:  Continue / Abort (0 / 1)\r\n\t// \t\t\t\t\t\t\t\tNote: Abort will only called on an error after temperature controlling is activated ()\r\n\t//\t\t\t\t\t\t\t\t\t\t\tAn abort will end only the current heater/shaker.\r\n\t// \t\t\t\t\t\t\t\tNote:\theaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter()\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function BeginMonitoring(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable shakingToleranceRange,\r\n\t\t\t\tvariable sampleInterval,\r\n\t\t\t\tvariable action)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::BeginMonitoring);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n\t\tevent\t\tstartEvent;\r\n\t\tvariable sSpeed;\r\n\t\tvariable hTemp;\r\n\t\tvariable shakerMin(m_OFF);\r\n\t\tvariable shakerMax(ShakingParam::rpmMax);\r\n\t\tvariable heaterTempTol(m_OFF);\r\n\t\tvariable heaterMin(TemperateParam::tempMin);\r\n\t\tvariable heaterMax(TemperateParam::tempMax);\r\n\t\tvariable node;\r\n      variable nodeType;\r\n\t\tvariable funcName;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"shakingToleranceRange\", shakingToleranceRange, ShakingParam::shakeTolMin, ShakingParam::shakeTolMax);\r\n   \tcheckIntegerInputRange(funcId, \"sampleInterval\", sampleInterval, m_minSampleInterval, m_maxSampleInterval);\r\n      checkIntegerInputRange(funcId, \"action\", action, MonitorAction::monitorActionMin, MonitorAction::monitorActionMax);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tsSpeed = m_userShakingSpeed.GetAt(deviceNumber-1);\r\n   \thTemp = m_userTemperature.GetAt(deviceNumber-1);\r\n\t\theaterTempTol = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n\t\tm_monitorResult.SetAt(deviceNumber-1, -1);\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\t\tonerror goto 0;\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\t// if no shaker is initialized, set the maximum range\r\n\t\tif(hasShaker(funcId, deviceNumber, 0) && sSpeed > m_OFF)\r\n\t\t{\r\n\t\t\tshakerMin = sSpeed-shakingToleranceRange;\r\n\t\t\tif(shakerMin < 0)\r\n\t\t\t\tshakerMin = 0;\r\n\t\t\tshakerMax = sSpeed+shakingToleranceRange;\r\n\t\t}\r\n\t\telse if(sSpeed == m_OFF)\r\n\t\t{\r\n\t\t\tstring moniText;\r\n\t\t\tmoniText = StringTable::Load(IDS::monitoringShNotStart);\r\n         StrReplace(moniText, \"%s1\", nodeType);\r\n         StrReplace(moniText, \"%s2\", IStr(node));\r\n\r\n\t\t\t// Shaking on %s1 ( %s2 ) not started, check of speed limit will be disabled!\r\n\t\t\tprogressTrace(funcId, IDS::monitoringWarning, moniText);\r\n\t\t}\r\n\r\n\t\tif(hasHeater(funcId, deviceNumber, 0) && hTemp > m_OFF)\r\n\t\t{\r\n\t\t\theaterMin = hTemp - heaterTempTol;\r\n\t\t\tif(heaterMin < m_OFF)\r\n\t\t\t\theaterMin = m_OFF;\r\n\t\t\theaterMax = hTemp + heaterTempTol;\r\n\t\t}\r\n\t\telse if(hTemp == m_OFF)\r\n\t\t{\r\n\t\t\tvariable moniText;\r\n\t\t\tmoniText = StringTable::Load(IDS::monitoringHeNotStart);\r\n         StrReplace(moniText, \"%s1\", nodeType);\r\n         StrReplace(moniText, \"%s2\", IStr(node));\r\n\r\n\t\t\t// Heating up on %s1 ( %s2 ) not started, check of temperature limit will be disabled!\r\n\t\t\tprogressTrace(funcId, IDS::monitoringWarning, moniText);\r\n\t\t}\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      // Prepare the globals for the hsl thread.\r\n\t   m_monitorDeviceNumber\t\t\t\t= deviceNumber;\r\n\t   m_monitorShakerMin\t\t\t\t\t= shakerMin;\r\n\t   m_monitorShakerMax\t\t\t\t\t= shakerMax;\r\n\t   m_monitorSampleInterval\t\t\t\t= sampleInterval;\r\n\t   m_monitorAction\t\t\t\t\t\t= action;\r\n\t   m_monitorResult[deviceNumber-1] \t= -1;\r\n\t\tm_monitorHeaterMin\t\t\t\t\t= heaterMin;\r\n\t\tm_monitorHeaterMax\t\t\t\t\t= heaterMax;\r\n\r\n\r\n      Fork( \"monitorHeaterShaker\" );\r\n\r\n\t\t// wait until thread has received the global data (maximum 10 seconds)\r\n\t\tm_monitorStartEvent.WaitEvent(10);\r\n\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function EndMonitoring()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  out: monitorResult  :  -1 = monitoring has not started or is not initialized\r\n\t// \t\t\t\t\t\t\t\t0 = heating and shaking values were within specification\r\n\t// \t\t\t\t\t\t\t\t1 = heating out of range\r\n\t// \t\t\t\t\t\t\t\t2 = shaking out of range\r\n\t// \t\t\t\t\t\t\t\t3 = heating and shaking out of range\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function EndMonitoring(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable& monitorResult)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::EndMonitoring);\r\n\t\tevent\t\tintervalEvent;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tintervalEvent = m_monitorEvent.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      intervalEvent.SetEvent();\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tmonitorResult = m_monitorResult.GetAt(deviceNumber-1);\r\n\t\tm_monitorResult.SetAt(deviceNumber-1, -1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetSimulation()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the internal flag m_isSimulate.\r\n   //  If this flag is set, only parameter checks are made on all exported function\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  simulate   :  Flag for set the simulate mode, must be a number 0/1\r\n   //\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n \tfunction SetSimulation(variable simulate) void\r\n\t{\r\n      variable funcId(IDF::SetSimulation);\r\n\r\n      startTrace(funcId);\r\n\r\n      checkIntegerInputRange(funcId, \"simulate\", simulate, m_OFF, m_ON);\r\n\r\n  \t\tprogressTrace(funcId, IDS::setSimulate, IStr(simulate));\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_isSimulate = hslFalse;\r\n      if(simulate == m_ON)\r\n\t\t   m_isSimulate = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SendFirmwareCommand()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Send a command to the device\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  command\t\t\t\t:  Firmware command without node name ( 2 letter )\r\n   //  parameter\t\t\t:  Parameter dependent of the used command\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise            :  An exception is throw on wrong parameter or time out \r\n   //  string           :  Firmware command result data string\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SendFirmwareCommand(\r\n      variable deviceNumber,\r\n      variable command, variable parameter)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::SendFirmwareCommand);\r\n      string   cmd;\r\n      string   cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkStringInput(funcId, \"command\", command);\r\n      checkStringInput(funcId, \"parameter\", parameter);\r\n\r\n      // check for two character as command\r\n      cmd = command;\r\n      if(cmd.GetLength() != m_firmwareCmdLength)\r\n      {\r\n         variable funcName;\r\n         string errMsg;\r\n\r\n         // \"Wrong length of input parameter.\\r\\nParameter = '%s1' length (%s2).\\r\\nExpected lenght (%s3).\"\r\n         errMsg = StringTable::Load(IDE::wrongParameterLength);\r\n         StrReplace(errMsg, \"%s1\", \"command\");\r\n         StrReplace(errMsg, \"%s2\", IStr(cmd.GetLength()));\r\n         StrReplace(errMsg, \"%s3\", IStr(m_firmwareCmdLength));\r\n\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         Error::RaiseEx(IDE::wrongParameterLength, errMsg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      endTrace(funcId);\r\n      return (cmdResult);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetUSBTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  trace\t\t\t\t:  Trace on / off. 0 = off, 1 = on\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise            :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetUSBTrace(variable trace) void\r\n   {\r\n      variable funcId(IDF::SetUSBTrace);\r\n\r\n      startTrace(funcId);\r\n\r\n      checkIntegerInputRange(funcId, \"trace\", trace, m_OFF, m_ON);\r\n\r\n  \t\tprogressTrace(funcId, IDS::setTrace, IStr(trace));\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tm_usbTrace = hslFalse;\r\n      // set trace flag\r\n      if(trace == 1)\r\n\t\t\tm_usbTrace = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Internal helper function declaration\r\n\t*\r\n\t****************************************************************************************/\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Library Initialization and data access functions\r\n\t// --------------------------------------------------------------------------------------\r\n   static function initStringTable() void\r\n   {\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\tif(0 == m_hhsCriticalSection)\r\n\t\t\tm_hhsCriticalSection = SynInitializeCriticalSection();\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      if(!m_isStringTableInitialized)\r\n      {\r\n\t\t\tStringTable::Init(\"HSLHamHeaterShakerStringTable\");\r\n         m_isStringTableInitialized = hslTrue;\r\n      }\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\tstatic function InitializeNode(variable funcId, variable deviceNumber)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n\t\tvariable node;\r\n      variable nodeNameId(IDS::starNode);\r\n\r\n      // check if the library set to simulate\r\n      if(isSimulate(funcId, deviceNumber, hslFalse))\r\n         return(funcRc);\r\n\r\n      // init node if needed      \r\n      if(!isHeaterInitialized(deviceNumber))\r\n      {  \r\n         string answString;\r\n\t\t\tvariable hhsSettings(-1);\r\n\r\n\t\t\t// on usb check connection\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t{\r\n            if(!isUsbConnected(funcId))\r\n               return (IDE::retNotConnectErr);\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\t\t\t}\r\n\r\n\t\t\t// ask for settings\r\n         setHHSSetting(funcId, deviceNumber, hhsSettings);\r\n         if(0 < funcRc)\r\n             return (funcRc);\r\n\r\n\t\t\t// check if shaking activated\r\n\t\t\tif((hhsSettings != m_shakingPropertyHeatAndShake) && (hhsSettings != m_shakingPropertyOnlyShake))\r\n            return (funcRc);\r\n\r\n         // init HHS on nodes if needed\r\n\t\t\tanswString = sendMsg(deviceNumber, \"QW\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\t\tif(isStarDevice(deviceNumber))\r\n\t\t\t{\r\n\r\n            funcRc = isFirmwError(funcId, answString, hslTrue);\r\n            if(0 < funcRc)\r\n                return (funcRc);\r\n\t\t\t}\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n     \r\n         // check for timeout, if timeout, only node 0 is installed without any other CAN nodes\r\n         // if CAN error, this node is not available\r\n         if((answString.Find(m_fwTimeoutError) >= 0) || (answString.Find(m_fwCanError) >= 0))\r\n         {\r\n            // \"%s1 '%s2' not available.\"\r\n            string msg;\r\n            string nodeName;\r\n            variable funcName;\r\n            msg = StringTable::Load(IDE::neededNodeNotAvailable);\r\n            nodeName = StringTable::Load(nodeNameId);\r\n            funcName = StringTable::Load(funcId);\r\n\r\n\r\n            StrReplace(msg, \"%s1\", nodeName);\r\n            StrReplace(msg, \"%s2\", IStr(node));\r\n            errorCompleteTrace(funcId, msg);\r\n\r\n            if(answString.Find(m_fwTimeoutError) >= 0)\r\n               Error::RaiseEx(IDE::neededNodeNotAvailable, msg, GetFileName(), funcName, GetLineNumber());\r\n            else\r\n               Error::RaiseEx(IDE::canError, msg, GetFileName(), funcName, GetLineNumber());\r\n         }\r\n\r\n\t\t\ttraceFirmwareVersion(funcId, deviceNumber);\r\n\t\t\t\r\n         if(answString.Find(m_fwIsInitialized) >= 0)\r\n            setHeaterInitialized(deviceNumber);\r\n         else\r\n         {\r\n// change of 2009/08/13\r\n//            answString = sendMsg(deviceNumber, \"SI\", \"\", m_usbInitTimeout, hslTrue);\r\n//            if(answString.Find(m_fwNoError) >= 0)\r\n//            {\r\n//\t            answString = sendMsg(deviceNumber, \"LI\", \"\", m_usbInitTimeout, hslTrue);\r\n//               if(answString.Find(m_fwNoError) >= 0)\r\n//                  setHeaterInitialized(deviceNumber);\r\n//            }\r\n            answString = sendMsg(deviceNumber, \"LI\", \"\", m_usbInitTimeout, hslTrue);\r\n            sendMsg(deviceNumber, \"LP\", \"lp1\", m_usbInitTimeout, hslTrue);\r\n\r\n            if(answString.Find(m_fwNoError) >= 0)\r\n            {\r\n\t            answString = sendMsg(deviceNumber, \"SI\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n               if(answString.Find(m_fwNoError) >= 0)\r\n                  setHeaterInitialized(deviceNumber);\r\n\r\n               sendMsg(deviceNumber, \"LP\", \"lp0\", m_usbInitTimeout, hslTrue);\r\n            }\r\n// end change of 2009/08/13\r\n\r\n            funcRc = isFirmwError(funcId, answString, hslTrue);\r\n            if(0 < funcRc)\r\n               return (funcRc);\r\n         }\r\n      }\r\n\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n\tstatic function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      initStringTable();\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!m_initializedLib)\r\n      {\r\n         variable nodeIndex(0);\r\n\r\n\t\t\tRegisterAbortHandler(\"HSLHamHeaterShaker::OnAbortHHSLibrary\");\r\n\r\n\t\t   m_monitorDeviceNumber\t= m_OFF;\r\n\t\t   m_monitorShakerMin\t\t= m_OFF;\r\n\t\t   m_monitorShakerMax\t\t= m_OFF;\r\n\t\t   m_monitorSampleInterval\t= m_OFF;\r\n\t\t   m_monitorAction\t\t\t= m_OFF;\r\n\r\n         for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++)\r\n         {\r\n            m_initializedHeater[nodeIndex] = hslFalse;\r\n            m_shakingDirection[nodeIndex] = ShakingParam::directionDefault;\r\n            m_shakingAccRamp[nodeIndex] = ShakingParam::rampDefault;\r\n            m_shakingTimeOut[nodeIndex] = m_OFF;\r\n            m_tempStartTimeOut[nodeIndex] = TemperateParam::startTimeOutDefault;\r\n            m_tempToleranceRange[nodeIndex] = TemperateParam::tempToleranceDefault;\r\n            m_tempSecurityRange[nodeIndex] = TemperateParam::tempSecurityDefault;\r\n\t\t\t\tm_userShakingSpeed[nodeIndex] = m_OFF;\r\n\t\t\t\tm_userTemperature[nodeIndex] = m_OFF;\r\n\r\n\t\t\t\tm_deviceName[nodeIndex] = \"\";\r\n\t\t\t\tm_isStarSimulate[nodeIndex] = hslFalse;\r\n\t\t\t\tm_nodeNumber[nodeIndex] = m_OFF;\r\n\t\t\t\tm_hhsSetting[nodeIndex] = m_OFF;\r\n\r\n\t\t\t\tm_monitorResult[nodeIndex] = -1;\r\n         }\r\n\r\n         m_initializedLib = hslTrue;\r\n\r\n\t\t}\r\n\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // check for node initialize, this call must be outside of CriticalSection\r\n      if(initShaker > m_OFF)\r\n         funcRc = InitializeNode(funcId, deviceNumber);\r\n\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n   static function isUsbConnected(variable funcId)\r\n   {\r\n      variable rc (hslFalse);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!m_usbComObject.IsNull())\r\n      {\r\n         if(m_usbComObject.Connected)\r\n            rc = hslTrue;\r\n      }\r\n\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!rc)\r\n      {\r\n         variable msg;\r\n         msg = StringTable::Load(IDS::noUsbConnection);\r\n         errorCompleteTrace(funcId, msg);\r\n      }\r\n\r\n      return (rc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n \tstatic function isSimulate(variable funcId, variable deviceNumber, variable makeTrace)\r\n\t{\r\n      variable retVal(hslFalse);\r\n      variable starSimState(hslFalse);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tretVal = m_isSimulate;\r\n      starSimState = m_isStarSimulate[deviceNumber-1];\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // if m_isSimulate is set, both devices are simulate\r\n      // if m_isSimulate is not set, check if useMlStar and m_isStarSimulate is set\r\n\r\n      if(retVal)\r\n      {\r\n         // if simulate, trace the function end\r\n         if(makeTrace)\r\n     \t\t   endTrace(funcId);\r\n         return (retVal);\r\n      }\r\n\r\n      if(starSimState)\r\n      {\r\n         // if simulate, trace the function end\r\n         if(makeTrace)\r\n        \t\tendTrace(funcId);\r\n         return (hslTrue);\r\n      }\r\n\r\n      // simulation is not set\r\n      return (retVal);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n\t}\r\n\r\n   // uses node from 1 to 10\r\n   static function isHeaterInitialized(variable deviceNumber)\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      retVal = m_initializedHeater.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n   // uses node from 1 to 10\r\n   static function setHeaterInitialized(variable deviceNumber)\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_initializedHeater[deviceNumber-1] = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n   static function isUsbTrace()\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      retVal = m_usbTrace;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n\r\n \t// --------------------------------------------------------------------------------------\r\n\t// Communication functions\r\n\t// --------------------------------------------------------------------------------------\r\n \r\n \t//====================================================================\r\n\t//\r\n\t// Internal function getSendState()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Check the connect and initialize state.\r\n   //  Must be call from each interface function which will send a command to the shaker\r\n\t//====================================================================\r\n   static function getSendState(variable funcId, variable deviceNumber, variable isShaker)\r\n   {\r\n      variable node;\r\n      variable nodeTxt;\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n      nodeTxt = StringTable::Load(IDS::starNode);\r\n\r\n\r\n      if(!isStarDevice(deviceNumber))\r\n      {\r\n         if(!isUsbConnected(funcId))\r\n            return (IDE::retNotConnectErr);\r\n         nodeTxt = StringTable::Load(IDS::usbNode);\r\n      }\r\n\r\n      if(!isHeaterInitialized(deviceNumber) && isShaker)\r\n      {\r\n         // \"%s1 '%s2' not initialized'.\"\r\n         variable msg;\r\n         msg = StringTable::Load(IDS::neededNodeNotInitialized);\r\n         StrReplace(msg, \"%s1\", nodeTxt);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n         return (IDE::retNotInitErr);\r\n      }\r\n\r\n      return (IDE::noError);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendMsg()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command dependent of device to a star or to the usb.\r\n\t//====================================================================\r\n   static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace)\r\n\t{\r\n      variable receMsg;\r\n\t\t\r\n\t\tif(isStarDevice(deviceNumber))\r\n\t\t{\r\n\t\t\treceMsg = sendToStar(deviceNumber, command, parameter, makeTrace);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treceMsg = sendToUsb(deviceNumber, command, parameter, timeOut);\r\n\t\t}\r\n\r\n\t\treturn (receMsg);\r\n\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToUsb()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command to the corresponding device node via USB.\r\n\t//====================================================================\r\n   static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut)\r\n   {\r\n\t\tvariable node;\r\n      variable sendMsg(\"T\");\r\n      variable receMsg;\r\n      string cmd(command);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      sendMsg = sendMsg + IStr(node-1); // USB has an 0 bsed adderss node 0..7\r\n      sendMsg = sendMsg + command;\r\n      sendMsg = sendMsg + parameter;\r\n\r\n      if(isUsbTrace())\r\n  \t\t\tprogressTrace(IDS::sendToUsb, IDS::sendMessageTitle, sendMsg);\r\n\r\n      receMsg = m_usbComObject.Request(sendMsg, timeOut); \r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (cmd.Find(\"RF\") < 0))\r\n\t  \t\tprogressTrace(IDS::sendToUsb, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToStar()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command to the corresponding device node via ML_STAR component.\r\n\t//====================================================================\r\n   static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace)\r\n   {\r\n\t\tvariable stepShowNameKey(-534118376);\r\n\t\tvariable globalKey(-534183935);\r\n\t\tvariable orderKey(-534183816);\r\n\t\tvariable parameterKey(-534183815);\r\n\t\tvariable resultDataKey(-534118396);\r\n\t\tvariable resultDataPos(4);\r\n\t\tvariable node;\r\n\t\tobject\tstarObject;\r\n\t   object \tparsIn;\r\n   \tobject \tparsOut;\r\n      variable command(\"T\");\r\n      variable parameter(param);\r\n\t\tvariable result4;\r\n      variable receMsg;\r\n      string   tempMsg;\r\n      string   tempCmd(cmd);\r\n      variable errPos;\r\n\r\n      // device node must be 1 or 2 -->> node must not be updated\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\tonerror goto objectError;\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tstarObject = m_starDeviceObj.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\t\tonerror goto 0;\r\n\r\n      command = command + IStr(node);\r\n      command = command + cmd;\r\n\r\n      if(isUsbTrace() && makeTrace)\r\n      {\r\n         string   sendMsg(command);\r\n         sendMsg = sendMsg + param;\r\n  \t\t\tprogressTrace(IDS::sendToStar, IDS::sendMessageTitle, sendMsg);\r\n      }\r\n\r\n      // set the command at first of the receMsg\r\n      receMsg = command;\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\t// create data pars for the firmwareCommand\r\n\t   parsIn.CreateObject(\"HXPARAMSLib.HxPars\", hslFalse);\r\n\t   parsOut.CreateObject(\"HXPARAMSLib.HxPars\", hslFalse);\r\n\r\n\t   parsIn.Add(2, \"ParsCommandVersion\");\r\n\t   parsIn.Add(\"FirmwareCommand\", \"StepName\");\r\n\t   parsIn.Add(457, stepShowNameKey);\r\n\t   parsIn.Add(0, \"NbrOfErrors\");\r\n\t   parsIn.Add(command, globalKey, orderKey);\r\n\t   parsIn.Add(parameter, globalKey, parameterKey);\r\n\r\n\r\n\t\t// send command\r\n\t\tstarObject.FirmwareCommand(parsIn, parsOut);\r\n\r\n\t   result4 = parsOut.Item(resultDataKey, resultDataPos);\r\n\r\n\t\tparsIn.ReleaseObject();\r\n\t\tparsOut.ReleaseObject();\r\n\r\n      receMsg = receMsg + result4;\r\n      tempMsg = receMsg;\r\n\r\n      // remove the master error erXX/XX so that the result string is the same than on USB command erXX\r\n      errPos = tempMsg.Find(\"er\");\r\n      if(errPos >= 0)\r\n      {\r\n         if(tempMsg.GetLength() > errPos + 4)\r\n         {\r\n            if(tempMsg.Mid(errPos+4, 1) == \"/\")\r\n            {\r\n               // the simulator returns er01/00 on a unknown command,\r\n               // in this case, remove the slave error not the master error\r\n               if(tempMsg.GetLength() >= errPos + 7)\r\n               {\r\n                  // check slave error\r\n                  if(tempMsg.Mid(errPos+5, 2) == \"00\")\r\n                  {\r\n                     // use the master error, so that the return is not null\r\n                     receMsg = tempMsg.Left(errPos+4);\r\n                     receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+7));\r\n                  }\r\n                  else\r\n                  {\r\n                     // use the slave error\r\n                     receMsg = tempMsg.Left(errPos+2);\r\n                     receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+5));\r\n                  }\r\n               }\r\n            }\r\n         }\r\n      }\r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (tempCmd.Find(\"RF\") < 0) && makeTrace)\r\n\t  \t\tprogressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         variable errId( err.GetId( ) );\r\n\r\n\t\t\tparsIn.ReleaseObject();\r\n\t\t\tparsOut.ReleaseObject();\r\n\r\n         // no connection\r\n         if(errId == -1591212031 || errId == -1574764487)\r\n         {\r\n            receMsg = receMsg + \"er0\";\r\n            receMsg = receMsg + IStr(IDE::retNotConnectErr);\r\n         }\r\n         else\r\n            Error::RaiseLast();\r\n      }\r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (tempCmd.Find(\"RF\") < 0))\r\n\t  \t\tprogressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n\r\n\t\tobjectError:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n      return (receMsg);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startPlateLockCmd()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock / Unlock the plate\r\n   //  Will make a short error handling on not init and step loss error\r\n\t//====================================================================\r\n   static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock)\r\n   {\r\n\t\tvariable node;\r\n      variable command(\"LP\");\r\n      variable parameter(\"lp\");\r\n      string   cmdResult;\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n      parameter = parameter + IStr(plateLock);\r\n\r\n      // lock / unlock plate\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      // check for init or staep lost error\r\n      // On step lost, this drive is lost the init state and must be initialized again\r\n      // The library internal initialization flag is set allready and must nod set again\r\n      if((cmdResult.Find(m_fwPlNotInitError) >= 0) || (cmdResult.Find(m_fwPlStepLostError) >= 0))\r\n      {\r\n         string cmdResult2;\r\n\r\n         // init drive again\r\n\t\t\tcmdResult2 = sendMsg(deviceNumber, \"LI\", \"\", m_usbMsgTimeout, hslTrue);\r\n\r\n         // init has end success\r\n         if(cmdResult2.Find(m_fwNoError) >= 0)\r\n         {\r\n            // lock / unlock plate\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n         }\r\n      }\r\n      return (cmdResult);\r\n   } \r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startShakingCmd()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Start / Stop plate shaking\r\n   //  Will make a short error handling on not init and step loss error\r\n\t//====================================================================\r\n   static function startShakingCmd(\r\n      variable funcId, variable deviceNumber,\r\n      variable command, variable parameter, variable isStart)\r\n   {\r\n      string   cmdResult;\r\n\r\n\t\t// send command\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      // check for init or step lost error\r\n      // On step lost, this drive is lost the init state and must be initialized again\r\n      // The library internal initialization flag is set allready and must nod set again\r\n      if((cmdResult.Find(m_fwShNotInitError) >= 0) || (cmdResult.Find(m_fwShStepLostError) >= 0))\r\n      {\r\n         string cmdResult2;\r\n\r\n         // init drive again\r\n         cmdResult2 = sendMsg(deviceNumber, \"SI\", \"\", m_usbMsgTimeout, hslTrue);\r\n\r\n         // if not start, do not repeat the main command and return the really returned error\r\n         if(isStart)\r\n         {\r\n            // init has end success\r\n            if(cmdResult2.Find(m_fwNoError) >= 0)\r\n            {\r\n\t\t\t\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n            }\r\n         }\r\n      }\r\n      return (cmdResult);\r\n   } \r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function setHHSSetting()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check the given deviceNumber from a interface function\r\n\t//====================================================================\r\n\tstatic function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting)\r\n\t{\r\n      string   cmdResult;\r\n      variable funcRc(IDE::noError);\r\n\r\n\t\thhsSetting = 0;\r\n      if(!isSimulate(0, deviceNumber, hslFalse))\r\n\t\t{\r\n\t\t\tvariable startPos(-1);\r\n\r\n\t\t\t// read the HHS settings\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"QU\", \"\", m_usbMsgTimeout, hslTrue);\r\n\t\t\tfuncRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n         if(0 < funcRc)\r\n            return (funcRc);\r\n\r\n      \tstartPos = cmdResult.Find(\"au\");\r\n\t      if(startPos >= 0 && cmdResult.GetLength() >= 25)\r\n\t      {\r\n\t\t\t\tvariable shaker;\r\n\t\t\t\tvariable heater;\r\n\t\t\t\t// cmdResult auswerten\r\n\t\t\t\t// format \"TxQUau0 0 0 0 0 0 0 0 0 0\"\r\n\t\t\t\tshaker = cmdResult.Mid(startPos+2, 1);\r\n\t\t\t\theater = cmdResult.Mid(startPos+4, 1);\r\n\t\t\t\tif(shaker == \"1\" && heater == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyNothing;\r\n\t\t\t\telse\r\n\t\t\t\tif(shaker == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyOnlyHeat;\r\n\t\t\t\telse\r\n\t\t\t\tif(heater == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyOnlyShake;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tm_hhsSetting[deviceNumber-1] = hhsSetting;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function hasHeater()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the heater is activated on current HHS\r\n\t//====================================================================\r\n\tstatic function hasHeater(variable funcId, variable deviceNumber, variable throw)\r\n\t{\r\n\t\tvariable hhsSettings(-1);\r\n      variable funcRc(hslFalse);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\thhsSettings = m_hhsSetting.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyHeat))\r\n\t\t\tfuncRc = hslTrue;\r\n\r\n\t\tif(funcRc == hslFalse && throw == 1)\r\n\t\t{\r\n\t\t\t// \"Current HHS module on %s1 '%s2' cannot used as heater\"\r\n\t      variable nodeNameId(IDS::starNode);\r\n\t      variable node;\r\n         string \tmsg;\r\n         string \tnodeName;\r\n         variable funcName;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n         msg = StringTable::Load(IDS::heatingNotActivated);\r\n         nodeName = StringTable::Load(nodeNameId);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", nodeName);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n         errorCompleteTrace(funcId, msg);\r\n\r\n         Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function hasShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the heater is activated on current HHS\r\n\t//====================================================================\r\n\tstatic function hasShaker(variable funcId, variable deviceNumber, variable throw)\r\n\t{\r\n\t\tvariable hhsSettings(-1);\r\n      variable funcRc(hslFalse);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\thhsSettings = m_hhsSetting.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyShake))\r\n\t\t\tfuncRc = hslTrue;\r\n\r\n\t\tif(funcRc == hslFalse && throw)\r\n\t\t{\r\n\t\t\t// \"Current HHS module on %s1 '%s2' cannot used as shaker.\"\r\n\t      variable nodeNameId(IDS::starNode);\r\n\t      variable node;\r\n         string \tmsg;\r\n         string \tnodeName;\r\n         variable funcName;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n         msg = StringTable::Load(IDS::shakingNotActivated);\r\n         nodeName = StringTable::Load(nodeNameId);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", nodeName);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n         errorCompleteTrace(funcId, msg);\r\n\r\n         Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Library traces\r\n\t// --------------------------------------------------------------------------------------\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function versionTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the start of a exported function\r\n\t//====================================================================\r\n   static function versionTrace() void\r\n   {\r\n\t\tvariable traceSource;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      FormatTrace(traceSource, \"HSLHamHeaterShakerLib\", TraceStatus::cmd_progress, HamHeaterShakerVersion);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the start of a exported function\r\n\t//====================================================================\r\n   static function startTrace(variable funcName) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_start);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function progressTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces a msg during a exported function is working\r\n\t//====================================================================\r\n   static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable progressTitle;\r\n      variable progressMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(progMsgTitle) == \"i\")\r\n         progressTitle = StringTable::Load(progMsgTitle);\r\n      else\r\n         progressTitle = progMsgTitle;\r\n\r\n      if(GetType(progMsg) == \"i\")\r\n         progressMsg = StringTable::Load(progMsg);\r\n      else\r\n         progressMsg = progMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressTitle, progressMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function errorTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces an error msg during a exported function is working\r\n\t//====================================================================\r\n   static function errorTrace(variable funcName, variable errMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable errorMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(errMsg) == \"i\")\r\n         errorMsg = StringTable::Load(errMsg);\r\n      else\r\n         errorMsg = errMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_error, errorMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function errorCompleteTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces an error msg on end of an exported function\r\n\t//====================================================================\r\n   static function errorCompleteTrace(variable funcName, variable errMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable errorMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(errMsg) == \"i\")\r\n         errorMsg = StringTable::Load(errMsg);\r\n      else\r\n         errorMsg = errMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_errComplete, errorMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function endTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the end of an exported function\r\n\t//====================================================================\r\n   static function endTrace(variable funcName) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_complete);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function traceFirmwareVersion()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the firmware version of an used heater shaker\r\n\t//====================================================================\r\n\t// this function is used in InitializeLibrary() and uses index 0..10\t\r\n\tstatic function traceFirmwareVersion(variable funcId, variable deviceNumber)\r\n\t{\r\n      variable nodeNameId(IDS::starNode);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos(0);\r\n\t\t\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"RF\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n\t\tstartPos = answString.Find(\"rf\");\r\n\t\tif(startPos >= 0)\r\n\t\t{\r\n\t\t\tstring fwVers;\r\n\t\t\tstring title;\r\n\t\t\tstring nodeName;\r\n\t\t\tvariable node;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\t\tfwVers = answString.Right(answString.GetLength()-(startPos+2));\r\n\t\t\t// Text: \"%s1 '%s2' firmware version = \"\r\n\t\t\ttitle = StringTable::Load(IDS::firmwareVersion);\r\n\t\t\tnodeName = StringTable::Load(nodeNameId);\r\n\t\t\t\r\n\t\t\tStrReplace(title, \"%s1\", nodeName);\r\n\t\t\tStrReplace(title, \"%s2\", IStr(node));\r\n\r\n\r\n\t\t\tprogressTrace(funcId, title, fwVers);\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToProgressTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces a msg during a exported function is working\r\n\t//====================================================================\r\n   static function sendToProgressTrace(\r\n      variable funcName,\r\n      variable deviceNumber)\r\n      void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable nodeNameId(IDS::starNode);\r\n\t\tstring   nodeName;\r\n      variable progressMsg;\r\n      variable node;\r\n\r\n      initStringTable();\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\tif(!isStarDevice(deviceNumber))\r\n         nodeNameId = IDS::usbNode;\r\n\r\n      nodeName = StringTable::Load(nodeNameId);\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      // Text: \"Start command to %s1(%s2).\"\r\n      progressMsg = StringTable::Load(IDS::progressSendTo);\r\n\r\n\r\n      StrReplace(progressMsg, \"%s1\", nodeName);\r\n      StrReplace(progressMsg, \"%s2\", IStr(node));\r\n\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressMsg);\r\n   }\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Input parameter check function\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkStringInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a string\r\n\t//====================================================================\r\n   static function checkStringInput(variable funcId, variable parameterName, variable input)\r\n   {\r\n      if(GetType(input) != \"s\")\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a string.\r\n         string msg;\r\n         string param;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noStringValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"i\")\r\n            param = IStr(input);\r\n         if(GetType(input) == \"f\")\r\n            param = FStr(input, hslTrue);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noStringValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDoubleInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a double\r\n\t//====================================================================\r\n   static function checkDoubleInput(\r\n      variable funcId, variable parameterName, variable input)\r\n   {\r\n      if((GetType(input) != \"f\") && (GetType(input) != \"i\"))\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a number.\r\n         string msg;\r\n         string param(\"'%s'\");\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noDoubleValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"s\")\r\n            StrReplace(param, \"%s\", input);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noDoubleValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDoubleInputRange()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a double in a defined range\r\n\t//====================================================================\r\n   static function checkDoubleInputRange(\r\n      variable funcId, variable parameterName, variable input, variable min, variable max)\r\n   {\r\n      checkDoubleInput(funcId, parameterName, input);\r\n\r\n      if((input < min) || (input > max))\r\n      {\r\n         // \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n         string msg;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDS::parameterOutOfRange);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", FStr(input, hslTrue));\r\n         StrReplace(msg, \"%s3\", FStr(min, hslTrue));\r\n         StrReplace(msg, \"%s4\", FStr(max, hslTrue));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkIntegerInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a integer\r\n\t//====================================================================\r\n   static function checkIntegerInput(\r\n      variable funcId, variable parameterName, variable input)\r\n   {\r\n      if(GetType(input) != \"i\")\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a number.\r\n         string msg;\r\n         string param;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noIntegerValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"s\")\r\n         {\r\n            param = \"'\";\r\n            param = param + input;\r\n            param = param + \"'\";\r\n         }\r\n         if(GetType(input) == \"f\")\r\n            param = FStr(input, hslTrue);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noIntegerValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkIntegerInputRange()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a integer in a defined range\r\n\t//====================================================================\r\n   static function checkIntegerInputRange(\r\n      variable funcId, variable parameterName, variable input, variable min, variable max)\r\n   {\r\n      checkIntegerInput(funcId, parameterName, input);\r\n\r\n      if((input < min) || (input > max))\r\n      {\r\n         // \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n         string msg;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDS::parameterOutOfRange);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", IStr(input));\r\n         StrReplace(msg, \"%s3\", IStr(min));\r\n         StrReplace(msg, \"%s4\", IStr(max));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function isStarDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the used deviceNumber from a ML_STAR\r\n\t//====================================================================\r\n\tstatic function isStarDevice(variable deviceNumber)\r\n\t{\r\n\t\tvariable funcRc(hslFalse);\r\n\t\tvariable devName;\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tdevName = m_deviceName.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// check for usb name\r\n\t\tif(devName != m_hhsUsbObjectName)\r\n\t\t{\r\n\t\t\tfuncRc = hslTrue;\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getNodeFromDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Retunrs the saved node ID dependent of the deviceNumber\r\n\t//====================================================================\r\n\tstatic function getNodeFromDeviceNumber(variable deviceNumber)\r\n\t{\r\n\t\tvariable usedNode;\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tusedNode = m_nodeNumber.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return(usedNode);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check the given deviceNumber from a interface function\r\n\t//====================================================================\r\n\tstatic function checkDeviceNumber(variable funcId, variable deviceNumber)\r\n\t{\r\n\t\tvariable devName, nodeNr;\r\n\r\n\t\tif((deviceNumber < m_firstDeviceNumber) || (deviceNumber > m_lastDeviceNumber))\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n         msg = StringTable::Load(IDS::invalidDeviceNumber);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tdevName = \tm_deviceName.GetAt(deviceNumber-1);\r\n\t\tnodeNr = \tm_nodeNumber.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// check for usb name\r\n\t\tif((devName == \"\") || (nodeNr == 0))\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n         msg = StringTable::Load(IDS::invalidDeviceNumber);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function formatParam()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Formats an numeric input to a string with leading 0 to lenth of strWidth\r\n\t//====================================================================\r\n\tstatic function formatParam(\r\n\t\t\tvariable param,\t\t\t\t\t\t\t\t\t\t\t// i: the paramter to normalize (integer)\r\n\t\t\tvariable strWidth)\t\t\t\t\t\t\t\t\t\t// i: the width to be filled (integer)\r\n\t{\r\n\t\tstring sParam; \r\n\t\tsParam = IStr(param);\r\n\t\tStrFillLeft(sParam, \"0\", strWidth);\r\n\t\treturn (sParam);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function normalizeParam()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Formats an numeric (double)input to 1/10 values and format it\r\n   //\tto a string with leading 0 to lenth of strWidth\r\n\t//====================================================================\r\n\tstatic function normalizeParam(\t\t\t\t\t\t\t\t// returns the given parameter normalized for firmware command as string\r\n\t\t\tvariable param,\t\t\t\t\t\t\t\t\t\t\t// i: the paramter to normalize as float or integer\r\n\t\t\tvariable strWidth)\t\t\t\t\t\t\t\t\t\t// i: the width to be filled (integer)\r\n\t{\r\n\t\tstring sParam; \r\n\t\tsParam = IStr(Floor(MthRound(param*10, 0)));\r\n\t\tStrFillLeft(sParam, \"0\", strWidth);\r\n\t\treturn (sParam);\r\n\t}\r\n\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Firmware error check function\r\n\t// --------------------------------------------------------------------------------------\r\n\t\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getFirmwErrorId()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tReads the firmware error number from cmdResult string and convert it to a number\r\n\t//====================================================================\r\n   static function getFirmwErrorId(string cmdResult)\r\n   {\r\n      variable errNr(0);\r\n      variable startPos(0);\r\n      startPos = cmdResult.Find(\"er\");\r\n\r\n      if((startPos >= 0) && ((startPos+4) <= cmdResult.GetLength()))\r\n      {\r\n         variable errNo;\r\n         errNo = cmdResult.Mid((startPos+2), 2);\r\n         errNr = IVal(errNo);\r\n      }\r\n      return (errNr);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getErrIdFromFirmwareError()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tConverts the firmware error number to function return error number\r\n\t//====================================================================\r\n   static function getErrIdFromFirmwareError(string cmdResult)\r\n   {\r\n      variable firmwErrId(getFirmwErrorId(cmdResult));\r\n      \r\n      if(0 == firmwErrId)\r\n         return (IDE::noError);\r\n      else if(1 == firmwErrId)\r\n         return (IDE::retErr);\r\n      else if(2 == firmwErrId)\r\n         return (IDE::retNotInitErr);\r\n      else if(3 == firmwErrId)\r\n         return (IDE::retNotConnectErr);\r\n      else if (10 == firmwErrId)\r\n         return (IDE::canError);\r\n      else if (20 == firmwErrId)\r\n         return (IDE::eepromError);\r\n      else if (30 == firmwErrId)\r\n         return (IDE::syntaxCmdError);\r\n      else if (31 == firmwErrId)\r\n         return (IDE::syntaxParUnkError);\r\n      else if (32 == firmwErrId)\r\n         return (IDE::syntaxParRangeError);\r\n      else if (35 == firmwErrId)\r\n         return (IDE::generalVoltError);\r\n      else if (36 == firmwErrId)\r\n         return (IDE::generalStopError);\r\n      else if (37 == firmwErrId)\r\n         return (IDE::generalAddrError);\r\n      else if (40 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (41 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (42 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (50 == firmwErrId)\r\n         return (IDE::shakerInitError);\r\n      else if (51 == firmwErrId)\r\n         return (IDE::shakerNotInitError);\r\n      else if (52 == firmwErrId)\r\n         return (IDE::shakerStepLossError);\r\n      else if (53 == firmwErrId)\r\n         return (IDE::shakerStartModeError);\r\n      else if (55 == firmwErrId)\r\n         return (IDE::plateLockInitError);\r\n      else if (56 == firmwErrId)\r\n         return (IDE::plateLockNotInitError);\r\n      else if (57 == firmwErrId)\r\n         return (IDE::plateLockStepLossError);\r\n      else if (60 == firmwErrId)\r\n         return (IDE::tempNotStartError);\r\n      else if (61 == firmwErrId)\r\n         return (IDE::tempTimeoutError);\r\n      else if (62 == firmwErrId)\r\n         return (IDE::tempSuperRangeError);\r\n      else if (63 == firmwErrId)\r\n         return (IDE::tempSecurRangeError);\r\n      else if (64 == firmwErrId)\r\n         return (IDE::tempSensorError);\r\n      else if (98 == firmwErrId)\r\n         return (IDE::commandSendTimeout);\r\n      else\r\n         return (IDE::unknowFwError);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function isFirmwError()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tCheck if an error is set in cmdResult string\r\n\t//====================================================================\r\n   static function isFirmwError(variable funcId, string cmdResult, variable makeTrace)\r\n   {\r\n      variable rc(IDE::noError);\r\n\r\n      if(cmdResult.Find(m_fwNoError) == -1)\r\n      {\r\n         variable errId;\r\n         variable errText;\r\n         errId = getErrIdFromFirmwareError(cmdResult);\r\n         // string erXX was not found (answere command)\r\n         if(errId != IDE::noError)\r\n\t\t\t{\r\n\t\t\t\trc = errId;\r\n\r\n\t\t\t\terrText = StringTable::Load(errId);\r\n\r\n\t\t\t\t// make an exception handling for errors which contains a %s part\r\n\t\t\t\tif(errId == IDE::unknowFwError)\r\n\t\t\t\t\tStrReplace(errText, \"%s\", IStr(getFirmwErrorId(cmdResult)));\r\n\t\t\t\tif(errId == IDE::commandSendTimeout)\r\n\t\t\t\t\tStrReplace(errText, \"%s\", cmdResult.Left(4));\r\n\r\n\t\t\t\tif(makeTrace)\r\n  \t\t\t\t\terrorCompleteTrace(funcId, errText);\r\n  \t\t\t}\r\n      }\r\n\r\n      return (rc);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function saveAndCreateDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tsave the device parameter and create the deviceNumber which must \r\n\t// be used for each interface function\r\n\t//====================================================================\r\n\tstatic function saveAndCreateDeviceNumber(\r\n\t\tvariable funcId,\r\n\t\tvariable deviceName,\r\n\t\tobject& \tstarObject,\r\n\t\tvariable isStarSimulate,\r\n\t\tvariable usedNode)\r\n\t{\r\n\t\tvariable deviceNumber(0);\r\n\t\tvariable index(0);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// USB set always the starObject parameter with a null object\r\n\t   if(starObject.IsNull() && m_usbComObject.IsNull())\r\n\t   {\r\n\t      // create the usb object without event \r\n\t      m_usbComObject.ReleaseObject();\r\n\t      m_usbComObject.CreateObject(m_hhsUsbObjectName, hslFalse);\r\n\r\n\r\n\t      if(!m_usbComObject.IsNull())\r\n\t      {\r\n\t         // \"{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}\", bufferSize(4090), vendorId(2223), productId, mainSerialNumber);\r\n\t         m_usbComObject.InitObject (m_hhsUsbProductNum, m_hhsUsbSerieNum);\r\n\r\n\t      }\r\n\t      else\r\n\t      {\r\n\t         string msg;\r\n\t         variable funcName;\r\n\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n\t         msg = StringTable::Load(IDS::cannotCreateUsbPort);\r\n\t         funcName = StringTable::Load(funcId);\r\n\r\n\t         errorCompleteTrace(funcId, msg);\r\n\r\n\t\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t      }\r\n\t   }\r\n\r\n\t\t// check if this node allready used\r\n      for( index = 0; index < m_maxHHS; index++)\r\n      {\r\n\t\t\tvariable devN, nodeNum;\r\n\t\t\tdevN = m_deviceName.GetAt(index);\r\n\t\t\tnodeNum = m_nodeNumber.GetAt(index);\r\n\r\n\t\t\t// if equal, node already exist\r\n\t\t\tif((devN == deviceName) && (nodeNum == usedNode))\r\n\t\t\t\tdeviceNumber = index+1;\r\n\t\t}\r\n\r\n\t\tif(deviceNumber == 0)\r\n\t\t{\r\n\t\t\t// node is not used, set it on the first free position\r\n\t      for( index = 0; index < m_maxHHS; index++)\r\n\t      {\r\n\t\t\t\tvariable devN;\r\n\t\t\t\tdevN = m_deviceName.GetAt(index);\r\n\t\t\t\t// if empty\r\n\t\t\t\tif(devN == \"\")\r\n\t\t\t\t{\r\n\t\t\t\t\tm_deviceName[index] = deviceName;\r\n\t\t\t\t\tm_starDeviceObj[index] = starObject;\r\n\t\t\t\t\tm_isStarSimulate[index] = isStarSimulate;\r\n\t\t\t\t\tm_nodeNumber[index] = usedNode;\r\n\t\t\t\t\tdeviceNumber = index+1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t      }\r\n\t\t}\r\n\t\t\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif(deviceNumber == 0)\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::maxHHSReached);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\r\n      return(deviceNumber);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function Wait()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tWait the given time\r\n\t//====================================================================\r\n\tstatic function wait(variable waitTime)\r\n\t{\r\n\t\ttimer t;\r\n\t\t\r\n      // Wait waitTime seconds\r\n      t.SetTimer( waitTime );\r\n      t.WaitTimer( hslFalse, hslFalse );\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getCurrentShakerRPM()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tRead the shaking speed of current HHS\r\n\t//====================================================================\r\n\tstatic function getCurrentShakerRPM(variable deviceNumber, variable makeTrace)\r\n\t{\r\n\t\tvariable shakingSpeed(0);\r\n      variable command(\"RR\");\r\n      string   parameter(\"\");\r\n      string   cmdResult;\r\n\t\tvariable startPos(0);\r\n\r\n     \t// start request\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace);\r\n      // format: rr####\r\n      startPos = cmdResult.Find(\"rr\");\r\n      if(startPos >= 0)\r\n      {\r\n\t\t\tshakingSpeed = IVal(cmdResult.Mid((startPos+2), 4));\r\n      }\r\n\t\treturn (shakingSpeed);\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getCurrentTemp()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tRead the shaking speed of current HHS\r\n\t//====================================================================\r\n\tstatic function getCurrentTemp(variable deviceNumber, variable makeTrace)\r\n\t{\r\n\t\tvariable temperature(0);\r\n      variable command(\"RT\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n      variable startPos;\r\n      variable firstVal;\r\n      variable secVal;\r\n      variable averageVal;\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace);\r\n\r\n      // format: rt#### ####\r\n      startPos = cmdResult.Find(\"rt\");\r\n      if((startPos >= 0) && ((cmdResult.GetLength()-startPos) >= TemperateParam::tempTempRequestLength))\r\n      {\r\n\t      // read both temperature and calculate the average \r\n\t      // format: rt#### ####\r\n\t      firstVal = FVal(cmdResult.Mid((startPos+2), 5));\r\n\t      secVal   = FVal(cmdResult.Mid((startPos+8), 5));\r\n\r\n\t      // calculate the average in 1/10 degrees\r\n\t      averageVal = ((firstVal + secVal) / 2) /10;\r\n\t      temperature = MthRound(averageVal, 1);\r\n      }\r\n\t\treturn (temperature);\r\n\t}\r\n\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function MonitorHeaterShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tMonitors temperature and speed of a HHS module\r\n\t//====================================================================\r\n   synchronized function monitorHeaterShaker()\r\n   {\r\n      variable monitorComplete( 0 );\r\n\t\tevent\t\tintervalEvent;\r\n      variable currentStatus(-1);\r\n\t\tvariable funcName;\r\n\t\tvariable sTitle;\r\n\t\tvariable hTitle;\r\n\t\tvariable stateTitle;\r\n\t\tvariable heatingUp(hslTrue);\r\n      variable result;\r\n      variable oldResult;\r\n\t\tvariable notStopped(hslTrue); // action Stop not used\r\n\r\n      // set the locals...\r\n      variable devNumber(m_monitorDeviceNumber);\r\n      variable hMin(m_monitorHeaterMin);\r\n      variable hMax(m_monitorHeaterMax);\r\n      variable sMin(m_monitorShakerMin);\r\n      variable sMax(m_monitorShakerMax);\r\n      variable interval(m_monitorSampleInterval);\r\n      variable action(m_monitorAction);\r\n      variable curRpm(sMin);\t\t// if not available, the speed must be OK\r\n      variable curTemp(hMin);\t\t// if not available, the temperature must be OK\r\n\t\tvariable node;\r\n      variable nodeType;\r\n\r\n\t  \t// reset globals\r\n\t   m_monitorDeviceNumber\t\t\t= 0;\r\n\t   m_monitorShakerMin\t\t\t\t= 0;\r\n\t   m_monitorShakerMax\t\t\t\t= 0;\r\n\t   m_monitorSampleInterval\t\t\t= 0;\r\n\t   m_monitorAction\t\t\t\t\t= 0;\r\n\t\tm_monitorHeaterMin\t\t\t\t= 0;\r\n\t\tm_monitorHeaterMax\t\t\t\t= 0;\r\n\t   m_monitorResult[devNumber-1] \t= -1;\r\n\r\n\t\t// set min max temperature dependend of current heater settings\r\n\t\t// critical section is set in StartMonotoring() function\r\n\t\tintervalEvent = m_monitorEvent.GetAt(devNumber-1);\r\n\r\n\t\t// free start semaphore\r\n\t\tm_monitorStartEvent.SetEvent();\r\n\r\n\t\tinitStringTable();\r\n\r\n      if(isStarDevice(devNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\t\tnodeType = nodeType + \" (\";\r\n\t\tnode = getNodeFromDeviceNumber(devNumber);\r\n\t\tnodeType = nodeType + IStr(node);\r\n\t\tnodeType = nodeType + \" )\";\r\n\r\n\r\n\t\tfuncName = StringTable::Load(IDF::Monitoring);\r\n\t\tfuncName = funcName + \" \";\r\n\t\tfuncName = funcName + nodeType;\r\n\t\tsTitle = StringTable::Load(IDS::monitoringShakingTitle);\r\n\t\thTitle = StringTable::Load(IDS::monitoringTempTitle);\r\n\t\tstateTitle = StringTable::Load(IDS::monitoringStateTitle);\r\n\r\n\r\n      while (monitorComplete == 0)\r\n      {\r\n         // WaitEvent returns 0 if still waiting or non-zero\r\n         // if the event was triggered.\r\n         monitorComplete = intervalEvent.WaitEvent( interval );\r\n\r\n\t\t\tif( monitorComplete == 0 && notStopped)\r\n\t\t\t{\r\n\t\t\t\tif(hasShaker(0, devNumber, 0))\r\n\t\t\t\t{\r\n\t\t\t\t\tvariable title(sTitle);\r\n\r\n\t\t\t\t\t// read currect RPM\r\n\t\t\t\t\tcurRpm = getCurrentShakerRPM(devNumber, hslFalse);\r\n\r\n\t\t\t\t\tprogressTrace(funcName, title, IStr(curRpm));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(hasHeater(0, devNumber, 0))\r\n\t\t\t\t{\r\n\t\t\t\t\tvariable title(hTitle);\r\n\r\n\t\t\t\t\tif(heatingUp)\r\n\t\t\t\t\t{\r\n\t\t\t\t      string   cmdResult;\r\n\t\t\t\t\t\tvariable partResult(\"qd1\");\r\n\r\n\t\t\t\t      // ask if heater in state heating up\r\n\t\t\t\t\t\tcmdResult = sendMsg(devNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t\t\t\tif(cmdResult.Find(partResult) < 0)\r\n\t\t\t\t\t\t\theatingUp = hslFalse;\r\n\t\t\t\t\t\tif(heatingUp)\r\n\t\t\t\t\t\t\ttitle = StringTable::Load(IDS::monitoringTempHeatUpTitle);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// read current temperature\r\n\t\t\t\t\tcurTemp = getCurrentTemp(devNumber, hslFalse);\r\n\r\n\t\t\t\t\tprogressTrace(funcName, title, FStr(curTemp, hslTrue));\r\n\t\t\t\t}\r\n\r\n\t\t      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\t\t\tresult = m_monitorResult.GetAt(devNumber-1);\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t         oldResult = result;\r\n\r\n\t         // Calculate the current state of the heater/shaker\r\n\t         if( (((curTemp < hMin) || (curTemp > hMax)) && !heatingUp) && ((curRpm < sMin) || (curRpm > sMax)))\r\n\t         {\r\n\t         \tcurrentStatus = MonitorStatus::monitorErrHeatingAndShaking;\r\n\t         }\r\n\t         else if ( ((curTemp < hMin) || (curTemp > hMax)) && !heatingUp )\r\n\t         {\r\n\t            currentStatus = MonitorStatus::monitorErrHeating;\r\n\t         }\r\n\t         else if ( (curRpm < sMin) || (curRpm > sMax) )\r\n\t         {\r\n\t            currentStatus = MonitorStatus::monitorErrShaking;\r\n\t         }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrentStatus = MonitorStatus::monitorOK;\r\n\t\t\t\t}\r\n\r\n\t         // If the monitor status has previously not been set, set it.\r\n\t         // Otherwise, use bitwise OR to merge the current result with the previous result\r\n\t         if (result == -1)\r\n\t            result = currentStatus;\r\n\t         else\r\n\t            result = currentStatus | result;\r\n         \r\n\t\t      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\t\t\tm_monitorResult[devNumber-1] = result;\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t\t\tprogressTrace(funcName, stateTitle, IStr(result));\r\n\r\n\t         if ( result != MonitorStatus::monitorOK )\r\n\t         {\r\n\t            if ( action == MonitorAction::monitorActionStop )\r\n\t            {\r\n\t\t\t\t\t\t// stop shaking and heating\r\n\t\t\t\t\t\tif(hasShaker(0, devNumber, 0))\r\n\t\t\t\t\t\t\tStopShaker(devNumber);\r\n\r\n\t\t\t\t\t\tif(hasHeater(0, devNumber, 0))\r\n\t\t\t\t\t\t\tStopTempCtrl(devNumber);\r\n\r\n\t\t\t\t\t\t// end monitoring but leave in the loop for a correct end of the automatic semapore intervalEvent\r\n\t\t\t\t\t\tnotStopped = hslFalse;\r\n\t            }\r\n\t\t\t\t\tif(action == MonitorAction::monitorActionAbort)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\terrorTrace(funcName, IDS::monitoringAbort);\r\n\t\t\t\t\t\tabort;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t   }  // end while\r\n\r\n      return(0);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function pollingForRunningShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tPolling until shaker has end shaked or time is elapsed\r\n\t//\tPolling is neccessary that during a long wait time an Abort()\r\n\t// command can be execute.\r\n\t//====================================================================\r\n\tstatic function pollingForRunningShaker(\r\n\t\tvariable deviceNumber, variable maxPollingTime)\r\n\t{\r\n      string   cmdResult;\r\n\t\tvariable maxPTime(maxPollingTime);\r\n\t\tvariable intervalTime(5);\r\n\t\tvariable partResult(\"rd1\");\r\n\r\n\t\tif(maxPollingTime > 10)\r\n\t\t{\r\n\t      // ask if shaker is running\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"RD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\r\n\t\t\twhile(cmdResult.Find(partResult) > 0 && maxPTime > 0)\r\n\t\t\t{\r\n\t\t\t\tmaxPTime = maxPTime - intervalTime;\r\n\t\t\t\twait(intervalTime);\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, \"RD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function pollingForRunningHeater()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tPolling until heater is in temperature controlling mode\r\n\t//\tPolling is neccessary that during a long wait time an Abort()\r\n\t// command can be execute.\r\n\t//====================================================================\r\n\tstatic function pollingForRunningHeater(\r\n\t\tvariable deviceNumber, variable maxPollingTime)\r\n\t{\r\n      string   cmdResult;\r\n\t\tvariable maxPTime(maxPollingTime);\r\n\t\tvariable intervalTime(10);\r\n\t\tvariable partResult(\"qd1\");\r\n\r\n\t\tif(maxPollingTime > 10)\r\n\t\t{\r\n\t      // ask if heater in state heating up\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\r\n\t\t\twhile(cmdResult.Find(partResult) > 0 && maxPTime > 0)\r\n\t\t\t{\r\n\t\t\t\tmaxPTime = maxPTime - intervalTime;\r\n\t\t\t\twait(intervalTime);\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function OnAbortHHSLibrary()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tStop heating and shaking for all HHS module\r\n\t//====================================================================\r\n\tstatic function OnAbortHHSLibrary()\r\n\t{\r\n\t\tvariable deviceNumber;\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n\t\t\t\tStopShaker(deviceNumber);\r\n            StopTempCtrl(deviceNumber);\r\n         }\r\n      }\r\n\r\n\t\tTerminate();\r\n\t\treturn;\r\n\t}\r\n\r\n\r\n}\r\n\r\n#endif\r\n// $$author=TBenz$$valid=1$$time=2013-03-06 12:47$$checksum=fc24f279$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/HslHamHeaterShakerLib.hsl",
    "content": "// ======================================================================\r\n// This is a part of the HSLHamHeaterShaker Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//\r\n//\t2008-09-10\t\ttbenz > first creation\r\n//\r\n//\t**********************************************************************\r\n// This library version supports following hardware:\r\n//\t\t- HAM Heater Shaker (HHS) ML_STAR interface\r\n//\t\t- HAM Heater Shaker (HHS) USB interface\r\n//\t**********************************************************************\r\n\r\n\r\n#ifndef __HSLHeaterShakerLib_hsl__\r\n#define __HSLHeaterShakerLib_hsl__\t1\r\n\r\n// Interface to HSLHamHeaterShaker library\r\n#ifndef HSL_RUNTIME\r\n\r\n\r\nnamespace HSLHamHeaterShaker\r\n{\r\n\tfunction CreateStarDevice(\t\t\tdevice& starDevice,\t\t\t\t\t\t// in:  ML_STAR device\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1 or 2)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& deviceNumber) {}\t\t\t\t// out: generated deviceNumber\r\n\r\n\tfunction CreateUsbDevice( \t\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1..8)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& deviceNumber) {}\t\t\t\t// out: generated deviceNumber\r\n\r\n\tfunction Terminate()             void {}\t\t\t\t\t\t\t\t\t\t// Close the communication\r\n\r\n   function StartShaker(            variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingSpeed) {}\t\t\t\t// in:  RPM (30..2500)\r\n\r\n   function StopShaker(             variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function StartShakerTimed(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingSpeed,\t\t\t\t\t// in   RPM (30..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingTime) {}\t\t\t\t// in:  time in seconds (1.. 30000)\r\n\r\n   function WaitForShaker(          variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function StartAllShaker(         variable shakingSpeed) {}\t\t\t\t// in   RPM (30..2500)\r\n\r\n   function StartAllShakerTimed(    variable shakingSpeed,\t\t\t\t\t// in:  RPM (30..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingTime) {}\t\t\t\t// in:  time in seconds (1.. 30000)\r\n\r\n   function StopAllShaker(          ) {}\r\n\r\n   function SetShakerParameter(     variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingDirection,\t\t\t\t// in:  shaking dirction left / right (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingAccRamp) void {}\t\t// in:  Defines the acceleration ramp (rpm) (integer).\r\n\r\n   function GetShakerParameter(     variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingDirection,\t\t\t// out: shaking dirction left / right (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingAccRamp) void {}\t// out: Defines the acceleration ramp (rpm) (integer).\r\n\r\n\tfunction GetShakerSpeed(     \t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingSpeed) {}\t\t\t\t// out: current RPM\r\n\r\n\r\n   function StartTempCtrl(          variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable temperature,\t\t\t\t\t// in:  Temperature in 1/10C. Range 0.0 .. 100.0 (not lower than ambient)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable waitForTempReached) {}\t\t// in:  no wait / wait (0 / 1)\r\n\r\n   function StopTempCtrl(           variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function WaitForTempCtrl(        variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function GetTemperature(         variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& temperature) {}\t\t\t\t// out: current temperature in 1/10C\r\n\r\n   function GetTemperatureState(    variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& temperatureState) {}\t\t// out: temperature state 0..3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t0 = No error, temperature was always in the defined range.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t1 = Temperature was or is out of temperature range.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t2 = Temperature was out of security range. Temperature controlling is switched off now.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t3 = Temperature time out during start of temperature controlling\r\n\r\n\r\n   function SetTempParameter(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable startTimeout,\t\t\t\t\t// in:  Time before start temperature controlling (1..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable toleranceRange,\t\t\t\t// in:  Temperature tolerance in 1/10C. (0.0 .. 100.0), def: 2.0\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable securityRange) void {}\t\t// in:  Temperature security in 1/10C. (0.0 .. 100.0), def: 6.0\r\n\r\n   function GetTempParameter(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n                                    variable& startTimeout,\t\t\t\t\t// out: Time before start temperature controlling.\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& toleranceRange,\t\t\t\t// out: Temperature tolerance in 1/10C.\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& securityRange) void {}\t\t// out: Temperature security in 1/10C.\r\n\r\n\r\n   function SetPlateLock(           variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable plateLock) {}\t\t\t\t\t// in:  unlock / lock (0 / 1)\r\n\r\n   function GetFirmwareVersion(\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& firmwareVersion) void {}\t// out: Firmware version format: \"1.0P 1999-03-10\"\r\n\r\n   function GetSerialNumber(\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& serialNumber) void {}\t\t// out: Serial number format: \"####\" 4 digit number\r\n\r\n   function BeginMonitoring(\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingToleranceRange,\t\t// in:  shaking tolerance\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable sampleInterval,\t\t\t\t// in:  Interval in sec. for check RPM and temperature\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable action) void {}\t\t\t\t// in:  Continue / Abort (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Note: Abort will only called on an error after temperature controlling is activated ()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t\t\tAn abort will end only the current heater/shaker.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Note:\theaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter()\r\n\r\n   function EndMonitoring(\t\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& monitorResult) {}\t\t\t// out: Monitored result\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//-1 = monitoring has not started or is not initialized\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 0 = all heating and shaking values were within specification\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 1 = heating out of range\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 2 = shaking out of range\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 3 = heating and shaking out of range\r\n\r\n\r\n\r\n   function SendFirmwareCommand(    variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable command,\t\t\t\t\t\t\t// in:  Firmware command e.g. \"T1RF\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable parameter) {}\t\t\t\t\t// in:  Firmware parameter dependent of command\r\n\r\n   function SetSimulation(          variable simulate) void {}\t\t\t\t// in:  Run / Simulate (0 / 1)\r\n\r\n   function SetUSBTrace(\t\t\t\tvariable trace) void {}\t\t\t\t\t// in:  No trace / trace (0 / 1) Set communication tracing for send and receive message from USB\r\n\r\n\r\n} // end of namespace HSLHamHeaterShaker\r\n\r\n#endif\r\n\r\n// ==========================================================================\r\n// Implementation of HSLHamHeaterShaker Library \r\n// ==========================================================================\r\n#ifdef HSL_RUNTIME\r\n#include \"HSLHamHeaterShakerLib.hs_\"\r\n#endif\r\n\r\n#endif /* end of #ifndef __HSLHamHeaterShakerLib_hsl__ */\r\n\r\n// $$author=TBenz$$valid=1$$time=2013-03-06 12:47$$checksum=764d39dc$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/RunHSLExecutor.dll.config",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<configuration>\r\n  <startup useLegacyV2RuntimeActivationPolicy=\"true\">\r\n    <supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.5\" />\r\n    <supportedRuntime version=\"v2.0.50727\"/>\r\n  </startup>\r\n  <runtime>\r\n    <assemblyBinding xmlns=\"urn:schemas-microsoft-com:asm.v1\">\r\n      <dependentAssembly>\r\n        <assemblyIdentity name=\"System.Runtime\" publicKeyToken=\"b03f5f7f11d50a3a\" culture=\"neutral\"/>\r\n        <bindingRedirect oldVersion=\"0.0.0.0-2.6.8.0\" newVersion=\"2.6.8.0\"/>\r\n      </dependentAssembly>\r\n      <dependentAssembly>\r\n        <assemblyIdentity name=\"System.Threading.Tasks\" publicKeyToken=\"b03f5f7f11d50a3a\" culture=\"neutral\"/>\r\n        <bindingRedirect oldVersion=\"0.0.0.0-2.6.8.0\" newVersion=\"2.6.8.0\"/>\r\n      </dependentAssembly>\r\n    </assemblyBinding>\r\n  </runtime>\r\n</configuration>\r\n"
  },
  {
    "path": "pyhamilton/star-oem/STAR_OEM.hsl",
    "content": "#include \"STAR_OEM.res\"\r\nglobal device HxFan (\"STAR_OEM.lay\", \"HxFan\", hslTrue);\r\nglobal device ML_STAR (\"STAR_OEM.lay\", \"ML_STAR\", hslTrue);\r\nnamespace _Method {  #include __filename__ \".sub\"  }\r\nnamespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" }\r\nnamespace _Method { #include \"HSLDevLib.hsl\" }\r\nnamespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" }\r\nnamespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" }\r\nnamespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" }\r\nnamespace _Method { #include \"HSLMECCLib.hs_\" }\r\nnamespace _Method { #include \"HSLMETEDLib.hs_\" }\r\nnamespace _Method { #include \"HSLSTCCLib.hs_\" }\r\nnamespace _Method { #include \"HSLSeqLib.hsl\" }\r\nnamespace _Method { #include \"HSLStrLib.hsl\" }\r\nnamespace _Method { #include \"HSLTrcLib.hsl\" }\r\nnamespace _Method { #include \"HslHamHeaterShakerLib.hsl\" }\r\nnamespace _Method { #include \"STAR_OEM_toolkit.hs_\" }\r\nobject objHttp;\r\nobject objJSONFromServer;\r\nobject objJSONToServer;\r\nsequence lidSeq;\r\nsequence seq;\r\nsequence toolSeq;\r\nvariable action;\r\nvariable airTransportRetractDist;\r\nvariable arrayOfVolumes[];\r\nvariable aspPosAboveTouch;\r\nvariable aspirateMode;\r\nvariable aspirateSequence;\r\nvariable aspirateVolume;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable capacitiveLLD;\r\nvariable carrierName;\r\nvariable chamber1LiquidChange;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable channelUse;\r\nvariable channelVariable;\r\nvariable checkPlate;\r\nvariable collisionControl;\r\nvariable command;\r\nvariable commandFromServer;\r\nvariable deviceNumber;\r\nvariable dispPositionAboveTouch;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispenseVolume;\r\nvariable ejectToolWhenFinish;\r\nvariable fanSpeed;\r\nvariable firmwareVersion;\r\nvariable gripForce;\r\nvariable gripHeight;\r\nvariable gripMode;\r\nvariable gripSpeed;\r\nvariable gripWidth;\r\nvariable gripperToolChannel;\r\nvariable handle;\r\nvariable handles[ ];\r\nvariable id;\r\nvariable initializeAlways;\r\nvariable intTrace;\r\nvariable inverseGrip;\r\nvariable labwareOrientation;\r\nvariable labwarePositions;\r\nvariable lidSequence;\r\nvariable liftUpHeight;\r\nvariable liquidClass;\r\nvariable liquidFollowing;\r\nvariable liquidHeight;\r\nvariable loopCounterMain;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable monitorResult;\r\nvariable movementType;\r\nvariable msg;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_liquidLevels_mm[];\r\nvariable o_stepReturn1;\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable o_stepReturn4;\r\nvariable parameter;\r\nvariable persistant;\r\nvariable plateLock;\r\nvariable platePressOnDistance;\r\nvariable plateSequence;\r\nvariable pressureLLD;\r\nvariable rc(0);\r\nvariable reducedPatternMode;\r\nvariable refillAfterEmpty;\r\nvariable retractDistance;\r\nvariable sampleInterval;\r\nvariable securityRange;\r\nvariable sequenceCounting;\r\nvariable serialNumber;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable shakingToleranceRange;\r\nvariable showCollisionCheckDialog;\r\nvariable sideTouch;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable submergeDepth;\r\nvariable temperature;\r\nvariable timeout(2*60);\r\nvariable tipEjectToKnownPosition;\r\nvariable tipSequence;\r\nvariable tolerance;\r\nvariable toleranceRange;\r\nvariable toolSequence;\r\nvariable touchOff;\r\nvariable transportMode;\r\nvariable useDefaultWaste;\r\nvariable usedNode;\r\nvariable v;\r\nvariable waitForTempReached;\r\nvariable wasteSequence;\r\nvariable widthBefore;\r\nvariable xAcceleration;\r\nvariable zMoveAfterStep;\r\nvariable zSpeed;\r\nnamespace _Method { method main(  ) void\r\n    {\r\n        STAR_OEM_TOOLKIT::_InitLibrary();\r\n        ::RegisterAbortHandler( \"OnAbort\");\r\n        blnReturn = HSLHttp::Initialize(objHttp);\r\n        if (blnReturn != blnSuccess)\r\n        {\r\n            TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n            return;\r\n        }\r\n        SendTextMessageToServer(Translate(\"Hi, I´m a VENUS method.\"));\r\n        onerror goto ErrorHandler;\r\n        {\r\n            loopCounterMain = 0;\r\n            while (1 == 1)\r\n            {\r\n                loopCounterMain = loopCounterMain + 1;\r\n\r\n                commandFromServer = Translate(\"\");\r\n                o_stepReturn1_t1 = Translate(\"\");\r\n                o_stepReturn2_t1 = Translate(\"\");\r\n                o_stepReturn3_t1 = Translate(\"\");\r\n                o_stepReturn1_t14 = Translate(\"\");\r\n\r\n\r\n                msg = waitForGUItoContinue();\r\n                Trace(\"JSON received from Server:\", msg);\r\n                HSLJsonLib::Create(objJSONFromServer);\r\n                HSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n\r\n\r\n                handle = Fork(\"doCommand\");\r\n                if (0 == handle)\r\n                    err.Raise(0, \"Failed to fork doCommand\");\r\n                handles.AddAsLast(handle);\r\n\r\n                // do anything else in the main thread\r\n\r\n                rc = Join(handles, timeout);\r\n                if (0 == rc)\r\n                    err.Raise(1, \"Failed to join handles\");\r\n                HSLJsonLib::Release(objJSONFromServer);\r\n\r\n                if (commandFromServer == \"end\")\r\n                {\r\n                    SendTextMessageToServer(Translate(\"Good Bye!\"));\r\n                    break;\r\n                }\r\n\r\n            }\r\n        }\r\n        HSLHttp::Release(objHttp);\r\n        STAR_OEM_TOOLKIT::_ExitLibrary();\r\n        return;\r\nErrorHandler :\r\n        {\r\n            if (hslAbort == MessageBox( err.GetDescription(), \"Error - Main\", hslError|hslAbortRetryIgnore))\r\n                abort;\r\n            resume next;\r\n        }\r\n    }\r\n}\r\n\r\nnamespace _Method { function doCommand()\r\n    {\r\n\r\n\r\n\r\n\r\n        if (commandFromServer == \"initialize\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n            STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n            TrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n\r\n        if (commandFromServer == \"channelTipPickUp\")\r\n        {\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n            if (tipSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                BuildTempSequenceFromPositions(labwarePositions, seq);\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n            }\r\n            STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"channelAspirate\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n            BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n            Trace(\"Bookstart\");\r\n            JSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n            Trace(\"Bookend\");\r\n            JSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n            JSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n            JSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n            JSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n            JSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n            JSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n\r\n            if (aspirateSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                BuildTempSequenceFromPositions(labwarePositions, seq);\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n            }\r\n            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);\r\n            ArrayToString(o_liquidLevels_mm, o_stepReturn2_t1);\r\n            ArrayToString(o_liquidLevels_mL, o_stepReturn3_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"channelDispense\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n            BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n            JSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n            JSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n            JSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n            JSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n            JSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n            JSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n\r\n            if (dispenseSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                BuildTempSequenceFromPositions(labwarePositions, seq);\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n            }\r\n            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);\r\n            ArrayToString(o_liquidLevels_mm, o_stepReturn2_t1);\r\n            ArrayToString(o_liquidLevels_mL, o_stepReturn3_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"channelTipEject\")\r\n        {\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n            if (useDefaultWaste == 0)\r\n            {\r\n                if (wasteSequence == \"\")\r\n                {\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n                else\r\n                {\r\n                    DevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                SeqCopySequence(seq, ML_STAR.Waste);\r\n            }\r\n            STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n\r\n\r\n        if (commandFromServer == \"mph96TipPickUp\")\r\n        {\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n            if (tipSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                BuildTempSequenceFromPositions(labwarePositions, seq);\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n            }\r\n            STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn1_t1, o_stepReturn2_t1);\r\n            TrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"mph96Aspirate\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            JSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n            JSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n            JSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n            JSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n            JSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n            JSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n\r\n            if (aspirateSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                BuildTempSequenceFromPositions(labwarePositions, seq);\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n            }\r\n            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);\r\n            TrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn1_t14);\r\n            o_stepReturn2_t1 = StrFStr(o_stepReturn2_t1);\r\n            o_stepReturn3_t1 = StrFStr(o_stepReturn3_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14, id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"mph96Dispense\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            JSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n            JSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n            JSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n            JSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n            JSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n            JSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n\r\n            if (dispenseSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                BuildTempSequenceFromPositions(labwarePositions, seq);\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n            }\r\n            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);\r\n            TrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3_t1);\r\n            TrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn1_t14);\r\n            o_stepReturn2_t1 = StrFStr(o_stepReturn2_t1);\r\n            o_stepReturn3_t1 = StrFStr(o_stepReturn3_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14, id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"mph96TipEject\")\r\n        {\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n            if (tipEjectToKnownPosition == 0)\r\n            {\r\n                if (wasteSequence == \"\")\r\n                {\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n                else\r\n                {\r\n                    DevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                SeqCopySequence(seq, ML_STAR.Waste);\r\n            }\r\n            STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn1_t1, o_stepReturn2_t1);\r\n            TrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n\r\n        if (commandFromServer == \"loadCarrier\")\r\n        {\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n            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);\r\n            TrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14, id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"unloadCarrier\")\r\n        {\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n            STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n\r\n        if (commandFromServer == \"gripGet\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n            JSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n            JSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n            JSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n            JSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n            JSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n\r\n            if (plateSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n            }\r\n            if (lidSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n            }\r\n            DevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n            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);\r\n            TrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"gripMove\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n\r\n            if (plateSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n            }\r\n            STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"gripPlace\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n            JSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n            JSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n\r\n            if (plateSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n            }\r\n            if (lidSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n            }\r\n            DevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n            STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n\r\n\r\n        if (commandFromServer == \"iSwapGet\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n            JSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n            JSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n            JSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n            JSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n            JSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n            JSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n\r\n            if (plateSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n            }\r\n            if (lidSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n            }\r\n            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);\r\n            TrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"iSwapMove\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n\r\n            if (plateSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n            }\r\n            STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"iSwapPlace\")\r\n        {\r\n\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n            JSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n            JSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n\r\n            if (plateSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n            }\r\n            if (lidSequence == \"\")\r\n            {\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n                if (labwarePositions != \"\")\r\n                {\r\n                    BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                DevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n            }\r\n            STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"iSwapPark\")\r\n        {\r\n\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n\r\n            STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn1_t1);\r\n            SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n\r\n\r\n        if (commandFromServer == \"HHS_BeginMonitoring\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n            o_stepReturn1_t1 = 0;\r\n            onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\n            err.Clear();\r\n            HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            TrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn1_t1);\r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_CreateStarDevice\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n            onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            TrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_CreateUSBDevice\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n            onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            TrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn1_t1);\r\n            TrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_EndMonitoring\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            TrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn1_t1);\r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_GetSerialNumber\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_GetShakerParameter\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2_t1, o_stepReturn3_t1);\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_GetShakerSpeed\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2_t1);\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_GetTempParameter\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14);\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_GetTemperature\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2_t1);\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_GetTemperatureState\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2_t1);\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n            onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_SetPlateLock\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n            onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_SetShakerParameter\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n            onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_SetSimulation\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n            onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::SetSimulation(simulate);\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_SetTempParameter\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n            HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n            HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n            onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_SetUSBTrace\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n            onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::SetUSBTrace(intTrace);\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_StartAllShaker\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n            onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n            onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_StartShaker\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n            onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_StartShakerTimed\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n            onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\nerrLabel_29447729262E4e0f8B347F6640716D96 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_StartTempCtrl\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n            onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_StopAllShaker\")\r\n        {\r\n            onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::StopAllShaker();\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_StopShaker\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::StopAllShaker();\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_StopTempCtrl\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\nerrLabel_B5957B02990845739642D8C604B0B582 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_Terminate\")\r\n        {\r\n            onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            HSLHamHeaterShaker::Terminate();\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_WaitForShaker\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n        if (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            o_stepReturn1_t1 = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\nerrLabel_088C7630997A4749A400740DA66CBA0C :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n\r\n\r\n        if (commandFromServer == \"HxFanSet\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"persistant\"), persistant);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n            JSON_GetFloatValue(Translate(\"fanSpeed\"), fanSpeed);\r\n            onerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            if (simulate == 0)\r\n            {\r\n                {\r\n                    HxFan.Simulate(\"13409ed4_ce79_4ef9_89deb34df8b6dd6a\"); }\r\n            }\r\n            else\r\n            {\r\n                {\r\n                    HxFan.Simulate(\"be3ae73e_7395_494a_9aed80ff221436dc\"); }\r\n            }\r\n            {\r\n                HxFan.SetComPort(\"ffdf7428_8946_4751_8ec8a7e00f208208\"); }\r\n            if (persistant == 0)\r\n            {\r\n                {\r\n                    HxFan.SetContinuousMode(\"d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39\"); }\r\n            }\r\n            else\r\n            {\r\n                {\r\n                    HxFan.SetContinuousMode(\"4914f72b_ecb0_4ab4_b458a744727e1642\"); }\r\n            }\r\n            if (fanSpeed == 0)\r\n            {\r\n                {\r\n                    HxFan.SetFanOff(\"cef636fc_366e_46f7_9a8e1e25f716fa31\"); }\r\n            }\r\n            else\r\n            {\r\n                {\r\n                    HxFan.SetFanSpeed(\"f2bbd127_49ad_44c1_aa03eba6244b4cfc\"); }\r\n            }\r\n            {\r\n                HxFan.CloseComPort(\"162f7d41_f11e_4261_8602596bf1b6e888\"); }\r\nerrLabel_AA4197CCBE624255B3C96A32C1894C99 :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n\r\n\r\n\r\n\r\n        if (commandFromServer == \"CORE96WashEmpty\")\r\n        {\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n            HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n            onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\n            err.Clear();\r\n            o_stepReturn1_t1 = 0;\r\n            {\r\n                variable arrRetValues[];\r\n                arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"f4a1383e_67d1_4f19_92f3a5518acddda4\"); }\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB :\r\n            {}\r\n            onerror goto 0;\r\n            if (err.GetId() != 0)   \r\n            {\r\n                o_stepReturn1_t1 = 1;\r\n            }   \r\n            SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n        }\r\n    }\r\n}\r\n\r\n"
  },
  {
    "path": "pyhamilton/star-oem/STAR_OEM.res",
    "content": "#pragma once\r\nglobal resource Res_Cyt6000_6wp(1, 0xff0000, Translate(\"Cyt6000_6wp\"));\r\nglobal resource Res_CytC24_96wp(1, 0xffff, Translate(\"CytC24_96wp\"));\r\nglobal resource Res_Cytomat24(360, 0xf0caa6, Translate(\"Cytomat24\"));\r\nglobal resource Res_Cyto6002(3, 0xff0000, Translate(\"Cyto6002\"));\r\nglobal resource Res_Cytomat6002(1, 0xff0000, Translate(\"Cytomat6002\"));\r\nglobal resource Res_CeligoHandoff_96(1, 0xff, Translate(\"CeligoHandoff_96\"));\r\nglobal resource Res_ReaderHandoff2_96(1, 0xffff, Translate(\"ReaderHandoff2_96\"));\r\nglobal resource Res_ReaderHandoff_96(1, 0xff00ff, Translate(\"ReaderHandoff_96\"));\r\nglobal resource Res_ML_STAR(1, 0xff0000, Translate(\"ML_STAR\"));\r\nglobal resource Mediatrough(5, 0xff0000, Translate(\"PLT_CAR_2\"));\r\n\r\n\r\nfunction Res_Cyt6000_6wp_map(variable unit) variable { return(unit); }\r\nfunction Res_Cyt6000_6wp_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_CytC24_96wp_map(variable unit) variable { return(unit); }\r\nfunction Res_CytC24_96wp_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_Cytomat24_map(variable unit) variable { return(unit); }\r\nfunction Res_Cytomat24_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_Cyto6002_map(variable unit) variable { \r\n     variable ret;\r\n     if ( unit == 1 ) ret = \"Media1\";\r\n     if ( unit == 2 ) ret = \"Media2\";\r\n     if ( unit == 3 ) ret = \"Media3\";\r\n     return(ret);\r\n}\r\nfunction Res_Cyto6002_rmap(variable address) variable {\r\n     variable ret;\r\n     if ( address == \"Media1\" ) ret = 1;\r\n     if ( address == \"Media2\" ) ret = 2;\r\n     if ( address == \"Media3\" ) ret = 3;\r\n     return(ret);\r\n}\r\n\r\nfunction Res_Cytomat6002_map(variable unit) variable { return(unit); }\r\nfunction Res_Cytomat6002_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_CeligoHandoff_96_map(variable unit) variable { return(unit); }\r\nfunction Res_CeligoHandoff_96_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_ReaderHandoff2_96_map(variable unit) variable { return(unit); }\r\nfunction Res_ReaderHandoff2_96_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_ReaderHandoff_96_map(variable unit) variable { return(unit); }\r\nfunction Res_ReaderHandoff_96_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_ML_STAR_map(variable unit) variable { return(unit); }\r\nfunction Res_ML_STAR_rmap(variable address) variable { return(address); }\r\n\r\nfunction Mediatrough_map(variable unit) sequence { \r\n     device dev(\"\",\"\", hslTrue);\r\n     sequence ret;\r\n     dev = GetDeviceRef(\"ML_STAR\");\r\n     if ( unit == 1 ) ret = dev.Ham_DW_Rgt_L_0001;\r\n     if ( unit == 2 ) ret = dev.Ham_DW_Rgt_L_0002;\r\n     if ( unit == 3 ) ret = dev.Ham_DW_Rgt_L_0003;\r\n     if ( unit == 4 ) ret = dev.Ham_DW_Rgt_L_0004;\r\n     if ( unit == 5 ) ret = dev.Ham_DW_Rgt_L_0005;\r\n     return(ret);\r\n}\r\nfunction Mediatrough_rmap(sequence address) variable {\r\n     device dev(\"\",\"\", hslTrue);\r\n     variable ret;\r\n     dev = GetDeviceRef(\"ML_STAR\");\r\n     if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0001) ) ret = 1;\r\n     if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0002) ) ret = 2;\r\n     if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0003) ) ret = 3;\r\n     if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0004) ) ret = 4;\r\n     if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0005) ) ret = 5;\r\n     return(ret);\r\n}\r\n\r\n\r\nnamespace ResourceUnit {\r\n     variable Res_Cyt6000_6wp;\r\n     variable Res_CytC24_96wp;\r\n     variable Res_Cytomat24;\r\n     variable Res_Cyto6002;\r\n     variable Res_Cytomat6002;\r\n     variable Res_CeligoHandoff_96;\r\n     variable Res_ReaderHandoff2_96;\r\n     variable Res_ReaderHandoff_96;\r\n     variable Res_ML_STAR;\r\n     sequence Mediatrough;\r\n}\r\n// $$author=BenG$$valid=0$$time=2021-03-18 13:12$$checksum=9dfb7551$$length=081$$"
  },
  {
    "path": "pyhamilton/star-oem/STAR_OEM.sub",
    "content": "function OnAbort(  ) void ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void {\r\n    HSLHttp::Release(objHttp);\r\n}\r\n\r\nfunction SendTextMessageToServer( variable str ) void {\r\n    private object objJSONObject;\r\n    private variable strJSON;\r\n    HSLJsonLib::Create(objJSONObject);\r\n    HSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n    HSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n    HSLJsonLib::GetJson(objJSONObject, strJSON);\r\n    HSLJsonLib::Release(objJSONObject);\r\n    HSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n}\r\n\r\nprivate function waitForGUItoContinue(  ) variable {\r\n    private variable loopCounter1;\r\n    private variable serverResponse;\r\n    private timer timer1;\r\n    serverResponse = Translate(\"\");\r\n    SendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n    TrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n    {\r\n        loopCounter1 = 0;\r\n        while (1 == 1)\r\n        {\r\n            loopCounter1 = loopCounter1 + 1;\r\n            if( 0 == timer1.SetTimer(0.1) )\r\n            {\r\n                MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n            }\r\n            if( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n            {\r\n                MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n            }\r\n            serverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n            if (serverResponse != \"\")\r\n            {\r\n                break;\r\n            }\r\n            if (loopCounter1 == 300)\r\n            {\r\n\r\n                break;\r\n            }\r\n            if( 0 == timer1.SetTimer(0.9) )\r\n            {\r\n                MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n            }\r\n            if( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n            {\r\n                MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n            }\r\n        }\r\n    }\r\n    return (serverResponse);\r\n}\r\n\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n    private variable strJSON;\r\n    HSLJsonLib::Create(objJSONToServer);\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n    HSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n    HSLJsonLib::Release(objJSONToServer);\r\n    HSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n}\r\n\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n    private variable n;\r\n    private variable loopCounter1;\r\n    private variable strSinglePosition;\r\n    private variable arrayOfPositions[];\r\n    private variable arraySinglePosition[];\r\n    private variable labwareID;\r\n    private variable positionID;\r\n    { sequence __temp; o_seq = __temp; }\r\n    arrayOfPositions.SetSize(0);\r\n    StrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n    n=arrayOfPositions.GetSize();\r\n    SeqRemoveAll(o_seq);\r\n    {\r\n        for(loopCounter1 = 0; loopCounter1 < n;)\r\n        {\r\n            loopCounter1 = loopCounter1 + 1;\r\n            arraySinglePosition.SetSize(0);\r\n            strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n            StrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n            labwareID=arraySinglePosition.GetAt(1-1);\r\n            positionID=arraySinglePosition.GetAt(2-1);\r\n            SeqAdd(o_seq, labwareID, positionID);\r\n        }\r\n    }\r\n    o_seq.SetCurrentPosition(1);\r\n}\r\n\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n    private variable strEdit;\r\n    private variable posLast;\r\n    private variable strToAdd;\r\n    private variable posCurrent;\r\n    posCurrent = -1;\r\n    posLast = -1;\r\n    strToAdd = \"\";\r\n    strEdit = strIn;\r\n    if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n        return;\r\n\r\n    posLast = StrGetLength(strEdit);\r\n    posCurrent = StrFind(strEdit, strDelimiter);\r\n\r\n    while (-1 != posCurrent && posLast > 0)\r\n    {\r\n        //get tokens before next delimiter char\r\n        strToAdd = StrLeft(strEdit, posCurrent);\r\n        StrTrimRight(strToAdd, \"\");\r\n        StrTrimLeft (strToAdd, \"\");\r\n\r\n        //add token to our output list\r\n        if( StrGetLength(strToAdd) > 0 )\r\n        {\r\n            arrTokens.AddAsLast(strToAdd);\r\n            // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n        }\r\n        else\r\n        {\r\n            if( bAttendEmptyTokens )// empty string should also be added\r\n            {\r\n                arrTokens.AddAsLast(strToAdd);\r\n                //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n            }\r\n        }\r\n\r\n        //prepare next loop by removing obsolete characters\r\n        strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n        //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n        //find next \"non-delimiter\"\r\n        posCurrent = StrFind(strEdit, strDelimiter);\r\n        posLast = StrGetLength(strEdit);\r\n        //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n    }//end while\r\n\r\n    //no delimiter left\r\n    //add the last part of the string to our output list\r\n    if (-1 == posCurrent)// && posLast > 0\r\n    {\r\n        if( posLast == 0 && !bAttendEmptyTokens )\r\n            return;\r\n\r\n        StrTrimRight(strEdit, \"\");\r\n        StrTrimLeft (strEdit, \"\");\r\n\r\n        //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n        arrTokens.AddAsLast(strEdit);\r\n    }\r\n\r\n}\r\n\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n    private variable numOfVolumes;\r\n    private variable numOfChannelsInVariable;\r\n    private variable n;\r\n    private variable loopCounter1;\r\n    private variable arrSize;\r\n    private variable loopCounter3;\r\n    private variable strKeyName;\r\n    o_arrayOfVolumes.SetSize( 0);\r\n    strKeyName = Translate(\"volumes\");\r\n    o_arrayOfVolumes.SetSize(0);\r\n    arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n    if (arrSize > 0)\r\n    {\r\n\r\n        {\r\n            for(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n            {\r\n                loopCounter3 = loopCounter3 + 1;\r\n                HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n                o_arrayOfVolumes.AddAsLast(v);\r\n                Trace(\"Volume received=\", v);\r\n            }\r\n        }\r\n    }\r\n    else\r\n    {\r\n\r\n        JSON_GetFloatValue(strKeyName, v);\r\n        o_arrayOfVolumes.AddAsLast(v);\r\n    }\r\n    numOfVolumes=o_arrayOfVolumes.GetSize();\r\n    numOfChannelsInVariable = StrGetLength(strChannels);\r\n\r\n    if (numOfVolumes < numOfChannelsInVariable)\r\n    {\r\n        n = numOfChannelsInVariable - numOfVolumes;\r\n        v = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n        {\r\n            for(loopCounter1 = 0; loopCounter1 < n;)\r\n            {\r\n                loopCounter1 = loopCounter1 + 1;\r\n                o_arrayOfVolumes.AddAsLast(v);\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n    private variable arraySize;\r\n    private variable loopCounter1;\r\n    o_str = 0;\r\n    arraySize=i_array.GetSize();\r\n    o_str = Translate(\"\");\r\n    {\r\n        for(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n        {\r\n            loopCounter1 = loopCounter1 + 1;\r\n            v=i_array.GetAt(loopCounter1-1);\r\n            o_str = StrConcat2(o_str, v);\r\n            if (loopCounter1 < arraySize)\r\n            {\r\n                o_str = StrConcat2(o_str, Translate(\";\"));\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n    private variable retVal;\r\n    o_KeyFloatValue = 0;\r\n    Trace(\"getfloatvalue\");\r\n    retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n    if (retVal > 0)\r\n    {\r\n        Trace(\"error getting float value, try with integer\");\r\n\r\n        retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n        Trace(\"error getting float value, tried with integer\");\r\n        if (retVal > 0)\r\n        {\r\n            Trace(\"wtf ok i guess its zero\");\r\n            o_KeyFloatValue = 0;\r\n        }\r\n    }\r\n}\r\n\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n    private variable strJSON;\r\n    private variable t_arrayStepReturns[];\r\n    private variable loopCounter1;\r\n    private variable keyName;\r\n    private variable varType;\r\n    HSLJsonLib::Create(objJSONToServer);\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n    t_arrayStepReturns.SetSize(0);\r\n    t_arrayStepReturns.AddAsLast(stepReturn1);\r\n    t_arrayStepReturns.AddAsLast(stepReturn2);\r\n    t_arrayStepReturns.AddAsLast(stepReturn3);\r\n    t_arrayStepReturns.AddAsLast(stepReturn4);\r\n    {\r\n        for(loopCounter1 = 0; loopCounter1 < 4;)\r\n        {\r\n            loopCounter1 = loopCounter1 + 1;\r\n            keyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n            varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n            if (varType == \"s\")\r\n            {\r\n                HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n            }\r\n            if (varType == \"f\")\r\n            {\r\n                HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n            }\r\n            if (varType == \"i\")\r\n            {\r\n                HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n            }\r\n        }\r\n    }\r\n    HSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n    HSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n    HSLJsonLib::Release(objJSONToServer);\r\n    HSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n}\r\n\r\n"
  },
  {
    "path": "pyhamilton/star-oem/STAR_OEM_toolkit.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 5/14/2023 1:36:46 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_OEM_TOOLKIT {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction 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 { }\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { }\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode ) void { }\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & ErrorCode ) void { }\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode ) void { }\r\nfunction Inheco_TEC_StopTemperatureControl(  ) void { }\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices ) void { }\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { }\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { }\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { }\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate ) void { }\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position ) void { }\r\nfunction 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 { }\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { }\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=stefa$$valid=0$$time=2023-05-14 13:36$$checksum=17b1f0e8$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/STAR_OEM_toolkit.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"HSL_LiquidClassLib.hsl\"\r\n#include \"HSLInhecoTEC\\\\HSLInhecoTECLib.hsl\"\r\n#include \"HSLDaisyChainedTiltModule.hsl\"\r\n#include \"HSLDaisyChainedMediaLine.hsl\"\r\n#include \"HSLDaisyChainCommunication.hsl\"\r\n#include \"HSLBarcodeReader.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction 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 ;\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ;\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode ) void ;\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & ErrorCode ) void ;\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode ) void ;\r\nfunction Inheco_TEC_StopTemperatureControl(  ) void ;\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices ) void ;\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ;\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ;\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate ) void ;\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position ) void ;\r\nfunction 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 ;\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ;\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable height;\r\nprivate variable calculatedVolume;\r\n// {{ 5 \"Channels_1ml_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 90 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 91 1 0 \"8fa2cdd5_d117_4559_be8f242119801835\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"8fa2cdd5_d117_4559_be8f242119801835\"); // Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 92 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BE09000023754133A7DFF78508E9EC3D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 93 1 0 \"3dd2c518_6d0a_4d7b_a227743c1263caad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 94 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 95 1 0 \"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 96 1 0 \"a37ce602_144b_4a72_98dbfe0c85169266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 97 1 0 \"36e6f2a2_6d83_40ba_a0c6ff5caefcef66\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 98 1 0 \"ce4eba9f_c8e1_4c33_a9c369da4ce7c312\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 99 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 100 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"81636f39_7511_441a_8ab707955e5f2035\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 102 1 0 \"6b53ca04_1112_466f_89a23ed352e36004\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 103 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 104 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 105 1 0 \"9c1dd6a5_9b06_43fd_9fd194129c2f2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"e6930a03_b2a0_4569_bb51b2088cac413c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 107 1 0 \"06eeeac2_52c3_47cb_b78dde137d763a9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 108 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 109 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 110 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 111 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 113 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_15E4EC7C03B0458dA8B196D2861D63BC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 114 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 115 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 116 1 0 \"450b7dae_efb3_416b_a62ef5c611c84cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 117 1 0 \"ca4e0527_c377_4a7f_99b7deddb85bdfaf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 118 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 119 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 120 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"Begin\"\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 84 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 85 1 0 \"72075d54_9924_47c4_a0154d7e90bb1065\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"72075d54_9924_47c4_a0154d7e90bb1065\"); // TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 86 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_55CAD51E8CEB46d5827DF7367C49B35D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 87 1 0 \"7acd54b9_9bda_465f_9b10e23e8987fa26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 88 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable calculatedVolume;\r\nprivate variable height;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\nprivate variable loopCounter1;\r\nprivate variable numberOfPositions;\r\n// {{ 5 \"Channels_1mL_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 45 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 46 1 0 \"ce9beee3_e67e_43c3_bfc64805ab990e08\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"ce9beee3_e67e_43c3_bfc64805ab990e08\"); // Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 47 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 48 1 0 \"493334e8_4548_4149_82f058a4b51df641\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 49 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 50 1 0 \"dd677141_96b6_4ccc_a1764ec36dc76b56\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"dd677141_96b6_4ccc_a1764ec36dc76b56\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 51 1 0 \"4fd5463f_c617_4e2b_aa27d0a820bfe2c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 52 1 0 \"6cafca26_5df8_46c0_98d5a4e2a957163a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 53 1 0 \"418d84ad_0fba_4ca8_8479b9c6dde94985\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 54 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 55 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 56 1 0 \"c8304522_b160_47ca_9780bfcfd85cf56a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 57 1 0 \"5c09e3e1_cd42_4687_940231f4491e28e1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 58 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 59 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 60 1 0 \"11b5458b_6926_471d_8cb7dde489f8a444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"51ffe893_b0e5_4383_ac38b9be481a9bee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 62 1 0 \"b02dd957_c3d3_445f_b0e36cc6cab274af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 63 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 64 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 65 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 66 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 68 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 69 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 70 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 71 1 0 \"36cc23a5_3886_4312_adc5faa6d481a26c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 72 1 0 \"9f017e3d_a3f3_4f02_914d74e549a5f3be\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 73 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 74 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 75 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"Begin\"\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 78 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 79 1 0 \"1a33c622_0a9b_473c_a857db709fcadb47\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"1a33c622_0a9b_473c_a857db709fcadb47\"); // TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 80 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D52469807F754a359D17B8D31042C6A6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"5284933d_2b98_4255_81ee24c4ca6624c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 82 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable positionBC;\r\n// {{ 5 \"Carrier_Load\" \"InitLocals\"\r\no_stepReturn_CarrierBC = 0;\r\no_stepReturn_PositionsBCs = 0;\r\no_stepReturn_PositionsBCMasks = 0;\r\no_stepReturn_PositionsIDs = 0;\r\no_CarrierBC = 0;\r\no_PositionsBCs.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2 1 0 \"b445eca9_c441_45d7_b53f08a23b7b4b80\" \"ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2(\"b445eca9_c441_45d7_b53f08a23b7b4b80\"); // LoadCarrier\r\n\to_stepReturn_CarrierBC = arrRetValues[2];\r\n\to_stepReturn_PositionsBCs = arrRetValues[3];\r\n\to_stepReturn_PositionsBCMasks = arrRetValues[4];\r\n\to_stepReturn_PositionsIDs = arrRetValues[5];\r\n}\r\n// }} \"\"\r\n// {{ 3 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"6919be45_bdb7_46b6_a2ad892454bef1c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_CarrierBC = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 5 1 0 \"d814f66e_6beb_47a8_a390d3b5ea839ba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{{ 6 1 0 \"018a7d4d_f55c_435f_bfce516fc40cd0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCMasks = ErrGetDataAt(5);\r\n// }} \"\"\r\n// {{{ 7 1 0 \"28252b10_bd1a_480c_8d84ce9739ca69ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsIDs = ErrGetDataAt(6);\r\n// }} \"\"\r\n// {{ 8 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 9 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 10 1 0 \"91e50e7b_5626_4ab9_ad652563a737dba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC);\r\n// }} \"\"\r\n// {{ 11 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 12 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 13 1 0 \"6135f8c7_3486_4898_88c6e7154326c4df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 14 1 0 \"4cec9992_cb23_4182_894ee448e99b8d48\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_PositionsBCs.SetSize(0);\r\n// }} \"\"\r\n// {{ 15 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 16 1 0 \"fe82471b_5e85_4598_90b8f672ef3cf690\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 17 1 0 \"f0a92a30_0f95_4eb4_bdcf7e21db350ecb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_PositionsBCs.AddAsLast(positionBC);\r\n// }} \"\"\r\n// {{ 18 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 19 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"Begin\"\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Carrier_Unload\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 21 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 22 1 0 \"38494363_9fef_41a3_8cb17f349c9fe693\" \"ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2(\"38494363_9fef_41a3_8cb17f349c9fe693\"); // UnloadCarrier\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 23 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 24 1 0 \"9aa00b86_389e_473d_bd928bce39259e60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 25 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 27 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 28 1 0 \"f1e43893_ada0_4b74_9035cad36fab5d4b\" \"ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F(\"f1e43893_ada0_4b74_9035cad36fab5d4b\"); // ZSwapGetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 29 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90BF8C56374E469c817DB7B52FEE5D91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 30 1 0 \"5300695f_5b47_4f16_8312711c7c77441e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 31 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 39 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8675588E513E44cd8097542899F1DE5C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 40 1 0 \"3460f3d9_9fdb_4437_9cfa36d33b14f837\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"3460f3d9_9fdb_4437_9cfa36d33b14f837\"); // ZSwapPlacePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 41 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8675588E513E44cd8097542899F1DE5C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"1c1fcfa6_73ab_434d_965f40a7cb5827ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 43 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"Begin\"\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 33 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 34 1 0 \"19ec48d7_0a4a_407e_a09c7d49db7da6d9\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"19ec48d7_0a4a_407e_a09c7d49db7da6d9\"); // ZSwapMovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 35 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 36 1 0 \"b5f59ed6_6bf0_47b3_b8c295016cfa86e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 37 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 247 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 248 1 0 \"285b84de_748a_400d_a828988b60f4c175\" \"ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E(\"285b84de_748a_400d_a828988b60f4c175\"); // GetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 249 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ABA9DAA34A59470495CBB56841D2D81D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 250 1 0 \"298cdb09_c92e_4bb7_a2ecabeafcf27813\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 251 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 265 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 266 1 0 \"bcedff0a_3cba_458a_bedb1a743e5dd0bd\" \"ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55(\"bcedff0a_3cba_458a_bedb1a743e5dd0bd\"); // PutPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_22A12BE8BB2146fbB8824DF66137BF6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"8aeb393a_337d_4788_b25408ee6915eb1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 269 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"Begin\"\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 253 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 254 1 0 \"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\" \"ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E(\"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\"); // MovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 255 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E8A019BC968240cbB4C8B7397BB2F043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"b69dc448_e2ef_4c62_b6dd3535487928f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 257 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"Begin\"\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Park\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 259 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 260 1 0 \"ef5a4036_5d2f_4aae_86e669ef0581597f\" \"ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7(\"ef5a4036_5d2f_4aae_86e669ef0581597f\"); // ParkISwap\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 261 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_47ED933D92B34914984C5D98423B4C94 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"974d3165_8b4f_469b_99a59625d159b561\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 263 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"Begin\"\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 205 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 206 1 0 \"b3913cc3_f1bb_4e9f_b3100faec37b186d\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"b3913cc3_f1bb_4e9f_b3100faec37b186d\"); // Head96TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 207 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6640FC09A88C48daB6CB9FB2349BE364 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 208 1 0 \"1df2d158_801c_4c9f_a8014869fa07863d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"315f1e4b_8d32_430c_89413b8e4b5b135a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 210 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 154 1 0 \"0fc30c09_ddb7_4665_8739dbd8f0102fdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(aspirateSequence);\r\n// }} \"\"\r\n// {{{ 155 1 0 \"14c1eb4e_ced0_45f2_a343bc0f3c668407\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(aspirateSequence);\r\n// }} \"\"\r\n// {{ 156 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 157 1 0 \"8d6fdce5_327c_491b_aebee60a715b6c6e\" \"ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A(\"8d6fdce5_327c_491b_aebee60a715b6c6e\"); // Head96Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_00A0A59BF99B42a686A202BE72502D6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"6c23fd1d_be57_4011_8fea4ea6459aeecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 160 1 0 \"ee52ace2_98fe_454f_841ae740168bebcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 161 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 162 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 163 1 0 \"8bf3cb1f_0b71_493d_bf300c05413fc543\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 164 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"091a5303_35ee_4d82_a0b32d9ede26439d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 167 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 170 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_06FF5C7D72E044ac924A0658E57AC92A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 171 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 172 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 173 1 0 \"0b5e4cdb_1c92_4d18_a0bed95d854a0d94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 174 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"Begin\"\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_SubmergeDepthCORE;\r\nprivate variable str_FW_Digits;\r\nprivate variable flt_TipLength;\r\nprivate variable int_LLDheight;\r\nprivate variable flt_TipLength_corrected;\r\nprivate variable int_FW_Digits;\r\nprivate variable flt_StepSize;\r\nprivate variable int_Steps_mm;\r\nprivate variable str_ReturnValueH0RH;\r\nprivate variable flt_angle;\r\nprivate variable tipType;\r\n// {{ 5 \"MPH_GetLastLLD_Level\" \"InitLocals\"\r\no_flt_LastLiquidLevel = 0;\r\n// }} \"\"\r\n// {{ 212 1 0 \"f7c5b642_e642_4bd2_b342e8a2202f94b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SubmergeDepthCORE = 8.0;\r\n// }} \"\"\r\n// {{ 213 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 214 1 0 \"de2e1cfc_3be8_4752_b20a1221fc802c26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"bf16ce46_b00c_46c3_93046a4e730e9868\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(i_liquidClass);\r\n// }} \"\"\r\n// {{{ 216 1 0 \"7d094f81_a8b9_4eb1_90a841201d1a4cca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType);\r\n// }} \"\"\r\n// {{ 217 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"a97af8ec_9af3_46fa_a150d41888290f6f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE;\r\n// }} \"\"\r\n// {{{ 219 1 0 \"8fc17eb7_3fbb_4a8e_b537d43144e8598c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle);\r\n// }} \"\"\r\n// {{ 220 1 0 \"31649b83_68f7_49a0_974f7efa6232c07d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnValueH0RH = Translate(\"\");\r\n// }} \"\"\r\n// {{ 221 1 0 \"72f92b7c_2537_40be_bc5fe85726a39b19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StepSize = 0.005;\r\n// }} \"\"\r\n// {{ 222 1 0 \"b5a3458f_9eea_4501_a6aa86c0556ad194\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b5a3458f_9eea_4501_a6aa86c0556ad194\"); // FirmwareCommand\r\n\tstr_ReturnValueH0RH = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 223 1 0 \"73c2ff19_ed4c_4c45_a9c5b56a6e84b044\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"str_ReturnValueH0RH: \"), str_ReturnValueH0RH);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 224 1 0 \"f6fe1f5f_39ae_4b71_83f733a5cf490b66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FW_Digits = StrRight(str_ReturnValueH0RH, 6);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"9883fcc4_3dcd_4199_816696b3668f733f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_FW_Digits = StrIVal(str_FW_Digits);\r\n// }} \"\"\r\n// {{ 226 1 0 \"b427e920_22bd_492e_8c900ff3a99a649c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Steps_mm = int_FW_Digits * flt_StepSize;\r\n// }} \"\"\r\n// {{ 227 1 0 \"bbe179b4_5c85_4ece_ba3738d8817cdfc5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLDheight = int_Steps_mm - flt_Z_Coord;\r\n// }} \"\"\r\n// {{ 228 1 0 \"502175ce_b71d_406e_b155fea6f39d0fd0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 229 1 0 \"3bcc328b_1906_4590_94e64b4e80f03d3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"o_flt_LastLiquidLevel: \"), o_flt_LastLiquidLevel);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 176 1 0 \"031805d0_c2b0_4435_9b8f6fbb101dc62d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(dispenseSequence);\r\n// }} \"\"\r\n// {{{ 177 1 0 \"c249d641_ef0f_4423_bc2d48f01c114665\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(dispenseSequence);\r\n// }} \"\"\r\n// {{ 178 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 179 1 0 \"438b3cb3_7f3e_4d38_b993becaf0c2d66b\" \"ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB(\"438b3cb3_7f3e_4d38_b993becaf0c2d66b\"); // Head96Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 180 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 181 1 0 \"714a2035_eb8c_4e86_85aca8d69086952e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"bc1347df_5f38_41ae_be3c240228e5944c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 183 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 184 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 185 1 0 \"911c2699_0e84_425f_9e9384c7b6c75351\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 186 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 187 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 188 1 0 \"17abaeba_05ec_4e18_a3843b54b3bdf6f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 189 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 190 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 192 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 193 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 194 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 195 1 0 \"c826eb96_3570_4883_a8298bc890043c3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 196 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"Begin\"\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 198 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 199 1 0 \"a8f4b6bb_e103_433a_b1360393d37e32b3\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"a8f4b6bb_e103_433a_b1360393d37e32b3\"); // Head96TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 200 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C33A74C211664afd9B08BCD3DD5339FC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 201 1 0 \"71d45982_a084_4aaa_a34c6558755061d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 202 1 0 \"9e9d44f5_b614_4fb4_b6d39860c83d879d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 203 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"Begin\"\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 148 1 0 \"9967a99d_7b6f_4194_8ba1f49c05de08c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED69C1C4A5D948beA7B65C38D8B5B80A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 149 1 0 \"dc7838fc_172e_45b4_89099f664d6d452e\" \"ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2(\"dc7838fc_172e_45b4_89099f664d6d452e\"); // Initialize\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 150 1 0 \"9967a99d_7b6f_4194_8ba1f49c05de08c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED69C1C4A5D948beA7B65C38D8B5B80A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 151 1 0 \"6bd66132_cab8_473c_8437aa033b84ff48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 152 1 0 \"9967a99d_7b6f_4194_8ba1f49c05de08c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"Begin\"\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"SendFirmwareCommand\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 231 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 232 1 0 \"c616f5ea_baed_4075_a75531e82e045e2b\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c616f5ea_baed_4075_a75531e82e045e2b\"); // FirmwareCommand\r\n\to_stepReturn = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 233 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 234 1 0 \"305af0e7_7bac_4678_a0d1c7c3dd9900d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 235 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"Begin\"\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_Initialize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 237 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 238 1 0 \"7484a06f_e352_4e50_ba49b2ae66740aa9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate);\r\n// }} \"\"\r\n// {{ 239 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F7A233121EBD413184BEE5D2CD3510CA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 240 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"Begin\"\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_MoveToPosition\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 242 1 0 \"5c89ffd7_d851_4fe5_9e0f7c9c037a5420\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0D6035D57CBB40aa9CA31080E8506D64 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 243 1 0 \"dc47af4b_38a7_4669_a34ededd16ef3599\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLDaisyChainedTiltModule::MoveToPosition(Module, Position);\r\n// }} \"\"\r\n// {{ 244 1 0 \"5c89ffd7_d851_4fe5_9e0f7c9c037a5420\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0D6035D57CBB40aa9CA31080E8506D64 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 245 1 0 \"5c89ffd7_d851_4fe5_9e0f7c9c037a5420\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"Begin\"\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_Initialize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 123 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 124 1 0 \"4a56221f_279f_41c2_8aa7d01ca0775b48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode);\r\n// }} \"\"\r\n// {{ 125 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 126 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_StartTemperatureControl\" \"InitLocals\"\r\nErrorCode = 0;\r\n// }} \"\"\r\n// {{ 133 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 134 1 0 \"165f1e92_bd94_4781_b9c2d2fecfc302dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 135 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EF764FBDA7474071A7B517987B9B2FC2 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 136 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"Begin\"\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & ErrorCode ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_SetTarget\" \"InitLocals\"\r\nErrorCode = 0;\r\n// }} \"\"\r\n// {{ 128 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 129 1 0 \"68d33a63_3452_4fdb_88a49f4ca5677072\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, ErrorCode);\r\n// }} \"\"\r\n// {{ 130 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_56BA970A477C47bf90C6C3373DEB98B0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 131 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StopTemperatureControl(  ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\nprivate variable ControllerID;\r\nprivate variable DeviceID;\r\n// {{ 5 \"Inheco_TEC_StopTemperatureControl\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 138 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 139 1 0 \"93014b15_0695_49c7_a3bc4a788bf82474\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 140 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E3152496BDA74f1681473505DC2B3A3E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 141 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"Begin\"\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_Terminate\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 143 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 144 1 0 \"863ac80a_6720_4389_994aaee58cd89479\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLInhecoTECLib::Terminate(StopAllDevices);\r\n// }} \"\"\r\n// {{ 145 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 146 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-05-14 13:36$$checksum=56a6d91d$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/Hamilton pH Module Controller.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 2/27/2023 12:46:19 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace HAMILTON_PH_MODULE_CONTROLLER {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction 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); }\r\nfunction Dry( device & ML_STAR, variable i_intModuleID ) variable {  return (0); }\r\nfunction EnableExtendedLog(  ) void { }\r\nfunction Initialize( device & ML_STAR, variable i_intPortNumber, variable & o_fltDefaultTemperature, variable & o_intModuleID ) variable {  return (0); }\r\nfunction LastUsedConfigurationLoad( variable & o_intBluetoothPort, variable & o_intNumberOfWashCycles, variable & o_intNumberOfDryCycles, variable & o_intDryTime ) void { }\r\nfunction LastUsedConfigurationSave( variable i_intBluetoothPort, variable i_intNumberOfWashCycles, variable i_intNumberOfDryCycles, variable i_intDryTime ) void { }\r\nfunction 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); }\r\nfunction 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); }\r\nfunction ParkModule( device & ML_STAR, variable i_intModuleID, sequence i_seqModule ) variable {  return (0); }\r\nfunction PickupModule( device & ML_STAR, variable i_intModuleID, sequence & i_seqModule ) variable {  return (0); }\r\nfunction RequestBatteryData( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intActualCharge ) variable {  return (0); }\r\nfunction 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); }\r\nfunction Terminate( variable i_intModuleID ) variable {  return (0); }\r\nfunction Wash( device & ML_STAR, variable i_intModuleID ) variable {  return (0); }\r\nfunction _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); }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=stefa$$valid=0$$time=2023-02-27 12:46$$checksum=72151b8c$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/Hamilton pH Module Controller.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLTimLib.hsl\"\r\n#include \"HSLLabwrAccess\\\\HSLLabwrAccess.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"Hamilton DriverTools\\\\Hamilton DriverTools.hsl\"\r\n#include \"HSLFilLib.hsl\"\r\n#include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\"\r\n#include \"Hamilton PH Module\\\\Hamilton pH Module.hsl\"\r\n#include \"Hamilton PH Module\\\\Hamilton pH Station Washer Module.hsl\"\r\n#include \"ASWStandard\\\\ASWGlobal\\\\ASWGlobal.hsl\"\r\n#include \"Hamilton PH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace HAMILTON_PH_MODULE_CONTROLLER {\r\n// }} \"\"\r\nsequence _seqGripper;\r\nvariable _intTransportChannel;\r\nsequence _seqWasher;\r\nvariable _intWasherModuleID;\r\nvariable _intDryerModuleID;\r\nvariable _fltOpenWidth;\r\nvariable _fltGripHeight;\r\nvariable _fltGripWidth;\r\nvariable _intWashCycles;\r\nsequence _seqDryer;\r\nvariable _strPathMeasurement;\r\nvariable _strPathCalibration;\r\nvariable _intDryCycles;\r\nvariable _intDryWaitTime;\r\nvariable _fltProbeOffsetY;\r\nvariable _strProbePattern;\r\nvariable _intTraceLevel(2);\r\nsequence _seqModule;\r\nvariable _strSerialNumber;\r\nvariable _strLibraryName(\"Hamilton pH Module Controller\");\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction 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 ;\r\nfunction Dry( device & ML_STAR, variable i_intModuleID ) variable ;\r\nfunction EnableExtendedLog(  ) void ;\r\nfunction Initialize( device & ML_STAR, variable i_intPortNumber, variable & o_fltDefaultTemperature, variable & o_intModuleID ) variable ;\r\nfunction LastUsedConfigurationLoad( variable & o_intBluetoothPort, variable & o_intNumberOfWashCycles, variable & o_intNumberOfDryCycles, variable & o_intDryTime ) void ;\r\nfunction LastUsedConfigurationSave( variable i_intBluetoothPort, variable i_intNumberOfWashCycles, variable i_intNumberOfDryCycles, variable i_intDryTime ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction ParkModule( device & ML_STAR, variable i_intModuleID, sequence i_seqModule ) variable ;\r\nfunction PickupModule( device & ML_STAR, variable i_intModuleID, sequence & i_seqModule ) variable ;\r\nfunction RequestBatteryData( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intActualCharge ) variable ;\r\nfunction 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 ;\r\nfunction Terminate( variable i_intModuleID ) variable ;\r\nfunction Wash( device & ML_STAR, variable i_intModuleID ) variable ;\r\nprivate function _CreateModulePosition( device & ML_STAR, sequence i_seqTargetPosition, variable i_fltDistanceFromBottom, variable i_blnShiftPositionByProbe, variable i_strPositionName, variable i_strCallingFunctionName, sequence & o_seqModulePosition ) variable ;\r\nprivate function _Dry( device & ML_STAR ) variable ;\r\nprivate 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 ;\r\nfunction _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 ;\r\nprivate function _RequestBatteryData( variable i_intModuleID, variable i_strCallingFunctionName, variable i_intLowerLimit, variable & o_strReplacementDate, variable & o_intChargeLevel, variable & o_intChargeCounter ) variable ;\r\nprivate function _SuccessOrMoveBack( device & ML_STAR, variable i_blnSuccess, variable i_intModuleID, variable i_strFunctionName ) variable ;\r\nprivate function _Wash( device & ML_STAR ) variable ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"MeasureCycle\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable strTrace;\r\nprivate variable strFunctionName;\r\nprivate variable blnSuccess;\r\nprivate variable blnMeasureSuccess;\r\nprivate variable strError;\r\n// {{ 5 \"MeasureCycle\" \"InitLocals\"\r\no_arrfltpHValues.SetSize( 0);\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{ 384 1 0 \"302af67d_7018_417a_a330af0e2006c9e5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 385 1 0 \"9b05e863_98a8_4dc1_928690a00c3d3d12\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckFloatRange(i_fltMeasureHeight, \"i_fltMeasureHeight\", 0.0, 100.0, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 386 1 0 \"dabebefb_f458_4ab8_979ed510edaef95f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 387 1 0 \"c740695c_dabc_473a_abd78afc70446b66\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 388 1 0 \"dabebefb_f458_4ab8_979ed510edaef95f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 389 1 0 \"90976b96_68f8_4963_9efe618672294eff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intMeasureTime, \"i_intMeasureTime\", 1, 600, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 390 1 0 \"c16cad4c_ce54_4322_a13f0958c2ae440f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 391 1 0 \"f076cecf_ed71_46b1_a32e14517cace1b4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 392 1 0 \"c16cad4c_ce54_4322_a13f0958c2ae440f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 393 1 0 \"e12cddc3_b85e_41b4_8eadc6ff005c430b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 394 1 0 \"43d28d43_8d87_47ec_974a2e514d5b6bbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"i_fltMeasureHeight = \", i_fltMeasureHeight, \", i_strProbePattern = \", i_strProbePattern);\r\n// }} \"\"\r\n// {{{ 395 1 0 \"f65b730e_242a_4a43_a6c3455570e48ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 396 1 0 \"dfc1548c_bb43_41fe_88d2ef0a9ca151bc\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrfltpHValues.SetSize(4);\r\n// }} \"\"\r\n// {{ 397 1 0 \"15415db8_e316_4e31_adf545d6524f76f2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 398 1 0 \"8537985b_2ebf_4938_acb35905fe20fae3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnMeasureSuccess = _Measure(ML_STAR, i_intModuleID, i_seqMeasurement, ASWGLOBAL::BOOL::TRUE, i_fltMeasureHeight, i_strProbePattern, i_intMeasureTime, i_fltTemperature, strFunctionName, o_arrfltpHValues);\r\n// }} \"\"\r\n// {{{ 399 1 0 \"637af85a_1c75_423c_9975652549853190\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Wash(ML_STAR);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"ba639678_28e9_4495_9f695143d71ce7b7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 401 1 0 \"55c7056f_25f2_4b3a_8976af5b2600adaa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 402 1 0 \"efc7e54f_0822_4742_980ca55dbd22686a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 403 1 0 \"55c7056f_25f2_4b3a_8976af5b2600adaa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 404 1 0 \"e6103ee5_d4a0_4ee0_b5d95511ee6bfac6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Dry(ML_STAR);\r\n// }} \"\"\r\n// {{{ 405 1 0 \"c82d18cc_670f_42a1_ae89a6e9736f911b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 406 1 0 \"14fb8616_772a_4a65_8bc67d42e5d51397\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 407 1 0 \"53ff9b76_7097_4c42_bcbcb9c89d444491\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 408 1 0 \"14fb8616_772a_4a65_8bc67d42e5d51397\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 409 1 0 \"15415db8_e316_4e31_adf545d6524f76f2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 410 1 0 \"2d51de6b_8bcf_4b62_a260384134cf650c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 411 1 0 \"7dc3e1bc_90c3_467d_bc5fc9a057e676a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnMeasureSuccess = _SuccessOrMoveBack(ML_STAR, blnMeasureSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 412 1 0 \"8aceac6c_9800_43bc_888a1e124c0c51da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnMeasureSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 413 1 0 \"00e6df15_d5c7_4d57_81ae1d98bf7ee40e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::GetLastError(i_intModuleID, strError);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"5ba37b15_c387_4cc9_9ceef92871de841c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Module reported the following error: '\", strError, \"'\", \"\");\r\n// }} \"\"\r\n// {{{ 415 1 0 \"ae6bc682_c4fd_401d_b7f8a22057fa69e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"f582dadf_400e_4710_9f572f64f27b906f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 417 1 0 \"8aceac6c_9800_43bc_888a1e124c0c51da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 418 1 0 \"29a1ce96_4688_4d06_801b81822005bd8f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 419 1 0 \"5b4fc6dc_fee7_4b58_a5d05896dd02da2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTraceArray(Hamilton_DriverTools::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, o_arrfltpHValues, \"o_arrfltpHValues\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"4ad31e4b_26d3_4e95_932105fad0f94910\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"MeasureCycle\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Terminate\" \"Begin\"\r\nfunction Terminate( variable i_intModuleID ) variable {\r\n// }} \"\"\r\nprivate variable blnSuccess;\r\nprivate variable strFunctionName;\r\n// {{ 5 \"Terminate\" \"InitLocals\"\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{ 507 1 0 \"1a479425_a081_4f36_87db0266e45bc221\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 508 1 0 \"447e50ab_4b85_4ed7_ba06188a6f46d629\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 509 1 0 \"b6f863cc_35e8_47b8_92f2d3a6bb2c0915\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 510 1 0 \"8ba336c1_da62_4138_a879419a583d1f8f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::Terminate(i_intModuleID);\r\n// }} \"\"\r\n// {{ 511 1 0 \"71b134b5_b582_4e88_ba5606cbccd98072\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 512 1 0 \"7b1ee6ec_83b7_451a_8566cc469e5a4e40\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to terminate pH module\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 513 1 0 \"5ac65c32_0754_48c3_baee8debc65b038b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 514 1 0 \"71b134b5_b582_4e88_ba5606cbccd98072\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 515 1 0 \"e1b313b4_7692_491c_90e407ac6fe7e424\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 516 1 0 \"b0ef64b5_710b_447f_bc6b9304557b1769\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 517 1 0 \"c4bd2601_8e30_4fd6_ab373cb1748fa555\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_CreateModulePosition\" \"Begin\"\r\nprivate function _CreateModulePosition( device & ML_STAR, sequence i_seqTargetPosition, variable i_fltDistanceFromBottom, variable i_blnShiftPositionByProbe, variable i_strPositionName, variable i_strCallingFunctionName, sequence & o_seqModulePosition ) variable {\r\n// }} \"\"\r\nprivate variable blnSuccess;\r\nprivate variable strTrace;\r\nprivate variable strLabwareID;\r\nprivate variable intSuccess;\r\nprivate variable strPositionID;\r\nprivate variable fltModulePosR;\r\nprivate variable fltModulePosX;\r\nprivate variable fltModulePosY;\r\nprivate variable fltModulePosZ;\r\nprivate sequence _seqTemporaryPosition;\r\nprivate variable strConfigFile;\r\nprivate variable strFunctionName;\r\n// {{ 5 \"_CreateModulePosition\" \"InitLocals\"\r\n{ sequence __temp; o_seqModulePosition = __temp; }\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 529 1 0 \"4d9d1626_2ff1_4be8_9bf4498bfea4199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevRemoveLabware(ML_STAR, i_strPositionName);\r\n// }} \"\"\r\n// {{{ 530 1 0 \"dd63eb63_22a1_4804_94e459ab9f2ef8bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrConfigFile = FilGetLabwarePath();\r\n// }} \"\"\r\n// {{{ 531 1 0 \"a3af66ec_7e8b_44f9_bf6de64fc0c5b8f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrConfigFile = StrConcat2(strConfigFile, \"\\\\Hamilton pH Module\\\\Ham_1_NB_Mod_pHModule.rck\");\r\n// }} \"\"\r\n// {{{ 532 1 0 \"df2e5108_e2dd_427a_94d33686f9e61446\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintSuccess = DevAddLabware(ML_STAR, i_strPositionName, strConfigFile, 100, 100, 100, 0);\r\n// }} \"\"\r\n// {{ 533 1 0 \"41cf272a_7140_4956_b21c8a766857965c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intSuccess == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 534 1 0 \"86d4d08f_53b7_417b_b24ca6d82b4ad9be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Unable to create labware '\", i_strPositionName, \"' on the deck layout !\", \"\");\r\n// }} \"\"\r\n// {{{ 535 1 0 \"24865c20_3700_4390_a83f50501184e336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 536 1 0 \"b8c143d4_9cbb_4e13_86ad5e9a22580942\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 537 1 0 \"41cf272a_7140_4956_b21c8a766857965c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 538 1 0 \"bd2fbf6c_c322_4b5b_b423253c65ba6db2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(_seqTemporaryPosition, i_strPositionName, \"1\");\r\n// }} \"\"\r\n// {{{ 539 1 0 \"6a2ea6d9_817e_4a27_bcd6366d428eb87d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqResetSequenceIndexes(_seqTemporaryPosition);\r\n// }} \"\"\r\n// {{{ 540 1 0 \"f5ccc40c_0031_4f0d_bb4bc68c63dfc172\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrLabwareID = SeqGetLabwareId(i_seqTargetPosition);\r\n// }} \"\"\r\n// {{{ 541 1 0 \"2b43a2b6_9050_458a_b28c4ab9eaa1b6e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrPositionID = SeqGetPositionId(i_seqTargetPosition);\r\n// }} \"\"\r\n// {{{ 542 1 0 \"1d6e5da4_1b78_436d_bcdbcd35f2b61d8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintSuccess = DevGetLabwarePositionEx(ML_STAR, strLabwareID, strPositionID, fltModulePosX, fltModulePosY, fltModulePosZ, fltModulePosR);\r\n// }} \"\"\r\n// {{ 543 1 0 \"8c9917c9_646c_44f2_856de601173adea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intSuccess == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 544 1 0 \"9127562d_f4c2_478a_b8a887bdc7f64fea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Unable to retrieve position for labware '\", strLabwareID, \"' !\", \"\");\r\n// }} \"\"\r\n// {{{ 545 1 0 \"9e22fc0a_54ba_45df_b3644ad23008a48a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"5ca3a421_0b4e_442c_a7bd845a34c05729\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 547 1 0 \"8c9917c9_646c_44f2_856de601173adea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 548 1 0 \"58459cb0_e73d_4ee5_8e9a6d8605a0023d\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltModulePosX = fltModulePosX - 35.5;\r\n// }} \"\"\r\n// {{ 549 1 0 \"9737e87d_1a93_4567_8dbc98124d5bbb27\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltModulePosY = fltModulePosY - 31;\r\n// }} \"\"\r\n// {{ 550 1 0 \"26dd5c74_be39_416d_96308d09b992ffea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_blnShiftPositionByProbe == ASWGLOBAL::BOOL::TRUE)\r\n{\r\n// }} \"\"\r\n// {{ 551 1 0 \"cf518551_cbdf_44ea_adbb828b4ce29355\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltModulePosY = fltModulePosY + _fltProbeOffsetY;\r\n// }} \"\"\r\n// {{ 552 1 0 \"26dd5c74_be39_416d_96308d09b992ffea\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 553 1 0 \"2f3c8d7f_cd2a_4eec_aa30c91f20815f39\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltModulePosZ = fltModulePosZ + 1.0;\r\n// }} \"\"\r\n// {{ 554 1 0 \"9906cc34_499c_497e_95bb244b8bd39b8b\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltModulePosZ = fltModulePosZ + i_fltDistanceFromBottom;\r\n// }} \"\"\r\n// {{{ 555 1 0 \"4a2102f7_da62_40f6_aac8324768780112\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, i_strPositionName, fltModulePosX, fltModulePosY, fltModulePosZ, fltModulePosR);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"26ea9d68_fed7_4fde_952757f14617fe6c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(o_seqModulePosition, _seqTemporaryPosition);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"9d4b9e5e_a272_4b3c_95531347e9c2718c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqResetSequenceIndexes(o_seqModulePosition);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"4dbe366c_9a01_4db7_8b7af753558ba12d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"_CreateModulePosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Calibrate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable strTrace;\r\nprivate variable blnSuccess;\r\nprivate sequence trpCalibration_1;\r\nprivate sequence trpCalibration_2;\r\nprivate variable blnCalibrationSuccess;\r\nprivate variable fltCalibrationSlope;\r\nprivate variable fltCalibrationTemperature;\r\nprivate variable intLoopCounterActualProbe;\r\nprivate variable fltCalibrationOffset;\r\nprivate variable intCutPosition;\r\nprivate variable strSingleProbe;\r\nprivate file hdlCalibrationFile;\r\nprivate variable strDate;\r\nprivate variable strTime;\r\nprivate variable intMeasurementCounter_Probe_1;\r\nprivate variable intMeasurementCounter_Probe_2;\r\nprivate variable intMeasurementCounter_Probe_3;\r\nprivate variable intMeasurementCounter_Probe_4;\r\nprivate variable intCalibrationSlopeRatio;\r\nprivate variable blnMeasureSuccess;\r\nprivate timer hdlWaitForSettling;\r\nprivate variable strError;\r\nprivate variable strSheetName;\r\nprivate variable intMeasurementCounter_Probe;\r\nprivate variable intChargeLevel;\r\nprivate variable intChargeCounter;\r\nprivate variable intUserChoice;\r\nprivate dialog customDialogE397764E225E462994B8ABC24DAEC074;\r\nprivate variable strProbeReplacementDate;\r\nprivate variable strBatteryReplacementDate;\r\nprivate dialog customDialog3498B3035DC64880812D3276C053592B;\r\nprivate variable strFunctionName;\r\nprivate variable fltpHHighValue;\r\nprivate variable fltpHHighVoltage;\r\nprivate variable fltpHLowValue;\r\nprivate variable fltpHLowVoltage;\r\nprivate variable fltpHValueMeasured;\r\n// {{ 5 \"Calibrate\" \"InitLocals\"\r\no_arrintCalibration_Slope_Ratios.SetSize( 0);\r\no_arrfltpH_Values_Reference_Solution.SetSize( 0);\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{ 2 1 0 \"a75a94b6_d04d_45a6_96c05fb45114d22c\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 3 1 0 \"f09ccd16_fd9e_43b4_afe90ce07493e72e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckFloatRange(i_fltMeasureHeight, \"i_fltMeasureHeight\", 0.0, 100.0, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 4 1 0 \"8e797683_3c6b_4db1_92470d2e393af705\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 5 1 0 \"db5b0f2b_25cf_41d3_8239f8225499fae5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 6 1 0 \"8e797683_3c6b_4db1_92470d2e393af705\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 7 1 0 \"91b6c16f_47e4_401d_ab59e5b5a457054e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckFloatRange(i_fltpH_Value_Reference_Solution, \"i_fltpH_Value_Reference_Solution\", 0.0, 14.0, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 8 1 0 \"b732fe0d_369d_45aa_bc4118e2ca762090\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 9 1 0 \"cc063389_f139_49f8_80ac639c47df23ca\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 10 1 0 \"b732fe0d_369d_45aa_bc4118e2ca762090\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 11 1 0 \"4fc4a524_ff7f_4214_bc5f8bad74e18684\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intCalibrationTime, \"i_intCalibrationTime\", 1, 600, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 12 1 0 \"3a6d66ba_bb19_4e38_bcf20362ba07dbe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 13 1 0 \"5b9d5da5_7330_4238_827efb4c1de30911\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 14 1 0 \"3a6d66ba_bb19_4e38_bcf20362ba07dbe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 15 1 0 \"f6d1f90e_353b_4db8_b35dd12298a16e10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intMeasureTime, \"i_intMeasureTime\", 1, 600, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 16 1 0 \"8746e912_2a4e_4c18_a759ab32c774a4a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 17 1 0 \"781b28bf_e128_4d3d_a51e096044707163\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 18 1 0 \"8746e912_2a4e_4c18_a759ab32c774a4a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 19 1 0 \"85232c06_27d7_4a1f_8437ea00d598fc08\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 20 1 0 \"77be492b_5228_429f_80e29dc723a7c9a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = 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);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"ec8cbe5b_5276_46d1_8920e617bd22b0b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat8(strTrace, \", i_fltTemperature_Calibration_Solution_2 = \", i_fltTemperature_Calibration_Solution_2, \", i_fltTemperature_Reference_Solution = \", i_fltTemperature_Reference_Solution, \"\", \"\", \"\");\r\n// }} \"\"\r\n// {{{ 22 1 0 \"0d4d779a_90bb_45c9_bc4c83f2df361f9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 23 1 0 \"1677be60_0d63_4335_95f82be09bfee936\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrfltpH_Values_Reference_Solution.SetSize(4);\r\n// }} \"\"\r\n// {{ 24 1 0 \"542862e0_5b96_4643_8c1b51589ee8b8bd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrintCalibration_Slope_Ratios.SetSize(4);\r\n// }} \"\"\r\n// {{ 25 1 0 \"8c7589a8_17db_4e5a_9bba6933d5589fbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 26 1 0 \"1dd75c07_4b42_4676_8acebf2ff237f6e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _CreateModulePosition(ML_STAR, i_seqCalibrationPosition_1, i_fltMeasureHeight, ASWGLOBAL::BOOL::FALSE, \"CalibrationPosition_1\", strFunctionName, trpCalibration_1);\r\n// }} \"\"\r\n// {{ 27 1 0 \"c4627d66_28ee_4f55_9209a29a6ec79f7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 28 1 0 \"7ba09e72_5a9f_4276_97c1e89fac0735e1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 29 1 0 \"c4627d66_28ee_4f55_9209a29a6ec79f7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 30 1 0 \"ab046727_b042_49fe_8d92d3a126bf7f93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _CreateModulePosition(ML_STAR, i_seqCalibrationPosition_2, i_fltMeasureHeight, ASWGLOBAL::BOOL::FALSE, \"CalibrationPosition_2\", strFunctionName, trpCalibration_2);\r\n// }} \"\"\r\n// {{ 31 1 0 \"894cb5c8_c353_4b28_9d9639cd8a14f1ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 32 1 0 \"73cee0e5_8e8e_44f0_93ba6e9158591b66\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 33 1 0 \"894cb5c8_c353_4b28_9d9639cd8a14f1ac\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 34 1 0 \"8c7589a8_17db_4e5a_9bba6933d5589fbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 35 1 0 \"6b36a6b8_af09_40ce_9c202bb27cd0f257\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 36 1 0 \"43342223_dc5e_4696_b079c8dc15e592a7\" \"ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F(\"43342223_dc5e_4696_b079c8dc15e592a7\"); // ZSwapGetPlate\r\n}\r\n// }} \"\"\r\n// {{{ 37 1 0 \"3e96f5d0_b9ab_4a74_b9814197de4e9927\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(_seqModule, i_seqModule);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"34a869df_4cf5_4f32_a8bbc5e51dd94976\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _RequestBatteryData(i_intModuleID, strFunctionName, 3, strBatteryReplacementDate, intChargeLevel, intChargeCounter);\r\n// }} \"\"\r\n// {{{ 39 1 0 \"01be3513_9055_45c5_976969b4fe0cd70f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 40 1 0 \"42ba5124_b9f9_42c5_82b8b49a8ada220b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 41 1 0 \"9a2f038b_51ad_4303_be83b4812a0975f1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 42 1 0 \"42ba5124_b9f9_42c5_82b8b49a8ada220b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 43 1 0 \"8672e0af_7f0c_4bce_9ebd4b56b20fbbde\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialog3498B3035DC64880812D3276C053592B.InitCustomDialog( \"8672e0af_7f0c_4bce_9ebd4b56b20fbbde\" );\r\ncustomDialog3498B3035DC64880812D3276C053592B.SetCustomDialogProperty( \"textBlock1.Text\", strBatteryReplacementDate );\r\ncustomDialog3498B3035DC64880812D3276C053592B.SetCustomDialogProperty( \"textBlock4.Text\", intChargeCounter );\r\ncustomDialog3498B3035DC64880812D3276C053592B.SetCustomDialogProperty( \"textBlock8.Text\", intChargeLevel );\r\ncustomDialog3498B3035DC64880812D3276C053592B.ShowCustomDialog();\r\nintUserChoice = customDialog3498B3035DC64880812D3276C053592B.GetCustomDialogProperty( \"ReturnValue\" );\r\n// }} \"\"\r\n// {{ 44 1 0 \"61306bc0_7878_47c2_8e73dd6f01322dcd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intUserChoice == ASWGLOBAL::DIALOG::CANCEL)\r\n{\r\n// }} \"\"\r\n// {{{ 45 1 0 \"1c7a8b74_02a9_491f_907b6a53cd55d057\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, ASWGLOBAL::BOOL::FALSE, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"4af0895b_ff4d_44e2_94145de87e3a4a60\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 47 1 0 \"61306bc0_7878_47c2_8e73dd6f01322dcd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"902abb3b_2a2c_4af9_be508a238df34532\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"902abb3b_2a2c_4af9_be508a238df34532\"); // ZSwapMovePlate\r\n}\r\n// }} \"\"\r\n// {{ 49 1 0 \"4a5e6d9e_4abc_47c1_90ca06066d2a1a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_blnCalibrateDynamically == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 50 1 0 \"0d68cd63_b05a_4004_a78bb4009ea7052b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlWaitForSettling.SetTimer(i_intCalibrationTime) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 51 1 0 \"1baf21c5_25be_4a5f_ac5b21fe512dafff\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlWaitForSettling.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 52 1 0 \"4a5e6d9e_4abc_47c1_90ca06066d2a1a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 53 1 0 \"efb76e52_5d29_47ca_a525b93e2dc88177\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"020a5323_8f52_43e3_a18a26785b0e5ac7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 55 1 0 \"eba9e3f2_1421_4c2c_abe62c5d9162d583\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 56 1 0 \"c4d4516e_7977_4571_8cd3417d3248d0a0\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 57 1 0 \"eba9e3f2_1421_4c2c_abe62c5d9162d583\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 58 1 0 \"5fa664ad_d3db_4cd0_97bcb4e7c621590c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_blnCalibrateDynamically == ASWGLOBAL::BOOL::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 59 1 0 \"a4c53ea5_6bf2_4567_b3aac3393a352f21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnCalibrationSuccess = 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);\r\n// }} \"\"\r\n// {{ 60 1 0 \"5fa664ad_d3db_4cd0_97bcb4e7c621590c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 61 1 0 \"f93033c6_0170_4800_8382b44a050567a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnCalibrationSuccess = Hamilton_pH_Module::Calibrate(i_intModuleID, Hamilton_pH_Module::Calibration::LowerLevel, i_fltpH_Value_Calibration_Solution_1, i_fltTemperature_Calibration_Solution_1, _strProbePattern);\r\n// }} \"\"\r\n// {{ 62 1 0 \"5fa664ad_d3db_4cd0_97bcb4e7c621590c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 63 1 0 \"07e79fe0_c759_468a_975a4a2252212108\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::Sleep(i_intModuleID);\r\n// }} \"\"\r\n// {{{ 64 1 0 \"a0eaf3ed_bceb_4ef3_a7c074b758e577dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Wash(ML_STAR);\r\n// }} \"\"\r\n// {{{ 65 1 0 \"e5bb8221_4bde_413b_b4c6bfeb9119d149\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 66 1 0 \"c0a95e69_a91a_4b5a_80a4b09001655452\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 67 1 0 \"7b4de711_3043_47ea_98671492d21838ab\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 68 1 0 \"c0a95e69_a91a_4b5a_80a4b09001655452\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 69 1 0 \"87e51ec2_aa4b_49bf_91e98ce681f1f656\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Dry(ML_STAR);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"680726af_4106_445a_8dcb758c9d1f83d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 71 1 0 \"0ed47700_207d_43f7_a353c5149469e32a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 72 1 0 \"9c9b64fc_2e15_4552_9cbee93fe8f39050\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 73 1 0 \"0ed47700_207d_43f7_a353c5149469e32a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 74 1 0 \"6b36a6b8_af09_40ce_9c202bb27cd0f257\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 75 1 0 \"fc87dd49_8ac4_459a_bb288fb226b16275\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnCalibrationSuccess = _SuccessOrMoveBack(ML_STAR, blnCalibrationSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 76 1 0 \"6229636d_c27b_470c_b8362586130c4766\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnCalibrationSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 77 1 0 \"b1403713_002f_4d90_8f4dcb60cd807203\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 78 1 0 \"6229636d_c27b_470c_b8362586130c4766\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 79 1 0 \"be37c5e1_fc78_4482_a5a273b6837d8d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 80 1 0 \"dc79ae91_06a6_46bb_b2c14c444d6fce75\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"dc79ae91_06a6_46bb_b2c14c444d6fce75\"); // ZSwapMovePlate\r\n}\r\n// }} \"\"\r\n// {{ 81 1 0 \"56d167d2_8619_458b_9f47e31be60e0501\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_blnCalibrateDynamically == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 82 1 0 \"ddb19b64_b22a_42a4_a1ab8f508ae0c8f0\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlWaitForSettling.SetTimer(i_intCalibrationTime) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 83 1 0 \"90448365_e175_49b7_87ca397526516d83\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlWaitForSettling.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 84 1 0 \"56d167d2_8619_458b_9f47e31be60e0501\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 85 1 0 \"2f9b2e7c_821e_4e98_a8db66c0df121dd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{{ 86 1 0 \"05ebb41d_c71c_4656_b469e40002209767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 87 1 0 \"7459036c_92b3_487f_8fcaa7fdde27758c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnCalibrationSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 88 1 0 \"ae0c64d2_4c0b_4186_be320a9cd0e2ba82\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 89 1 0 \"7459036c_92b3_487f_8fcaa7fdde27758c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 90 1 0 \"ab4c9ccc_be94_4d8f_a7a659cdd6cb17b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_blnCalibrateDynamically == ASWGLOBAL::BOOL::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 91 1 0 \"91ff5afb_29af_438e_b7daaf149ca1f6ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnCalibrationSuccess = 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);\r\n// }} \"\"\r\n// {{ 92 1 0 \"ab4c9ccc_be94_4d8f_a7a659cdd6cb17b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 93 1 0 \"c14396f9_c719_4298_9c17c033a71f0b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnCalibrationSuccess = Hamilton_pH_Module::Calibrate(i_intModuleID, Hamilton_pH_Module::Calibration::UpperLevel, i_fltpH_Value_Calibration_Solution_2, i_fltTemperature_Calibration_Solution_2, _strProbePattern);\r\n// }} \"\"\r\n// {{ 94 1 0 \"ab4c9ccc_be94_4d8f_a7a659cdd6cb17b7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 95 1 0 \"e9717f69_72c6_4e04_8b888d921fcfbd5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::Sleep(i_intModuleID);\r\n// }} \"\"\r\n// {{{ 96 1 0 \"2b5374e3_0dca_4fa0_a304d345b09b1fcd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Wash(ML_STAR);\r\n// }} \"\"\r\n// {{{ 97 1 0 \"a92da57f_dde4_4845_864f633a386da9eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 98 1 0 \"354a5773_03a4_41b7_8ddea316de34f1da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 99 1 0 \"c21054c7_37e1_449e_90901bf7e93d2af8\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 100 1 0 \"354a5773_03a4_41b7_8ddea316de34f1da\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 101 1 0 \"122a646e_0e29_4c55_9440275001192a10\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Dry(ML_STAR);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"ae934075_236a_46c4_a91e4a1de38490c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 103 1 0 \"91e29484_9a0f_436f_bc597c9478e47445\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 104 1 0 \"163dbce4_eb65_4b88_bb885fb31c8b6f07\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 105 1 0 \"91e29484_9a0f_436f_bc597c9478e47445\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 106 1 0 \"be37c5e1_fc78_4482_a5a273b6837d8d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 107 1 0 \"c412d187_007c_4c41_9f30cef01e1095e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnCalibrationSuccess = _SuccessOrMoveBack(ML_STAR, blnCalibrationSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 108 1 0 \"e8f33b67_4058_4565_90b8167db93049d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnCalibrationSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 109 1 0 \"825d3e20_85c7_4f46_9c89d30056a60f71\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 110 1 0 \"e8f33b67_4058_4565_90b8167db93049d2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 111 1 0 \"36d79593_b37b_49f5_976dff6178298e73\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 112 1 0 \"bc20bf66_41f4_4573_bc6cb282cfb97d6b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnMeasureSuccess = _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);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"44ec0f93_7861_44c7_bcb29b92b1750feb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Wash(ML_STAR);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"43e5e2b4_67cd_4d50_8f714d418df177d7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 115 1 0 \"47e5f024_706e_4ad7_bc55dbfc36051d0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 116 1 0 \"f5df7ec6_c344_4953_91e7746760e33961\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 117 1 0 \"47e5f024_706e_4ad7_bc55dbfc36051d0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b21623d1_e47f_4190_9eb8f68d13897265\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Dry(ML_STAR);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"2b24faa8_0cec_4511_a3854b68ed417a07\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 120 1 0 \"d142dada_f9ce_4955_8751de9065b91690\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 121 1 0 \"9c98d792_3a09_4694_8dccdcdb0500632a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 122 1 0 \"d142dada_f9ce_4955_8751de9065b91690\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 123 1 0 \"36d79593_b37b_49f5_976dff6178298e73\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 124 1 0 \"26e7c14f_6b07_438d_b684496fd615ae7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnMeasureSuccess = _SuccessOrMoveBack(ML_STAR, blnMeasureSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 125 1 0 \"8b1d1db2_d2c8_46ae_81f3c4eaddc714e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnMeasureSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 126 1 0 \"845c4613_20d8_4789_9b92107456f6ac88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::GetLastError(i_intModuleID, strError);\r\n// }} \"\"\r\n// {{{ 127 1 0 \"d156f86d_0fda_4123_99cdb3c09883114c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Module reported the following error: '\", strError, \"'\", \"\");\r\n// }} \"\"\r\n// {{{ 128 1 0 \"52c542ab_b14f_4d0f_a7cdf7a88903c37a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 129 1 0 \"233117cb_a465_4715_8966dcd2bb85eee7\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 130 1 0 \"8b1d1db2_d2c8_46ae_81f3c4eaddc714e5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 131 1 0 \"3d3c7e73_b3c7_4b0b_bb217d22d2e2cc77\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 132 1 0 \"ff7edd57_052b_4a44_b33124209d206c55\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _RequestBatteryData(i_intModuleID, strFunctionName, 1, strBatteryReplacementDate, intChargeLevel, intChargeCounter);\r\n// }} \"\"\r\n// {{{ 133 1 0 \"841f7d93_a0ba_428b_a66e19114ff89f5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 134 1 0 \"c3ea4053_21fb_43f6_9adc92ffec4660f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 135 1 0 \"5a59f38b_cd27_444a_8d0a12f0f47d3f96\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 136 1 0 \"c3ea4053_21fb_43f6_9adc92ffec4660f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 137 1 0 \"1573c752_d540_4042_a17eb084fdb49199\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 138 1 0 \"adc762ae_c2fa_4b3e_af67932c785cf006\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"adc762ae_c2fa_4b3e_af67932c785cf006\"); // ZSwapPlacePlate\r\n}\r\n// }} \"\"\r\n// {{{ 139 1 0 \"d8cb46a3_cbd5_4f00_9a1404554ed6a759\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{ 140 1 0 \"a7e68ca2_ff0e_4013_80c566d2cc1e6169\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 141 1 0 \"7e9dc89c_a6ff_4da3_abc119a4955cb2dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::RequestProbeData(i_intModuleID, strProbeReplacementDate, intMeasurementCounter_Probe_1, intMeasurementCounter_Probe_2, intMeasurementCounter_Probe_3, intMeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{ 142 1 0 \"60d8189b_052e_48d4_a4828d3e5b9c02dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 143 1 0 \"82e307b3_ff5d_4876_8d5adf121d1816a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to retrieve probe data\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 144 1 0 \"71402a00_c227_40f7_a0b4afade8d6bc3b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 145 1 0 \"60d8189b_052e_48d4_a4828d3e5b9c02dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 146 1 0 \"c8f7d402_8cc4_4e12_8d02be6c6c5af100\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(intLoopCounterActualProbe = 0; intLoopCounterActualProbe < 4;)\r\n{\r\nintLoopCounterActualProbe = intLoopCounterActualProbe + 1;\r\n// }} \"\"\r\n// {{ 147 1 0 \"afaead4b_bcdc_4c6a_ab47a49b9c17c8be\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nintCutPosition = intLoopCounterActualProbe - 1;\r\n// }} \"\"\r\n// {{{ 148 1 0 \"613bccaa_f8dc_4490_9603030e7c311763\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrSingleProbe = StrMid(_strProbePattern, intCutPosition, 1);\r\n// }} \"\"\r\n// {{ 149 1 0 \"ab5cf2ef_915b_4ffd_9cce54262e665738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (strSingleProbe == \"1\")\r\n{\r\n// }} \"\"\r\n// {{{ 150 1 0 \"0bfd3ab4_d160_47c8_87949d8d7ea7a215\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::RequestCalibrationValues(i_intModuleID, intLoopCounterActualProbe, fltpHLowValue, fltpHLowVoltage, fltpHHighValue, fltpHHighVoltage, fltCalibrationTemperature, fltCalibrationOffset, fltCalibrationSlope, intCalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{ 151 1 0 \"b0be71de_2656_410b_a350db8d91a1e772\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"4f3aa94e_db9c_43cf_9c583ddd56907555\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to retrieve calibration values\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"dd4013ab_8451_4c35_b69a94cf16976be7\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 154 1 0 \"b0be71de_2656_410b_a350db8d91a1e772\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 155 1 0 \"8272eb0f_39c3_4384_8ec669f20430301d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_arrintCalibration_Slope_Ratios[ intLoopCounterActualProbe -1] = intCalibrationSlopeRatio;\r\n// }} \"\"\r\n// {{{ 156 1 0 \"88bee88f_9749_4f02_9f181c68effb7913\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrSheetName = StrConcat2(\"Probe_\", intLoopCounterActualProbe);\r\n// }} \"\"\r\n// {{ 157 1 0 \"4cc243a4_6587_4bad_883a16579d5ed49a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltpHValueMeasured = o_arrfltpH_Values_Reference_Solution.ElementAt( intLoopCounterActualProbe -1);\r\n// }} \"\"\r\n// {{{ 158 1 0 \"ea861e0b_2241_4a5d_a336ec7bd9693443\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrDate = TimGetFormattedDate(\"%Y.%m.%d\");\r\n// }} \"\"\r\n// {{{ 159 1 0 \"0c04f6d7_32fe_4bb8_8b1abf54db40e750\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTime = TimGetFormattedTime(\"\");\r\n// }} \"\"\r\nif(intLoopCounterActualProbe == 1) intMeasurementCounter_Probe = intMeasurementCounter_Probe_1;\r\nif(intLoopCounterActualProbe == 2) intMeasurementCounter_Probe = intMeasurementCounter_Probe_2;\r\nif(intLoopCounterActualProbe == 3) intMeasurementCounter_Probe = intMeasurementCounter_Probe_3;\r\nif(intLoopCounterActualProbe == 4) intMeasurementCounter_Probe = intMeasurementCounter_Probe_4;\r\n// {{ 161 1 0 \"6e3e426a_95dc_4feb_a9d481e21e38885d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1A2EA4305E1148d49F1B0C7D67810462 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 162 1 0 \"f93413d9_9203_4d7d_85adc96329474b0a\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nhdlCalibrationFile.AddField(\"Module_Info\", _strSerialNumber, hslString, 255);\r\nhdlCalibrationFile.AddField(\"Date\", strDate, hslString, 255);\r\nhdlCalibrationFile.AddField(\"Time\", strTime, hslString, 255);\r\nhdlCalibrationFile.AddField(\"pH_Low\", fltpHLowValue, hslFloat);\r\nhdlCalibrationFile.AddField(\"Voltage_Low\", fltpHLowVoltage, hslFloat);\r\nhdlCalibrationFile.AddField(\"pH_High\", fltpHHighValue, hslFloat);\r\nhdlCalibrationFile.AddField(\"Voltage_High\", fltpHHighVoltage, hslFloat);\r\nhdlCalibrationFile.AddField(\"Temperature\", fltCalibrationTemperature, hslFloat);\r\nhdlCalibrationFile.AddField(\"pH_Reference\", i_fltpH_Value_Reference_Solution, hslFloat);\r\nhdlCalibrationFile.AddField(\"pH_Measured\", fltpHValueMeasured, hslFloat);\r\nhdlCalibrationFile.AddField(\"Offset\", fltCalibrationOffset, hslFloat);\r\nhdlCalibrationFile.AddField(\"Slope\", fltCalibrationSlope, hslFloat);\r\nhdlCalibrationFile.AddField(\"Slope_Ratio\", intCalibrationSlopeRatio, hslFloat);\r\nhdlCalibrationFile.AddField(\"Measurement_Counter\", intMeasurementCounter_Probe, hslInteger);\r\nif( 0 == hdlCalibrationFile.Open(_strPathCalibration + \" \" + strSheetName, hslAppend) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, _strPathCalibration, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 163 1 0 \"ae6aa477_6f97_4ca7_8986b685df39eff2\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlCalibrationFile.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"298f643e_45a1_47ca_aa3a6b409482af8f\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != hdlCalibrationFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nhdlCalibrationFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 165 1 0 \"6e3e426a_95dc_4feb_a9d481e21e38885d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1A2EA4305E1148d49F1B0C7D67810462 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 166 1 0 \"34896e40_7cd7_4908_98d513911cf8dc4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Unable to write configuration values to '\", _strPathCalibration, \"'!\", \"\");\r\n// }} \"\"\r\n// {{{ 167 1 0 \"57d9ae3d_1e82_4dd4_9c45ee0f478cea6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 168 1 0 \"d470d7bd_df7f_45b4_a78c37dd04fc7fb0\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 169 1 0 \"6e3e426a_95dc_4feb_a9d481e21e38885d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 170 1 0 \"ab5cf2ef_915b_4ffd_9cce54262e665738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 171 1 0 \"c8f7d402_8cc4_4e12_8d02be6c6c5af100\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 172 1 0 \"fb729bb9_bf02_4717_9deb72ad685c2aa4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 173 1 0 \"98e33ee1_61bc_4d9f_8445d727a2cb8f93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTraceArray(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, o_arrintCalibration_Slope_Ratios, \"Calibration slope ratio\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 174 1 0 \"e3f84986_3b45_4f67_926e42679446a4c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTraceArray(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, o_arrfltpH_Values_Reference_Solution, \"pH value reference solution\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"408b3119_f614_46ee_bd9062f275523d8d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 176 1 0 \"27f864c2_82ad_49cf_a34db3a0a0827567\" \"{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}\"\r\ncustomDialogE397764E225E462994B8ABC24DAEC074.InitCustomDialog( \"27f864c2_82ad_49cf_a34db3a0a0827567\" );\r\ncustomDialogE397764E225E462994B8ABC24DAEC074.SetCustomDialogProperty( \"textBlock1.Text\", strBatteryReplacementDate );\r\ncustomDialogE397764E225E462994B8ABC24DAEC074.SetCustomDialogProperty( \"textBlock4.Text\", intChargeCounter );\r\ncustomDialogE397764E225E462994B8ABC24DAEC074.SetCustomDialogProperty( \"textBlock8.Text\", intChargeLevel );\r\ncustomDialogE397764E225E462994B8ABC24DAEC074.ShowCustomDialog();\r\n// }} \"\"\r\n// {{{ 177 1 0 \"d05ca655_4921_4d37_9391ef820b8bc138\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"Calibrate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SetParameter\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable strTrace;\r\nprivate variable strFunctionName;\r\nprivate variable intMaxFrontChannel;\r\nprivate variable blnSuccess;\r\n// {{ 5 \"SetParameter\" \"InitLocals\"\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 467 1 0 \"c3919f3f_1ad9_45b6_9086521838b10e15\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\n_intTraceLevel = TRACELEVEL::GetTraceLevel();\r\n// }} \"\"\r\n// {{ 468 1 0 \"6cae84b7_575b_4590_988810014725c74f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 469 1 0 \"82b940a9_7e0a_493a_825087d6219dd98e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintMaxFrontChannel = DevGetCfgValueWithKey(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 470 1 0 \"872478a9_ce30_42e1_99017f1ba2fad04e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intTransportChannel, \"i_intTransportChannel\", 2, intMaxFrontChannel, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 471 1 0 \"6aa311c3_0426_4471_afa3f20c78656f81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 472 1 0 \"9d128c6a_0471_42c1_b12e001ec8154ed3\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 473 1 0 \"6aa311c3_0426_4471_afa3f20c78656f81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 474 1 0 \"48637b1a_fd0e_49d2_bfa259eadfc527ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intDryCycles, \"i_intDryCycles\", 1, 5, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 475 1 0 \"3b05d6ba_60c0_4f87_a5740f4947f3cf40\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 476 1 0 \"85059f69_4bbb_40af_97315395d173f177\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 477 1 0 \"3b05d6ba_60c0_4f87_a5740f4947f3cf40\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 478 1 0 \"02fa5967_6d75_40ca_97d817e4c2f8737a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intDryWaitTime, \"i_intDryWaitTime\", 0, 5, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 479 1 0 \"d057a4de_35e9_48ff_b843c483ea30063a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 480 1 0 \"4de8db6e_5c60_420e_8011d9d3edb41163\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 481 1 0 \"d057a4de_35e9_48ff_b843c483ea30063a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"04b36ba7_59a2_4016_a53f07b6d114e375\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 483 1 0 \"22d63c6e_99a6_40fc_8101d25940a5a052\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat8(\"'i_intTransportChannel = \", i_intTransportChannel, \", i_intWashCycles = \", i_intWashCycles, \", i_intDryCycles = \", i_intDryCycles, \", i_intDryWaitTime = \", i_intDryWaitTime);\r\n// }} \"\"\r\n// {{{ 484 1 0 \"1e99c33b_bada_49d1_b74d6e72fc145be2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 485 1 0 \"0765474b_e2e1_4ed0_831a37bea2537d20\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 486 1 0 \"33f933d9_efcd_4a9b_9104e5d2aac4a622\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(_seqGripper, i_seqGripperPosition);\r\n// }} \"\"\r\n// {{{ 487 1 0 \"298e66c1_a572_434e_851e51197a618e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _CreateModulePosition(ML_STAR, i_seqWashPosition, 4.0, ASWGLOBAL::BOOL::FALSE, \"WasherPosition\", strFunctionName, _seqWasher);\r\n// }} \"\"\r\n// {{ 488 1 0 \"09eabec7_a39a_4cf0_99d7867347db4ba5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 489 1 0 \"a69cbace_5c1d_4019_9dc62b6437c5c690\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 490 1 0 \"09eabec7_a39a_4cf0_99d7867347db4ba5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 491 1 0 \"ebc83232_f1b9_4edc_a3f313d9f4041619\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _CreateModulePosition(ML_STAR, i_seqDryPosition, 3.0, ASWGLOBAL::BOOL::FALSE, \"DryerPosition\", strFunctionName, _seqDryer);\r\n// }} \"\"\r\n// {{ 492 1 0 \"3f5e2246_e8f2_40ea_afdf4f40cd5a4405\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 493 1 0 \"655321c1_38f1_4246_91cc579a44db4a58\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 494 1 0 \"3f5e2246_e8f2_40ea_afdf4f40cd5a4405\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 495 1 0 \"0b9fd721_ffb1_444b_afeacb2918abc831\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_intTransportChannel = i_intTransportChannel;\r\n// }} \"\"\r\n// {{ 496 1 0 \"ac3a26ef_a69b_4a5f_895902140cbf77c9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_intWashCycles = i_intWashCycles;\r\n// }} \"\"\r\n// {{ 497 1 0 \"3c94939b_7bef_405e_86ceba3a5ce85f06\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_intDryCycles = i_intDryCycles;\r\n// }} \"\"\r\n// {{ 498 1 0 \"71e91a9e_bf58_4545_85ccd01e2125a615\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_intDryWaitTime = i_intDryWaitTime;\r\n// }} \"\"\r\n// {{ 499 1 0 \"5abfc42d_a597_4bde_9fe18dd21d58f648\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_fltGripHeight = 39.0;\r\n// }} \"\"\r\n// {{ 500 1 0 \"d315e095_830c_4e75_9159addc2a5abb16\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_fltGripWidth = 81.0;\r\n// }} \"\"\r\n// {{ 501 1 0 \"4996cc95_ee09_425f_a58937eb29105a79\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_fltOpenWidth = 90.0;\r\n// }} \"\"\r\n// {{ 502 1 0 \"01a71fa2_2b34_4573_834a182c4e33040b\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 503 1 0 \"f7005559_e27a_4c38_a2e7f0b6a3726b67\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 504 1 0 \"0e7ad7da_e4fe_48f4_bd75a8101121e5f5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"SetParameter\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"Begin\"\r\nfunction Initialize( device & ML_STAR, variable i_intPortNumber, variable & o_fltDefaultTemperature, variable & o_intModuleID ) variable {\r\n// }} \"\"\r\nprivate variable strTrace;\r\nprivate variable strFunctionName;\r\nprivate variable blnSuccess;\r\nprivate variable strConfigurationFile;\r\nprivate variable blnSimulationModeDryer;\r\nprivate variable blnSimulationModeModule;\r\nprivate variable blnSimulationModeWasher;\r\nprivate variable strModuleNameDryer;\r\nprivate variable strModuleNameWasher;\r\nprivate variable intHardwareNumber;\r\nprivate variable intPartNumber;\r\nprivate variable intRevision;\r\nprivate variable intSerialNumber;\r\nprivate variable strProbePatternErrors;\r\nprivate variable strLastProbe;\r\nprivate variable intLoopCounterCheckPattern;\r\nprivate variable intActualPosition;\r\nprivate variable blnProbePatternValid;\r\nprivate variable strSingleProbe;\r\nprivate variable strDate;\r\nprivate variable strModuleProbePattern;\r\nprivate variable blnOddNumber;\r\nprivate variable blnOffsetSet;\r\nprivate variable intProbePatternLength;\r\n// {{ 5 \"Initialize\" \"InitLocals\"\r\no_fltDefaultTemperature = 0;\r\no_intModuleID = 0;\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 194 1 0 \"fd10a6eb_03ce_4f4c_b3eea7e302e82397\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\n_intTraceLevel = TRACELEVEL::GetTraceLevel();\r\n// }} \"\"\r\n// {{ 195 1 0 \"f21e98f6_8ad2_4eb4_8550c54dac005768\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_intModuleID = -1;\r\n// }} \"\"\r\n// {{ 196 1 0 \"597504e3_87c9_4d0a_be4f01dbcc685a0a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 197 1 0 \"e3f859c0_01d2_470a_aa96ecf7957395eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intPortNumber, \"i_intPortNumber\", 1, 256, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 198 1 0 \"40511f9f_5125_45f1_b97d8e649dd15299\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 199 1 0 \"1eb1d48c_f130_44fb_85eca8b2e2bcc180\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 200 1 0 \"40511f9f_5125_45f1_b97d8e649dd15299\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 201 1 0 \"1f2419ed_4161_4063_af289ac9c0e66193\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 202 1 0 \"a00d1f54_66b2_4844_9f1dcbed24997bfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat2(\"i_intPortNumber = \", 1);\r\n// }} \"\"\r\n// {{{ 203 1 0 \"6b841d96_8845_455d_b87569d9622fea08\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 204 1 0 \"56d691f5_999e_41ff_a15e675741745cb2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 205 1 0 \"4e5ff082_3648_4d54_90a440423e83280c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _LoadConfiguration(i_intPortNumber, blnSimulationModeModule, strModuleNameWasher, blnSimulationModeWasher, strModuleNameDryer, blnSimulationModeDryer, o_fltDefaultTemperature, strModuleProbePattern, _strPathCalibration, _strPathMeasurement, strConfigurationFile);\r\n// }} \"\"\r\n// {{ 206 1 0 \"c9f19e16_2419_4dfc_85da7d5414b67dc7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 207 1 0 \"730c313f_c2c4_4b2a_82bfd0219a2e9257\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Unable to load file '\", strConfigurationFile, \"' !\", \"\");\r\n// }} \"\"\r\n// {{{ 208 1 0 \"999a06b6_58ff_4297_ab3f908797cd5efe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"d46600f8_2755_4732_998b4b69079125fe\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 210 1 0 \"c9f19e16_2419_4dfc_85da7d5414b67dc7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 211 1 0 \"aa31bf20_2e1e_4c0d_aa09f1c1c6561164\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 212 1 0 \"9d92c528_e7ca_4136_99f9ac005fa5c178\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrModuleProbePattern = \"10101010\";\r\n// }} \"\"\r\n// {{ 213 1 0 \"f7f011e2_8dda_4f59_b3ac0e4913c4f82f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\n_strProbePattern = \"\";\r\n// }} \"\"\r\n// {{ 214 1 0 \"cdd21470_1995_4261_a0f8758f72d7fa4f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nblnOffsetSet = ASWGLOBAL::BOOL::FALSE;\r\n// }} \"\"\r\n// {{ 215 1 0 \"fa337189_3f35_4d7a_8b97873b7a3188d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrProbePatternErrors = \"\";\r\n// }} \"\"\r\n// {{ 216 1 0 \"4824da5b_1bea_41fd_9c1997bad12a1796\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrLastProbe = \"\";\r\n// }} \"\"\r\n// {{ 217 1 0 \"9bb2c5de_6601_43dd_a892a38e133a6fc4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nblnProbePatternValid = ASWGLOBAL::BOOL::TRUE;\r\n// }} \"\"\r\n// {{ 218 1 0 \"4963097c_a10e_4ab6_81a027884781bb8e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrProbePatternErrors = \"\";\r\n// }} \"\"\r\n// {{{ 219 1 0 \"bdf9fde0_5f30_4376_acbedccc08b91480\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nintProbePatternLength = StrGetLength(strModuleProbePattern);\r\n// }} \"\"\r\n// {{ 220 1 0 \"f4e4e66a_36a1_490d_a51b015c5d6f429d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intProbePatternLength != 8)\r\n{\r\n// }} \"\"\r\n// {{ 221 1 0 \"04e778c5_2256_4174_b3020e750f22687f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrProbePatternErrors = \"Invalid length of probe pattern - must be 8 characters long !\";\r\n// }} \"\"\r\n// {{ 222 1 0 \"da830019_381f_4faa_a6f88e85e863ed22\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nblnProbePatternValid = ASWGLOBAL::BOOL::FALSE;\r\n// }} \"\"\r\n// {{ 223 1 0 \"f4e4e66a_36a1_490d_a51b015c5d6f429d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 224 1 0 \"27c12f85_7a95_4639_8ed481ad6ae10558\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(intLoopCounterCheckPattern = 0; intLoopCounterCheckPattern < intProbePatternLength;)\r\n{\r\nintLoopCounterCheckPattern = intLoopCounterCheckPattern + 1;\r\n// }} \"\"\r\n// {{ 225 1 0 \"fb0d97de_1786_4cd8_985f5f87d4b8b744\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nintActualPosition = intLoopCounterCheckPattern - 1;\r\n// }} \"\"\r\n// {{{ 226 1 0 \"fbc6eb31_8705_42be_a2eec639ae3bbf1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrSingleProbe = StrMid(strModuleProbePattern, intActualPosition, 1);\r\n// }} \"\"\r\n// {{ 227 1 0 \"3dc6f318_8b55_4103_99023efc0a8b8799\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nblnOddNumber = intLoopCounterCheckPattern % 2;\r\n// }} \"\"\r\n// {{ 228 1 0 \"75dbe91c_012c_49c1_af8f32a90083a4d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnOddNumber == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 229 1 0 \"697a793c_d761_47b9_8814cba6a64e9039\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (strSingleProbe == \"0\")\r\n{\r\n// }} \"\"\r\n// {{ 230 1 0 \"d7950d64_4248_4a60_b2e4271a3cfc3f5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (strLastProbe == \"0\")\r\n{\r\n// }} \"\"\r\n// {{{ 231 1 0 \"98b69977_2bc8_4ef1_bf7b51e21e89fcf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\n_strProbePattern = StrConcat2(_strProbePattern, \"0\");\r\n// }} \"\"\r\n// {{ 232 1 0 \"d7950d64_4248_4a60_b2e4271a3cfc3f5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 233 1 0 \"431bc628_7f2f_4892_ae263dbccc648f46\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\n_strProbePattern = StrConcat2(_strProbePattern, \"1\");\r\n// }} \"\"\r\n// {{ 234 1 0 \"d7950d64_4248_4a60_b2e4271a3cfc3f5c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 235 1 0 \"697a793c_d761_47b9_8814cba6a64e9039\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 236 1 0 \"39d2ad1d_6279_4523_bc308b48b897d489\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\n_strProbePattern = StrConcat2(_strProbePattern, \"1\");\r\n// }} \"\"\r\n// {{ 237 1 0 \"697a793c_d761_47b9_8814cba6a64e9039\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 238 1 0 \"75dbe91c_012c_49c1_af8f32a90083a4d9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 239 1 0 \"a227a94a_df12_4e50_8d75b33a7d9a8639\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (strSingleProbe == \"1\")\r\n{\r\n// }} \"\"\r\n// {{ 240 1 0 \"b97b15a5_c83a_44d4_9ded31b365e6a2f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (strLastProbe == \"1\")\r\n{\r\n// }} \"\"\r\n// {{{ 241 1 0 \"e5af7238_660d_48dc_bf0171c7e0f66d42\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrProbePatternErrors = StrConcat4(strProbePatternErrors, \" Invalid character on position \", intLoopCounterCheckPattern, \" - probes have to be separated by empty position!\");\r\n// }} \"\"\r\n// {{ 242 1 0 \"2509fdc6_c14b_4cd8_94af93679182844e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nblnProbePatternValid = ASWGLOBAL::BOOL::FALSE;\r\n// }} \"\"\r\n// {{ 243 1 0 \"b97b15a5_c83a_44d4_9ded31b365e6a2f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 244 1 0 \"8ffb5225_cd9c_430d_9e376c967b8513a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrLastProbe = \"1\";\r\n// }} \"\"\r\n// {{ 245 1 0 \"4220f88c_27be_4c8a_8cc5c9228e4739cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnOffsetSet == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 246 1 0 \"f005ff88_2a54_484e_be03bc763cd342ff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\n_fltProbeOffsetY = intActualPosition * 9.0;\r\n// }} \"\"\r\n// {{ 247 1 0 \"44c414b6_8947_43de_a52e112399dd64e1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nblnOffsetSet = ASWGLOBAL::BOOL::TRUE;\r\n// }} \"\"\r\n// {{ 248 1 0 \"4220f88c_27be_4c8a_8cc5c9228e4739cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 249 1 0 \"a227a94a_df12_4e50_8d75b33a7d9a8639\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 250 1 0 \"f3511d5d_96ab_40ca_888e3a6f7d7f87eb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (strSingleProbe == \"0\")\r\n{\r\n// }} \"\"\r\n// {{ 251 1 0 \"a1cead41_72d4_44bf_92b610a5b0f709e2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrLastProbe = \"0\";\r\n// }} \"\"\r\n// {{ 252 1 0 \"f3511d5d_96ab_40ca_888e3a6f7d7f87eb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 253 1 0 \"0c8338ac_79c9_462e_8a410a1b66a9154f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrProbePatternErrors = StrConcat4(strProbePatternErrors, \" Invalid character on position \", intLoopCounterCheckPattern, \" - only 0 and 1 are allowed!\");\r\n// }} \"\"\r\n// {{ 254 1 0 \"5154897a_a379_4a92_ba5fbd7f9c6b48db\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nblnProbePatternValid = ASWGLOBAL::BOOL::FALSE;\r\n// }} \"\"\r\n// {{ 255 1 0 \"f3511d5d_96ab_40ca_888e3a6f7d7f87eb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 256 1 0 \"a227a94a_df12_4e50_8d75b33a7d9a8639\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 257 1 0 \"27c12f85_7a95_4639_8ed481ad6ae10558\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 258 1 0 \"d5446142_e7d0_4157_9c8678c03c8abfe8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (_strProbePattern == \"0000\")\r\n{\r\n// }} \"\"\r\n// {{{ 259 1 0 \"e266c615_beea_485a_9e5d208572a19999\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrProbePatternErrors = StrConcat2(strProbePatternErrors, \" Invalid probe pattern - supply at least one position with a probe (1)!\");\r\n// }} \"\"\r\n// {{ 260 1 0 \"f1676e62_7b6d_43cc_a0120620a5029596\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nblnProbePatternValid = ASWGLOBAL::BOOL::FALSE;\r\n// }} \"\"\r\n// {{ 261 1 0 \"d5446142_e7d0_4157_9c8678c03c8abfe8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 262 1 0 \"7a3eed83_2abf_4edb_aac80f7f953b859f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnProbePatternValid == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"dc65f9d2_42ac_4639_a1fdab7aafc048f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strProbePatternErrors, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"abecc664_79e3_4d51_9bdd80195c7a944a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 265 1 0 \"7a3eed83_2abf_4edb_aac80f7f953b859f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 266 1 0 \"46a3e7bf_a7ac_4a22_ae3417ea806b5c50\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"_strProbePattern = '\", _strProbePattern, \"'\", \"\");\r\n// }} \"\"\r\n// {{{ 267 1 0 \"36858a52_db84_430b_b192cb4bd68d84f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 268 1 0 \"f3bcc0f4_8680_428f_9ca646cef426768d\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 269 1 0 \"858ca5b4_6598_4b2a_9edf9d97b58310eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Station_Washer_Module::Initialize(ML_STAR, 0, strModuleNameWasher, blnSimulationModeWasher, _intWasherModuleID);\r\n// }} \"\"\r\n// {{ 270 1 0 \"5e02c0eb_0d1a_41d7_86e3dc9a7d3839e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 271 1 0 \"62dc655b_8bcd_49e3_b1854bf36199a231\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to initialize washer\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"0ad31585_5569_4f58_9b6e34d95e4545f4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 273 1 0 \"5e02c0eb_0d1a_41d7_86e3dc9a7d3839e7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 274 1 0 \"b181b67b_be20_4b12_8f8cb84c0e152a7a\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 275 1 0 \"237ccad1_ec3d_4072_8501210ec64d0841\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Station_Dryer_Module::Initialize(ML_STAR, strModuleNameDryer, blnSimulationModeDryer, _intDryerModuleID);\r\n// }} \"\"\r\n// {{ 276 1 0 \"9524043b_74c1_4a63_9bd6f06bb526e487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 277 1 0 \"33377db5_4263_4425_a1b2e0c58a3179e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to initialize dryer\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 278 1 0 \"3562fa5f_883d_4168_993b9b8056e6fabb\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 279 1 0 \"9524043b_74c1_4a63_9bd6f06bb526e487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 280 1 0 \"ba66aa1b_ed8f_41ad_9d7e63665e3ca028\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 281 1 0 \"6774c3a0_823e_4771_95d32c9837a53011\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::Initialize(1, 1, o_intModuleID);\r\n// }} \"\"\r\n// {{ 282 1 0 \"38bc380c_11bb_435f_8200aa2331a3d5a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 283 1 0 \"536d67c5_9658_4343_b2b074aee9846344\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to initialize pH module\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"b18db47e_c853_424a_aae7e61bd78ecce3\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 285 1 0 \"38bc380c_11bb_435f_8200aa2331a3d5a4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 286 1 0 \"4b0109c8_df90_4d94_97b87a9e71483ebb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::WakeUp(o_intModuleID);\r\n// }} \"\"\r\n// {{ 287 1 0 \"a71b4bb3_0b27_4106_87b374e692ab597a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 288 1 0 \"915d024b_076e_49b6_bb7699d0edf62b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to wake up pH module\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 289 1 0 \"0568212e_111a_4cf5_93b3887aec60ea08\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 290 1 0 \"a71b4bb3_0b27_4106_87b374e692ab597a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 291 1 0 \"d2deb7fc_aa23_416b_9508fde4eb9a550b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::RequestTechnicalData(o_intModuleID, intHardwareNumber, intPartNumber, intRevision, intSerialNumber);\r\n// }} \"\"\r\n// {{ 292 1 0 \"4792d498_579b_44af_9294dec5de56e98c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 293 1 0 \"84730f25_21d8_46f4_8e4f71476817a38d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to initialize pH module\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 294 1 0 \"d3a173e7_9282_426f_8f630442c5b331ff\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 295 1 0 \"4792d498_579b_44af_9294dec5de56e98c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 296 1 0 \"95a9457b_46ae_4fea_a5cf18f4acbdf11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\n_strSerialNumber = StrIStr(intSerialNumber);\r\n// }} \"\"\r\n// {{{ 297 1 0 \"6c16068b_8bbe_4668_97e6ccfebdd15aa8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrDate = TimGetFormattedDate(\"\");\r\n// }} \"\"\r\n// {{{ 298 1 0 \"14b5479d_c770_473d_b5e9fde2f0ad130f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\n_strPathMeasurement = StrConcat4(_strPathMeasurement, \"\\\\Measurement \", strDate, \".xls\");\r\n// }} \"\"\r\n// {{{ 299 1 0 \"b1c6e0dc_64e7_461c_be079e651c3289e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\n_strPathCalibration = StrConcat2(_strPathCalibration, \"\\\\Calibration.xls\");\r\n// }} \"\"\r\n// {{ 300 1 0 \"761d491f_a085_4e58_842bcca774d64701\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 301 1 0 \"11bc32a3_ef37_4d78_9ac3bfbe39026e2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"o_fltDefaultTemperature = \", o_fltDefaultTemperature, \", o_intModuleID = \", o_intModuleID);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"15651ee1_c41a_4518_b185f22be772e5dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"cb14f674_a8e3_4553_8afb3d15359ba3e4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_SuccessOrMoveBack\" \"Begin\"\r\nprivate function _SuccessOrMoveBack( device & ML_STAR, variable i_blnSuccess, variable i_intModuleID, variable i_strFunctionName ) variable {\r\n// }} \"\"\r\nprivate variable blnSuccess;\r\n// {{ 5 \"_SuccessOrMoveBack\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 697 1 0 \"a69905a6_8417_4e0c_bfd6d328e95fc196\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (i_blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 698 1 0 \"2663a6c3_bf34_4183_b8a45b4afcea44ef\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 699 1 0 \"4c775765_8b6d_4bf6_957171d2dcb63b36\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"4c775765_8b6d_4bf6_957171d2dcb63b36\"); // ZSwapPlacePlate\r\n}\r\n// }} \"\"\r\n// {{{ 700 1 0 \"85604ab9_51a9_4112_bd952c69b552dc5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"b661beaa_d3b7_48b3_9abdf0571ac8721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"\", i_strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 702 1 0 \"a69905a6_8417_4e0c_bfd6d328e95fc196\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 703 1 0 \"3d426d95_9d5e_41d2_9265d81d12a6205e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (i_blnSuccess);\r\n// }} \"\"\r\n// {{{ 5 \"_SuccessOrMoveBack\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Dry\" \"Begin\"\r\nprivate function _Dry( device & ML_STAR ) variable {\r\n// }} \"\"\r\nprivate variable blnSuccess;\r\nprivate timer hdlDry;\r\nprivate variable strLabwareID;\r\nprivate variable fltPositionR;\r\nprivate variable fltPositionX;\r\nprivate variable fltPositionY;\r\nprivate variable fltPositionZ;\r\nprivate variable intLoopCounterDryCycles;\r\n// {{ 5 \"_Dry\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 560 1 0 \"0d2b90ea_9b11_4a0b_9ea6fe697d463bdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrLabwareID = SeqGetLabwareId(_seqDryer);\r\n// }} \"\"\r\n// {{{ 561 1 0 \"69c7fc12_f8ff_43f1_b5222f272b93060d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = HSLLabwrAccess::AbsolutePositionValuesGetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR);\r\n// }} \"\"\r\n// {{ 562 1 0 \"19c5a7bb_aec8_48c1_8dd15d640b770257\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 563 1 0 \"2b673ec2_72f1_43cc_be1df85d70f947de\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 564 1 0 \"19c5a7bb_aec8_48c1_8dd15d640b770257\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 565 1 0 \"9e43bba3_482e_46ad_8c6280110dddbdae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, 245.0, fltPositionR);\r\n// }} \"\"\r\n// {{ 566 1 0 \"7f0fa33b_7a92_4829_b5f47ab1fc1e88cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 567 1 0 \"348bf9d1_e534_464f_b5b857a31008e4df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"a9e11d85_d1ba_4240_888a35d2db933795\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 569 1 0 \"7f0fa33b_7a92_4829_b5f47ab1fc1e88cf\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 570 1 0 \"908cdcbd_fc40_4a63_b40b00c20e1ceed9\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 571 1 0 \"70a6fdc3_c6c6_4616_bd48d88d6fe462f6\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"70a6fdc3_c6c6_4616_bd48d88d6fe462f6\"); // ZSwapMovePlate\r\n}\r\n// }} \"\"\r\n// {{{ 572 1 0 \"2e557c3e_aa41_4698_8d9ea7a7741b1ed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR);\r\n// }} \"\"\r\n// {{ 573 1 0 \"54bdc94b_bf2b_472f_a3de6a110cc4391f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 574 1 0 \"be36442f_2a87_4988_877f4bba297faea6\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 575 1 0 \"54bdc94b_bf2b_472f_a3de6a110cc4391f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 576 1 0 \"5dddbd2c_3520_4a2d_9723829d22db7deb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(intLoopCounterDryCycles = 0; intLoopCounterDryCycles < _intDryCycles;)\r\n{\r\nintLoopCounterDryCycles = intLoopCounterDryCycles + 1;\r\n// }} \"\"\r\n// {{ 577 1 0 \"5bf311b3_f6b6_4bae_936734f58102eb2e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 578 1 0 \"78178563_08ba_4bb5_b331cfcb5336ec42\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"78178563_08ba_4bb5_b331cfcb5336ec42\"); // ZSwapMovePlate\r\n}\r\n// }} \"\"\r\n// {{{ 579 1 0 \"86f5c2d2_6631_46f1_b468b6de809309aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Station_Dryer_Module::StartDrying(ML_STAR, _intDryerModuleID);\r\n// }} \"\"\r\n// {{ 580 1 0 \"0ab7cee7_1472_4b7d_80d7719f9a7c7b49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 581 1 0 \"e66517b5_a55a_42ac_ad91831911c3de51\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 582 1 0 \"0ab7cee7_1472_4b7d_80d7719f9a7c7b49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 583 1 0 \"291b67d4_4046_44e5_97915e938e4ccfa1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (_intDryWaitTime > 0)\r\n{\r\n// }} \"\"\r\n// {{ 584 1 0 \"c8e39fea_20c3_4409_b6af074453db1305\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlDry.SetTimer(_intDryWaitTime) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 585 1 0 \"5d1190f5_d1de_4f9f_8dacdfcb42a85e3b\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlDry.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 586 1 0 \"291b67d4_4046_44e5_97915e938e4ccfa1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 587 1 0 \"b273ac03_fd2c_4d35_b51ea2a2ea6892e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, 245.0, fltPositionR);\r\n// }} \"\"\r\n// {{ 588 1 0 \"54008cce_4212_48eb_a696b4f983966bfb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 589 1 0 \"cf2aea13_985a_4d70_8b106bc6df75816e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR);\r\n// }} \"\"\r\n// {{{ 590 1 0 \"c8e7694e_88ae_489f_8ffdd3b480c3f20c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, _intDryerModuleID);\r\n// }} \"\"\r\n// {{{ 591 1 0 \"0a01658a_482a_4380_9ca8f6bbd88ca48e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 592 1 0 \"54008cce_4212_48eb_a696b4f983966bfb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 593 1 0 \"6b251714_48d2_46c9_966b56ded7e4ab57\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 594 1 0 \"0a838d6c_3e46_471a_9fe2a52cf1ba97e7\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"0a838d6c_3e46_471a_9fe2a52cf1ba97e7\"); // ZSwapMovePlate\r\n}\r\n// }} \"\"\r\n// {{{ 595 1 0 \"e7a9d998_7dc0_42c9_b5379f40c65c5621\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR);\r\n// }} \"\"\r\n// {{ 596 1 0 \"135fa1e9_be03_4d14_8eafeb35ff7ed562\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 597 1 0 \"a457596e_3126_413d_8a94929d86854944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, _intDryerModuleID);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"9049268c_6697_4a75_b9148361d223d607\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 599 1 0 \"135fa1e9_be03_4d14_8eafeb35ff7ed562\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 600 1 0 \"f0984ebb_2710_424f_bb3b99834b55d558\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, _intDryerModuleID);\r\n// }} \"\"\r\n// {{ 601 1 0 \"8b341fce_5621_4331_8b3e5d0a657ec373\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 602 1 0 \"df541f27_1f5a_4e5f_836a9810bbd2aced\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 603 1 0 \"8b341fce_5621_4331_8b3e5d0a657ec373\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 604 1 0 \"5dddbd2c_3520_4a2d_9723829d22db7deb\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 605 1 0 \"a8b48bcc_116b_4499_8e56b76be7b2e8c8\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (blnSuccess);\r\n// }} \"\"\r\n// {{{ 5 \"_Dry\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"RequestBatteryData\" \"Begin\"\r\nfunction RequestBatteryData( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intActualCharge ) variable {\r\n// }} \"\"\r\nprivate variable strTrace;\r\nprivate variable strFunctionName;\r\nprivate variable blnSuccess;\r\nprivate variable intBatteryCondition;\r\n// {{ 5 \"RequestBatteryData\" \"InitLocals\"\r\no_strReplacementDate = 0;\r\no_intChargeCounter = 0;\r\no_intActualCharge = 0;\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{ 448 1 0 \"1cf3854c_6f53_4646_b3c9febedb6095ca\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 449 1 0 \"6e5bde41_3b49_4927_9c0d88434c91121d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat2(\"i_intModuleID = \", i_intModuleID);\r\n// }} \"\"\r\n// {{{ 450 1 0 \"59d7cd3e_0fdf_43b3_a1294fb065483598\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 451 1 0 \"8940d100_26a4_4542_8b1bec869c023553\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{ 452 1 0 \"019e4b83_dd38_4ea1_b25f5bceda08b40f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 453 1 0 \"f125dc6b_9355_49ba_b6d3f0c21c509382\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to wake up pH module\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 454 1 0 \"173bd921_7583_4feb_80bfc1596a3d662f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 455 1 0 \"019e4b83_dd38_4ea1_b25f5bceda08b40f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 456 1 0 \"affc1661_479c_4457_9d56a523d2f7e1a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, intBatteryCondition, o_intActualCharge);\r\n// }} \"\"\r\n// {{ 457 1 0 \"40d12385_5183_43e5_980b64757850566c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"7c178d53_88e9_42ae_ace31c6c23f6f974\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to retrieve battery data from pH module\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 459 1 0 \"610cfdaf_6957_4cb3_8de3230665bd3177\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 460 1 0 \"40d12385_5183_43e5_980b64757850566c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 461 1 0 \"90a3ced7_4357_47e7_a2c3a3172dc343e3\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 462 1 0 \"16a54fd8_29d1_417c_81850780d725964e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat8(\"o_strReplacementDate = '\", o_strReplacementDate, \"', o_intChargeCounter = \", o_intChargeCounter, \", o_intActualCharge = \", o_intActualCharge, \"\", \"\");\r\n// }} \"\"\r\n// {{{ 463 1 0 \"09d92a13_aa1b_4c80_a2e9b32da0b2cbc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"bd1358f6_b20d_43cf_82c0563dee510c22\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"RequestBatteryData\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_LoadConfiguration\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate file hdlConfigFile;\r\n// {{ 5 \"_LoadConfiguration\" \"InitLocals\"\r\no_blnSimulationModeModule = 0;\r\no_strModuleNameWasher = 0;\r\no_blnSimulationModeWasher = 0;\r\no_strModuleNameDryer = 0;\r\no_blnSimulationModeDryer = 0;\r\no_fltDefaultTemperature = 0;\r\no_strProbePattern = 0;\r\no_strPathCalibration = 0;\r\no_strPathMeasurement = 0;\r\no_strFilename = 0;\r\n// }} \"\"\r\n// {{{ 607 1 0 \"4b32d7fd_4c89_42f4_a31ee009e31563a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strFilename = FilGetConfigPath();\r\n// }} \"\"\r\n// {{{ 608 1 0 \"0d3b4fbb_0c2e_4b19_8a7a2e8ea75d6eac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_strFilename = StrConcat4(o_strFilename, \"\\\\Hamilton pH Module\\\\Configuration COM \", i_intCOMPortModule, \".xls\");\r\n// }} \"\"\r\n// {{ 609 1 0 \"31575578_28e8_4511_bee730ed67c3900d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D0BD1C6F02554d00ABDA856463B8CEA1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 610 1 0 \"25fb475e_9fb7_4d32_90c6ba16c57ec661\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nhdlConfigFile.AddField(\"SimulationModeModule\", o_blnSimulationModeModule, hslInteger);\r\nhdlConfigFile.AddField(\"ModuleNameWasher\", o_strModuleNameWasher, hslString, 255);\r\nhdlConfigFile.AddField(\"SimulationModeWasher\", o_blnSimulationModeWasher, hslInteger);\r\nhdlConfigFile.AddField(\"ModuleNameDryer\", o_strModuleNameDryer, hslString, 255);\r\nhdlConfigFile.AddField(\"SimulationModeDryer\", o_blnSimulationModeDryer, hslInteger);\r\nhdlConfigFile.AddField(\"DefaultTemperature\", o_fltDefaultTemperature, hslFloat);\r\nhdlConfigFile.AddField(\"ProbePattern\", o_strProbePattern, hslString, 255);\r\nhdlConfigFile.AddField(\"CalibrationPath\", o_strPathCalibration, hslString, 255);\r\nhdlConfigFile.AddField(\"MeasurementPath\", o_strPathMeasurement, hslString, 255);\r\nif( 0 == hdlConfigFile.Open(o_strFilename + \" \" + \"Configuration\", hslRead) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, o_strFilename, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 611 1 0 \"da284f2d_a708_4e12_9d811ca8236a0b61\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlConfigFile.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 612 1 0 \"2df3585a_29f6_4e17_8d0455e3f165a2ca\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != hdlConfigFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nhdlConfigFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 613 1 0 \"31575578_28e8_4511_bee730ed67c3900d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D0BD1C6F02554d00ABDA856463B8CEA1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 614 1 0 \"64ab85d0_d2ab_426b_9500d287b7304ce6\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 615 1 0 \"31575578_28e8_4511_bee730ed67c3900d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 616 1 0 \"5b6351b6_9dc0_4528_9deff89ff1328e04\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"_LoadConfiguration\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LastUsedConfigurationSave\" \"Begin\"\r\nfunction LastUsedConfigurationSave( variable i_intBluetoothPort, variable i_intNumberOfWashCycles, variable i_intNumberOfDryCycles, variable i_intDryTime ) void {\r\n// }} \"\"\r\nprivate variable strFileName;\r\nprivate variable strTrace;\r\nprivate variable strFunctionName;\r\nprivate file hdlLastPort;\r\nprivate variable blnSuccess;\r\n// {{ 5 \"LastUsedConfigurationSave\" \"InitLocals\"\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 326 1 0 \"9975e128_043b_42bc_96ba0dde27cf93fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intBluetoothPort, \"i_intBluetoothPort\", 1, 256, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 327 1 0 \"ef566297_ea24_41dc_a1a3a3183b36686a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"1232b270_2329_40ec_9b0ff158cfc70f91\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 329 1 0 \"ef566297_ea24_41dc_a1a3a3183b36686a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"b4726f18_728c_4653_ad69032e34a4d0f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intNumberOfWashCycles, \"i_intNumberOfWashCycles\", 1, 20, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 331 1 0 \"4f7f63c5_8e0e_4235_82c5db289f47e629\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 332 1 0 \"71ec679f_6c41_48cf_992e1fcc7e65bf53\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 333 1 0 \"4f7f63c5_8e0e_4235_82c5db289f47e629\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 334 1 0 \"14cd43ff_e483_4eab_955a3c1e876c339d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intNumberOfDryCycles, \"i_intNumberOfDryCycles\", 1, 5, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 335 1 0 \"b95d80ac_3cfc_4350_91fe8b04799c43fb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 336 1 0 \"799358bb_1b9a_4b7d_b328e5bb40a5d802\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 337 1 0 \"b95d80ac_3cfc_4350_91fe8b04799c43fb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 338 1 0 \"22a97d94_e0c7_4627_86a6a1b532e638e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intDryTime, \"i_intDryTime\", 0, 5, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 339 1 0 \"e77baa66_de46_4262_b36ffda5da96f3e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 340 1 0 \"63655353_c5a0_48be_aed55768a76740a6\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 341 1 0 \"e77baa66_de46_4262_b36ffda5da96f3e2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 342 1 0 \"365ef7d8_e81a_4b02_a2238e385be7f5c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat8(\"i_intBluetoothPort = \", i_intBluetoothPort, \", i_intNumberOfWashCycles = \", i_intNumberOfWashCycles, \", i_intNumberOfDryCycles = \", i_intNumberOfDryCycles, \", i_intDryTime = \", i_intDryTime);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"088e340d_b392_4cb3_a2fbd24d5221065a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 344 1 0 \"1c7cb62c_32a1_493c_8bd9e539da6dde13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFileName = FilGetConfigPath();\r\n// }} \"\"\r\n// {{{ 345 1 0 \"39525f45_fcdb_4240_ba9b4a575048072e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFileName = StrConcat2(strFileName, \"\\\\Hamilton pH Module\\\\Last Configuration.xls\");\r\n// }} \"\"\r\n// {{ 346 1 0 \"76018125_e22a_4948_a0af4986122cf0c6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2CD9CFAFB22B4706A5AB34C0C1D5FEC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 347 1 0 \"b9f8f6c5_fd83_4512_be36be7926482a0d\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nhdlLastPort.AddField(\"BluetoothPort\", i_intBluetoothPort, hslInteger);\r\nhdlLastPort.AddField(\"WashCycles\", i_intNumberOfWashCycles, hslInteger);\r\nhdlLastPort.AddField(\"DryCycles\", i_intNumberOfDryCycles, hslInteger);\r\nhdlLastPort.AddField(\"DryTime\", i_intDryTime, hslInteger);\r\nif( 0 == hdlLastPort.Open(strFileName + \" \" + \"Config\", hslWrite) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, strFileName, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 348 1 0 \"81226538_bc4c_4608_b07316d36e4b9686\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlLastPort.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 349 1 0 \"e5c3c2b5_497e_4dde_a8d7a0783a1c6d53\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != hdlLastPort.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nhdlLastPort.RemoveFields();\r\n// }} \"\"\r\n// {{ 350 1 0 \"76018125_e22a_4948_a0af4986122cf0c6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2CD9CFAFB22B4706A5AB34C0C1D5FEC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 351 1 0 \"1e036b4c_9e26_4c55_b5fc14218322f4f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Unable to write file '\", strFileName, \"' !\", \"\");\r\n// }} \"\"\r\n// {{{ 352 1 0 \"ca8b2ab6_e977_41a0_950231532d7e5f87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 353 1 0 \"43175949_db2d_4599_8c95fe9a75e022a7\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 354 1 0 \"76018125_e22a_4948_a0af4986122cf0c6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 355 1 0 \"75eed8e4_928d_4485_ba947074c4bc7cb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 5 \"LastUsedConfigurationSave\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"LastUsedConfigurationLoad\" \"Begin\"\r\nfunction LastUsedConfigurationLoad( variable & o_intBluetoothPort, variable & o_intNumberOfWashCycles, variable & o_intNumberOfDryCycles, variable & o_intDryTime ) void {\r\n// }} \"\"\r\nprivate variable strFileName;\r\nprivate variable strTrace;\r\nprivate variable strFunctionName;\r\nprivate file hdlLastPort;\r\n// {{ 5 \"LastUsedConfigurationLoad\" \"InitLocals\"\r\no_intBluetoothPort = 0;\r\no_intNumberOfWashCycles = 0;\r\no_intNumberOfDryCycles = 0;\r\no_intDryTime = 0;\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 306 1 0 \"8b66be4e_22d3_49eb_86656fcafe23b7d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"a5642c3a_e11d_46b1_80072fdf0376cd79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFileName = FilGetConfigPath();\r\n// }} \"\"\r\n// {{{ 308 1 0 \"4a75f7d8_a6a5_4ebf_aaf639ff7ed562db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrFileName = StrConcat2(strFileName, \"\\\\Hamilton pH Module\\\\Last Configuration.xls\");\r\n// }} \"\"\r\n// {{ 309 1 0 \"79e3a4c7_b24e_47b5_a5ce3ba9cf739279\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E6D5175919C24c30A3B47D1C611A4754 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 310 1 0 \"adc5b986_1011_4c9f_8bb7e59aa67b3071\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nhdlLastPort.AddField(\"BluetoothPort\", o_intBluetoothPort, hslInteger);\r\nhdlLastPort.AddField(\"WashCycles\", o_intNumberOfWashCycles, hslInteger);\r\nhdlLastPort.AddField(\"DryCycles\", o_intNumberOfDryCycles, hslInteger);\r\nhdlLastPort.AddField(\"DryTime\", o_intDryTime, hslInteger);\r\nif( 0 == hdlLastPort.Open(strFileName + \" \" + \"Config\", hslRead) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, strFileName, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 311 1 0 \"debd5e3c_0fee_4f53_8d09f2487ba70525\" \"{B31F3536-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlLastPort.ReadRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 312 1 0 \"e61930a6_3ca2_471b_ae48d6c726020100\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != hdlLastPort.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nhdlLastPort.RemoveFields();\r\n// }} \"\"\r\n// {{ 313 1 0 \"79e3a4c7_b24e_47b5_a5ce3ba9cf739279\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E6D5175919C24c30A3B47D1C611A4754 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 314 1 0 \"b7607d77_23db_4622_a4cb4d4e6ee389a0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_intBluetoothPort = 1;\r\n// }} \"\"\r\n// {{ 315 1 0 \"108fc060_8c64_41d6_bd2a9b642f2bc86e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_intNumberOfWashCycles = 1;\r\n// }} \"\"\r\n// {{ 316 1 0 \"59e0ab02_429d_464e_a35eade11b4dc6cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_intNumberOfDryCycles = 1;\r\n// }} \"\"\r\n// {{ 317 1 0 \"13d1042b_ff5d_4e63_8b7f883ef0bdab88\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_intDryTime = 1;\r\n// }} \"\"\r\n// {{{ 318 1 0 \"35e623e8_89b3_4168_bef796b1c9875d46\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Unable to read file '\", strFileName, \"' !\", \"\");\r\n// }} \"\"\r\n// {{{ 319 1 0 \"a35bdd8b_fd21_4b26_8f1e78b1092bc114\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"e1f4647c_8675_4fd7_987bdf1713f2bd0d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 321 1 0 \"79e3a4c7_b24e_47b5_a5ce3ba9cf739279\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 322 1 0 \"3b7aa23e_a64d_4ad4_a3bdb96ea58f6425\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat8(\"o_intBluetoothPort = \", o_intBluetoothPort, \", o_intNumberOfWashCycles = \", o_intNumberOfWashCycles, \", o_intNumberOfDryCycles = \", o_intNumberOfDryCycles, \", o_intDryTime = \", o_intDryTime);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"94557285_55ca_4a59_a15291227e09f9f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 5 \"LastUsedConfigurationLoad\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ParkModule\" \"Begin\"\r\nfunction ParkModule( device & ML_STAR, variable i_intModuleID, sequence i_seqModule ) variable {\r\n// }} \"\"\r\nprivate variable strTrace;\r\nprivate variable strFunctionName;\r\nprivate variable blnSuccess;\r\n// {{ 5 \"ParkModule\" \"InitLocals\"\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{ 423 1 0 \"bdb56e8d_d97f_4fdd_9fe49c7968dc16d7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 424 1 0 \"3e48ff30_5c88_4669_a000b7409f9c6ad7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat2(\"i_intModuleID = \", i_intModuleID);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"55735329_be61_4285_8875a8ee4381f795\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 426 1 0 \"fe53c8bf_06ae_4e05_81666f9269feee04\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 427 1 0 \"7963fba0_dc3a_432e_ac1901e9f0aace47\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"7963fba0_dc3a_432e_ac1901e9f0aace47\"); // ZSwapPlacePlate\r\n}\r\n// }} \"\"\r\n// {{{ 428 1 0 \"b0e3b1e3_b884_44f0_a70b890463b5262f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{ 429 1 0 \"5d4317f1_697e_47c1_86fe9e71edecc2d2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 430 1 0 \"648a4ec1_d134_4fbe_b10855e8467881bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 431 1 0 \"a4437016_a55d_49d0_a11f6474e04f3c92\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"ParkModule\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"PickupModule\" \"Begin\"\r\nfunction PickupModule( device & ML_STAR, variable i_intModuleID, sequence & i_seqModule ) variable {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable blnSuccess;\r\n// {{ 5 \"PickupModule\" \"InitLocals\"\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 434 1 0 \"989ef92a_329f_40fc_a3c13d955c8cc07b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 435 1 0 \"8915749a_a9ea_4f19_92d4f3c00390ae2d\" \"ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F(\"8915749a_a9ea_4f19_92d4f3c00390ae2d\"); // ZSwapGetPlate\r\n}\r\n// }} \"\"\r\n// {{{ 436 1 0 \"fb58c184_d3ad_435a_a517811c0f166ff8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::Sleep(i_intModuleID);\r\n// }} \"\"\r\n// {{ 437 1 0 \"dd4c2b13_ce57_41bd_98933a5f64851247\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{ 438 1 0 \"1b76ef6a_b387_4cc6_8e640e214b2cad0f\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"1b76ef6a_b387_4cc6_8e640e214b2cad0f\"); // ZSwapPlacePlate\r\n}\r\n// }} \"\"\r\n// {{{ 439 1 0 \"30002c78_733e_4430_9e724b6916a48ddd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to activate sleep mode!\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 440 1 0 \"c73029b8_6ace_4f05_a378f73209038f9d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 441 1 0 \"dd4c2b13_ce57_41bd_98933a5f64851247\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 442 1 0 \"2b3859e8_cfaf_411e_b31e4f23e52398d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(_seqModule, i_seqModule);\r\n// }} \"\"\r\n// {{ 443 1 0 \"0aae52b5_abab_4e36_abe0a2263185a097\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 444 1 0 \"be7ef304_17fe_4fb5_818608597bccc602\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"18292cb8_9f15_47a7_956f6d0a76a90f84\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"PickupModule\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Dry\" \"Begin\"\r\nfunction Dry( device & ML_STAR, variable i_intModuleID ) variable {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable blnSuccess;\r\n// {{ 5 \"Dry\" \"InitLocals\"\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 180 1 0 \"15599550_2337_4e63_a1c1ff1872bd9ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"b10b8370_ca54_4b2d_aa18a042e8086b0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Dry(ML_STAR);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"9ced083a_6cd6_4b00_97b633114d216ce2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 183 1 0 \"13da5c19_175f_4eb1_97d605ca33e96e77\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 184 1 0 \"01240c5f_4535_4528_bcc170e9f03ed121\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 185 1 0 \"13da5c19_175f_4eb1_97d605ca33e96e77\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 186 1 0 \"3e4cc210_0da4_487f_98c577e243b7a800\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (blnSuccess);\r\n// }} \"\"\r\n// {{{ 5 \"Dry\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Wash\" \"Begin\"\r\nprivate function _Wash( device & ML_STAR ) variable {\r\n// }} \"\"\r\nprivate variable blnSuccess;\r\n// {{ 5 \"_Wash\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 705 1 0 \"fd0b3d02_84fc_4b49_8b85ab61b861b249\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"fd0b3d02_84fc_4b49_8b85ab61b861b249\"); // ZSwapMovePlate\r\n}\r\n// }} \"\"\r\n// {{{ 706 1 0 \"ceaec143_7d6a_48e6_bf71befd80b047bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Station_Washer_Module::Wash(ML_STAR, _intWasherModuleID, _intWashCycles);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"14157375_3fff_4bc2_9b3f7486e38fc72a\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (blnSuccess);\r\n// }} \"\"\r\n// {{{ 5 \"_Wash\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Wash\" \"Begin\"\r\nfunction Wash( device & ML_STAR, variable i_intModuleID ) variable {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\nprivate variable blnSuccess;\r\n// {{ 5 \"Wash\" \"InitLocals\"\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 520 1 0 \"fa46bbf7_2d96_406f_bd97daa694c03a90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 521 1 0 \"38601eef_0254_4130_a7f19c6d741da0b5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Wash(ML_STAR);\r\n// }} \"\"\r\n// {{{ 522 1 0 \"cba5e430_3f04_48b7_9a33c09c0dca838f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 523 1 0 \"a79112d6_33f5_4639_99b3a25ba560915e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::TRUE)\r\n{\r\n// }} \"\"\r\n// {{{ 524 1 0 \"70f6ebb1_d297_4778_96176e9b332585e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 525 1 0 \"a79112d6_33f5_4639_99b3a25ba560915e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 526 1 0 \"24f3c323_483a_4ecb_83531d46aea78ebe\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (blnSuccess);\r\n// }} \"\"\r\n// {{{ 5 \"Wash\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Measure\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable strTrace;\r\nprivate variable strFunctionName;\r\nprivate variable blnSuccess;\r\nprivate variable strError;\r\n// {{ 5 \"Measure\" \"InitLocals\"\r\no_arrfltpHValues.SetSize( 0);\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{ 358 1 0 \"6e0a0690_18ce_48f9_a808a7b57948d4c4\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 359 1 0 \"ad1a6a34_e9d6_4e72_b5237a21d4bef3d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckFloatRange(i_fltMeasureHeight, \"i_fltMeasureHeight\", 0.0, 100.0, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 360 1 0 \"89470ac5_106a_4848_a4bbbbb43973f6e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 361 1 0 \"feda3920_3922_4ed7_8042e953c18d1d0b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 362 1 0 \"89470ac5_106a_4848_a4bbbbb43973f6e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 363 1 0 \"9508299f_e6a7_49e4_a801eb3772de91c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intMeasureTime, \"i_intMeasureTime\", 1, 600, strFunctionName, _strLibraryName);\r\n// }} \"\"\r\n// {{ 364 1 0 \"8a4ebd0d_36d5_4ef6_91fe34466db6018f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 365 1 0 \"7acc5dad_68c0_475c_a6512164f6db39f5\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 366 1 0 \"8a4ebd0d_36d5_4ef6_91fe34466db6018f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 367 1 0 \"86d6bd8b_3523_4e8d_8903aa259721d56f\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 368 1 0 \"b5de31fe_a42b_4f32_a97bd67a8ecb9e50\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"i_fltMeasureHeight = \", i_fltMeasureHeight, \", i_strProbePattern = \", i_strProbePattern);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"f8bb6ce1_d4a1_4426_83c3d12aa3a2c66c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 370 1 0 \"f077925f_f893_4423_825df8f7d0645438\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrfltpHValues.SetSize(4);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"4e6bb66a_94f4_429f_96c6d4af714464ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _Measure(ML_STAR, i_intModuleID, i_seqMeasurement, ASWGLOBAL::BOOL::TRUE, i_fltMeasureHeight, i_strProbePattern, i_intMeasureTime, i_fltTemperature, strFunctionName, o_arrfltpHValues);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"62984c93_7ffa_417d_88a954a806dee1bf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName);\r\n// }} \"\"\r\n// {{ 373 1 0 \"018dc4bc_a3bc_4c04_bcc0f357e3b60285\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 374 1 0 \"9ad2947e_8ac7_448b_ba4431874a85936c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::GetLastError(i_intModuleID, strError);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"383bc43b_55e9_4598_b802249026abd64f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Module reported the following error: '\", strError, \"'\", \"\");\r\n// }} \"\"\r\n// {{{ 376 1 0 \"d2a649d9_ac10_4861_81811fba680a1de2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"1ef12d32_384b_4d79_aae0146b9f438650\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 378 1 0 \"018dc4bc_a3bc_4c04_bcc0f357e3b60285\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 379 1 0 \"cdb5db27_abc8_44e8_966d1dd937d7796e\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 380 1 0 \"5fca58c8_c8ba_45d3_90b6ba4a7cd49e46\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTraceArray(Hamilton_DriverTools::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, o_arrfltpHValues, \"o_arrfltpHValues\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"d5297bf7_bf4f_4916_99342000cb21112b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_Measure\" \"Begin\"\r\nfunction _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 {\r\n// }} \"\"\r\nprivate variable blnMeasureSuccess;\r\nprivate variable blnSuccess;\r\nprivate timer hdlWaitForSettling;\r\nprivate sequence trpMeasurement;\r\nprivate variable strTrace;\r\nprivate variable strTime;\r\nprivate variable strDate;\r\nprivate file hdlMeasurementFile;\r\nprivate variable intMeasurementCounterProbe_1;\r\nprivate variable intMeasurementCounterProbe_2;\r\nprivate variable intMeasurementCounterProbe_3;\r\nprivate variable intMeasurementCounterProbe_4;\r\nprivate variable intBatteryChargeLevel;\r\nprivate variable intBatteryChargeCounter;\r\nprivate variable strBatteryReplacementDate;\r\nprivate variable strBatteryChargeLevel;\r\nprivate variable strProbeReplacementDate;\r\nprivate variable intBatteryCondition;\r\nprivate variable fltpHValueProbe_1;\r\nprivate variable fltpHValueProbe_2;\r\nprivate variable fltpHValueProbe_3;\r\nprivate variable fltpHValueProbe_4;\r\n// {{ 5 \"_Measure\" \"InitLocals\"\r\no_arrfltpHValues.SetSize( 0);\r\n// }} \"\"\r\n// {{ 618 1 0 \"c76d1e0d_8770_4fb7_8fce2daa5b0cb9f4\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrfltpHValues.SetSize(4);\r\n// }} \"\"\r\n// {{ 619 1 0 \"5266578e_3797_4593_871ab5c3b0c28490\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 620 1 0 \"cd714cce_1b5b_49b9_83aaa5ccc2143f8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nblnSuccess = _CreateModulePosition(ML_STAR, i_seqMeasurement, i_fltMeasureHeight, i_blnShiftPositionByProbe, \"MeasurePosition\", i_strCallingFunctionName, trpMeasurement);\r\n// }} \"\"\r\n// {{ 621 1 0 \"7e55adbc_828c_4342_9f5d08d2ad975a18\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 622 1 0 \"61f37379_4825_4db0_b64942e2d2adfa4b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 623 1 0 \"7e55adbc_828c_4342_9f5d08d2ad975a18\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 624 1 0 \"5266578e_3797_4593_871ab5c3b0c28490\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 625 1 0 \"8b55f35e_4fdf_44b3_98fdbfca83864001\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 626 1 0 \"c11d7349_c318_4e5c_9f49f0369c235956\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"c11d7349_c318_4e5c_9f49f0369c235956\"); // ZSwapMovePlate\r\n}\r\n// }} \"\"\r\n// {{ 627 1 0 \"c26339a3_a41b_4c15_9229394863189bd8\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlWaitForSettling.SetTimer(i_intMeasureTime) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 628 1 0 \"a343b7ed_503f_4e1a_af2295f25c54a0c5\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlWaitForSettling.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 629 1 0 \"2b45797b_6ba1_4b51_a115a59c9d6dbb76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{ 630 1 0 \"ae74995b_5505_4451_98e89188fa805ae6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 631 1 0 \"6b2d98a5_c8c2_4fad_ae9e961a25c69caa\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 632 1 0 \"ae74995b_5505_4451_98e89188fa805ae6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 633 1 0 \"d0704d66_c2ac_4f60_b164ae115cddd57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, strBatteryReplacementDate, intBatteryChargeCounter, intBatteryCondition, intBatteryChargeLevel);\r\n// }} \"\"\r\n// {{ 634 1 0 \"9aecf4c0_2613_4b56_81516ccc14a8dba6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 635 1 0 \"379c983a_21f0_4cd0_a024b1350afe2f3f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 636 1 0 \"9aecf4c0_2613_4b56_81516ccc14a8dba6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 637 1 0 \"d48c3018_45c3_4aec_ad7ecc93d06a3ad8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::RequestProbeData(i_intModuleID, strProbeReplacementDate, intMeasurementCounterProbe_1, intMeasurementCounterProbe_2, intMeasurementCounterProbe_3, intMeasurementCounterProbe_4);\r\n// }} \"\"\r\n// {{ 638 1 0 \"ad72164d_c9be_47d5_a94bde46d641f28d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 639 1 0 \"f8b9c4aa_3199_442c_86342c175e953243\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 640 1 0 \"ad72164d_c9be_47d5_a94bde46d641f28d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 641 1 0 \"d6f9bcdd_47d0_4685_ba03d45363da0c0d\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrfltpHValues.SetSize(4);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"f6d13269_41fb_4cfb_95ad5c4a9538a16f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnMeasureSuccess = 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));\r\n// }} \"\"\r\n// {{{ 643 1 0 \"34761416_d271_42fd_87a50ea05bf7aca2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::Sleep(i_intModuleID);\r\n// }} \"\"\r\n// {{ 644 1 0 \"7ad1e577_8dc9_463d_89104861e4c6ed5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 645 1 0 \"38304a53_1db4_408d_a4577905bb8a5e18\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 646 1 0 \"7ad1e577_8dc9_463d_89104861e4c6ed5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 647 1 0 \"8b55f35e_4fdf_44b3_98fdbfca83864001\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 648 1 0 \"0bff844d_1169_4c5e_9b96dc8b24d66418\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 649 1 0 \"5694d5c0_5e2b_4699_b760fb7da122878f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnMeasureSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 650 1 0 \"e9ef7414_1c62_4b4f_8055d54d5bdde46b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 651 1 0 \"5694d5c0_5e2b_4699_b760fb7da122878f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 652 1 0 \"98dbcc81_e0b6_43d1_849a4b0f00537734\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 653 1 0 \"a5fe9b4e_19ce_4fb1_a78387650adb5844\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrDate = TimGetFormattedDate(\"%Y.%m.%d\");\r\n// }} \"\"\r\n// {{{ 654 1 0 \"4f64d98a_70e2_47a6_a81cf4c8d42a0c7c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTime = TimGetFormattedTime(\"\");\r\n// }} \"\"\r\n// {{{ 655 1 0 \"81845ffe_dbb8_42e0_86a69512be087194\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrBatteryChargeLevel = StrConcat2(intBatteryChargeLevel, \" %\");\r\n// }} \"\"\r\n// {{ 656 1 0 \"250fd3c0_1929_40a6_a7fd456052d62cc2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltpHValueProbe_1 = o_arrfltpHValues.ElementAt( 1 -1);\r\n// }} \"\"\r\n// {{ 657 1 0 \"1b5270e0_b139_4b3a_bb587da1df2de61f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltpHValueProbe_2 = o_arrfltpHValues.ElementAt( 2 -1);\r\n// }} \"\"\r\n// {{ 658 1 0 \"ecde3863_5974_41de_88ae2f60dcf646e2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltpHValueProbe_3 = o_arrfltpHValues.ElementAt( 3 -1);\r\n// }} \"\"\r\n// {{ 659 1 0 \"4231c767_f55a_4c19_a357098273c3a7d1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nfltpHValueProbe_4 = o_arrfltpHValues.ElementAt( 4 -1);\r\n// }} \"\"\r\n// {{ 660 1 0 \"2565f487_566d_43b6_b781c746c3c5a568\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AEBF2329738F4a4e9AD735DF874D45BA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 661 1 0 \"2d3756d0_d2aa_4520_b12632caf0eb507f\" \"{B31F3534-5D80-11d4-A5EB-0050DA737D89}\"\r\nhdlMeasurementFile.AddField(\"Module_Info\", _strSerialNumber, hslString, 255);\r\nhdlMeasurementFile.AddField(\"Battery replacement date\", strBatteryReplacementDate, hslString, 255);\r\nhdlMeasurementFile.AddField(\"ChargeLevel\", strBatteryChargeLevel, hslString, 255);\r\nhdlMeasurementFile.AddField(\"Function\", i_strCallingFunctionName, hslString, 255);\r\nhdlMeasurementFile.AddField(\"Date\", strDate, hslString, 255);\r\nhdlMeasurementFile.AddField(\"Time\", strTime, hslString, 255);\r\nhdlMeasurementFile.AddField(\"Temperature\", i_fltTemperature, hslFloat);\r\nhdlMeasurementFile.AddField(\"pH Probe 1\", fltpHValueProbe_1, hslFloat);\r\nhdlMeasurementFile.AddField(\"pH Probe 2\", fltpHValueProbe_2, hslFloat);\r\nhdlMeasurementFile.AddField(\"pH Probe 3\", fltpHValueProbe_3, hslFloat);\r\nhdlMeasurementFile.AddField(\"pH Probe 4\", fltpHValueProbe_4, hslFloat);\r\nhdlMeasurementFile.AddField(\"Probe replacement date\", strProbeReplacementDate, hslString, 255);\r\nhdlMeasurementFile.AddField(\"Count Probe 1\", intMeasurementCounterProbe_1, hslInteger);\r\nhdlMeasurementFile.AddField(\"Count Probe 2\", intMeasurementCounterProbe_2, hslInteger);\r\nhdlMeasurementFile.AddField(\"Count Probe 3\", intMeasurementCounterProbe_3, hslInteger);\r\nhdlMeasurementFile.AddField(\"Count Probe 4\", intMeasurementCounterProbe_4, hslInteger);\r\nif( 0 == hdlMeasurementFile.Open(_strPathMeasurement + \" \" + \"Measurements\", hslAppend) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, _strPathMeasurement, \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 662 1 0 \"481cf3a7_d855_429f_a9c452769aa017b8\" \"{B31F3537-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == hdlMeasurementFile.WriteRecord() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 663 1 0 \"f1343570_95a6_43a3_a9f5b2238567456e\" \"{B31F3538-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 != hdlMeasurementFile.Close() )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\nhdlMeasurementFile.RemoveFields();\r\n// }} \"\"\r\n// {{ 664 1 0 \"2565f487_566d_43b6_b781c746c3c5a568\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AEBF2329738F4a4e9AD735DF874D45BA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 665 1 0 \"47286f1d_2aca_4f37_8d22f74225bbcf0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Unable to write measurement values to '\", _strPathMeasurement, \"'!\", \"\");\r\n// }} \"\"\r\n// {{{ 666 1 0 \"9bb62fdd_9e5d_4ed1_89444a798c9abb09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, i_strCallingFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"fb975f24_e9fa_4a9b_ab9909ef2ff8bc15\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 668 1 0 \"2565f487_566d_43b6_b781c746c3c5a568\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 669 1 0 \"b4df3385_f8ba_4476_8c45b86b947a15a7\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 670 1 0 \"01144484_7fad_4268_b3fc2214530c7c0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTraceArray(Hamilton_DriverTools::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, o_arrfltpHValues, \"measured pH value\", i_strCallingFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 671 1 0 \"ebb8dcd2_9754_464c_af82b1e2303aea2d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"_Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"EnableExtendedLog\" \"Begin\"\r\nfunction EnableExtendedLog(  ) void {\r\n// }} \"\"\r\nprivate variable strFunctionName;\r\n// {{ 5 \"EnableExtendedLog\" \"InitLocals\"\r\n// }} \"\"\r\nHamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName);\r\n// {{{ 189 1 0 \"b4e07901_cb5c_43f6_82c306d36a3117d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"cda563b2_0460_4e97_a34d9204743dcfb4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 191 1 0 \"a8564771_4e0c_465a_aff772460e8ed033\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, \"\", strFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 5 \"EnableExtendedLog\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"_RequestBatteryData\" \"Begin\"\r\nprivate function _RequestBatteryData( variable i_intModuleID, variable i_strCallingFunctionName, variable i_intLowerLimit, variable & o_strReplacementDate, variable & o_intChargeLevel, variable & o_intChargeCounter ) variable {\r\n// }} \"\"\r\nprivate variable strTrace;\r\nprivate variable blnSuccess;\r\nprivate variable intBatteryCondition;\r\n// {{ 5 \"_RequestBatteryData\" \"InitLocals\"\r\no_strReplacementDate = 0;\r\no_intChargeLevel = 0;\r\no_intChargeCounter = 0;\r\n// }} \"\"\r\n// {{{ 673 1 0 \"215276c7_0bb0_40aa_8dc22680c8098e01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{ 674 1 0 \"9fbc7edc_b842_4bad_a5aab0767b8d24df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 675 1 0 \"0db41f5c_ff80_4940_b63085c1f512bfe4\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 676 1 0 \"9fbc7edc_b842_4bad_a5aab0767b8d24df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 677 1 0 \"6407fe94_8b93_4eb7_857ff2f0b7849268\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, intBatteryCondition, o_intChargeLevel);\r\n// }} \"\"\r\n// {{ 678 1 0 \"2317c515_fc16_4710_a7df559c19a3b411\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 679 1 0 \"ec2e92d1_e0bc_4bc7_9797403c4004fe16\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Unable to request battery data\", i_strCallingFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"42c2bde3_4737_4b18_9a6e40f163cfa9eb\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 681 1 0 \"2317c515_fc16_4710_a7df559c19a3b411\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 682 1 0 \"e94b442b_910c_48d7_91bd041b9dff23ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnSuccess = Hamilton_pH_Module::Sleep(i_intModuleID);\r\n// }} \"\"\r\n// {{ 683 1 0 \"25c8b672_794e_45d6_9aeb5551ce39296d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnSuccess == ASWGLOBAL::BOOL::FALSE)\r\n{\r\n// }} \"\"\r\n// {{{ 684 1 0 \"ee291419_5e3c_451c_ae8560c981c226f3\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 685 1 0 \"25c8b672_794e_45d6_9aeb5551ce39296d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 686 1 0 \"e8e0af37_f9f0_4407_b4fccad9f7ebae05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstrTrace = StrConcat4(\"Battery charge level is \", o_intChargeLevel, \" %\", \"\");\r\n// }} \"\"\r\n// {{{ 687 1 0 \"f81f8d70_b735_4215_8ad2832c8a850d7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, strTrace, i_strCallingFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 688 1 0 \"78e75451_d5b2_405a_8b4b1cf428c2f86c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_intChargeLevel < 25)\r\n{\r\n// }} \"\"\r\n// {{{ 689 1 0 \"dab9bdcd_d3f3_4b7f_b54258c56d3d176b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_RELEASE, \"Battery charge level is below 25%!\", i_strCallingFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{ 690 1 0 \"78e75451_d5b2_405a_8b4b1cf428c2f86c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 691 1 0 \"aae3cf62_ff19_4fa9_8bfb290f07dde6b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (o_intChargeLevel < i_intLowerLimit)\r\n{\r\n// }} \"\"\r\n// {{{ 692 1 0 \"11528941_7661_48de_ab95210ec9b72b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, \"Battery charge level is 0%!\", i_strCallingFunctionName, _intTraceLevel, _strLibraryName);\r\n// }} \"\"\r\n// {{{ 693 1 0 \"2a959215_9344_4965_86e5858e94ebbe0f\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::FALSE);\r\n// }} \"\"\r\n// {{ 694 1 0 \"aae3cf62_ff19_4fa9_8bfb290f07dde6b1\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 695 1 0 \"7a479464_a1a8_40ec_90a513e51356175b\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (ASWGLOBAL::BOOL::TRUE);\r\n// }} \"\"\r\n// {{{ 5 \"_RequestBatteryData\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-02-27 12:46$$checksum=e6d65b62$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/HslHamHeaterShakerLib.hs_",
    "content": "// ======================================================================\r\n// This is a part of the HSLHamHeaterShaker Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//   \r\n//\t2008-09-11  tbenz >  V1.0 first creation\r\n//\r\n// 2008-12-03  tbenz >  V1.1 check of input parameter removed\r\n//\r\n// 2009-08-13  tbenz >  V1.2 Initialize routine enlarget with close ond open plate lock\r\n//                      changed in function InitializeNode()\r\n//\r\n// 2013-03-06  tbenz >  V4.4 No change in the library.\r\n//\t\t\t\t\t\tUSB driver changed from UsbIoComm.dll to HxUsbComm.dll\r\n//\t\t\t\t\t\tthis driver is trace into the same UsbCom.trc file than the phoenix software.\r\n//\t\t\t\t\t\tVersion is new dependet of the software version.\r\n//\r\n// >>>>> if you change the version update HamHeaterShakerVersion too <<<<\r\n//\r\n//\t**********************************************************************\r\n// This library version supports following hardware:\r\n//\t\t- Hamilton Heater Shaker PN 186280/02\r\n//\t**********************************************************************\r\n\r\n\r\n#ifndef __HSLHeaterShakerLibImpl_hsl__\r\n#define __HSLHeaterShakerLibImpl_hsl__\t1\r\n\r\n\r\nstatic const variable HamHeaterShakerVersion(\"Version: V4.4\");\r\n\r\n// ----------------------------------------------------------------------------------------------------\r\n// Includes\r\n// ----------------------------------------------------------------------------------------------------\r\n\r\n#ifndef __HSLStrLib_hsl__\r\n\t#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLSynLib_hsl__\r\n\t#include \"HSLSynLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLMthLib_hsl__\r\n\t#include \"HSLMthLib.hsl\"\r\n#endif\r\n\r\n\r\n// ----------------------------------------------------------------------------------------------------\r\n// Device (for development only! Comment out for release version.)\r\n// ----------------------------------------------------------------------------------------------------\r\n//device ML_STAR;\r\n\r\n// --------------------------------------------------------------------------------------\r\n// Implementation of Hamilton Heater Shaker library \r\n// --------------------------------------------------------------------------------------\r\nnamespace HSLHamHeaterShaker\r\n{\r\n\t#ifndef __HSLStringTableLib_hsl__\r\n\t#include \"HSLStringTableLib.hs_\"\r\n\t#endif\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Debugging and Developing (for development only! Comment out for release version.)\r\n\t// --------------------------------------------------------------------------------------\r\n\t//#define _DEBUG\t\t1\t\t// specifies the debug version of the HSLHamHeaterShaker library\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Tracing\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace TraceStatus\r\n   {\r\n\t\tstatic const variable cmd_start(1);\t\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_complete(2);\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_error(3);\t\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_progress(4);\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_errComplete(5);\t\t\t// action status for formated trace and step return\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Parameter definitions\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace ShakingParam\r\n   {\r\n      static const variable directionLeft(0);         // Shaking direction\r\n      static const variable directionRight(1);        // Shaking direction\r\n      static const variable directionDefault(0);      // Shaking direction\r\n      static const variable speedParamLenght(4);      // Length of firmware parameter string\r\n      static const variable accelParamLenght(5);      // Length of firmware parameter string\r\n      static const variable timeParamLenght(5);       // Length of firmware parameter string\r\n      static const variable rampMin(630);             // Accelerator ramp min\r\n      static const variable rampMax(12500);           // Accelerator ramp max\r\n      static const variable rampDefault(1250);        // Accelerator ramp default\r\n      static const variable rpmMin(30);               // min revolutions per minutes RPM (steps per second (48 steps == 1 revolution)\r\n      static const variable rpmMax(2500);             // max revolutions per minutes RPM\r\n      static const variable rpmDefault(1000);         // Revolutions per minutes RPM\r\n\t\tstatic const variable rmpStepFactor(1.25);\t\t// Factor to calculate RPM to steps (Steps = RPM / rmpStepFactor)\r\n      static const variable shakingTimeMin(0);        // min shaking time\r\n      static const variable shakingTimeMax(30000);    // max shaking time\r\n      static const variable shakeTolMin(0);    \t\t\t// min shaking tolerance\r\n      static const variable shakeTolMax(100);    \t\t// max shaking tolerance\r\n\t\t\r\n   }\r\n\r\n   namespace TemperateParam\r\n   {\r\n      static const variable startTimeOutDefault(1800);// Time before temperature will be checked\r\n      static const variable startTimeOutMin(1);       // Time before temperature will be checked\r\n      static const variable startTimeOutMax(3600);    // Time before temperature will be checked\r\n      static const variable paramLength(4);           // Length of all temperature step parameter\r\n      static const variable tempStateOk(0);           // Temperature was allways in temperature range\r\n      static const variable tempStateOutOfRange(1);   // Temperature was out of temperature range\r\n      static const variable tempStateOutOfSecurity(2);// Temperature was out of security range\r\n      static const variable tempStateTimeOut(3);\t\t// Temperature timeout\r\n      static const variable tempMin(0.0);             // min temperature\r\n      static const variable tempMax(105.0);           // max temperature\r\n      static const variable tempToleranceDefault(2.0);// Tolerance of incubation time\r\n      static const variable tempToleranceMin(0.0);    // Tolerance of incubation time\r\n      static const variable tempToleranceMax(100.0);  // Tolerance of incubation time\r\n      static const variable tempSecurityDefault(6.0); // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempSecurityMin(0.0);     // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempSecurityMax(100.0);   // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempTempRequestLength(13);// Length of temperature response string\r\n      static const variable tempStateRequestLength(4);// Length of temperature state response string\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Monitoring\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace MonitorStatus\r\n   {\r\n\t\tstatic const variable monitorOK(0);\t\t\t\t\t\t\t// no error\r\n\t\tstatic const variable monitorErrHeating(1);\t\t\t\t// heating out of range\r\n\t\tstatic const variable monitorErrShaking(2);\t\t\t\t// shaking out of range\r\n\t\tstatic const variable monitorErrHeatingAndShaking(3);\t// heating and shaking out of range\r\n   }\r\n\r\n   namespace MonitorAction\r\n   {\r\n\t\tstatic const variable monitorActionMin(0);\t\t\t\t// min value\r\n\t\tstatic const variable monitorActionCont(0);\t\t\t\t// Continue\r\n\t\tstatic const variable monitorActionStop(1);\t\t\t\t// Stop Heating, shaking and monitoring\r\n\t\tstatic const variable monitorActionAbort(2);\t\t\t\t// Abort run\r\n\t\tstatic const variable monitorActionMax(2);\t\t\t\t// max value\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module local constants/variables\r\n\t// --------------------------------------------------------------------------------------\r\n   static const variable m_maxHHS(10);                      // node 0..9\r\n   static const variable m_firstStarNode(1);                // node 1 and 2 for ML_Star\r\n   static const variable m_lastStarNode(2);                 // node 1 and 2 for ML_Star\r\n   static const variable m_firstUsbNode(1);                 // node 1 to 8 for USB (0..7)\r\n   static const variable m_lastUsbNode(8);                  // node 1 to 8 for USB (0..7)\r\n   static const variable m_firstDeviceNumber(1);            // generated deviceNumber range\r\n   static const variable m_lastDeviceNumber(m_maxHHS);      // generated deviceNumber range\r\n\r\n   static const variable m_usbMsgTimeout(240);              // timeout for comand which are send to USB\r\n   static const variable m_usbInitTimeout(15);              // timeout for init comands which are send to USB\r\n   static const variable m_OFF(0);\r\n   static const variable m_ON(1);\r\n   static const variable m_firmwareCmdLength(2);            // length of firmware command without node (Tx)\r\n   static const variable m_waitTimeOutSecurity(60);         // Security time which will be added oto wait timeout of function waitShaker()\r\n\tstatic const variable m_starSimulateModeKey(18);\t\t\t// key for read simulate flag of STAR with GetCfgValueWithKey()\r\n\tstatic const variable m_shakingPropertyHeatAndShake(0);\t// HHS is usable for heating and shaking\r\n\tstatic const variable m_shakingPropertyOnlyHeat(1);\t\t// HHS is usable for heating only\r\n\tstatic const variable m_shakingPropertyOnlyShake(2);\t\t// HHS is usable for shaking only\r\n\tstatic const variable m_shakingPropertyNothing(3);\t\t\t// HHS is defined wrong, no shaking and no heating ????\r\n\r\n   // special error definition for direct check in step result string\r\n   static const variable m_fwNoError(\"er00\");               // no error\r\n   static const variable m_fwCanError(\"er10\");              // can error\r\n   static const variable m_fwShNotInitError(\"er51\");        // Shaker not initialized\r\n   static const variable m_fwShStepLostError(\"er52\");       // Shaker step lost\r\n   static const variable m_fwPlNotInitError(\"er56\");        // Plate lock not initialized\r\n   static const variable m_fwPlStepLostError(\"er57\");       // Plate lock step lost\r\n   static const variable m_fwTimeoutError(\"er98\");          // Time out during send of a command\r\n   static const variable m_fwIsInitialized(\"qw1\");          // QW answere, initialize = flag == 1\r\n   static const variable m_noStarConnectionError(\"er03\");   // No connection to star\r\n\r\n\t// definition for USB component\r\n   static variable   m_hhsUsbObjectName(\"HamHeaterShakerUSB.USB\");   // name of USB component\r\n   // \"{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}\", bufferSize(4090), vendorId(2223), productId(32770), serialNumber(00));\r\n   static variable   m_hhsUsbProductNum(32770);             // productId and serialNumber as string\r\n   static variable   m_hhsUsbSerieNum(\"00\");             \t// productId and serialNumber as string\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module globale constants/variables\r\n\t// --------------------------------------------------------------------------------------\r\n\tstatic global variable  m_hhsCriticalSection(0);   // critical section object for library synchronization \r\n   static global object    m_usbComObject;            // USB device object\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module local constants/variables which must be locked during set / get\r\n\t// --------------------------------------------------------------------------------------\r\n   static variable m_isStringTableInitialized(hslFalse);   \t\t\t// flag for init string table\r\n\tstatic global variable m_initializedLib(hslFalse);\t\t\t\t   // initialization state of the HSL HamHeaterShaker library\r\n\tstatic global variable m_isSimulate(hslFalse);                 // flag for simulate mode of heater shaker\r\n   static global variable m_usbTrace(hslTrue);\t\t\t\t\t\t\t// flag vor trace the send and receive from USB device\r\n\tstatic global variable m_initializedHeater[](m_maxHHS);        // initialization state of the used device\r\n   static global variable m_shakingDirection[](m_maxHHS);         // Shaking direction left/right (0/1)\r\n   static global variable m_shakingAccRamp[](m_maxHHS);           // Acceleration ramp (rpm)\r\n   static global variable m_shakingTimeOut[](m_maxHHS);           // Time out for waiting function after StartTimed 0 = not started\r\n   static global variable m_tempStartTimeOut[](m_maxHHS);         // Time to elapse until the time controlling is satrt\r\n   static global variable m_tempToleranceRange[](m_maxHHS);       // Tolerance of incubation temperature\r\n   static global variable m_tempSecurityRange[](m_maxHHS);        // Security tolerance before the heater is automatic switched off\r\n   static global variable m_userShakingSpeed[](m_maxHHS);         // The given speed from start function\r\n   static global variable m_userTemperature[](m_maxHHS);         \t// The given temperature from start function\r\n\r\n\t// device management\r\n\t// note: the assigned deviceNumber correspond with the array index (deviceNumber-1 == arrayIndex)\r\n\tstatic global variable m_deviceName[](m_maxHHS);\t\t\t\t\t// Name of ML_STAR or \"USB\" on USB\r\n\tstatic global variable m_nodeNumber[](m_maxHHS);\t\t\t\t\t// can node number 1 based\r\n\tstatic global object   m_starDeviceObj[](m_maxHHS);\t\t\t\t// object of ML_STAR device, for USB use m_usbComObject\r\n\tstatic global variable m_isStarSimulate[](m_maxHHS);\t\t\t\t// ML_STAR is in simulate mode\r\n\tstatic global variable m_hhsSetting[](m_maxHHS);\t\t\t\t\t// 0..2, 0=both, 1=onlyHeat, 2=onlyShake\r\n\r\n\tstatic function saveAndCreateDeviceNumber(variable funcId, variable deviceName,\r\n\t\t\tobject& starObject, variable isStarSimulate,\tvariable usedNode);\r\n   // m_initializedHeater value with data access lock\r\n   static function isUsbConnected(variable funcId);\r\n \tstatic function isSimulate(variable funcId, variable deviceNumber, variable makeTrace );\r\n   // uses node from 0 to 9\r\n   static function isHeaterInitialized(variable deviceNumber);\r\n   // uses node from 0 to 9\r\n   static function setHeaterInitialized(variable deviceNumber);\r\n   static function isUsbTrace();\r\n\r\n\t// definitions for Monitoring function\r\n   static const variable m_minSampleInterval(5);\r\n   static const variable m_maxSampleInterval(300);\r\n\r\n   // Prepare the globals for the hsl thread.\r\n   static global event\t  m_monitorStartEvent;\r\n   static global variable m_monitorDeviceNumber;\r\n   static global variable m_monitorShakerMin;\r\n   static global variable m_monitorShakerMax;\r\n\tstatic global variable m_monitorHeaterMin;\r\n\tstatic global variable m_monitorHeaterMax;\r\n   static global variable m_monitorSampleInterval;\r\n   static global variable m_monitorAction;\r\n   static global event\t  m_monitorEvent[](m_maxHHS);\r\n   static global variable m_monitorResult[](m_maxHHS);\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Firmware Error Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDE\r\n\t{\r\n\t\tstatic const variable first(0);\t\t\t\t\t\t            // guard\r\n\t\tstatic const variable noError(first);\t\t\t\t\t\t\t\t// No error\r\n      static const variable retErr(first + 1);\t\t\t\t\t\t\t// fatalError\r\n      static const variable retNotInitErr(first + 2);\t\t\t\t\t// node not initialized\r\n      static const variable retNotConnectErr(first + 3);\t\t\t\t// device not connected\r\n\t\tstatic const variable canError(first + 4);\t\t\t\t\t   // No communication to CAN node\r\n\t\tstatic const variable eepromError(first + 5);\t\t\t\t   // No communication to EEPROM\r\n\t\tstatic const variable syntaxCmdError(first + 6);\t\t\t   // Unknown command\r\n\t\tstatic const variable syntaxParUnkError(first + 7);\t\t\t// Unknown parameter.\r\n\t\tstatic const variable syntaxParRangeError(first + 8);\t\t\t// Parameter out of range.\r\n\t\tstatic const variable generalVoltError(first + 9);\t\t\t   // Voltage outside permitted range\r\n\t\tstatic const variable generalStopError(first + 10);\t\t\t// Stop received\r\n\t\tstatic const variable generalAddrError(first + 11);\t\t\t// Wrong system address\r\n\t\tstatic const variable parallelError(first + 12);\t\t\t\t// Parallel commands are nor allowed\r\n\t\tstatic const variable shakerInitError(first + 13);          // Shaker initialization failt\r\n\t\tstatic const variable shakerNotInitError(first + 14);\t\t\t// Shaker not initialized\r\n\t\tstatic const variable shakerStepLossError(first + 15);\t\t// Shaker step loss\r\n\t\tstatic const variable shakerStartModeError(first + 16);     // Shaker is not started with timeout\r\n\t\tstatic const variable plateLockInitError(first + 17);\t\t\t// Plate lock initialization failt\r\n\t\tstatic const variable plateLockNotInitError(first + 18);\t\t// Plate lock not initialized\r\n\t\tstatic const variable plateLockStepLossError(first + 19);\t// Plate lock step loss\r\n\t\tstatic const variable tempNotStartError(first + 20);\t\t   // Temperature controlling not started\r\n\t\tstatic const variable tempTimeoutError(first + 21);\t      // Timeout of temperature supervision\r\n\t\tstatic const variable tempSuperRangeError(first + 22);\t\t// Temperature out of supervision range\r\n\t\tstatic const variable tempSecurRangeError(first + 23);\t   // Temperature out of security range\r\n\t\tstatic const variable tempSensorError(first + 24);\t         // Temperature out of security range\r\n\t\tstatic const variable commandSendTimeout(first + 25);\t      // Time out occured on command ='%s'\r\n\t\tstatic const variable unknowFwError(first + 26);\t         // Unknow firmware error = '%s'\r\n      // none firmware errors\r\n\t\tstatic const variable noStringValue(first + 27);\t         // Wrong type of parameter; '%s1(%s2)' must be a sting..\r\n\t\tstatic const variable noIntegerValue(first + 28);\t         // Wrong type of parameter; '%s1(%s2)' must be a whole number.\r\n\t\tstatic const variable noDoubleValue(first + 29);\t         // Wrong type of parameter; '%s1(%s2)' must be a whole or decimal number.\r\n      static const variable neededNodeNotAvailable(first + 30);\t// Node '%s1' not found, please set it to 0 on parameter '%s2' at position '%s3'.\r\n      static const variable unknownResultFormat(first + 31);      // Unknown format of firmware result string.\\r\\nExpected: '%s1'.\\r\\nReceived: '%s2'.\r\n      static const variable wrongParameterLength(first + 32);     // Wrong length of input parameter.\\r\\nParameter = '%s1' length (%s2).\\r\\nExpected lenght (%s3).\r\n\r\n\t\tstatic const variable last(first + 32);\t\t\t\t\t\t\t// guard\r\n\t}\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// String Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDS\r\n\t{\r\n\t\tstatic const variable first(IDE::last + 1);\t\t\t\t\t   // guard\r\n\t\tstatic const variable traceSource(first);\t\t\t\t\t\t   // Text: \"SYSTEM\", source for formated trace\r\n\t\tstatic const variable helpFileName(first + 1);\t\t         // Text: \"HSLHAMHEATERSHAKERLIB%s.CHM\", language independend language name\r\n\t\tstatic const variable sendMessageTitle(first + 2);\t\t\t\t// Text: \"Send message = \"\r\n\t\tstatic const variable receiveMessageTitle(first + 3);\t\t   // Text: \"Received answere = \"\r\n\t\tstatic const variable setSimulate(first + 4);\t\t\t\t\t// Text: \"Set simulate mode = \"\r\n\t\tstatic const variable starNode(first + 5);\t\t\t\t\t   // Text: \"ML_Star node\"\r\n\t\tstatic const variable usbNode(first + 6);\t\t\t\t\t      // Text: \"USB node\"\r\n\t\tstatic const variable noUsbConnection(first + 7);\t         // Text: \"No connection to USB device.\"\r\n\t\tstatic const variable parameterOutOfRange(first + 8);\t      // Text: \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n      static const variable neededNodeNotInitialized(first + 9);\t// Text: \"Node '%s1' not initialized'.\"\r\n      static const variable setTrace(first + 10);\t\t\t\t\t\t// Text:\t\"Set USB trace mode = \"\r\n\t\tstatic const variable firmwareVersion(first + 11);\t\t\t\t// Text: \"%s1 '%s2' firmware version = \"\r\n\t\tstatic const variable cannotCreateUsbPort(first + 12);\t   // Text: \"USB communication cannot be created.\"\r\n      static const variable timeoutDuringWaitShaker(first + 13);  // Text: \"Time out during wait for end shaking. Shaking will be stop.\"\r\n      static const variable progressSendTo(first + 14);           // Text: \"Send command to %s1 ( %s2 ).\"\r\n      static const variable startTimeout(first + 15);             // Text: \"Start time out = \"\r\n      static const variable toleranceRange(first + 16);           // Text: \"Temperature range = \"\r\n      static const variable securityRange(first + 17);            // Text: \"Security range = \"\r\n      static const variable shakingDirection(first + 18);         // Text: \"Shaking direction = \"\r\n      static const variable shakingSpeed(first + 19);             // Text: \"Shaking speed = \"\r\n      static const variable shakingAccRamp(first + 20);           // Text: \"Shaking acceleration ramp = \"\r\n      static const variable sendToStar(first + 21);               // Text: \"HSLHamHeaterShakerLib::SendToStar\"\r\n      static const variable sendToUsb(first + 22);                // Text: \"HSLHamHeaterShakerLib::SendToUsb\"\r\n      static const variable invalidStarDevice(first + 23);      \t// Text: \"Parameter 'starDevice' contains an invalid object.\"\r\n      static const variable invalidDeviceNumber(first + 24);      // Text: \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n      static const variable maxHHSReached(first + 25);      \t\t// Text: \"Cannot create the deviceNumber; Maximum count of usable HHS is reached.\"\r\n      static const variable shakingNotActivated(first + 26);      // Text: \"Current HHS module on %s1 '%s2' cannot used as shaker.\");\r\n      static const variable heatingNotActivated(first + 27);      // Text: \"Current HHS module on %s1 '%s2' cannot used as heater.\");\r\n      static const variable monitoringShakingTitle(first + 28);   // Text: \"Current speed (RPM) = \");\r\n      static const variable monitoringTempTitle(first + 29);      // Text: \"Current temperature = \");\r\n      static const variable monitoringTempHeatUpTitle(first + 30);// Text:\t\"Current temperature (heating up mode) = \");\r\n      static const variable monitoringStateTitle(first + 31);\t\t// Text:\t\"Current monitored state = \");\r\n      static const variable monitoringWarning(first + 32);\t\t\t// Text:\t\"Warning: \");\r\n      static const variable monitoringShNotStart(first + 33);\t\t// Text:\t\"Shaking not started, check of speed limit will be disabled!\");\r\n      static const variable monitoringHeNotStart(first + 34);\t\t// Text:\t\"Heating up not started, check of temperature limit will be disabled!\");\r\n      static const variable monitoringAbort(first + 35);\t\t\t\t// Text:\t\"Heating or shaking is out of range; Method will be abort!\");\r\n\r\n\t\tstatic const variable last(first + 35);\t\t\t\t\t\t   // guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Function Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDF\r\n\t{\r\n      // do not change the sort of this list of function and his IDs\r\n\t\tstatic const variable first(IDS::last + 1);\t\t\t\t\t   // guard\r\n\t\tstatic const variable CreateStarDevice(first);\t\t         // Text: \"HSLHamHeaterShakerLib - CreateStarDevice\"\r\n\t\tstatic const variable CreateUsbDevice(first+1);\t\t         // Text: \"HSLHamHeaterShakerLib - CreateUsbDevice\"\r\n\t\tstatic const variable Terminate(first + 2);\t\t\t\t      // Text: \"HSLHamHeaterShakerLib - Terminate\"\r\n\r\n\t\tstatic const variable StartShaker(first + 3);\t\t\t\t   // Text: \"HSLHamHeaterShakerLib - StartShaker\"\r\n\t\tstatic const variable StopShaker(first + 4);\t\t            // Text: \"HSLHamHeaterShakerLib - StopShaker\"\r\n\t\tstatic const variable StartShakerTimed(first + 5);\t\t      // Text: \"HSLHamHeaterShakerLib - StartShakerTimed\"\r\n\t\tstatic const variable WaitForShaker(first + 6);\t\t         // Text: \"HSLHamHeaterShakerLib - WaitForShaker\"\r\n\t\tstatic const variable StartAllShaker(first + 7);\t\t      // Text: \"HSLHamHeaterShakerLib - StartAllShaker\"\r\n\t\tstatic const variable StartAllShakerTimed(first + 8);\t\t   // Text: \"HSLHamHeaterShakerLib - StartAllShakerTimed\"\r\n\t\tstatic const variable StopAllShaker(first + 9);\t\t         // Text: \"HSLHamHeaterShakerLib - StopAllShaker\"\r\n\t\tstatic const variable SetShakerParameter(first + 10);\t\t   // Text: \"HSLHamHeaterShakerLib - SetShakerParameter\"\r\n\t\tstatic const variable GetShakerParameter(first + 11);\t\t   // Text: \"HSLHamHeaterShakerLib - GetShakerParameter\"\r\n\t\tstatic const variable GetShakerSpeed(first + 12);\t   \t\t// Text: \"HSLHamHeaterShakerLib - GetShakerSpeed\"\r\n\r\n\t\tstatic const variable StartTempCtrl(first + 13);\t\t      // Text: \"HSLHamHeaterShakerLib - StartTempCtrl\"\r\n\t\tstatic const variable StopTempCtrl(first + 14);\t\t         // Text: \"HSLHamHeaterShakerLib - StopTempCtrl\"\r\n\t\tstatic const variable WaitForTempCtrl(first + 15);\t\t      // Text: \"HSLHamHeaterShakerLib - WaitForTempCtrl\"\r\n\t\tstatic const variable GetTemperature(first + 16);\t\t      // Text: \"HSLHamHeaterShakerLib - GetTemperature\"\r\n\t\tstatic const variable GetTemperatureState(first + 17);\t\t// Text: \"HSLHamHeaterShakerLib - GetTemperatureState\"\r\n\t\tstatic const variable SetTempParameter(first + 18);\t      // Text: \"HSLHamHeaterShakerLib - SetTempParameter\"\r\n\t\tstatic const variable GetTempParameter(first + 19);\t      // Text: \"HSLHamHeaterShakerLib - GetTempParameter\"\r\n\r\n\t\tstatic const variable SetPlateLock(first + 20);\t\t         // Text: \"HSLHamHeaterShakerLib - SetPlateLock\"\r\n\t\tstatic const variable GetFirmwareVersion(first + 21);\t      // Text: \"HSLHamHeaterShakerLib - GetFirmwareVersion\"\r\n\t\tstatic const variable GetSerialNumber(first + 22);\t\t      // Text: \"HSLHamHeaterShakerLib - GetSerialNumber\"\r\n\t\tstatic const variable BeginMonitoring(first + 23);\t\t      // Text: \"HSLHamHeaterShakerLib - BeginMonitoring\"\r\n\t\tstatic const variable EndMonitoring(first + 24);\t\t      // Text: \"HSLHamHeaterShakerLib - EndMonitoring\"\r\n\r\n\t\tstatic const variable SendFirmwareCommand(first + 25);\t   // Text: \"HSLHamHeaterShakerLib - SendFirmwareCommand\"\r\n\t\tstatic const variable SetSimulation(first + 26);\t\t      // Text: \"HSLHamHeaterShakerLib - SetSimulation\"\r\n\t\tstatic const variable SetUSBTrace(first + 27);\t\t\t\t\t// Text: \"HSLHamHeaterShakerLib - SetUSBTrace\"\r\n\r\n\r\n\t\tstatic const variable Monitoring(first + 28);\t\t\t\t\t// Text: \"HSLHamHeaterShakerLib - Monitoring\"\r\n\r\n\t\tstatic const variable last(first + 28);\t\t\t\t\t\t   // guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Exception handling\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tnamespace Error\r\n\t{\r\n\t\tstatic function Raise(\t\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t// i: error id, one of IDE\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t// i: file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t// i: function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t// i: line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\t\t\tstring hlpFileName;\r\n\r\n\t\t\t// set error description\r\n\t\t\tif (\"\" == funcName)\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + StringTable::Load(errorId);\r\n\t\t\telse\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + funcName + \"()\\n\" + StringTable::Load(errorId);\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\thlpFileName = StringTable::Load(IDS::helpFileName);\r\n\t\t\tStrReplace(hlpFileName, \"%s\", GetLanguage());\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), hlpFileName);\r\n\t\t}\r\n\r\n\t\tstatic function RaiseEx(\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t// i: error id, one of IDE\r\n\t\t\tvariable errorDesc,\t\t\t\t\t\t\t\t\t\t\t\t// i: error description\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t// i: file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t// i: function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t// i: line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\t\t\tstring hlpFileName;\r\n\r\n\t\t\t// set error description\r\n\t\t\tif (\"\" == funcName)\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + errorDesc;\r\n\t\t\telse\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + funcName + \"()\\n\" + errorDesc;\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\thlpFileName = StringTable::Load(IDS::helpFileName);\r\n\t\t\tStrReplace(hlpFileName, \"%s\", GetLanguage());\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), hlpFileName);\r\n\t\t}\r\n\r\n\t\tstatic function RaiseLast()\t\t\t\t\t\t\t\t\t\t// re-throws the last runtime error\r\n\t\t{\r\n\t\t\t// re-raise error\r\n\t\t\terr.Raise();\r\n\t\t}\r\n\t}\r\n\r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Internal helper function declaration\r\n\t*\r\n\t****************************************************************************************/\r\n\tstatic function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker);\r\n   static function checkStringInput(variable funcId, variable parameterName, variable input);\r\n   static function checkIntegerInput(variable funcId, variable parameterName, variable input);\r\n   static function checkIntegerInputRange(variable funcId, variable parameterName, variable input, variable min, variable max);\r\n   static function checkDoubleInput(variable funcId, variable parameterName, variable input);\r\n   static function checkDoubleInputRange(variable funcId, variable parameterName, variable input, variable min, variable max);\r\n\tstatic function isStarDevice(variable deviceNumber);\r\n\tstatic function getNodeFromDeviceNumber(variable deviceNumber);\r\n\tstatic function checkDeviceNumber(variable funcId, variable deviceNumber);\r\n\tstatic function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting);\r\n\tstatic function hasHeater(variable funcId, variable deviceNumber, variable throw);\r\n\tstatic function hasShaker(variable funcId, variable deviceNumber, variable throw);\r\n   static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace);\r\n   static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut);\r\n   static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace);\r\n   static function startTrace(variable funcName) void;\r\n   static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void;\r\n   static function errorTrace(variable funcName, variable errMsg) void;\r\n   static function errorCompleteTrace(variable funcName, variable errMsg) void;\r\n   static function endTrace(variable funcName) void;\r\n   static function getSendState(variable funcId, variable deviceNumber, variable isShaker);\r\n   static function isFirmwError(variable funcId, string cmdResult, variable makeTrace);\r\n   static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock);\r\n   static function startShakingCmd(variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart);\r\n   synchronized function monitorHeaterShaker();\r\n\tstatic function wait(variable waitTime);\r\n\tstatic function getCurrentShakerRPM(variable deviceNumber, variable makeTrace);\r\n\tstatic function getCurrentTemp(variable deviceNumber, variable makeTrace);\r\n\tstatic function pollingForRunningShaker(variable deviceNumber, variable maxPollingTime);\r\n\tstatic function pollingForRunningHeater(variable deviceNumber, variable maxPollingTime);\r\n\tstatic function OnAbortHHSLibrary();\r\n\r\n   static function versionTrace() void;\r\n\t// this function is used in InitializeLibrary() and uses index 0..10\r\n\tstatic function traceFirmwareVersion(variable funcId, variable deviceNumber);\r\n   static function sendToProgressTrace(variable funcName, variable deviceNumber) void;\r\n\r\n   // get the given parameter with filled 0 before value\r\n\tstatic function formatParam(variable param, variable strWidth);\r\n   // returns the given parameter normalized (*10) for firmware command as string\r\n\tstatic function normalizeParam(variable param, variable strWidth);\r\n\r\n      \r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Interface functions\r\n\t*\r\n\t****************************************************************************************/\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function CreateStarDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Initialize shaker/heater module on ML_Star device.\r\n   //  Only NOT initialized nodes will be initialize, the function will\r\n   //  check first the initialization state before.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : starDevice   : Used STAR device for node T1 and T2 of STAR\r\n   //  in : usedNode     : Node which must be create and initialized. (1 or 2)\r\n\t//\t out: deviceNumber : generated device number which must be used in all other functions\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction CreateStarDevice(\r\n\t\tdevice& starDevice,\t\t\t\t\t\t// in:  ML_STAR device\r\n\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1 or 2)\r\n\t\tvariable& deviceNumber)\t\t\t\t\t// out: generated deviceNumber\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::CreateStarDevice);\r\n\t\tvariable deviceName;\r\n\t\tvariable isSimulate(m_ON);\r\n\t\tvariable isStarSimulate(hslFalse);\r\n\t\tvariable shakingProperty(0);\r\n\t\tobject\tstarObject;\r\n\r\n      versionTrace();\r\n      startTrace(funcId);\r\n\r\n\t\t// check input parameter\r\n\t\tcheckIntegerInputRange(funcId, \"usedNode\", usedNode, m_firstStarNode, m_lastStarNode);\r\n\r\n\t\tonerror goto DeviceError;\r\n\t\tdeviceName = starDevice.GetInstrumentName();\r\n\t\tisSimulate = starDevice.GetCfgValueWithKey(m_starSimulateModeKey);\r\n\t\tstarObject = starDevice.GetCommandObject();\r\n\t\tonerror goto 0;\r\n\r\n\t\tif(starObject.IsNull())\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::invalidStarDevice);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      if(GetType(isSimulate) == \"i\")\r\n      {\r\n         if(isSimulate != m_OFF)\r\n            isStarSimulate = hslTrue;\r\n      }\r\n\r\n\t\t// initialize the library variables\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tdeviceNumber = saveAndCreateDeviceNumber(funcId, deviceName, starObject, isStarSimulate, usedNode);\r\n\r\n\t\t// initialize the shaker\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t\tDeviceError:\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::invalidStarDevice);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\t}\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function CreateUsbDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Initialize shaker/heater module on USB device.\r\n   //  Only NOT initialized nodes will be initialize, the function will\r\n   //  check first the initialization state before.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : usedNode     : Node which must be create and initialized. (1 or 2)\r\n\t//\t out: deviceNumber : generated device number which must be used in all other functions\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction CreateUsbDevice(\r\n\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1..8)\r\n\t\tvariable& deviceNumber)\t\t\t\t\t// out: generated deviceNumber\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::CreateUsbDevice);\r\n\t\tvariable isStarSimulate(hslFalse);\r\n\t\tvariable shakingProperty(0);\r\n\t\tobject\tstarObject;\r\n\r\n      versionTrace();\r\n      startTrace(funcId);\r\n\r\n\t\t// check input parameter\r\n\t\tcheckIntegerInputRange(funcId, \"usedNode\", usedNode, m_firstUsbNode, m_lastUsbNode);\r\n\r\n\t\t// initialize the library variables\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tdeviceNumber = saveAndCreateDeviceNumber(funcId, m_hhsUsbObjectName, starObject, isStarSimulate, usedNode);\r\n\r\n\t\t// initialize the shaker\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t}\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function Terminate()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Terminate the USB device connection.\r\n   //....................................................................\r\n   // Parameters:\r\n   //    none\r\n   // ...................................................................\r\n   // return value:\r\n   //    none\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction Terminate() void\r\n   {\r\n      variable funcId(IDF::Terminate);\r\n      variable nodeIndex(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++)\r\n      {\r\n         m_initializedHeater[nodeIndex] = hslFalse;\r\n\t\t\tm_deviceName[nodeIndex] = \"\";\r\n\t\t\tm_nodeNumber[nodeIndex] = 0;\r\n\t\t\tm_hhsSetting[nodeIndex] = 0;\r\n      }\r\n\r\n      if(!m_usbComObject.IsNull())\r\n      {\r\n         // release the usb object \r\n         // run is crash in cae of multi thread and a call of ReleaseObject() while commands are send / receive\r\n        // m_usbComObject.ReleaseObject();\r\n      }\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartShaker(variable deviceNumber, variable shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartShaker);\r\n      variable node;\r\n      variable command(\"SB\");\r\n      string   parameter(\"st%s1sv%s2sr%s3\");\r\n      string   cmdResult;\r\n      variable shakingDirection;\r\n      variable shakingAccRamp;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingSpeed\", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax);\r\n      checkIntegerInput(funcId, \"shakingSpeed\", shakingSpeed);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n \t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n\t\tm_userShakingSpeed[deviceNumber-1] = shakingSpeed;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n\t\t// change RPM to steps\r\n\t\tshakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0));\r\n\t\tshakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0));\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // add saved parameter\r\n      StrReplace(parameter, \"%s1\", IStr(shakingDirection));\r\n      StrReplace(parameter, \"%s2\", formatParam(shakingSpeed, ShakingParam::speedParamLenght));\r\n      StrReplace(parameter, \"%s3\", formatParam(shakingAccRamp, ShakingParam::accelParamLenght));\r\n\r\n      // lock plate\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      // start shaker\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Stop shaking and unlock plate.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopShaker(variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StopShaker);\r\n      variable command(\"SC\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n  \t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // stop shaking\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslFalse);\r\n\r\n      // open plate lock\r\n      startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userShakingSpeed[deviceNumber-1] = 0;\r\n\t\tm_shakingTimeOut[deviceNumber-1] = m_OFF;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // check error of stop shaker after open plate lock\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartShakerTimed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   //  shakingTime\t:  Shaking time in seconds\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartShakerTimed(\r\n         variable deviceNumber,\r\n\t\t\tvariable shakingSpeed,\r\n         variable shakingTime)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartShakerTimed);\r\n      variable command(\"ST\");\r\n      string   parameter(\"sd%s1st%s2sv%s3sr%s4\");\r\n      string   cmdResult;\r\n      variable shakingDirection;\r\n      variable shakingAccRamp;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingSpeed\", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax);\r\n      checkIntegerInput(funcId, \"shakingSpeed\", shakingSpeed);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingTime\", shakingTime, ShakingParam::shakingTimeMin, ShakingParam::shakingTimeMax);\r\n      checkIntegerInput(funcId, \"shakingTime\", shakingTime);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n      m_shakingTimeOut[deviceNumber-1] = shakingTime;\r\n\t\tm_userShakingSpeed[deviceNumber-1] = shakingSpeed;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// change RPM to steps\r\n\t\tshakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0));\r\n\t\tshakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0));\r\n\r\n\r\n      // add saved parameter\r\n      StrReplace(parameter, \"%s1\", formatParam(shakingTime, ShakingParam::timeParamLenght));\r\n      StrReplace(parameter, \"%s2\", IStr(shakingDirection));\r\n      StrReplace(parameter, \"%s3\", formatParam(shakingSpeed, ShakingParam::speedParamLenght));\r\n      StrReplace(parameter, \"%s4\", formatParam(shakingAccRamp, ShakingParam::accelParamLenght));\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // lock plate\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      // start shaker timed\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function WaitForShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Waits until a timed shaking has end.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function WaitForShaker(variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::WaitForShaker);\r\n      variable shakingTime(ShakingParam::shakingTimeMax);\r\n      variable command(\"SW\");\r\n      string   parameter(\"\");\r\n      string   cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\t\t\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (funcRc);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingTime = m_shakingTimeOut.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // add 60 seconds to the started shaking time (secure that the shaking time out is reached before the wait time out)\r\n      shakingTime = shakingTime + m_waitTimeOutSecurity;\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(shakingTime));\r\n      #endif\r\n\r\n\t\t// pollen \r\n\t\tpollingForRunningShaker(deviceNumber, shakingTime - m_waitTimeOutSecurity);\r\n\r\n      // start wait for shaker\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, shakingTime, hslTrue);\r\n\r\n      // shaker was started with StartShaker or StartAllShaker\r\n      if(cmdResult.Find(m_fwNoError) < 0)\r\n      {\r\n         // stop shaker\r\n         sendMsg(deviceNumber, \"SC\", \"\", m_usbMsgTimeout, hslTrue);\r\n      }\r\n\r\n      // open plate lock\r\n      startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userShakingSpeed[deviceNumber-1] = m_OFF;\r\n\t\tm_shakingTimeOut[deviceNumber-1] = m_OFF;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartAllShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking for all initialized shaker.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartAllShaker(variable shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StartAllShaker);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// parameter are checked in StartShaker() function\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n            funcRc = StartShaker(deviceNumber, shakingSpeed);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartAllShakerTimed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration for all initialized shaker.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   //  shakingTime\t:  Shaking time in seconds\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartAllShakerTimed(variable shakingSpeed, variable shakingTime)\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StartAllShakerTimed);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// parameter are checked in StartShakerTimed() function\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n            funcRc = StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopAllShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Stop shaking and unlock plate for all initialized shaker.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  none\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopAllShaker()\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StopAllShaker);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StopShaker with 1 base node\r\n            funcRc = StopShaker(deviceNumber);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetShakerParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  shakingDirection :  Shaking direction left/right (0/1)\r\n   //  shakingAccRamp   :  Acceleration ramp (1..4)\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetShakerParameter(\r\n      variable deviceNumber,\r\n      variable shakingDirection,\r\n      variable shakingAccRamp) void\r\n   {\r\n      variable funcId(IDF::SetShakerParameter);\r\n\t\tvariable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"shakingDirection\", shakingDirection, m_OFF, m_ON);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingAccRamp\", shakingAccRamp, ShakingParam::rampMin, ShakingParam::rampMax);\r\n      checkIntegerInput(funcId, \"shakingAccRamp\", shakingAccRamp);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection));\r\n      progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp));\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_shakingDirection[deviceNumber-1] = shakingDirection;\r\n      m_shakingAccRamp[deviceNumber-1] = shakingAccRamp;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetShakerParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the parameter for plate shaking\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  shakingDirection :  Shaking direction left/right (0/1)\r\n   //  shakingAccRamp   :  Acceleration ramp (1..4)\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetShakerParameter(\r\n      variable deviceNumber,\r\n      variable& shakingDirection,\r\n      variable& shakingAccRamp) void\r\n   {\r\n      variable funcId(IDF::GetShakerParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      shakingDirection = ShakingParam::directionDefault;\r\n      shakingAccRamp = ShakingParam::rampDefault;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection));\r\n      progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp));\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetShakerSpeed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  out: shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetShakerSpeed(\r\n         variable deviceNumber,\r\n\t\t\tvariable& shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetShakerSpeed);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\t\tshakingSpeed = 0;\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tshakingSpeed = getCurrentShakerRPM(deviceNumber, hslTrue);\r\n\r\n\t   endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set incubation temperature and wait (if set) until temperature is reached\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperature         :  Incubation temperature\r\n   //  waitForTempReached  :  Flag for waiting until temperature is reached\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartTempCtrl(\r\n      variable deviceNumber,\r\n      variable temperature,\r\n      variable waitForTempReached)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartTempCtrl);\r\n      variable tempStartTimeOut;\r\n      variable tempToleranceRange;\r\n      variable tempSecurityRange;\r\n      variable command(\"TA\");\r\n      variable parameter(\"ta%s1tb%s2tc%s3td%s4\");\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"temperature\", temperature, TemperateParam::tempMin, TemperateParam::tempMax);\r\n      checkDoubleInput(funcId, \"temperature\", temperature);\r\n      checkIntegerInputRange(funcId, \"waitForTempReached\", waitForTempReached, m_OFF, m_ON);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      tempToleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n      tempSecurityRange = m_tempSecurityRange.GetAt(deviceNumber-1);\r\n\t\tm_userTemperature[deviceNumber-1] = temperature;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      StrReplace(parameter, \"%s1\", normalizeParam(temperature, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s2\", formatParam(tempStartTimeOut, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s3\", normalizeParam(tempToleranceRange, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s4\", normalizeParam(tempSecurityRange, TemperateParam::paramLength));\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out)\r\n      tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity;\r\n      if(tempStartTimeOut < m_usbMsgTimeout)\r\n         tempStartTimeOut = m_usbMsgTimeout;\r\n\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(tempStartTimeOut));\r\n      #endif\r\n\r\n      // set temperature\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n\r\n\t\t// command waits until temperature is in controlling mode\r\n      if(waitForTempReached == m_ON && funcRc == IDE::noError)\r\n\t\t{\r\n\t\t\tpollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity);\r\n\r\n\t      // wait for temperature\r\n\t      cmdResult = sendMsg(deviceNumber, \"TW\", \"\", m_usbMsgTimeout, hslTrue);\r\n\t\t}\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set incubation temperature control off\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopTempCtrl(\r\n      variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StopTempCtrl);\r\n      variable command(\"TO\");\r\n      variable parameter(\"\");\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // set temperature\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userTemperature[deviceNumber-1] = 0;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function WaitForTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Waits until the on StartTempCtrl() given temperature is reached\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function WaitForTempCtrl(\r\n      variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::WaitForTempCtrl);\r\n      variable tempStartTimeOut;\r\n      variable command(\"TW\");\r\n      variable parameter(\"\");\r\n      variable cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out)\r\n      tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity;\r\n      if(tempStartTimeOut < m_usbMsgTimeout)\r\n         tempStartTimeOut = m_usbMsgTimeout;\r\n\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(tempStartTimeOut));\r\n      #endif\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// make a polling until temperature controlling is in controlling mode\r\n\t\tpollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity);\r\n\r\n      // wait for temperature is reached (get heating up errors)\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTemperature()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the current temperatur\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperature         :  Actual carrier temperature \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTemperature(\r\n      variable deviceNumber,\r\n      variable& temperature)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetTemperature);\r\n\r\n      startTrace(funcId);\r\n\r\n      temperature = 0;\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\ttemperature = getCurrentTemp(deviceNumber, hslTrue);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTemperatureState()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the state of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperatureState    :  State of temperature supervision 0 = OK, 1 = out of range, 2 = out of security\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTemperatureState(\r\n      variable deviceNumber,\r\n      variable& temperatureState)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetTemperatureState);\r\n      variable command(\"QE\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n      variable startPos;\r\n\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      temperatureState = TemperateParam::tempStateOk;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // format: qe##\r\n      startPos = cmdResult.Find(\"qe\");\r\n\r\n      if((cmdResult.GetLength() < TemperateParam::tempStateRequestLength) || (startPos < 0))\r\n      {\r\n         variable errMsg;\r\n         // \"Unknown format of firmware result string.\\r\\nExpected: '%s1'.\\r\\nReceived: '%s2'.\"\r\n         errMsg = StringTable::Load(IDE::unknownResultFormat);\r\n\r\n         StrReplace(errMsg, \"%s1\", \"qe##\");\r\n         StrReplace(errMsg, \"%s2\", cmdResult);\r\n\r\n         errorCompleteTrace(funcId, errMsg);\r\n         return (IDE::unknownResultFormat);\r\n      }\r\n\r\n      // read both temperature and calculate the average \r\n      // format: qe## ( 00, 62 or 63 )\r\n      if(cmdResult.Find(\"qe62\") >= 0)\r\n         temperatureState = TemperateParam::tempStateOutOfRange;\r\n      else\r\n      if(cmdResult.Find(\"qe63\") >= 0)\r\n         temperatureState = TemperateParam::tempStateOutOfSecurity;\r\n      else\r\n      if(cmdResult.Find(\"qe00\") < 0)\r\n         temperatureState = TemperateParam::tempStateTimeOut;\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetTempParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  startTimeout        :  Time which must elapse before temperature will be controlled\r\n   //  toleranceRange      :  Range of temperature tolerance\r\n   //  securityRange       :  Range of temperature security, on leave heater will be switched off\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetTempParameter(\r\n      variable deviceNumber,\r\n      variable startTimeout, variable toleranceRange, variable securityRange) void\r\n   {\r\n      variable funcId(IDF::SetTempParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"startTimeout\", startTimeout, TemperateParam::startTimeOutMin, TemperateParam::startTimeOutMax);\r\n      checkIntegerInput(funcId, \"startTimeout\", startTimeout);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"toleranceRange\", toleranceRange, TemperateParam::tempToleranceMin, TemperateParam::tempToleranceMax);\r\n      checkDoubleInput(funcId, \"toleranceRange\", toleranceRange);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"securityRange\", securityRange, TemperateParam::tempSecurityMin, TemperateParam::tempSecurityMax);\r\n      checkDoubleInput(funcId, \"securityRange\", securityRange);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::startTimeout, IStr(startTimeout));\r\n      progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue));\r\n      progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue));\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n \r\n \t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_tempStartTimeOut[deviceNumber-1] = startTimeout;\r\n      m_tempToleranceRange[deviceNumber-1] = toleranceRange;\r\n      m_tempSecurityRange[deviceNumber-1] = securityRange;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTempParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the parameter of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  startTimeout        :  Time which must elapse before temperature will be controlled\r\n   //  toleranceRange      :  Range of temperature tolerance\r\n   //  securityRange       :  Range of temperature security, on leave heater will be switched off\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTempParameter(\r\n      variable deviceNumber,\r\n      variable& startTimeout, variable& toleranceRange, variable& securityRange) void\r\n   {\r\n      variable funcId(IDF::GetTempParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      // init output parameter\r\n      startTimeout = TemperateParam::startTimeOutDefault;\r\n      toleranceRange = TemperateParam::tempToleranceDefault;\r\n      securityRange = TemperateParam::tempSecurityDefault;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      // set output parameter\r\n      startTimeout = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      toleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n      securityRange = m_tempSecurityRange.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::startTimeout, IStr(startTimeout));\r\n      progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue));\r\n      progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue));\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetPlateLock()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  plateLock        :  Lock / unlock flag\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetPlateLock(\r\n            variable deviceNumber,\r\n            variable plateLock)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::SetPlateLock);\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"plateLock\", plateLock, m_OFF, m_ON);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // start lock command\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, plateLock);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetFirmwareVersion()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get firmware version of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  out: firmwareVersion   :  firmware version format: \"1.0P 1999-03-10\"\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetFirmwareVersion(\r\n\t\t\tvariable deviceNumber,\r\n\t\t\tvariable& firmwareVersion)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetFirmwareVersion);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n      \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      firmwareVersion = \"0.0S 2008-01-01\";\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"RF\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\tstartPos = answString.Find(\"rf\");\r\n\t\tif(startPos >= 0)\r\n\t\t{\r\n\t\t\tfirmwareVersion = answString.Right(answString.GetLength()-(startPos+2));\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetSerialNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  out: firmwareVersion   :  firmware serial number format: \"####\"\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetSerialNumber(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable& serialNumber)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetSerialNumber);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      serialNumber = \"0000\";\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"QT\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\t// format: qt######/##/#### part number, revision, serial number\r\n\t\tstartPos = answString.Find(\"qt\");\r\n\t\tif(startPos >= 0 && answString.GetLength() > startPos+12)\r\n\t\t{\r\n\t\t\tserialNumber = answString.Mid((startPos+2+10), 4);\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function BeginMonitoring()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  in : shakerMin   \t:  Minimum RPM\r\n   //  in : shakerMax   \t:  Maximum RPM\r\n   //  in : sampleInterval :  Interval in sec. for check RPM and temperature\r\n   //  in : action   \t\t:  Continue / Abort (0 / 1)\r\n\t// \t\t\t\t\t\t\t\tNote: Abort will only called on an error after temperature controlling is activated ()\r\n\t//\t\t\t\t\t\t\t\t\t\t\tAn abort will end only the current heater/shaker.\r\n\t// \t\t\t\t\t\t\t\tNote:\theaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter()\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function BeginMonitoring(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable shakingToleranceRange,\r\n\t\t\t\tvariable sampleInterval,\r\n\t\t\t\tvariable action)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::BeginMonitoring);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n\t\tevent\t\tstartEvent;\r\n\t\tvariable sSpeed;\r\n\t\tvariable hTemp;\r\n\t\tvariable shakerMin(m_OFF);\r\n\t\tvariable shakerMax(ShakingParam::rpmMax);\r\n\t\tvariable heaterTempTol(m_OFF);\r\n\t\tvariable heaterMin(TemperateParam::tempMin);\r\n\t\tvariable heaterMax(TemperateParam::tempMax);\r\n\t\tvariable node;\r\n      variable nodeType;\r\n\t\tvariable funcName;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"shakingToleranceRange\", shakingToleranceRange, ShakingParam::shakeTolMin, ShakingParam::shakeTolMax);\r\n   \tcheckIntegerInputRange(funcId, \"sampleInterval\", sampleInterval, m_minSampleInterval, m_maxSampleInterval);\r\n      checkIntegerInputRange(funcId, \"action\", action, MonitorAction::monitorActionMin, MonitorAction::monitorActionMax);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tsSpeed = m_userShakingSpeed.GetAt(deviceNumber-1);\r\n   \thTemp = m_userTemperature.GetAt(deviceNumber-1);\r\n\t\theaterTempTol = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n\t\tm_monitorResult.SetAt(deviceNumber-1, -1);\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\t\tonerror goto 0;\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\t// if no shaker is initialized, set the maximum range\r\n\t\tif(hasShaker(funcId, deviceNumber, 0) && sSpeed > m_OFF)\r\n\t\t{\r\n\t\t\tshakerMin = sSpeed-shakingToleranceRange;\r\n\t\t\tif(shakerMin < 0)\r\n\t\t\t\tshakerMin = 0;\r\n\t\t\tshakerMax = sSpeed+shakingToleranceRange;\r\n\t\t}\r\n\t\telse if(sSpeed == m_OFF)\r\n\t\t{\r\n\t\t\tstring moniText;\r\n\t\t\tmoniText = StringTable::Load(IDS::monitoringShNotStart);\r\n         StrReplace(moniText, \"%s1\", nodeType);\r\n         StrReplace(moniText, \"%s2\", IStr(node));\r\n\r\n\t\t\t// Shaking on %s1 ( %s2 ) not started, check of speed limit will be disabled!\r\n\t\t\tprogressTrace(funcId, IDS::monitoringWarning, moniText);\r\n\t\t}\r\n\r\n\t\tif(hasHeater(funcId, deviceNumber, 0) && hTemp > m_OFF)\r\n\t\t{\r\n\t\t\theaterMin = hTemp - heaterTempTol;\r\n\t\t\tif(heaterMin < m_OFF)\r\n\t\t\t\theaterMin = m_OFF;\r\n\t\t\theaterMax = hTemp + heaterTempTol;\r\n\t\t}\r\n\t\telse if(hTemp == m_OFF)\r\n\t\t{\r\n\t\t\tvariable moniText;\r\n\t\t\tmoniText = StringTable::Load(IDS::monitoringHeNotStart);\r\n         StrReplace(moniText, \"%s1\", nodeType);\r\n         StrReplace(moniText, \"%s2\", IStr(node));\r\n\r\n\t\t\t// Heating up on %s1 ( %s2 ) not started, check of temperature limit will be disabled!\r\n\t\t\tprogressTrace(funcId, IDS::monitoringWarning, moniText);\r\n\t\t}\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      // Prepare the globals for the hsl thread.\r\n\t   m_monitorDeviceNumber\t\t\t\t= deviceNumber;\r\n\t   m_monitorShakerMin\t\t\t\t\t= shakerMin;\r\n\t   m_monitorShakerMax\t\t\t\t\t= shakerMax;\r\n\t   m_monitorSampleInterval\t\t\t\t= sampleInterval;\r\n\t   m_monitorAction\t\t\t\t\t\t= action;\r\n\t   m_monitorResult[deviceNumber-1] \t= -1;\r\n\t\tm_monitorHeaterMin\t\t\t\t\t= heaterMin;\r\n\t\tm_monitorHeaterMax\t\t\t\t\t= heaterMax;\r\n\r\n\r\n      Fork( \"monitorHeaterShaker\" );\r\n\r\n\t\t// wait until thread has received the global data (maximum 10 seconds)\r\n\t\tm_monitorStartEvent.WaitEvent(10);\r\n\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function EndMonitoring()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  out: monitorResult  :  -1 = monitoring has not started or is not initialized\r\n\t// \t\t\t\t\t\t\t\t0 = heating and shaking values were within specification\r\n\t// \t\t\t\t\t\t\t\t1 = heating out of range\r\n\t// \t\t\t\t\t\t\t\t2 = shaking out of range\r\n\t// \t\t\t\t\t\t\t\t3 = heating and shaking out of range\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function EndMonitoring(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable& monitorResult)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::EndMonitoring);\r\n\t\tevent\t\tintervalEvent;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tintervalEvent = m_monitorEvent.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      intervalEvent.SetEvent();\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tmonitorResult = m_monitorResult.GetAt(deviceNumber-1);\r\n\t\tm_monitorResult.SetAt(deviceNumber-1, -1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetSimulation()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the internal flag m_isSimulate.\r\n   //  If this flag is set, only parameter checks are made on all exported function\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  simulate   :  Flag for set the simulate mode, must be a number 0/1\r\n   //\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n \tfunction SetSimulation(variable simulate) void\r\n\t{\r\n      variable funcId(IDF::SetSimulation);\r\n\r\n      startTrace(funcId);\r\n\r\n      checkIntegerInputRange(funcId, \"simulate\", simulate, m_OFF, m_ON);\r\n\r\n  \t\tprogressTrace(funcId, IDS::setSimulate, IStr(simulate));\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_isSimulate = hslFalse;\r\n      if(simulate == m_ON)\r\n\t\t   m_isSimulate = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SendFirmwareCommand()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Send a command to the device\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  command\t\t\t\t:  Firmware command without node name ( 2 letter )\r\n   //  parameter\t\t\t:  Parameter dependent of the used command\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise            :  An exception is throw on wrong parameter or time out \r\n   //  string           :  Firmware command result data string\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SendFirmwareCommand(\r\n      variable deviceNumber,\r\n      variable command, variable parameter)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::SendFirmwareCommand);\r\n      string   cmd;\r\n      string   cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkStringInput(funcId, \"command\", command);\r\n      checkStringInput(funcId, \"parameter\", parameter);\r\n\r\n      // check for two character as command\r\n      cmd = command;\r\n      if(cmd.GetLength() != m_firmwareCmdLength)\r\n      {\r\n         variable funcName;\r\n         string errMsg;\r\n\r\n         // \"Wrong length of input parameter.\\r\\nParameter = '%s1' length (%s2).\\r\\nExpected lenght (%s3).\"\r\n         errMsg = StringTable::Load(IDE::wrongParameterLength);\r\n         StrReplace(errMsg, \"%s1\", \"command\");\r\n         StrReplace(errMsg, \"%s2\", IStr(cmd.GetLength()));\r\n         StrReplace(errMsg, \"%s3\", IStr(m_firmwareCmdLength));\r\n\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         Error::RaiseEx(IDE::wrongParameterLength, errMsg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      endTrace(funcId);\r\n      return (cmdResult);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetUSBTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  trace\t\t\t\t:  Trace on / off. 0 = off, 1 = on\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise            :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetUSBTrace(variable trace) void\r\n   {\r\n      variable funcId(IDF::SetUSBTrace);\r\n\r\n      startTrace(funcId);\r\n\r\n      checkIntegerInputRange(funcId, \"trace\", trace, m_OFF, m_ON);\r\n\r\n  \t\tprogressTrace(funcId, IDS::setTrace, IStr(trace));\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tm_usbTrace = hslFalse;\r\n      // set trace flag\r\n      if(trace == 1)\r\n\t\t\tm_usbTrace = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Internal helper function declaration\r\n\t*\r\n\t****************************************************************************************/\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Library Initialization and data access functions\r\n\t// --------------------------------------------------------------------------------------\r\n   static function initStringTable() void\r\n   {\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\tif(0 == m_hhsCriticalSection)\r\n\t\t\tm_hhsCriticalSection = SynInitializeCriticalSection();\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      if(!m_isStringTableInitialized)\r\n      {\r\n\t\t\tStringTable::Init(\"HSLHamHeaterShakerStringTable\");\r\n         m_isStringTableInitialized = hslTrue;\r\n      }\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\tstatic function InitializeNode(variable funcId, variable deviceNumber)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n\t\tvariable node;\r\n      variable nodeNameId(IDS::starNode);\r\n\r\n      // check if the library set to simulate\r\n      if(isSimulate(funcId, deviceNumber, hslFalse))\r\n         return(funcRc);\r\n\r\n      // init node if needed      \r\n      if(!isHeaterInitialized(deviceNumber))\r\n      {  \r\n         string answString;\r\n\t\t\tvariable hhsSettings(-1);\r\n\r\n\t\t\t// on usb check connection\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t{\r\n            if(!isUsbConnected(funcId))\r\n               return (IDE::retNotConnectErr);\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\t\t\t}\r\n\r\n\t\t\t// ask for settings\r\n         setHHSSetting(funcId, deviceNumber, hhsSettings);\r\n         if(0 < funcRc)\r\n             return (funcRc);\r\n\r\n\t\t\t// check if shaking activated\r\n\t\t\tif((hhsSettings != m_shakingPropertyHeatAndShake) && (hhsSettings != m_shakingPropertyOnlyShake))\r\n            return (funcRc);\r\n\r\n         // init HHS on nodes if needed\r\n\t\t\tanswString = sendMsg(deviceNumber, \"QW\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\t\tif(isStarDevice(deviceNumber))\r\n\t\t\t{\r\n\r\n            funcRc = isFirmwError(funcId, answString, hslTrue);\r\n            if(0 < funcRc)\r\n                return (funcRc);\r\n\t\t\t}\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n     \r\n         // check for timeout, if timeout, only node 0 is installed without any other CAN nodes\r\n         // if CAN error, this node is not available\r\n         if((answString.Find(m_fwTimeoutError) >= 0) || (answString.Find(m_fwCanError) >= 0))\r\n         {\r\n            // \"%s1 '%s2' not available.\"\r\n            string msg;\r\n            string nodeName;\r\n            variable funcName;\r\n            msg = StringTable::Load(IDE::neededNodeNotAvailable);\r\n            nodeName = StringTable::Load(nodeNameId);\r\n            funcName = StringTable::Load(funcId);\r\n\r\n\r\n            StrReplace(msg, \"%s1\", nodeName);\r\n            StrReplace(msg, \"%s2\", IStr(node));\r\n            errorCompleteTrace(funcId, msg);\r\n\r\n            if(answString.Find(m_fwTimeoutError) >= 0)\r\n               Error::RaiseEx(IDE::neededNodeNotAvailable, msg, GetFileName(), funcName, GetLineNumber());\r\n            else\r\n               Error::RaiseEx(IDE::canError, msg, GetFileName(), funcName, GetLineNumber());\r\n         }\r\n\r\n\t\t\ttraceFirmwareVersion(funcId, deviceNumber);\r\n\t\t\t\r\n         if(answString.Find(m_fwIsInitialized) >= 0)\r\n            setHeaterInitialized(deviceNumber);\r\n         else\r\n         {\r\n// change of 2009/08/13\r\n//            answString = sendMsg(deviceNumber, \"SI\", \"\", m_usbInitTimeout, hslTrue);\r\n//            if(answString.Find(m_fwNoError) >= 0)\r\n//            {\r\n//\t            answString = sendMsg(deviceNumber, \"LI\", \"\", m_usbInitTimeout, hslTrue);\r\n//               if(answString.Find(m_fwNoError) >= 0)\r\n//                  setHeaterInitialized(deviceNumber);\r\n//            }\r\n            answString = sendMsg(deviceNumber, \"LI\", \"\", m_usbInitTimeout, hslTrue);\r\n            sendMsg(deviceNumber, \"LP\", \"lp1\", m_usbInitTimeout, hslTrue);\r\n\r\n            if(answString.Find(m_fwNoError) >= 0)\r\n            {\r\n\t            answString = sendMsg(deviceNumber, \"SI\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n               if(answString.Find(m_fwNoError) >= 0)\r\n                  setHeaterInitialized(deviceNumber);\r\n\r\n               sendMsg(deviceNumber, \"LP\", \"lp0\", m_usbInitTimeout, hslTrue);\r\n            }\r\n// end change of 2009/08/13\r\n\r\n            funcRc = isFirmwError(funcId, answString, hslTrue);\r\n            if(0 < funcRc)\r\n               return (funcRc);\r\n         }\r\n      }\r\n\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n\tstatic function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      initStringTable();\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!m_initializedLib)\r\n      {\r\n         variable nodeIndex(0);\r\n\r\n\t\t\tRegisterAbortHandler(\"HSLHamHeaterShaker::OnAbortHHSLibrary\");\r\n\r\n\t\t   m_monitorDeviceNumber\t= m_OFF;\r\n\t\t   m_monitorShakerMin\t\t= m_OFF;\r\n\t\t   m_monitorShakerMax\t\t= m_OFF;\r\n\t\t   m_monitorSampleInterval\t= m_OFF;\r\n\t\t   m_monitorAction\t\t\t= m_OFF;\r\n\r\n         for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++)\r\n         {\r\n            m_initializedHeater[nodeIndex] = hslFalse;\r\n            m_shakingDirection[nodeIndex] = ShakingParam::directionDefault;\r\n            m_shakingAccRamp[nodeIndex] = ShakingParam::rampDefault;\r\n            m_shakingTimeOut[nodeIndex] = m_OFF;\r\n            m_tempStartTimeOut[nodeIndex] = TemperateParam::startTimeOutDefault;\r\n            m_tempToleranceRange[nodeIndex] = TemperateParam::tempToleranceDefault;\r\n            m_tempSecurityRange[nodeIndex] = TemperateParam::tempSecurityDefault;\r\n\t\t\t\tm_userShakingSpeed[nodeIndex] = m_OFF;\r\n\t\t\t\tm_userTemperature[nodeIndex] = m_OFF;\r\n\r\n\t\t\t\tm_deviceName[nodeIndex] = \"\";\r\n\t\t\t\tm_isStarSimulate[nodeIndex] = hslFalse;\r\n\t\t\t\tm_nodeNumber[nodeIndex] = m_OFF;\r\n\t\t\t\tm_hhsSetting[nodeIndex] = m_OFF;\r\n\r\n\t\t\t\tm_monitorResult[nodeIndex] = -1;\r\n         }\r\n\r\n         m_initializedLib = hslTrue;\r\n\r\n\t\t}\r\n\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // check for node initialize, this call must be outside of CriticalSection\r\n      if(initShaker > m_OFF)\r\n         funcRc = InitializeNode(funcId, deviceNumber);\r\n\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n   static function isUsbConnected(variable funcId)\r\n   {\r\n      variable rc (hslFalse);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!m_usbComObject.IsNull())\r\n      {\r\n         if(m_usbComObject.Connected)\r\n            rc = hslTrue;\r\n      }\r\n\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!rc)\r\n      {\r\n         variable msg;\r\n         msg = StringTable::Load(IDS::noUsbConnection);\r\n         errorCompleteTrace(funcId, msg);\r\n      }\r\n\r\n      return (rc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n \tstatic function isSimulate(variable funcId, variable deviceNumber, variable makeTrace)\r\n\t{\r\n      variable retVal(hslFalse);\r\n      variable starSimState(hslFalse);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tretVal = m_isSimulate;\r\n      starSimState = m_isStarSimulate[deviceNumber-1];\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // if m_isSimulate is set, both devices are simulate\r\n      // if m_isSimulate is not set, check if useMlStar and m_isStarSimulate is set\r\n\r\n      if(retVal)\r\n      {\r\n         // if simulate, trace the function end\r\n         if(makeTrace)\r\n     \t\t   endTrace(funcId);\r\n         return (retVal);\r\n      }\r\n\r\n      if(starSimState)\r\n      {\r\n         // if simulate, trace the function end\r\n         if(makeTrace)\r\n        \t\tendTrace(funcId);\r\n         return (hslTrue);\r\n      }\r\n\r\n      // simulation is not set\r\n      return (retVal);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n\t}\r\n\r\n   // uses node from 1 to 10\r\n   static function isHeaterInitialized(variable deviceNumber)\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      retVal = m_initializedHeater.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n   // uses node from 1 to 10\r\n   static function setHeaterInitialized(variable deviceNumber)\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_initializedHeater[deviceNumber-1] = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n   static function isUsbTrace()\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      retVal = m_usbTrace;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n\r\n \t// --------------------------------------------------------------------------------------\r\n\t// Communication functions\r\n\t// --------------------------------------------------------------------------------------\r\n \r\n \t//====================================================================\r\n\t//\r\n\t// Internal function getSendState()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Check the connect and initialize state.\r\n   //  Must be call from each interface function which will send a command to the shaker\r\n\t//====================================================================\r\n   static function getSendState(variable funcId, variable deviceNumber, variable isShaker)\r\n   {\r\n      variable node;\r\n      variable nodeTxt;\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n      nodeTxt = StringTable::Load(IDS::starNode);\r\n\r\n\r\n      if(!isStarDevice(deviceNumber))\r\n      {\r\n         if(!isUsbConnected(funcId))\r\n            return (IDE::retNotConnectErr);\r\n         nodeTxt = StringTable::Load(IDS::usbNode);\r\n      }\r\n\r\n      if(!isHeaterInitialized(deviceNumber) && isShaker)\r\n      {\r\n         // \"%s1 '%s2' not initialized'.\"\r\n         variable msg;\r\n         msg = StringTable::Load(IDS::neededNodeNotInitialized);\r\n         StrReplace(msg, \"%s1\", nodeTxt);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n         return (IDE::retNotInitErr);\r\n      }\r\n\r\n      return (IDE::noError);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendMsg()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command dependent of device to a star or to the usb.\r\n\t//====================================================================\r\n   static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace)\r\n\t{\r\n      variable receMsg;\r\n\t\t\r\n\t\tif(isStarDevice(deviceNumber))\r\n\t\t{\r\n\t\t\treceMsg = sendToStar(deviceNumber, command, parameter, makeTrace);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treceMsg = sendToUsb(deviceNumber, command, parameter, timeOut);\r\n\t\t}\r\n\r\n\t\treturn (receMsg);\r\n\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToUsb()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command to the corresponding device node via USB.\r\n\t//====================================================================\r\n   static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut)\r\n   {\r\n\t\tvariable node;\r\n      variable sendMsg(\"T\");\r\n      variable receMsg;\r\n      string cmd(command);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      sendMsg = sendMsg + IStr(node-1); // USB has an 0 bsed adderss node 0..7\r\n      sendMsg = sendMsg + command;\r\n      sendMsg = sendMsg + parameter;\r\n\r\n      if(isUsbTrace())\r\n  \t\t\tprogressTrace(IDS::sendToUsb, IDS::sendMessageTitle, sendMsg);\r\n\r\n      receMsg = m_usbComObject.Request(sendMsg, timeOut); \r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (cmd.Find(\"RF\") < 0))\r\n\t  \t\tprogressTrace(IDS::sendToUsb, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToStar()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command to the corresponding device node via ML_STAR component.\r\n\t//====================================================================\r\n   static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace)\r\n   {\r\n\t\tvariable stepShowNameKey(-534118376);\r\n\t\tvariable globalKey(-534183935);\r\n\t\tvariable orderKey(-534183816);\r\n\t\tvariable parameterKey(-534183815);\r\n\t\tvariable resultDataKey(-534118396);\r\n\t\tvariable resultDataPos(4);\r\n\t\tvariable node;\r\n\t\tobject\tstarObject;\r\n\t   object \tparsIn;\r\n   \tobject \tparsOut;\r\n      variable command(\"T\");\r\n      variable parameter(param);\r\n\t\tvariable result4;\r\n      variable receMsg;\r\n      string   tempMsg;\r\n      string   tempCmd(cmd);\r\n      variable errPos;\r\n\r\n      // device node must be 1 or 2 -->> node must not be updated\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\tonerror goto objectError;\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tstarObject = m_starDeviceObj.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\t\tonerror goto 0;\r\n\r\n      command = command + IStr(node);\r\n      command = command + cmd;\r\n\r\n      if(isUsbTrace() && makeTrace)\r\n      {\r\n         string   sendMsg(command);\r\n         sendMsg = sendMsg + param;\r\n  \t\t\tprogressTrace(IDS::sendToStar, IDS::sendMessageTitle, sendMsg);\r\n      }\r\n\r\n      // set the command at first of the receMsg\r\n      receMsg = command;\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\t// create data pars for the firmwareCommand\r\n\t   parsIn.CreateObject(\"HXPARAMSLib.HxPars\", hslFalse);\r\n\t   parsOut.CreateObject(\"HXPARAMSLib.HxPars\", hslFalse);\r\n\r\n\t   parsIn.Add(2, \"ParsCommandVersion\");\r\n\t   parsIn.Add(\"FirmwareCommand\", \"StepName\");\r\n\t   parsIn.Add(457, stepShowNameKey);\r\n\t   parsIn.Add(0, \"NbrOfErrors\");\r\n\t   parsIn.Add(command, globalKey, orderKey);\r\n\t   parsIn.Add(parameter, globalKey, parameterKey);\r\n\r\n\r\n\t\t// send command\r\n\t\tstarObject.FirmwareCommand(parsIn, parsOut);\r\n\r\n\t   result4 = parsOut.Item(resultDataKey, resultDataPos);\r\n\r\n\t\tparsIn.ReleaseObject();\r\n\t\tparsOut.ReleaseObject();\r\n\r\n      receMsg = receMsg + result4;\r\n      tempMsg = receMsg;\r\n\r\n      // remove the master error erXX/XX so that the result string is the same than on USB command erXX\r\n      errPos = tempMsg.Find(\"er\");\r\n      if(errPos >= 0)\r\n      {\r\n         if(tempMsg.GetLength() > errPos + 4)\r\n         {\r\n            if(tempMsg.Mid(errPos+4, 1) == \"/\")\r\n            {\r\n               // the simulator returns er01/00 on a unknown command,\r\n               // in this case, remove the slave error not the master error\r\n               if(tempMsg.GetLength() >= errPos + 7)\r\n               {\r\n                  // check slave error\r\n                  if(tempMsg.Mid(errPos+5, 2) == \"00\")\r\n                  {\r\n                     // use the master error, so that the return is not null\r\n                     receMsg = tempMsg.Left(errPos+4);\r\n                     receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+7));\r\n                  }\r\n                  else\r\n                  {\r\n                     // use the slave error\r\n                     receMsg = tempMsg.Left(errPos+2);\r\n                     receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+5));\r\n                  }\r\n               }\r\n            }\r\n         }\r\n      }\r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (tempCmd.Find(\"RF\") < 0) && makeTrace)\r\n\t  \t\tprogressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         variable errId( err.GetId( ) );\r\n\r\n\t\t\tparsIn.ReleaseObject();\r\n\t\t\tparsOut.ReleaseObject();\r\n\r\n         // no connection\r\n         if(errId == -1591212031 || errId == -1574764487)\r\n         {\r\n            receMsg = receMsg + \"er0\";\r\n            receMsg = receMsg + IStr(IDE::retNotConnectErr);\r\n         }\r\n         else\r\n            Error::RaiseLast();\r\n      }\r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (tempCmd.Find(\"RF\") < 0))\r\n\t  \t\tprogressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n\r\n\t\tobjectError:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n      return (receMsg);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startPlateLockCmd()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock / Unlock the plate\r\n   //  Will make a short error handling on not init and step loss error\r\n\t//====================================================================\r\n   static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock)\r\n   {\r\n\t\tvariable node;\r\n      variable command(\"LP\");\r\n      variable parameter(\"lp\");\r\n      string   cmdResult;\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n      parameter = parameter + IStr(plateLock);\r\n\r\n      // lock / unlock plate\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      // check for init or staep lost error\r\n      // On step lost, this drive is lost the init state and must be initialized again\r\n      // The library internal initialization flag is set allready and must nod set again\r\n      if((cmdResult.Find(m_fwPlNotInitError) >= 0) || (cmdResult.Find(m_fwPlStepLostError) >= 0))\r\n      {\r\n         string cmdResult2;\r\n\r\n         // init drive again\r\n\t\t\tcmdResult2 = sendMsg(deviceNumber, \"LI\", \"\", m_usbMsgTimeout, hslTrue);\r\n\r\n         // init has end success\r\n         if(cmdResult2.Find(m_fwNoError) >= 0)\r\n         {\r\n            // lock / unlock plate\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n         }\r\n      }\r\n      return (cmdResult);\r\n   } \r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startShakingCmd()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Start / Stop plate shaking\r\n   //  Will make a short error handling on not init and step loss error\r\n\t//====================================================================\r\n   static function startShakingCmd(\r\n      variable funcId, variable deviceNumber,\r\n      variable command, variable parameter, variable isStart)\r\n   {\r\n      string   cmdResult;\r\n\r\n\t\t// send command\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      // check for init or step lost error\r\n      // On step lost, this drive is lost the init state and must be initialized again\r\n      // The library internal initialization flag is set allready and must nod set again\r\n      if((cmdResult.Find(m_fwShNotInitError) >= 0) || (cmdResult.Find(m_fwShStepLostError) >= 0))\r\n      {\r\n         string cmdResult2;\r\n\r\n         // init drive again\r\n         cmdResult2 = sendMsg(deviceNumber, \"SI\", \"\", m_usbMsgTimeout, hslTrue);\r\n\r\n         // if not start, do not repeat the main command and return the really returned error\r\n         if(isStart)\r\n         {\r\n            // init has end success\r\n            if(cmdResult2.Find(m_fwNoError) >= 0)\r\n            {\r\n\t\t\t\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n            }\r\n         }\r\n      }\r\n      return (cmdResult);\r\n   } \r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function setHHSSetting()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check the given deviceNumber from a interface function\r\n\t//====================================================================\r\n\tstatic function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting)\r\n\t{\r\n      string   cmdResult;\r\n      variable funcRc(IDE::noError);\r\n\r\n\t\thhsSetting = 0;\r\n      if(!isSimulate(0, deviceNumber, hslFalse))\r\n\t\t{\r\n\t\t\tvariable startPos(-1);\r\n\r\n\t\t\t// read the HHS settings\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"QU\", \"\", m_usbMsgTimeout, hslTrue);\r\n\t\t\tfuncRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n         if(0 < funcRc)\r\n            return (funcRc);\r\n\r\n      \tstartPos = cmdResult.Find(\"au\");\r\n\t      if(startPos >= 0 && cmdResult.GetLength() >= 25)\r\n\t      {\r\n\t\t\t\tvariable shaker;\r\n\t\t\t\tvariable heater;\r\n\t\t\t\t// cmdResult auswerten\r\n\t\t\t\t// format \"TxQUau0 0 0 0 0 0 0 0 0 0\"\r\n\t\t\t\tshaker = cmdResult.Mid(startPos+2, 1);\r\n\t\t\t\theater = cmdResult.Mid(startPos+4, 1);\r\n\t\t\t\tif(shaker == \"1\" && heater == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyNothing;\r\n\t\t\t\telse\r\n\t\t\t\tif(shaker == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyOnlyHeat;\r\n\t\t\t\telse\r\n\t\t\t\tif(heater == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyOnlyShake;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tm_hhsSetting[deviceNumber-1] = hhsSetting;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function hasHeater()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the heater is activated on current HHS\r\n\t//====================================================================\r\n\tstatic function hasHeater(variable funcId, variable deviceNumber, variable throw)\r\n\t{\r\n\t\tvariable hhsSettings(-1);\r\n      variable funcRc(hslFalse);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\thhsSettings = m_hhsSetting.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyHeat))\r\n\t\t\tfuncRc = hslTrue;\r\n\r\n\t\tif(funcRc == hslFalse && throw == 1)\r\n\t\t{\r\n\t\t\t// \"Current HHS module on %s1 '%s2' cannot used as heater\"\r\n\t      variable nodeNameId(IDS::starNode);\r\n\t      variable node;\r\n         string \tmsg;\r\n         string \tnodeName;\r\n         variable funcName;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n         msg = StringTable::Load(IDS::heatingNotActivated);\r\n         nodeName = StringTable::Load(nodeNameId);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", nodeName);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n         errorCompleteTrace(funcId, msg);\r\n\r\n         Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function hasShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the heater is activated on current HHS\r\n\t//====================================================================\r\n\tstatic function hasShaker(variable funcId, variable deviceNumber, variable throw)\r\n\t{\r\n\t\tvariable hhsSettings(-1);\r\n      variable funcRc(hslFalse);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\thhsSettings = m_hhsSetting.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyShake))\r\n\t\t\tfuncRc = hslTrue;\r\n\r\n\t\tif(funcRc == hslFalse && throw)\r\n\t\t{\r\n\t\t\t// \"Current HHS module on %s1 '%s2' cannot used as shaker.\"\r\n\t      variable nodeNameId(IDS::starNode);\r\n\t      variable node;\r\n         string \tmsg;\r\n         string \tnodeName;\r\n         variable funcName;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n         msg = StringTable::Load(IDS::shakingNotActivated);\r\n         nodeName = StringTable::Load(nodeNameId);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", nodeName);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n         errorCompleteTrace(funcId, msg);\r\n\r\n         Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Library traces\r\n\t// --------------------------------------------------------------------------------------\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function versionTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the start of a exported function\r\n\t//====================================================================\r\n   static function versionTrace() void\r\n   {\r\n\t\tvariable traceSource;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      FormatTrace(traceSource, \"HSLHamHeaterShakerLib\", TraceStatus::cmd_progress, HamHeaterShakerVersion);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the start of a exported function\r\n\t//====================================================================\r\n   static function startTrace(variable funcName) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_start);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function progressTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces a msg during a exported function is working\r\n\t//====================================================================\r\n   static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable progressTitle;\r\n      variable progressMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(progMsgTitle) == \"i\")\r\n         progressTitle = StringTable::Load(progMsgTitle);\r\n      else\r\n         progressTitle = progMsgTitle;\r\n\r\n      if(GetType(progMsg) == \"i\")\r\n         progressMsg = StringTable::Load(progMsg);\r\n      else\r\n         progressMsg = progMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressTitle, progressMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function errorTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces an error msg during a exported function is working\r\n\t//====================================================================\r\n   static function errorTrace(variable funcName, variable errMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable errorMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(errMsg) == \"i\")\r\n         errorMsg = StringTable::Load(errMsg);\r\n      else\r\n         errorMsg = errMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_error, errorMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function errorCompleteTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces an error msg on end of an exported function\r\n\t//====================================================================\r\n   static function errorCompleteTrace(variable funcName, variable errMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable errorMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(errMsg) == \"i\")\r\n         errorMsg = StringTable::Load(errMsg);\r\n      else\r\n         errorMsg = errMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_errComplete, errorMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function endTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the end of an exported function\r\n\t//====================================================================\r\n   static function endTrace(variable funcName) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_complete);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function traceFirmwareVersion()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the firmware version of an used heater shaker\r\n\t//====================================================================\r\n\t// this function is used in InitializeLibrary() and uses index 0..10\t\r\n\tstatic function traceFirmwareVersion(variable funcId, variable deviceNumber)\r\n\t{\r\n      variable nodeNameId(IDS::starNode);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos(0);\r\n\t\t\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"RF\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n\t\tstartPos = answString.Find(\"rf\");\r\n\t\tif(startPos >= 0)\r\n\t\t{\r\n\t\t\tstring fwVers;\r\n\t\t\tstring title;\r\n\t\t\tstring nodeName;\r\n\t\t\tvariable node;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\t\tfwVers = answString.Right(answString.GetLength()-(startPos+2));\r\n\t\t\t// Text: \"%s1 '%s2' firmware version = \"\r\n\t\t\ttitle = StringTable::Load(IDS::firmwareVersion);\r\n\t\t\tnodeName = StringTable::Load(nodeNameId);\r\n\t\t\t\r\n\t\t\tStrReplace(title, \"%s1\", nodeName);\r\n\t\t\tStrReplace(title, \"%s2\", IStr(node));\r\n\r\n\r\n\t\t\tprogressTrace(funcId, title, fwVers);\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToProgressTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces a msg during a exported function is working\r\n\t//====================================================================\r\n   static function sendToProgressTrace(\r\n      variable funcName,\r\n      variable deviceNumber)\r\n      void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable nodeNameId(IDS::starNode);\r\n\t\tstring   nodeName;\r\n      variable progressMsg;\r\n      variable node;\r\n\r\n      initStringTable();\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\tif(!isStarDevice(deviceNumber))\r\n         nodeNameId = IDS::usbNode;\r\n\r\n      nodeName = StringTable::Load(nodeNameId);\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      // Text: \"Start command to %s1(%s2).\"\r\n      progressMsg = StringTable::Load(IDS::progressSendTo);\r\n\r\n\r\n      StrReplace(progressMsg, \"%s1\", nodeName);\r\n      StrReplace(progressMsg, \"%s2\", IStr(node));\r\n\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressMsg);\r\n   }\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Input parameter check function\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkStringInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a string\r\n\t//====================================================================\r\n   static function checkStringInput(variable funcId, variable parameterName, variable input)\r\n   {\r\n      if(GetType(input) != \"s\")\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a string.\r\n         string msg;\r\n         string param;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noStringValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"i\")\r\n            param = IStr(input);\r\n         if(GetType(input) == \"f\")\r\n            param = FStr(input, hslTrue);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noStringValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDoubleInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a double\r\n\t//====================================================================\r\n   static function checkDoubleInput(\r\n      variable funcId, variable parameterName, variable input)\r\n   {\r\n      if((GetType(input) != \"f\") && (GetType(input) != \"i\"))\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a number.\r\n         string msg;\r\n         string param(\"'%s'\");\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noDoubleValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"s\")\r\n            StrReplace(param, \"%s\", input);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noDoubleValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDoubleInputRange()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a double in a defined range\r\n\t//====================================================================\r\n   static function checkDoubleInputRange(\r\n      variable funcId, variable parameterName, variable input, variable min, variable max)\r\n   {\r\n      checkDoubleInput(funcId, parameterName, input);\r\n\r\n      if((input < min) || (input > max))\r\n      {\r\n         // \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n         string msg;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDS::parameterOutOfRange);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", FStr(input, hslTrue));\r\n         StrReplace(msg, \"%s3\", FStr(min, hslTrue));\r\n         StrReplace(msg, \"%s4\", FStr(max, hslTrue));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkIntegerInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a integer\r\n\t//====================================================================\r\n   static function checkIntegerInput(\r\n      variable funcId, variable parameterName, variable input)\r\n   {\r\n      if(GetType(input) != \"i\")\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a number.\r\n         string msg;\r\n         string param;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noIntegerValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"s\")\r\n         {\r\n            param = \"'\";\r\n            param = param + input;\r\n            param = param + \"'\";\r\n         }\r\n         if(GetType(input) == \"f\")\r\n            param = FStr(input, hslTrue);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noIntegerValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkIntegerInputRange()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a integer in a defined range\r\n\t//====================================================================\r\n   static function checkIntegerInputRange(\r\n      variable funcId, variable parameterName, variable input, variable min, variable max)\r\n   {\r\n      checkIntegerInput(funcId, parameterName, input);\r\n\r\n      if((input < min) || (input > max))\r\n      {\r\n         // \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n         string msg;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDS::parameterOutOfRange);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", IStr(input));\r\n         StrReplace(msg, \"%s3\", IStr(min));\r\n         StrReplace(msg, \"%s4\", IStr(max));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function isStarDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the used deviceNumber from a ML_STAR\r\n\t//====================================================================\r\n\tstatic function isStarDevice(variable deviceNumber)\r\n\t{\r\n\t\tvariable funcRc(hslFalse);\r\n\t\tvariable devName;\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tdevName = m_deviceName.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// check for usb name\r\n\t\tif(devName != m_hhsUsbObjectName)\r\n\t\t{\r\n\t\t\tfuncRc = hslTrue;\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getNodeFromDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Retunrs the saved node ID dependent of the deviceNumber\r\n\t//====================================================================\r\n\tstatic function getNodeFromDeviceNumber(variable deviceNumber)\r\n\t{\r\n\t\tvariable usedNode;\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tusedNode = m_nodeNumber.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return(usedNode);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check the given deviceNumber from a interface function\r\n\t//====================================================================\r\n\tstatic function checkDeviceNumber(variable funcId, variable deviceNumber)\r\n\t{\r\n\t\tvariable devName, nodeNr;\r\n\r\n\t\tif((deviceNumber < m_firstDeviceNumber) || (deviceNumber > m_lastDeviceNumber))\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n         msg = StringTable::Load(IDS::invalidDeviceNumber);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tdevName = \tm_deviceName.GetAt(deviceNumber-1);\r\n\t\tnodeNr = \tm_nodeNumber.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// check for usb name\r\n\t\tif((devName == \"\") || (nodeNr == 0))\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n         msg = StringTable::Load(IDS::invalidDeviceNumber);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function formatParam()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Formats an numeric input to a string with leading 0 to lenth of strWidth\r\n\t//====================================================================\r\n\tstatic function formatParam(\r\n\t\t\tvariable param,\t\t\t\t\t\t\t\t\t\t\t// i: the paramter to normalize (integer)\r\n\t\t\tvariable strWidth)\t\t\t\t\t\t\t\t\t\t// i: the width to be filled (integer)\r\n\t{\r\n\t\tstring sParam; \r\n\t\tsParam = IStr(param);\r\n\t\tStrFillLeft(sParam, \"0\", strWidth);\r\n\t\treturn (sParam);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function normalizeParam()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Formats an numeric (double)input to 1/10 values and format it\r\n   //\tto a string with leading 0 to lenth of strWidth\r\n\t//====================================================================\r\n\tstatic function normalizeParam(\t\t\t\t\t\t\t\t// returns the given parameter normalized for firmware command as string\r\n\t\t\tvariable param,\t\t\t\t\t\t\t\t\t\t\t// i: the paramter to normalize as float or integer\r\n\t\t\tvariable strWidth)\t\t\t\t\t\t\t\t\t\t// i: the width to be filled (integer)\r\n\t{\r\n\t\tstring sParam; \r\n\t\tsParam = IStr(Floor(MthRound(param*10, 0)));\r\n\t\tStrFillLeft(sParam, \"0\", strWidth);\r\n\t\treturn (sParam);\r\n\t}\r\n\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Firmware error check function\r\n\t// --------------------------------------------------------------------------------------\r\n\t\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getFirmwErrorId()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tReads the firmware error number from cmdResult string and convert it to a number\r\n\t//====================================================================\r\n   static function getFirmwErrorId(string cmdResult)\r\n   {\r\n      variable errNr(0);\r\n      variable startPos(0);\r\n      startPos = cmdResult.Find(\"er\");\r\n\r\n      if((startPos >= 0) && ((startPos+4) <= cmdResult.GetLength()))\r\n      {\r\n         variable errNo;\r\n         errNo = cmdResult.Mid((startPos+2), 2);\r\n         errNr = IVal(errNo);\r\n      }\r\n      return (errNr);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getErrIdFromFirmwareError()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tConverts the firmware error number to function return error number\r\n\t//====================================================================\r\n   static function getErrIdFromFirmwareError(string cmdResult)\r\n   {\r\n      variable firmwErrId(getFirmwErrorId(cmdResult));\r\n      \r\n      if(0 == firmwErrId)\r\n         return (IDE::noError);\r\n      else if(1 == firmwErrId)\r\n         return (IDE::retErr);\r\n      else if(2 == firmwErrId)\r\n         return (IDE::retNotInitErr);\r\n      else if(3 == firmwErrId)\r\n         return (IDE::retNotConnectErr);\r\n      else if (10 == firmwErrId)\r\n         return (IDE::canError);\r\n      else if (20 == firmwErrId)\r\n         return (IDE::eepromError);\r\n      else if (30 == firmwErrId)\r\n         return (IDE::syntaxCmdError);\r\n      else if (31 == firmwErrId)\r\n         return (IDE::syntaxParUnkError);\r\n      else if (32 == firmwErrId)\r\n         return (IDE::syntaxParRangeError);\r\n      else if (35 == firmwErrId)\r\n         return (IDE::generalVoltError);\r\n      else if (36 == firmwErrId)\r\n         return (IDE::generalStopError);\r\n      else if (37 == firmwErrId)\r\n         return (IDE::generalAddrError);\r\n      else if (40 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (41 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (42 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (50 == firmwErrId)\r\n         return (IDE::shakerInitError);\r\n      else if (51 == firmwErrId)\r\n         return (IDE::shakerNotInitError);\r\n      else if (52 == firmwErrId)\r\n         return (IDE::shakerStepLossError);\r\n      else if (53 == firmwErrId)\r\n         return (IDE::shakerStartModeError);\r\n      else if (55 == firmwErrId)\r\n         return (IDE::plateLockInitError);\r\n      else if (56 == firmwErrId)\r\n         return (IDE::plateLockNotInitError);\r\n      else if (57 == firmwErrId)\r\n         return (IDE::plateLockStepLossError);\r\n      else if (60 == firmwErrId)\r\n         return (IDE::tempNotStartError);\r\n      else if (61 == firmwErrId)\r\n         return (IDE::tempTimeoutError);\r\n      else if (62 == firmwErrId)\r\n         return (IDE::tempSuperRangeError);\r\n      else if (63 == firmwErrId)\r\n         return (IDE::tempSecurRangeError);\r\n      else if (64 == firmwErrId)\r\n         return (IDE::tempSensorError);\r\n      else if (98 == firmwErrId)\r\n         return (IDE::commandSendTimeout);\r\n      else\r\n         return (IDE::unknowFwError);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function isFirmwError()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tCheck if an error is set in cmdResult string\r\n\t//====================================================================\r\n   static function isFirmwError(variable funcId, string cmdResult, variable makeTrace)\r\n   {\r\n      variable rc(IDE::noError);\r\n\r\n      if(cmdResult.Find(m_fwNoError) == -1)\r\n      {\r\n         variable errId;\r\n         variable errText;\r\n         errId = getErrIdFromFirmwareError(cmdResult);\r\n         // string erXX was not found (answere command)\r\n         if(errId != IDE::noError)\r\n\t\t\t{\r\n\t\t\t\trc = errId;\r\n\r\n\t\t\t\terrText = StringTable::Load(errId);\r\n\r\n\t\t\t\t// make an exception handling for errors which contains a %s part\r\n\t\t\t\tif(errId == IDE::unknowFwError)\r\n\t\t\t\t\tStrReplace(errText, \"%s\", IStr(getFirmwErrorId(cmdResult)));\r\n\t\t\t\tif(errId == IDE::commandSendTimeout)\r\n\t\t\t\t\tStrReplace(errText, \"%s\", cmdResult.Left(4));\r\n\r\n\t\t\t\tif(makeTrace)\r\n  \t\t\t\t\terrorCompleteTrace(funcId, errText);\r\n  \t\t\t}\r\n      }\r\n\r\n      return (rc);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function saveAndCreateDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tsave the device parameter and create the deviceNumber which must \r\n\t// be used for each interface function\r\n\t//====================================================================\r\n\tstatic function saveAndCreateDeviceNumber(\r\n\t\tvariable funcId,\r\n\t\tvariable deviceName,\r\n\t\tobject& \tstarObject,\r\n\t\tvariable isStarSimulate,\r\n\t\tvariable usedNode)\r\n\t{\r\n\t\tvariable deviceNumber(0);\r\n\t\tvariable index(0);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// USB set always the starObject parameter with a null object\r\n\t   if(starObject.IsNull() && m_usbComObject.IsNull())\r\n\t   {\r\n\t      // create the usb object without event \r\n\t      m_usbComObject.ReleaseObject();\r\n\t      m_usbComObject.CreateObject(m_hhsUsbObjectName, hslFalse);\r\n\r\n\r\n\t      if(!m_usbComObject.IsNull())\r\n\t      {\r\n\t         // \"{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}\", bufferSize(4090), vendorId(2223), productId, mainSerialNumber);\r\n\t         m_usbComObject.InitObject (m_hhsUsbProductNum, m_hhsUsbSerieNum);\r\n\r\n\t      }\r\n\t      else\r\n\t      {\r\n\t         string msg;\r\n\t         variable funcName;\r\n\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n\t         msg = StringTable::Load(IDS::cannotCreateUsbPort);\r\n\t         funcName = StringTable::Load(funcId);\r\n\r\n\t         errorCompleteTrace(funcId, msg);\r\n\r\n\t\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t      }\r\n\t   }\r\n\r\n\t\t// check if this node allready used\r\n      for( index = 0; index < m_maxHHS; index++)\r\n      {\r\n\t\t\tvariable devN, nodeNum;\r\n\t\t\tdevN = m_deviceName.GetAt(index);\r\n\t\t\tnodeNum = m_nodeNumber.GetAt(index);\r\n\r\n\t\t\t// if equal, node already exist\r\n\t\t\tif((devN == deviceName) && (nodeNum == usedNode))\r\n\t\t\t\tdeviceNumber = index+1;\r\n\t\t}\r\n\r\n\t\tif(deviceNumber == 0)\r\n\t\t{\r\n\t\t\t// node is not used, set it on the first free position\r\n\t      for( index = 0; index < m_maxHHS; index++)\r\n\t      {\r\n\t\t\t\tvariable devN;\r\n\t\t\t\tdevN = m_deviceName.GetAt(index);\r\n\t\t\t\t// if empty\r\n\t\t\t\tif(devN == \"\")\r\n\t\t\t\t{\r\n\t\t\t\t\tm_deviceName[index] = deviceName;\r\n\t\t\t\t\tm_starDeviceObj[index] = starObject;\r\n\t\t\t\t\tm_isStarSimulate[index] = isStarSimulate;\r\n\t\t\t\t\tm_nodeNumber[index] = usedNode;\r\n\t\t\t\t\tdeviceNumber = index+1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t      }\r\n\t\t}\r\n\t\t\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif(deviceNumber == 0)\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::maxHHSReached);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\r\n      return(deviceNumber);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function Wait()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tWait the given time\r\n\t//====================================================================\r\n\tstatic function wait(variable waitTime)\r\n\t{\r\n\t\ttimer t;\r\n\t\t\r\n      // Wait waitTime seconds\r\n      t.SetTimer( waitTime );\r\n      t.WaitTimer( hslFalse, hslFalse );\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getCurrentShakerRPM()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tRead the shaking speed of current HHS\r\n\t//====================================================================\r\n\tstatic function getCurrentShakerRPM(variable deviceNumber, variable makeTrace)\r\n\t{\r\n\t\tvariable shakingSpeed(0);\r\n      variable command(\"RR\");\r\n      string   parameter(\"\");\r\n      string   cmdResult;\r\n\t\tvariable startPos(0);\r\n\r\n     \t// start request\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace);\r\n      // format: rr####\r\n      startPos = cmdResult.Find(\"rr\");\r\n      if(startPos >= 0)\r\n      {\r\n\t\t\tshakingSpeed = IVal(cmdResult.Mid((startPos+2), 4));\r\n      }\r\n\t\treturn (shakingSpeed);\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getCurrentTemp()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tRead the shaking speed of current HHS\r\n\t//====================================================================\r\n\tstatic function getCurrentTemp(variable deviceNumber, variable makeTrace)\r\n\t{\r\n\t\tvariable temperature(0);\r\n      variable command(\"RT\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n      variable startPos;\r\n      variable firstVal;\r\n      variable secVal;\r\n      variable averageVal;\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace);\r\n\r\n      // format: rt#### ####\r\n      startPos = cmdResult.Find(\"rt\");\r\n      if((startPos >= 0) && ((cmdResult.GetLength()-startPos) >= TemperateParam::tempTempRequestLength))\r\n      {\r\n\t      // read both temperature and calculate the average \r\n\t      // format: rt#### ####\r\n\t      firstVal = FVal(cmdResult.Mid((startPos+2), 5));\r\n\t      secVal   = FVal(cmdResult.Mid((startPos+8), 5));\r\n\r\n\t      // calculate the average in 1/10 degrees\r\n\t      averageVal = ((firstVal + secVal) / 2) /10;\r\n\t      temperature = MthRound(averageVal, 1);\r\n      }\r\n\t\treturn (temperature);\r\n\t}\r\n\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function MonitorHeaterShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tMonitors temperature and speed of a HHS module\r\n\t//====================================================================\r\n   synchronized function monitorHeaterShaker()\r\n   {\r\n      variable monitorComplete( 0 );\r\n\t\tevent\t\tintervalEvent;\r\n      variable currentStatus(-1);\r\n\t\tvariable funcName;\r\n\t\tvariable sTitle;\r\n\t\tvariable hTitle;\r\n\t\tvariable stateTitle;\r\n\t\tvariable heatingUp(hslTrue);\r\n      variable result;\r\n      variable oldResult;\r\n\t\tvariable notStopped(hslTrue); // action Stop not used\r\n\r\n      // set the locals...\r\n      variable devNumber(m_monitorDeviceNumber);\r\n      variable hMin(m_monitorHeaterMin);\r\n      variable hMax(m_monitorHeaterMax);\r\n      variable sMin(m_monitorShakerMin);\r\n      variable sMax(m_monitorShakerMax);\r\n      variable interval(m_monitorSampleInterval);\r\n      variable action(m_monitorAction);\r\n      variable curRpm(sMin);\t\t// if not available, the speed must be OK\r\n      variable curTemp(hMin);\t\t// if not available, the temperature must be OK\r\n\t\tvariable node;\r\n      variable nodeType;\r\n\r\n\t  \t// reset globals\r\n\t   m_monitorDeviceNumber\t\t\t= 0;\r\n\t   m_monitorShakerMin\t\t\t\t= 0;\r\n\t   m_monitorShakerMax\t\t\t\t= 0;\r\n\t   m_monitorSampleInterval\t\t\t= 0;\r\n\t   m_monitorAction\t\t\t\t\t= 0;\r\n\t\tm_monitorHeaterMin\t\t\t\t= 0;\r\n\t\tm_monitorHeaterMax\t\t\t\t= 0;\r\n\t   m_monitorResult[devNumber-1] \t= -1;\r\n\r\n\t\t// set min max temperature dependend of current heater settings\r\n\t\t// critical section is set in StartMonotoring() function\r\n\t\tintervalEvent = m_monitorEvent.GetAt(devNumber-1);\r\n\r\n\t\t// free start semaphore\r\n\t\tm_monitorStartEvent.SetEvent();\r\n\r\n\t\tinitStringTable();\r\n\r\n      if(isStarDevice(devNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\t\tnodeType = nodeType + \" (\";\r\n\t\tnode = getNodeFromDeviceNumber(devNumber);\r\n\t\tnodeType = nodeType + IStr(node);\r\n\t\tnodeType = nodeType + \" )\";\r\n\r\n\r\n\t\tfuncName = StringTable::Load(IDF::Monitoring);\r\n\t\tfuncName = funcName + \" \";\r\n\t\tfuncName = funcName + nodeType;\r\n\t\tsTitle = StringTable::Load(IDS::monitoringShakingTitle);\r\n\t\thTitle = StringTable::Load(IDS::monitoringTempTitle);\r\n\t\tstateTitle = StringTable::Load(IDS::monitoringStateTitle);\r\n\r\n\r\n      while (monitorComplete == 0)\r\n      {\r\n         // WaitEvent returns 0 if still waiting or non-zero\r\n         // if the event was triggered.\r\n         monitorComplete = intervalEvent.WaitEvent( interval );\r\n\r\n\t\t\tif( monitorComplete == 0 && notStopped)\r\n\t\t\t{\r\n\t\t\t\tif(hasShaker(0, devNumber, 0))\r\n\t\t\t\t{\r\n\t\t\t\t\tvariable title(sTitle);\r\n\r\n\t\t\t\t\t// read currect RPM\r\n\t\t\t\t\tcurRpm = getCurrentShakerRPM(devNumber, hslFalse);\r\n\r\n\t\t\t\t\tprogressTrace(funcName, title, IStr(curRpm));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(hasHeater(0, devNumber, 0))\r\n\t\t\t\t{\r\n\t\t\t\t\tvariable title(hTitle);\r\n\r\n\t\t\t\t\tif(heatingUp)\r\n\t\t\t\t\t{\r\n\t\t\t\t      string   cmdResult;\r\n\t\t\t\t\t\tvariable partResult(\"qd1\");\r\n\r\n\t\t\t\t      // ask if heater in state heating up\r\n\t\t\t\t\t\tcmdResult = sendMsg(devNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t\t\t\tif(cmdResult.Find(partResult) < 0)\r\n\t\t\t\t\t\t\theatingUp = hslFalse;\r\n\t\t\t\t\t\tif(heatingUp)\r\n\t\t\t\t\t\t\ttitle = StringTable::Load(IDS::monitoringTempHeatUpTitle);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// read current temperature\r\n\t\t\t\t\tcurTemp = getCurrentTemp(devNumber, hslFalse);\r\n\r\n\t\t\t\t\tprogressTrace(funcName, title, FStr(curTemp, hslTrue));\r\n\t\t\t\t}\r\n\r\n\t\t      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\t\t\tresult = m_monitorResult.GetAt(devNumber-1);\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t         oldResult = result;\r\n\r\n\t         // Calculate the current state of the heater/shaker\r\n\t         if( (((curTemp < hMin) || (curTemp > hMax)) && !heatingUp) && ((curRpm < sMin) || (curRpm > sMax)))\r\n\t         {\r\n\t         \tcurrentStatus = MonitorStatus::monitorErrHeatingAndShaking;\r\n\t         }\r\n\t         else if ( ((curTemp < hMin) || (curTemp > hMax)) && !heatingUp )\r\n\t         {\r\n\t            currentStatus = MonitorStatus::monitorErrHeating;\r\n\t         }\r\n\t         else if ( (curRpm < sMin) || (curRpm > sMax) )\r\n\t         {\r\n\t            currentStatus = MonitorStatus::monitorErrShaking;\r\n\t         }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrentStatus = MonitorStatus::monitorOK;\r\n\t\t\t\t}\r\n\r\n\t         // If the monitor status has previously not been set, set it.\r\n\t         // Otherwise, use bitwise OR to merge the current result with the previous result\r\n\t         if (result == -1)\r\n\t            result = currentStatus;\r\n\t         else\r\n\t            result = currentStatus | result;\r\n         \r\n\t\t      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\t\t\tm_monitorResult[devNumber-1] = result;\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t\t\tprogressTrace(funcName, stateTitle, IStr(result));\r\n\r\n\t         if ( result != MonitorStatus::monitorOK )\r\n\t         {\r\n\t            if ( action == MonitorAction::monitorActionStop )\r\n\t            {\r\n\t\t\t\t\t\t// stop shaking and heating\r\n\t\t\t\t\t\tif(hasShaker(0, devNumber, 0))\r\n\t\t\t\t\t\t\tStopShaker(devNumber);\r\n\r\n\t\t\t\t\t\tif(hasHeater(0, devNumber, 0))\r\n\t\t\t\t\t\t\tStopTempCtrl(devNumber);\r\n\r\n\t\t\t\t\t\t// end monitoring but leave in the loop for a correct end of the automatic semapore intervalEvent\r\n\t\t\t\t\t\tnotStopped = hslFalse;\r\n\t            }\r\n\t\t\t\t\tif(action == MonitorAction::monitorActionAbort)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\terrorTrace(funcName, IDS::monitoringAbort);\r\n\t\t\t\t\t\tabort;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t   }  // end while\r\n\r\n      return(0);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function pollingForRunningShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tPolling until shaker has end shaked or time is elapsed\r\n\t//\tPolling is neccessary that during a long wait time an Abort()\r\n\t// command can be execute.\r\n\t//====================================================================\r\n\tstatic function pollingForRunningShaker(\r\n\t\tvariable deviceNumber, variable maxPollingTime)\r\n\t{\r\n      string   cmdResult;\r\n\t\tvariable maxPTime(maxPollingTime);\r\n\t\tvariable intervalTime(5);\r\n\t\tvariable partResult(\"rd1\");\r\n\r\n\t\tif(maxPollingTime > 10)\r\n\t\t{\r\n\t      // ask if shaker is running\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"RD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\r\n\t\t\twhile(cmdResult.Find(partResult) > 0 && maxPTime > 0)\r\n\t\t\t{\r\n\t\t\t\tmaxPTime = maxPTime - intervalTime;\r\n\t\t\t\twait(intervalTime);\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, \"RD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function pollingForRunningHeater()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tPolling until heater is in temperature controlling mode\r\n\t//\tPolling is neccessary that during a long wait time an Abort()\r\n\t// command can be execute.\r\n\t//====================================================================\r\n\tstatic function pollingForRunningHeater(\r\n\t\tvariable deviceNumber, variable maxPollingTime)\r\n\t{\r\n      string   cmdResult;\r\n\t\tvariable maxPTime(maxPollingTime);\r\n\t\tvariable intervalTime(10);\r\n\t\tvariable partResult(\"qd1\");\r\n\r\n\t\tif(maxPollingTime > 10)\r\n\t\t{\r\n\t      // ask if heater in state heating up\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\r\n\t\t\twhile(cmdResult.Find(partResult) > 0 && maxPTime > 0)\r\n\t\t\t{\r\n\t\t\t\tmaxPTime = maxPTime - intervalTime;\r\n\t\t\t\twait(intervalTime);\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function OnAbortHHSLibrary()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tStop heating and shaking for all HHS module\r\n\t//====================================================================\r\n\tstatic function OnAbortHHSLibrary()\r\n\t{\r\n\t\tvariable deviceNumber;\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n\t\t\t\tStopShaker(deviceNumber);\r\n            StopTempCtrl(deviceNumber);\r\n         }\r\n      }\r\n\r\n\t\tTerminate();\r\n\t\treturn;\r\n\t}\r\n\r\n\r\n}\r\n\r\n#endif\r\n// $$author=TBenz$$valid=1$$time=2013-03-06 12:47$$checksum=fc24f279$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/HslHamHeaterShakerLib.hsl",
    "content": "// ======================================================================\r\n// This is a part of the HSLHamHeaterShaker Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//\r\n//\t2008-09-10\t\ttbenz > first creation\r\n//\r\n//\t**********************************************************************\r\n// This library version supports following hardware:\r\n//\t\t- HAM Heater Shaker (HHS) ML_STAR interface\r\n//\t\t- HAM Heater Shaker (HHS) USB interface\r\n//\t**********************************************************************\r\n\r\n\r\n#ifndef __HSLHeaterShakerLib_hsl__\r\n#define __HSLHeaterShakerLib_hsl__\t1\r\n\r\n// Interface to HSLHamHeaterShaker library\r\n#ifndef HSL_RUNTIME\r\n\r\n\r\nnamespace HSLHamHeaterShaker\r\n{\r\n\tfunction CreateStarDevice(\t\t\tdevice& starDevice,\t\t\t\t\t\t// in:  ML_STAR device\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1 or 2)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& deviceNumber) {}\t\t\t\t// out: generated deviceNumber\r\n\r\n\tfunction CreateUsbDevice( \t\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1..8)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& deviceNumber) {}\t\t\t\t// out: generated deviceNumber\r\n\r\n\tfunction Terminate()             void {}\t\t\t\t\t\t\t\t\t\t// Close the communication\r\n\r\n   function StartShaker(            variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingSpeed) {}\t\t\t\t// in:  RPM (30..2500)\r\n\r\n   function StopShaker(             variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function StartShakerTimed(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingSpeed,\t\t\t\t\t// in   RPM (30..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingTime) {}\t\t\t\t// in:  time in seconds (1.. 30000)\r\n\r\n   function WaitForShaker(          variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function StartAllShaker(         variable shakingSpeed) {}\t\t\t\t// in   RPM (30..2500)\r\n\r\n   function StartAllShakerTimed(    variable shakingSpeed,\t\t\t\t\t// in:  RPM (30..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingTime) {}\t\t\t\t// in:  time in seconds (1.. 30000)\r\n\r\n   function StopAllShaker(          ) {}\r\n\r\n   function SetShakerParameter(     variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingDirection,\t\t\t\t// in:  shaking dirction left / right (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingAccRamp) void {}\t\t// in:  Defines the acceleration ramp (rpm) (integer).\r\n\r\n   function GetShakerParameter(     variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingDirection,\t\t\t// out: shaking dirction left / right (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingAccRamp) void {}\t// out: Defines the acceleration ramp (rpm) (integer).\r\n\r\n\tfunction GetShakerSpeed(     \t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingSpeed) {}\t\t\t\t// out: current RPM\r\n\r\n\r\n   function StartTempCtrl(          variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable temperature,\t\t\t\t\t// in:  Temperature in 1/10C. Range 0.0 .. 100.0 (not lower than ambient)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable waitForTempReached) {}\t\t// in:  no wait / wait (0 / 1)\r\n\r\n   function StopTempCtrl(           variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function WaitForTempCtrl(        variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function GetTemperature(         variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& temperature) {}\t\t\t\t// out: current temperature in 1/10C\r\n\r\n   function GetTemperatureState(    variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& temperatureState) {}\t\t// out: temperature state 0..3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t0 = No error, temperature was always in the defined range.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t1 = Temperature was or is out of temperature range.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t2 = Temperature was out of security range. Temperature controlling is switched off now.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t3 = Temperature time out during start of temperature controlling\r\n\r\n\r\n   function SetTempParameter(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable startTimeout,\t\t\t\t\t// in:  Time before start temperature controlling (1..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable toleranceRange,\t\t\t\t// in:  Temperature tolerance in 1/10C. (0.0 .. 100.0), def: 2.0\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable securityRange) void {}\t\t// in:  Temperature security in 1/10C. (0.0 .. 100.0), def: 6.0\r\n\r\n   function GetTempParameter(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n                                    variable& startTimeout,\t\t\t\t\t// out: Time before start temperature controlling.\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& toleranceRange,\t\t\t\t// out: Temperature tolerance in 1/10C.\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& securityRange) void {}\t\t// out: Temperature security in 1/10C.\r\n\r\n\r\n   function SetPlateLock(           variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable plateLock) {}\t\t\t\t\t// in:  unlock / lock (0 / 1)\r\n\r\n   function GetFirmwareVersion(\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& firmwareVersion) void {}\t// out: Firmware version format: \"1.0P 1999-03-10\"\r\n\r\n   function GetSerialNumber(\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& serialNumber) void {}\t\t// out: Serial number format: \"####\" 4 digit number\r\n\r\n   function BeginMonitoring(\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingToleranceRange,\t\t// in:  shaking tolerance\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable sampleInterval,\t\t\t\t// in:  Interval in sec. for check RPM and temperature\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable action) void {}\t\t\t\t// in:  Continue / Abort (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Note: Abort will only called on an error after temperature controlling is activated ()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t\t\tAn abort will end only the current heater/shaker.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Note:\theaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter()\r\n\r\n   function EndMonitoring(\t\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& monitorResult) {}\t\t\t// out: Monitored result\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//-1 = monitoring has not started or is not initialized\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 0 = all heating and shaking values were within specification\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 1 = heating out of range\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 2 = shaking out of range\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 3 = heating and shaking out of range\r\n\r\n\r\n\r\n   function SendFirmwareCommand(    variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable command,\t\t\t\t\t\t\t// in:  Firmware command e.g. \"T1RF\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable parameter) {}\t\t\t\t\t// in:  Firmware parameter dependent of command\r\n\r\n   function SetSimulation(          variable simulate) void {}\t\t\t\t// in:  Run / Simulate (0 / 1)\r\n\r\n   function SetUSBTrace(\t\t\t\tvariable trace) void {}\t\t\t\t\t// in:  No trace / trace (0 / 1) Set communication tracing for send and receive message from USB\r\n\r\n\r\n} // end of namespace HSLHamHeaterShaker\r\n\r\n#endif\r\n\r\n// ==========================================================================\r\n// Implementation of HSLHamHeaterShaker Library \r\n// ==========================================================================\r\n#ifdef HSL_RUNTIME\r\n#include \"HSLHamHeaterShakerLib.hs_\"\r\n#endif\r\n\r\n#endif /* end of #ifndef __HSLHamHeaterShakerLib_hsl__ */\r\n\r\n// $$author=TBenz$$valid=1$$time=2013-03-06 12:47$$checksum=764d39dc$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM.hsl",
    "content": "namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\nnamespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\nnamespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\nnamespace _Method { #include \"HSLStrLib.hsl\" } \r\nnamespace _Method { #include \"HSLTrcLib.hsl\" } \r\nnamespace _Method { #include \"HSLSeqLib.hsl\" } \r\nnamespace _Method { #include \"HSLDevLib.hsl\" } \r\nnamespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\nnamespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\nnamespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM.res\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nglobal device ML_STAR (\"STAR_OEM.lay\", \"ML_STAR\", hslTrue);\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\nglobal device HxFan (\"STAR_OEM.lay\", \"HxFan\", hslTrue);\r\nvariable fanSpeed;\r\nvariable persistant;\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nnamespace _Method { #include \"HSLMETEDLib.hs_\" } \r\nnamespace _Method { #include \"HSLMECCLib.hs_\" } \r\nnamespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n\r\nnamespace _Method {  #include __filename__ \".sub\"  } \r\nnamespace _Method { method main(  ) void {\r\n        STAR_OEM_TOOLKIT::_InitLibrary();\r\n        ::RegisterAbortHandler( \"OnAbort\");\r\n        blnReturn = HSLHttp::Initialize(objHttp);\r\n        if (blnReturn != blnSuccess)\r\n        {\r\n            TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n            return;\r\n        }\r\n        SendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n        {\r\n            loopCounterMain = 0;\r\n            while (1 == 1)\r\n            {\r\n                loopCounterMain = loopCounterMain + 1;\r\n\r\n                commandFromServer = Translate(\"\");\r\n                o_stepReturn = Translate(\"\");\r\n                o_stepReturn2 = Translate(\"\");\r\n                o_stepReturn3 = Translate(\"\");\r\n                o_stepReturn4 = Translate(\"\");\r\n\r\n\r\n                msg = waitForGUItoContinue();\r\n                Trace(\"JSON received from Server:\", msg);\r\n                HSLJsonLib::Create(objJSONFromServer);\r\n                HSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n                HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n\r\n\r\n                if (commandFromServer == \"initialize\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n                    STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n                    TrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n\r\n                if (commandFromServer == \"channelTipPickUp\")\r\n                {\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n                    if (tipSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                        BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n                    }\r\n                    STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n                    TrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"channelAspirate\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n                    BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n                    Trace(\"Bookstart\");\r\n                    JSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n                    Trace(\"Bookend\");\r\n                    JSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n                    JSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n                    JSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n                    JSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n                    JSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n                    JSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n\r\n                    if (aspirateSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                        BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n                    }\r\n                    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);\r\n                    ArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n                    ArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n                    TrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n                    TrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n                    TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"channelDispense\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n                    BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n                    JSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n                    JSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n                    JSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n                    JSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n                    JSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n                    JSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n\r\n                    if (dispenseSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                        BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n                    }\r\n                    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);\r\n                    ArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n                    ArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n                    TrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n                    TrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n                    TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"channelTipEject\")\r\n                {\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n                    if (useDefaultWaste == 0)\r\n                    {\r\n                        if (wasteSequence == \"\")\r\n                        {\r\n                            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                        else\r\n                        {\r\n                            DevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        SeqCopySequence(seq, ML_STAR.Waste);\r\n                    }\r\n                    STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n                    TrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n\r\n\r\n                if (commandFromServer == \"mph96TipPickUp\")\r\n                {\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n                    if (tipSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                        BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n                    }\r\n                    STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n                    TrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"mph96Aspirate\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    JSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n                    JSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n                    JSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n                    JSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n                    JSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n                    JSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n\r\n                    if (aspirateSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                        BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n                    }\r\n                    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);\r\n                    TrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n                    TrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n                    TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n                    TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n                    o_stepReturn2 = StrFStr(o_stepReturn2);\r\n                    o_stepReturn3 = StrFStr(o_stepReturn3);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"mph96Dispense\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    JSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n                    JSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n                    JSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n                    JSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n                    JSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n                    JSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n\r\n                    if (dispenseSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                        BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n                    }\r\n                    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);\r\n                    TrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n                    TrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n                    TrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n                    TrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n                    o_stepReturn2 = StrFStr(o_stepReturn2);\r\n                    o_stepReturn3 = StrFStr(o_stepReturn3);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"mph96TipEject\")\r\n                {\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n                    if (tipEjectToKnownPosition == 0)\r\n                    {\r\n                        if (wasteSequence == \"\")\r\n                        {\r\n                            HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                        else\r\n                        {\r\n                            DevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        SeqCopySequence(seq, ML_STAR.Waste);\r\n                    }\r\n                    STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n                    TrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n                    TrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n\r\n                if (commandFromServer == \"loadCarrier\")\r\n                {\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n                    STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n                    TrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"unloadCarrier\")\r\n                {\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n                    STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n                    TrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n\r\n                if (commandFromServer == \"gripGet\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n                    JSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n                    JSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n                    JSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n                    JSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n                    JSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n\r\n                    if (plateSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n                    }\r\n                    if (lidSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n                    }\r\n                    DevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n                    STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n                    TrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"gripMove\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n\r\n                    if (plateSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n                    }\r\n                    STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n                    TrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"gripPlace\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n                    JSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n                    JSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n\r\n                    if (plateSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n                    }\r\n                    if (lidSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n                    }\r\n                    DevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n                    STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n                    TrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n\r\n\r\n                if (commandFromServer == \"iSwapGet\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n                    JSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n                    JSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n                    JSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n                    JSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n                    JSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n                    JSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n\r\n                    if (plateSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n                    }\r\n                    if (lidSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n                    }\r\n                    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);\r\n                    TrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"iSwapMove\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n\r\n                    if (plateSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n                    }\r\n                    STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n                    TrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"iSwapPlace\")\r\n                {\r\n\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n                    JSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n                    JSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n\r\n                    if (plateSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n                    }\r\n                    if (lidSequence == \"\")\r\n                    {\r\n                        HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n                        if (labwarePositions != \"\")\r\n                        {\r\n                            BuildTempSequenceFromPositions(labwarePositions, seq);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        DevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n                    }\r\n                    STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n                    TrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"iSwapPark\")\r\n                {\r\n\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n\r\n                    STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n                    TrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n                    SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n\r\n\r\n                if (commandFromServer == \"HHS_BeginMonitoring\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n                    o_stepReturn = 0;\r\n                    onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\n                    err.Clear();\r\n                    HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n                    errLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    TrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_CreateStarDevice\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n                    onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\n                    err.Clear();\r\n                    o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n                    errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    TrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n                    TrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_CreateUSBDevice\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n                    onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\n                    err.Clear();\r\n                    o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n                    errLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    TrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n                    TrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_EndMonitoring\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\n                    err.Clear();\r\n                    o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n                    errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    TrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n                    errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_GetSerialNumber\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n                    errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_GetShakerParameter\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n                    errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_GetShakerSpeed\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n                    errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_GetTempParameter\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n                    errLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_GetTemperature\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n                    errLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_GetTemperatureState\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n                    errLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n                    HSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n                    onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n                    errLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_SetPlateLock\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n                    onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n                    errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_SetShakerParameter\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n                    onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n                    errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_SetSimulation\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n                    onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::SetSimulation(simulate);\r\n                    errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_SetTempParameter\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n                    HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n                    HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n                    onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n                    errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_SetUSBTrace\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n                    onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n                    errLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_StartAllShaker\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n                    onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n                    errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n                    onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n                    errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_StartShaker\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n                    onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n                    errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_StartShakerTimed\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n                    onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n                    errLabel_29447729262E4e0f8B347F6640716D96 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_StartTempCtrl\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n                    onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n                    errLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_StopAllShaker\")\r\n                {\r\n                    onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n                    errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_StopShaker\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n                    errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_StopTempCtrl\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n                    errLabel_B5957B02990845739642D8C604B0B582 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_Terminate\")\r\n                {\r\n                    onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    HSLHamHeaterShaker::Terminate();\r\n                    errLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_WaitForShaker\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n                    errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                if (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n                    errLabel_088C7630997A4749A400740DA66CBA0C : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n\r\n\r\n                if (commandFromServer == \"HxFanSet\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"persistant\"), persistant);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n                    JSON_GetFloatValue(Translate(\"fanSpeed\"), fanSpeed);\r\n                    onerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    if (simulate == 0)\r\n                    {\r\n                        {\r\n                            HxFan.Simulate(\"13409ed4_ce79_4ef9_89deb34df8b6dd6a\"); }\r\n                    }\r\n                    else\r\n                    {\r\n                        {\r\n                            HxFan.Simulate(\"be3ae73e_7395_494a_9aed80ff221436dc\"); }\r\n                    }\r\n                    {\r\n                        HxFan.SetComPort(\"ffdf7428_8946_4751_8ec8a7e00f208208\"); }\r\n                    if (persistant == 0)\r\n                    {\r\n                        {\r\n                            HxFan.SetContinuousMode(\"d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39\"); }\r\n                    }\r\n                    else\r\n                    {\r\n                        {\r\n                            HxFan.SetContinuousMode(\"4914f72b_ecb0_4ab4_b458a744727e1642\"); }\r\n                    }\r\n                    if (fanSpeed == 0)\r\n                    {\r\n                        {\r\n                            HxFan.SetFanOff(\"cef636fc_366e_46f7_9a8e1e25f716fa31\"); }\r\n                    }\r\n                    else\r\n                    {\r\n                        {\r\n                            HxFan.SetFanSpeed(\"f2bbd127_49ad_44c1_aa03eba6244b4cfc\"); }\r\n                    }\r\n                    {\r\n                        HxFan.CloseComPort(\"162f7d41_f11e_4261_8602596bf1b6e888\"); }\r\n                    errLabel_AA4197CCBE624255B3C96A32C1894C99 : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n\r\n\r\n                if (commandFromServer == \"CORE96WashEmpty\")\r\n                {\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n                    HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n                    onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\n                    err.Clear();\r\n                    o_stepReturn = 0;\r\n                    {\r\n                        variable arrRetValues[];\r\n                        arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"f4a1383e_67d1_4f19_92f3a5518acddda4\"); }\r\n                    errLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\n                    onerror goto 0;\r\n                    if (err.GetId() != 0)   \r\n                    {\r\n                        o_stepReturn = 1;\r\n                    }   \r\n                    SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n                }\r\n\r\n\r\n                HSLJsonLib::Release(objJSONFromServer);\r\n\r\n                if (commandFromServer == \"end\")\r\n                {\r\n                    SendTextMessageToServer(Translate(\"Good Bye!\"));\r\n                    break;\r\n                }\r\n\r\n            }\r\n        }\r\n        HSLHttp::Release(objHttp);\r\n        STAR_OEM_TOOLKIT::_ExitLibrary();\r\n    } }\r\n"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_HiG.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 2/10/2023 12:53:51 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_OEM_HIG {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction HiG_AbortSpin( variable & o_stepReturn ) void { }\r\nfunction HiG_CloseShield( variable & o_stepReturn ) void { }\r\nfunction HiG_Connect( variable i_strDeviceName, variable i_strAdapterDeviceID, variable i_blnSimulationMode, variable & o_FirmwareVersion, variable & o_stepReturn ) void { }\r\nfunction HiG_Disconnect( variable & o_stepReturn ) void { }\r\nfunction HiG_Home( variable & o_stepReturn ) void { }\r\nfunction HiG_IsSpinning( variable & o_blnIsSpinning, variable & o_stepReturn ) void { }\r\nfunction HiG_OpenShield( variable i_intBucketIndex, variable & o_stepReturn ) void { }\r\nfunction HiG_OverrideSimulation( variable i_intBucketIndex, variable & o_stepReturn ) void { }\r\nfunction HiG_Spin( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void { }\r\nfunction HiG_SpinAndWait( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=stefa$$valid=0$$time=2023-02-10 00:53$$checksum=4f9d4cea$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_HiG.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"BioNex HiG\\\\HSLHiGCentrifugeLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_HIG {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction HiG_AbortSpin( variable & o_stepReturn ) void ;\r\nfunction HiG_CloseShield( variable & o_stepReturn ) void ;\r\nfunction HiG_Connect( variable i_strDeviceName, variable i_strAdapterDeviceID, variable i_blnSimulationMode, variable & o_FirmwareVersion, variable & o_stepReturn ) void ;\r\nfunction HiG_Disconnect( variable & o_stepReturn ) void ;\r\nfunction HiG_Home( variable & o_stepReturn ) void ;\r\nfunction HiG_IsSpinning( variable & o_blnIsSpinning, variable & o_stepReturn ) void ;\r\nfunction HiG_OpenShield( variable i_intBucketIndex, variable & o_stepReturn ) void ;\r\nfunction HiG_OverrideSimulation( variable i_intBucketIndex, variable & o_stepReturn ) void ;\r\nfunction HiG_Spin( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void ;\r\nfunction HiG_SpinAndWait( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"HiG_Connect\" \"Begin\"\r\nfunction HiG_Connect( variable i_strDeviceName, variable i_strAdapterDeviceID, variable i_blnSimulationMode, variable & o_FirmwareVersion, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_Connect\" \"InitLocals\"\r\no_FirmwareVersion = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 17 1 0 \"6c01257a_6d51_4c37_a1432588f52c8502\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A3458F4E91F041578F0E9BBA05624597 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 18 1 0 \"62a91bb5_c6af_44dc_94ce7587ba5a21eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::Connect(i_strDeviceName, i_strAdapterDeviceID, i_blnSimulationMode, o_FirmwareVersion);\r\n// }} \"\"\r\n// {{ 19 1 0 \"f82f8575_91c8_4987_9acffbc574b1da9d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 20 1 0 \"6c01257a_6d51_4c37_a1432588f52c8502\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A3458F4E91F041578F0E9BBA05624597 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 21 1 0 \"2ebe99ff_59ee_4e23_a5ebaafc75995104\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 22 1 0 \"4aca392c_a3ac_468c_9de56afa31c54a2b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 23 1 0 \"6c01257a_6d51_4c37_a1432588f52c8502\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_Connect\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_Disconnect\" \"Begin\"\r\nfunction HiG_Disconnect( variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_Disconnect\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 25 1 0 \"6ee3c64d_38b2_4016_90477eb4c177aa8f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2554F8A8B83E4de481F4E34848FBB5BD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 26 1 0 \"2014b8e2_890e_430a_90c5c439e09ec44e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::Disconnect();\r\n// }} \"\"\r\n// {{ 27 1 0 \"f2cb87f4_a27d_422c_90cc2f5710d08240\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 28 1 0 \"6ee3c64d_38b2_4016_90477eb4c177aa8f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2554F8A8B83E4de481F4E34848FBB5BD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 29 1 0 \"8aab6957_7062_471e_8ce10e0a01cc7235\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 30 1 0 \"b00191e4_7e6d_4bdb_9299c703c49e0953\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 31 1 0 \"6ee3c64d_38b2_4016_90477eb4c177aa8f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_Disconnect\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_Home\" \"Begin\"\r\nfunction HiG_Home( variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_Home\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 33 1 0 \"742b4521_62be_4217_a74147e86d9d1e13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_CF84626F306643fe86233640BD835AA3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 34 1 0 \"ab6eb061_5f41_4619_94172c26d5e61b6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::Home();\r\n// }} \"\"\r\n// {{ 35 1 0 \"686511ed_83b4_4dcb_94ecbd93d0c781c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 36 1 0 \"742b4521_62be_4217_a74147e86d9d1e13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_CF84626F306643fe86233640BD835AA3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 37 1 0 \"d8b06ede_5b12_4d44_ad71c40b183e7cc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 38 1 0 \"a9945d13_52c7_4d85_81db1e10100778ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 39 1 0 \"742b4521_62be_4217_a74147e86d9d1e13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_Home\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_Spin\" \"Begin\"\r\nfunction HiG_Spin( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_Spin\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 65 1 0 \"9e934c5a_38d1_4579_b7da4db543283c2a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_81C3FBB0403345519501D52D4B54855C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 66 1 0 \"2cf61d7f_ae32_4c88_ad7c2f096b5c1b1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::Spin(i_fltRotationalGs, i_floatAccelPercent, i_floatDecelPercent, o_stepReturn);\r\n// }} \"\"\r\n// {{ 67 1 0 \"7a18eb46_c522_43c6_8a2f65c78e29afa1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 68 1 0 \"9e934c5a_38d1_4579_b7da4db543283c2a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_81C3FBB0403345519501D52D4B54855C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 69 1 0 \"606ee3d0_0798_4626_8664a0d981c01c3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 70 1 0 \"310bc5cb_0cca_4983_ac232ebbb86619b5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 71 1 0 \"9e934c5a_38d1_4579_b7da4db543283c2a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_Spin\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_SpinAndWait\" \"Begin\"\r\nfunction HiG_SpinAndWait( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_SpinAndWait\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 73 1 0 \"cd49c442_6b35_4bfd_8ca5835565ea36a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3230B353B74B4f56A6EA6B16E024DFC7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 74 1 0 \"f0ff508d_e7f7_4b35_a7069cc26abab9f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::SpinAndWait(i_floatAccelPercent, i_floatDecelPercent, i_fltRotationalGs, i_floatTimeSeconds);\r\n// }} \"\"\r\n// {{ 75 1 0 \"8cc88c7d_f23c_4bcd_883481c6fa62403a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 76 1 0 \"cd49c442_6b35_4bfd_8ca5835565ea36a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3230B353B74B4f56A6EA6B16E024DFC7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 77 1 0 \"10e8b96c_ef7f_4dcb_8b002997a482663b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 78 1 0 \"d6dbf085_7f9e_42f7_aff0b7772c2a82df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 79 1 0 \"cd49c442_6b35_4bfd_8ca5835565ea36a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_SpinAndWait\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_CloseShield\" \"Begin\"\r\nfunction HiG_CloseShield( variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_CloseShield\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 9 1 0 \"fb4908c7_8a7f_4a1e_a1ab9b44a4c426ee\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_87BB4FE4C134476bBA167C0CB32CC929 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 10 1 0 \"5d91f578_49e3_4aa5_887b97109acb9333\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::CloseShield();\r\n// }} \"\"\r\n// {{ 11 1 0 \"d2b8005a_187f_4de0_b5dd5400afda3a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"fb4908c7_8a7f_4a1e_a1ab9b44a4c426ee\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_87BB4FE4C134476bBA167C0CB32CC929 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 13 1 0 \"97cda2f9_58c5_4ecf_a1159f4e34ecc0a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 14 1 0 \"b1eefad7_e0e3_4855_9ee77885a5a42958\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 15 1 0 \"fb4908c7_8a7f_4a1e_a1ab9b44a4c426ee\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_CloseShield\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_OpenShield\" \"Begin\"\r\nfunction HiG_OpenShield( variable i_intBucketIndex, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_OpenShield\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 49 1 0 \"8930ef0b_5d22_4758_a3d825af6744e89f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AD1B5CDD4C214ee69FDDED9F2C7200AD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 50 1 0 \"c269ef08_da66_4215_a2993ec0d6300727\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::OpenShield(i_intBucketIndex);\r\n// }} \"\"\r\n// {{ 51 1 0 \"5077f475_7e23_487e_b196d2a16e20a6d9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 52 1 0 \"8930ef0b_5d22_4758_a3d825af6744e89f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AD1B5CDD4C214ee69FDDED9F2C7200AD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 53 1 0 \"f1d80e31_891d_4a93_a55b473dc491ea87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 54 1 0 \"81e4888f_351b_4dcb_b5e510008c112691\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 55 1 0 \"8930ef0b_5d22_4758_a3d825af6744e89f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_OpenShield\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_OverrideSimulation\" \"Begin\"\r\nfunction HiG_OverrideSimulation( variable i_intBucketIndex, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_OverrideSimulation\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 57 1 0 \"111e2e56_0bc7_4f33_bef49b514c5f863a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4D073B76FF1D469397FFD2862084B997 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 58 1 0 \"e841af00_ac83_4464_a3c5da7d5e4f1d2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::OverrideSimulation(i_intBucketIndex);\r\n// }} \"\"\r\n// {{ 59 1 0 \"8ae44414_048a_41a0_885a303a0255fe91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 60 1 0 \"111e2e56_0bc7_4f33_bef49b514c5f863a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4D073B76FF1D469397FFD2862084B997 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 61 1 0 \"bd0b1aee_b98c_4d47_b5aa679d13300ddb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 62 1 0 \"ae437116_e672_44fb_8ccd227f00d05456\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 63 1 0 \"111e2e56_0bc7_4f33_bef49b514c5f863a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_OverrideSimulation\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_AbortSpin\" \"Begin\"\r\nfunction HiG_AbortSpin( variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_AbortSpin\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"64eee699_ddb9_474b_8bba8dfd71b20e54\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4049C9F506864463BE64AEC9D7EFCFDD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"8a731828_faea_4eb5_af52ba9a12dc71f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::AbortSpin();\r\n// }} \"\"\r\n// {{ 3 1 0 \"c8a1dd79_3716_4308_a095a18222dd6d60\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 4 1 0 \"64eee699_ddb9_474b_8bba8dfd71b20e54\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4049C9F506864463BE64AEC9D7EFCFDD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 5 1 0 \"4378acbd_dfb1_4f35_bb1ebe39afb0b5da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 6 1 0 \"56c31bb8_38df_4687_b0454c9a9c5fa13f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 7 1 0 \"64eee699_ddb9_474b_8bba8dfd71b20e54\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_AbortSpin\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HiG_IsSpinning\" \"Begin\"\r\nfunction HiG_IsSpinning( variable & o_blnIsSpinning, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HiG_IsSpinning\" \"InitLocals\"\r\no_blnIsSpinning = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 41 1 0 \"ef865f14_9ee2_4188_bd78d78ac30bd35c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_320F46D440E34e41BFFD229607C390D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 42 1 0 \"929bd795_ba3a_4316_8dde41d90e744132\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHiGCentrifugeLib::IsSpinning(o_blnIsSpinning);\r\n// }} \"\"\r\n// {{ 43 1 0 \"babf83e4_2010_4c55_9b5d2aa1c38b7524\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 44 1 0 \"ef865f14_9ee2_4188_bd78d78ac30bd35c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_320F46D440E34e41BFFD229607C390D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 45 1 0 \"62c24366_6439_4aab_bcd7b4f58c4c9c71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 46 1 0 \"037952c9_16ae_46ae_9740fabe839500f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 47 1 0 \"ef865f14_9ee2_4188_bd78d78ac30bd35c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HiG_IsSpinning\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-02-10 00:53$$checksum=e1d2993d$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_ODTC.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 1/28/2023 1:23:56 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_OEM_ODTC {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction Abort( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { }\r\nfunction CloseDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { }\r\nfunction Connect( variable i_strLocalIP, variable i_strDeviceIP, variable i_strDevicePort, variable i_blnSimulationMode, variable & o_intDeviceID, variable & o_strMessage, variable & o_stepReturn ) void { }\r\nfunction DownloadProtocol( variable i_intDeviceID, variable i_strLockID, variable i_strProtocolFile, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { }\r\nfunction EvaluateError( variable i_intErrorCode, variable & o_strErrorMessage, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction GetLastData( variable i_intDeviceID, variable i_strLockID, variable & o_strResult, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction Initialize( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { }\r\nfunction OpenDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction Terminate( variable i_intDeviceID, variable & o_strSiLAMessage, variable & o_stepReturn ) void { }\r\nfunction WaitForEndOfExecuteMethod( variable i_intDeviceID, variable i_intTimeOut, variable i_intRequestID, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=stefa$$valid=0$$time=2023-01-28 01:23$$checksum=2cf7909a$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_ODTC.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"Inheco ODTC\\\\Inheco ODTC.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_ODTC {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction Abort( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ;\r\nfunction CloseDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ;\r\nfunction Connect( variable i_strLocalIP, variable i_strDeviceIP, variable i_strDevicePort, variable i_blnSimulationMode, variable & o_intDeviceID, variable & o_strMessage, variable & o_stepReturn ) void ;\r\nfunction DownloadProtocol( variable i_intDeviceID, variable i_strLockID, variable i_strProtocolFile, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ;\r\nfunction EvaluateError( variable i_intErrorCode, variable & o_strErrorMessage, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction GetLastData( variable i_intDeviceID, variable i_strLockID, variable & o_strResult, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Initialize( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ;\r\nfunction OpenDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction Terminate( variable i_intDeviceID, variable & o_strSiLAMessage, variable & o_stepReturn ) void ;\r\nfunction WaitForEndOfExecuteMethod( variable i_intDeviceID, variable i_intTimeOut, variable i_intRequestID, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Abort\" \"Begin\"\r\nfunction Abort( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Abort\" \"InitLocals\"\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"792db77a_e0a2_43ed_a641c8791760ea31\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F9D5FD5CE0B048aa90976C5F1B9875B6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"4bf9a026_3315_4c06_95b1c755a18dd3a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::Abort(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 3 1 0 \"792db77a_e0a2_43ed_a641c8791760ea31\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F9D5FD5CE0B048aa90976C5F1B9875B6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"77373db2_975d_4c7c_9f5bb6044221ad1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 5 1 0 \"792db77a_e0a2_43ed_a641c8791760ea31\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Abort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Connect\" \"Begin\"\r\nfunction Connect( variable i_strLocalIP, variable i_strDeviceIP, variable i_strDevicePort, variable i_blnSimulationMode, variable & o_intDeviceID, variable & o_strMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Connect\" \"InitLocals\"\r\no_intDeviceID = 0;\r\no_strMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 13 1 0 \"2ce08ac5_7881_4789_b2fbe03a0e93e330\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_23FBC91941AF45aa97AE3BFF1A12A747 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 14 1 0 \"e4b6589e_f9fa_4bd6_abe4bfeacf86e236\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::Connect(i_strLocalIP, i_strDeviceIP, i_strDevicePort, i_blnSimulationMode, o_intDeviceID, o_strMessage);\r\n// }} \"\"\r\n// {{ 15 1 0 \"2ce08ac5_7881_4789_b2fbe03a0e93e330\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_23FBC91941AF45aa97AE3BFF1A12A747 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 16 1 0 \"2539720c_b5b4_4f2f_b85c858721beb7e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 17 1 0 \"2ce08ac5_7881_4789_b2fbe03a0e93e330\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Connect\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"Begin\"\r\nfunction Initialize( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Initialize\" \"InitLocals\"\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 49 1 0 \"a536d7eb_47fa_4de4_a1bd0b08c9399ad3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AD2FCC1AF1F2494cBE28A6971B5704FF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 50 1 0 \"670eca66_2a2b_4b65_a8f6c6b3d09fb02e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::Initialize(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 51 1 0 \"a536d7eb_47fa_4de4_a1bd0b08c9399ad3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AD2FCC1AF1F2494cBE28A6971B5704FF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 52 1 0 \"b0fe448a_d01c_4748_930679e1d35edafa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 53 1 0 \"a536d7eb_47fa_4de4_a1bd0b08c9399ad3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"CloseDoor\" \"Begin\"\r\nfunction CloseDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"CloseDoor\" \"InitLocals\"\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 7 1 0 \"ccbbdc64_5f24_4d88_8705aa00ec1f2f5d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2A3B0A0084BA4a07BE5BB42184B59B59 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 8 1 0 \"f2d869df_15ca_4c27_b848e7aa67020f76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::CloseDoor(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 9 1 0 \"ccbbdc64_5f24_4d88_8705aa00ec1f2f5d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2A3B0A0084BA4a07BE5BB42184B59B59 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 10 1 0 \"2f598319_adec_4c2c_84c1b2630bda8541\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 11 1 0 \"ccbbdc64_5f24_4d88_8705aa00ec1f2f5d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"CloseDoor\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"DownloadProtocol\" \"Begin\"\r\nfunction DownloadProtocol( variable i_intDeviceID, variable i_strLockID, variable i_strProtocolFile, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"DownloadProtocol\" \"InitLocals\"\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 19 1 0 \"6f3bbe5d_d435_4cae_bfeacbab2ca334b7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FFA51897300143aa9AA62FE43AA5F1BC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 20 1 0 \"eba94778_a195_4f45_94efd7e307c8fef3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::DownloadProtocol(i_intDeviceID, i_strLockID, i_strProtocolFile, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 21 1 0 \"6f3bbe5d_d435_4cae_bfeacbab2ca334b7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FFA51897300143aa9AA62FE43AA5F1BC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 22 1 0 \"621cf572_028b_4211_96fc4eb380c92247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 23 1 0 \"6f3bbe5d_d435_4cae_bfeacbab2ca334b7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"DownloadProtocol\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"EvaluateError\" \"Begin\"\r\nfunction EvaluateError( variable i_intErrorCode, variable & o_strErrorMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"EvaluateError\" \"InitLocals\"\r\no_strErrorMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 25 1 0 \"0fd8e6e6_20df_4c32_9f0b09cae9fb0b4c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_715B8D695925477083289A562024E954 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 26 1 0 \"fdafdec0_1668_48c1_9c1d93cdb5d4a10c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::EvaluateError(i_intErrorCode, o_strErrorMessage);\r\n// }} \"\"\r\n// {{ 27 1 0 \"0fd8e6e6_20df_4c32_9f0b09cae9fb0b4c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_715B8D695925477083289A562024E954 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 28 1 0 \"22b810db_9751_42e9_b37fa0b2fe6c100a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 29 1 0 \"0fd8e6e6_20df_4c32_9f0b09cae9fb0b4c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"EvaluateError\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ExecuteMethod\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"ExecuteMethod\" \"InitLocals\"\r\no_intDuration = 0;\r\no_intRequestID = 0;\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 31 1 0 \"0567c84c_492b_4576_8489198190403e7f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BDDACCD6036E42fbBA416D02B81DF4AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 32 1 0 \"0cecd05c_a4d5_4b00_ba71e0fc3e4c0925\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::ExecuteMethod(i_intDeviceID, i_strLockID, i_strMethodName, i_intPriority, o_intDuration, o_intRequestID, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 33 1 0 \"0567c84c_492b_4576_8489198190403e7f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BDDACCD6036E42fbBA416D02B81DF4AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"c1065cf3_9979_47d9_9efd70a2317dfaf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 35 1 0 \"0567c84c_492b_4576_8489198190403e7f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"ExecuteMethod\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetStatus\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"GetStatus\" \"InitLocals\"\r\no_strDeviceID = 0;\r\no_strState = 0;\r\no_blnLocked = 0;\r\no_strPMSId = 0;\r\no_strCurrentTime = 0;\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 43 1 0 \"5a4a9e28_0920_48d3_9b5e6118b2897902\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A6252706DB6E47f1A1C8F059DB2074DE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 44 1 0 \"9958f4eb_9c40_4439_83a0a066eebb4281\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::GetStatus(i_intDeviceID, o_strDeviceID, o_strState, o_blnLocked, o_strPMSId, o_strCurrentTime, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 45 1 0 \"5a4a9e28_0920_48d3_9b5e6118b2897902\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A6252706DB6E47f1A1C8F059DB2074DE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 46 1 0 \"f57cc1ce_0ea8_48f7_bc8b457254e795a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 47 1 0 \"5a4a9e28_0920_48d3_9b5e6118b2897902\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"GetStatus\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"OpenDoor\" \"Begin\"\r\nfunction OpenDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"OpenDoor\" \"InitLocals\"\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 55 1 0 \"72dfe05f_6413_49c3_92612d742857c02b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9FB694BC0C5C40ccB5BE71778E5D54C5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 56 1 0 \"ba3ff96f_7290_438c_baeb4e456b327d53\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::OpenDoor(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 57 1 0 \"72dfe05f_6413_49c3_92612d742857c02b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9FB694BC0C5C40ccB5BE71778E5D54C5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 58 1 0 \"32c0d228_4228_4f78_b24ed25bc5c87408\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 59 1 0 \"72dfe05f_6413_49c3_92612d742857c02b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"OpenDoor\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ReadActualTemperature\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"ReadActualTemperature\" \"InitLocals\"\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_arrfltActualTemperatures.SetSize( 0);\r\no_arrstrActualTemperatureNames.SetSize( 0);\r\no_strTime = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 61 1 0 \"a88c2dee_c5a5_4c09_83245ae59dc0256f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AD52608801714a2fBA7716430DEC1F40 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 62 1 0 \"834cc51a_7c7c_4b96_b6bbaa72ecf3abcb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::ReadActualTemperature(i_intDeviceID, i_strLockID, o_strTime, o_arrfltActualTemperatures, o_arrstrActualTemperatureNames, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 63 1 0 \"a88c2dee_c5a5_4c09_83245ae59dc0256f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AD52608801714a2fBA7716430DEC1F40 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 64 1 0 \"de489174_dc78_4f22_a7ebf0a2e3cb4aef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 65 1 0 \"a88c2dee_c5a5_4c09_83245ae59dc0256f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"ReadActualTemperature\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Reset\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Reset\" \"InitLocals\"\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 67 1 0 \"92ba2c66_baeb_4ae6_8f5e51aedd9f4640\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_88AB86F9A69A486386F4EDC51F4349A7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 68 1 0 \"3ea78baa_5233_459d_9d234aa98f81764a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::Reset(i_intDeviceID, i_blnSimulateOnDeviceBase, i_intTimeToWait, i_strLockID, i_strDeviceId, i_strPMSID, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 69 1 0 \"92ba2c66_baeb_4ae6_8f5e51aedd9f4640\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_88AB86F9A69A486386F4EDC51F4349A7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 70 1 0 \"306ee742_b8a3_48e8_8178464f6a97d399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 71 1 0 \"92ba2c66_baeb_4ae6_8f5e51aedd9f4640\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Reset\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StopMethod\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"StopMethod\" \"InitLocals\"\r\no_intSiLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 73 1 0 \"f31f04dd_6589_4f7f_8221bbc6fd05839c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1DC28FD6D1624beaB4CF88AA0BA02FB6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 74 1 0 \"90aa34a3_c25a_4349_8cb2237eb4c41de7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::StopMethod(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 75 1 0 \"f31f04dd_6589_4f7f_8221bbc6fd05839c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1DC28FD6D1624beaB4CF88AA0BA02FB6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 76 1 0 \"27414829_59ce_428a_aecc194bf4449dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 77 1 0 \"f31f04dd_6589_4f7f_8221bbc6fd05839c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"StopMethod\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Terminate\" \"Begin\"\r\nfunction Terminate( variable i_intDeviceID, variable & o_strSiLAMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Terminate\" \"InitLocals\"\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 79 1 0 \"87d1861b_2500_423c_ac9f4cadcad50c04\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E7AA714265774e9fB42460A25D0EB8FE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 80 1 0 \"94dd3d02_8444_4676_b889225ca42a7f82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::Terminate(i_intDeviceID, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 81 1 0 \"87d1861b_2500_423c_ac9f4cadcad50c04\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E7AA714265774e9fB42460A25D0EB8FE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"d7f0ccfa_1836_4068_87a4dcb994075e38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 83 1 0 \"87d1861b_2500_423c_ac9f4cadcad50c04\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"WaitForEndOfExecuteMethod\" \"Begin\"\r\nfunction WaitForEndOfExecuteMethod( variable i_intDeviceID, variable i_intTimeOut, variable i_intRequestID, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"WaitForEndOfExecuteMethod\" \"InitLocals\"\r\no_intSilLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 85 1 0 \"5c0f134b_aaf9_41ae_a1ba66f3035a7416\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_074C9EA54DAD4530AA6998C876739917 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 86 1 0 \"a888f241_2619_4927_bbe9a7c6260f3cfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Standard::WaitForEndOfExecuteMethod(i_intDeviceID, i_intTimeOut, i_intRequestID, o_intSilLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 87 1 0 \"5c0f134b_aaf9_41ae_a1ba66f3035a7416\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_074C9EA54DAD4530AA6998C876739917 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 88 1 0 \"1c2a9d5f_43f6_4bdd_94f45b469994e3c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 89 1 0 \"5c0f134b_aaf9_41ae_a1ba66f3035a7416\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"WaitForEndOfExecuteMethod\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"GetLastData\" \"Begin\"\r\nfunction GetLastData( variable i_intDeviceID, variable i_strLockID, variable & o_strResult, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable o_intDuration;\r\nprivate variable i_strMethodName;\r\nprivate variable o_intSiLAReturnValue;\r\nprivate variable o_intRequestID;\r\nprivate variable i_intPriority;\r\n// {{ 5 \"GetLastData\" \"InitLocals\"\r\no_strResult = 0;\r\no_intSilLAReturnValue = 0;\r\no_strSiLAMessage = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 37 1 0 \"f0d3a404_31c8_4e0d_b86a28bcab4fa26d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F06C130812434646BAC6E0ECB8CE1903 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 38 1 0 \"d12c5a41_25da_4821_9028342fa5721a15\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Inheco_ODTC::Advanced::GetLastData(i_intDeviceID, i_strLockID, o_strResult, o_intSiLAReturnValue, o_strSiLAMessage);\r\n// }} \"\"\r\n// {{ 39 1 0 \"f0d3a404_31c8_4e0d_b86a28bcab4fa26d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F06C130812434646BAC6E0ECB8CE1903 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"298ff522_cdf2_47bd_86c3f4af33f6a5eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 41 1 0 \"f0d3a404_31c8_4e0d_b86a28bcab4fa26d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"GetLastData\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-01-28 01:23$$checksum=9437437f$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_Test.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\nglobal device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable fanSpeed;\r\nvariable persistant;\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 73 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 74 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 75 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 79 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 80 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 81 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 82 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 83 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 86 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 87 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 88 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 89 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 90 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 91 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 92 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 96 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 97 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 98 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 100 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 111 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 112 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 113 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 115 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 116 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 117 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 118 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 124 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 125 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 126 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 127 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 128 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 129 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 132 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 133 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 134 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 135 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 136 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 138 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 139 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 140 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 141 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 142 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 143 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 144 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 145 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 147 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 148 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 149 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 150 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 151 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 152 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 155 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 156 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 157 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 159 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 160 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 161 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 162 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 163 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 164 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 165 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 166 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 169 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 170 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 171 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 174 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 177 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 178 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 179 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 183 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 184 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 185 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 186 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 187 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 189 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 190 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 191 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 192 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 200 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 201 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 203 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 204 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 205 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 207 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 216 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 217 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 219 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 221 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 222 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 223 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 225 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 226 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 227 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 228 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 236 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 237 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 239 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 240 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 244 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 245 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 246 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 248 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 249 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 250 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 251 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 252 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 253 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 254 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 255 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 256 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 258 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 259 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 260 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 261 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 262 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 265 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 266 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 268 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 269 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 270 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 271 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 272 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 273 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 274 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 275 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 276 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 277 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 278 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 279 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 280 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 281 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 282 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 283 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 286 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 287 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 288 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 289 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 294 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 295 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 296 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 298 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 299 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 301 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 302 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 303 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 304 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 305 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 306 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 307 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 308 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 309 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 310 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 311 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 312 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 313 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 316 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 317 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 319 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 320 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 321 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 322 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 324 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 325 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 326 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 327 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"27439ab7_df5a_4e1b_99b64e6c9fd0d9f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 330 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 331 1 0 \"e2da0756_7cea_44e7_963442343f3c0732\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 332 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 333 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 335 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 336 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 337 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 338 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 339 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 340 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 341 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 344 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 345 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 348 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 351 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 352 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 353 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 354 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 355 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 356 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 357 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 358 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 359 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 360 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 361 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 362 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 363 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 364 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 365 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 366 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 367 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 368 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 370 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 372 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 373 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 375 1 0 \"e411727d_3702_4640_8cb2d7ab8b58a300\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 376 1 0 \"ed119e90_c1cf_47e9_882c9179c7675524\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 377 1 0 \"006e4737_2b28_4b29_88cabf15c00d0b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 378 1 0 \"7424658f_9b27_4ef0_96837fa8add4c1ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 379 1 0 \"18dba370_9751_4c10_938c0dcc1f09476a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"ba1314c5_bdbb_4947_b8ee11ecc5c9306e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"2de0b12d_07d0_4e02_aeb0adc84a286d4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 382 1 0 \"62251128_9c16_4b76_a74221e3e5485ec4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 383 1 0 \"991ef31e_cf56_46cb_a1b5023d16177201\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 384 1 0 \"a7e77649_9eb2_4bbe_8d4df91d28ca2833\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 385 1 0 \"bce9279a_be9d_4a51_b382d782fe953b4f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 386 1 0 \"cae1eeb4_415a_4ca2_9cbdc8fbd7bcb5ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 387 1 0 \"47122b9f_c6d0_4a2d_aab3313da595b6db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 388 1 0 \"b3579536_edb4_4221_babfa43071cf483f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 389 1 0 \"4a408dec_c225_49ad_bf9a34fc001001a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 390 1 0 \"254c5a0f_44da_4098_b535a89623fde4e9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"ce8d1267_fa97_4dc5_a35fdb48eed4af6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 392 1 0 \"267e45b6_811f_46eb_a5cf5dcb26fa4ab0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"40e3aef8_bb0d_49d2_be4badbbed382613\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 394 1 0 \"83550ea0_852b_4084_b34f7fcfd03b6bdf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 395 1 0 \"48212cee_a3fa_4708_951f45d7135865bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 396 1 0 \"7424658f_9b27_4ef0_96837fa8add4c1ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 397 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 398 1 0 \"fbc3301f_ce0a_48d5_ad28d0de566e8968\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 399 1 0 \"a6a66731_2fea_4358_8cc6545cbb29217a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 400 1 0 \"ff2e3d36_c066_4d66_b6acbb2d01d07322\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 401 1 0 \"a6a66731_2fea_4358_8cc6545cbb29217a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 402 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 403 1 0 \"40ff9454_596f_42b1_a566d8ee6f7e392c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 404 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 405 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 406 1 0 \"905809a6_70ea_4397_b8baecc2ca9a1bd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 407 1 0 \"a70a035b_d0bc_4cc3_917340dffbf2ee6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 408 1 0 \"3f92b115_b29a_4772_955189aa840c37db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 409 1 0 \"a70a035b_d0bc_4cc3_917340dffbf2ee6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 410 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 411 1 0 \"ca37a475_a69e_4367_aae015a113535d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 412 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 413 1 0 \"6767b91d_ea7b_4619_b57b512927b0cb6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"034d46bd_e017_4e49_bda2a918b966a9ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"2167695b_833d_4537_b1ca621cd9cb254f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 416 1 0 \"006e4737_2b28_4b29_88cabf15c00d0b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 417 1 0 \"ed119e90_c1cf_47e9_882c9179c7675524\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 418 1 0 \"2d45fcde_698f_4b1e_85c2b355d05ece3f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 419 1 0 \"664c8ad8_1978_406c_ba006c21ee6cdc2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 420 1 0 \"8dc2ff24_58d0_4fb9_b4476261c7ec9f73\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 421 1 0 \"4b09b616_7ad2_4d2f_a3f51c49956f7d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"784d4df8_3b6e_41d3_ac01d0b30128d63d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"ce22c98b_cefd_44e1_a21f17817fa26757\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 424 1 0 \"8dc2ff24_58d0_4fb9_b4476261c7ec9f73\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 425 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 426 1 0 \"19bdcb09_5067_4650_a51d59790ea58358\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 427 1 0 \"6bb5085c_63ec_4166_b16d4b088bf17a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"bbcdaabe_ca2a_4ec9_9c13e083f812412a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 429 1 0 \"6bb5085c_63ec_4166_b16d4b088bf17a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 430 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 431 1 0 \"69b92e0b_ba29_42dc_a6d5ea83701df138\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 432 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 433 1 0 \"4f9e972e_7acd_45bc_9ed8d7ec3835b42b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 434 1 0 \"57844fa2_0bdc_4ba5_aea223c87eb45a0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 435 1 0 \"cf9a830f_2fb4_44b1_8226f2041b55c305\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 436 1 0 \"664c8ad8_1978_406c_ba006c21ee6cdc2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 437 1 0 \"2d45fcde_698f_4b1e_85c2b355d05ece3f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 438 1 0 \"9d132be9_3327_43f0_861eab191b312efe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 439 1 0 \"f6cc8299_2f28_46a6_9bb97037e5dc466a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 440 1 0 \"ea361219_5a73_449b_9e9f28937269d164\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 441 1 0 \"9271e4c5_3af5_416a_b4ff109847510419\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 442 1 0 \"56a04f09_338f_4736_aca6e9c2d81e2c66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 443 1 0 \"1e90c36e_9422_4cbb_8894ee0ca1ecb7a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"2fb72d08_217e_46b5_974400449189f377\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"83dd7d6c_87dd_4660_8113302408cde86f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"3619d2e6_ca56_4e64_93bc2c4e763b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 447 1 0 \"60a67018_c240_43a5_9f44311bc1e98746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 448 1 0 \"c33ebbef_42a4_46fd_9a8469f9e411c897\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 449 1 0 \"20603c7b_d59a_4c57_96ee9752927ff64f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 450 1 0 \"1e3f75b9_3592_485c_8b2d352f72a3c437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 451 1 0 \"ea361219_5a73_449b_9e9f28937269d164\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 452 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 453 1 0 \"768ae6ad_e584_4b00_8ded5be49db3ac78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e9be51d0_8991_4d2b_8f1e4353bb247c8c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 455 1 0 \"2bdfa4de_1f49_4935_801ba5f52847fdc3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 456 1 0 \"e9be51d0_8991_4d2b_8f1e4353bb247c8c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 457 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"8ad7936f_b4fc_4d56_b2a69c2117a3e2c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 459 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 461 1 0 \"ae513bfa_0e69_4286_982d555c61b04bea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 462 1 0 \"d58b1c9a_619d_4564_b7013ae9300a62c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 463 1 0 \"c6f18361_c2d4_497e_b3568731fe7f72c5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 464 1 0 \"d58b1c9a_619d_4564_b7013ae9300a62c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 465 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 466 1 0 \"a1ed641c_3701_495f_ab89e05bf92c5b2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 467 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 468 1 0 \"f6d60a86_5450_40d3_be3b7f2c660e2fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 469 1 0 \"4805700b_6f6f_426a_9bcbf4176c6fb71f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 470 1 0 \"74998056_c8c5_4618_88757b8da6932071\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 471 1 0 \"f6cc8299_2f28_46a6_9bb97037e5dc466a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 472 1 0 \"9d132be9_3327_43f0_861eab191b312efe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 473 1 0 \"3625fde9_51e1_4bb2_84181491a737c26b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"82f46916_6725_423b_bde46572a3389992\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 475 1 0 \"bfcf1a15_a297_4990_80d9119c099d7671\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 476 1 0 \"c7a26fdd_6c33_4ae6_a90ef3acfdc7f489\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 477 1 0 \"bfcf1a15_a297_4990_80d9119c099d7671\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 478 1 0 \"34a065e0_018c_461b_87990a6c61147520\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"3c7ef19d_c34c_4a13_86e9e970b61a69e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"cb13151a_7bef_4779_99b9954f02aea276\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 481 1 0 \"82f46916_6725_423b_bde46572a3389992\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"3625fde9_51e1_4bb2_84181491a737c26b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"e411727d_3702_4640_8cb2d7ab8b58a300\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 484 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 485 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 486 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 487 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 488 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 490 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 491 1 0 \"4e026721_fd49_4127_87fda5791fa13eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 492 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 493 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 494 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 495 1 0 \"7066bb37_8c48_474d_8f467cf1f1e06a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 496 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 497 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 498 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 499 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 500 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 501 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 502 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 503 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 504 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 505 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 506 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 507 1 0 \"7f473860_0be7_4dc2_87423136869dd829\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 508 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 509 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 511 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 512 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 513 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 516 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 517 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 518 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 519 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 520 1 0 \"53df6909_1d0e_4001_ac674452fec957bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 521 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 522 1 0 \"85d76321_871e_4d0e_bb460b7513742e62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 525 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 526 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 527 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 528 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 529 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 530 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 531 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 532 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 533 1 0 \"6ba4b834_521a_46da_9ceb8ced08da95f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 534 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 535 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 536 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 537 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 541 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 542 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 543 1 0 \"20e2b3e5_8664_4809_9bcf626c89196333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 544 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 545 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 546 1 0 \"38e3e61d_a654_46f5_87f53cf7dfc09446\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 547 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 548 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 549 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 551 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 552 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 553 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 554 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 555 1 0 \"d92781d1_27c2_48fb_acfd9cb32428e910\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 556 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 557 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 558 1 0 \"19daab0c_59b0_4af8_a070bee39acf20c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 559 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 560 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 561 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 563 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 564 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 565 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 566 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 567 1 0 \"df61bf49_7625_493f_ad06bbdbb36b494a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 568 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 569 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 570 1 0 \"accda6cd_138b_411c_bf3af9b152e986c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 571 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 572 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 573 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 574 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 575 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 576 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 577 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 578 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 579 1 0 \"8d513473_33ad_47dc_a8c3ed9799195b58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 580 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 581 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 582 1 0 \"ee004b75_f488_428e_99b02212bd478984\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 583 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 584 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 585 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 586 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 587 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 588 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 589 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 590 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 591 1 0 \"4f9610c2_a783_4586_b1725e8904e476cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 592 1 0 \"eea3f2ce_93c1_4efd_be90b89d775a6867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 593 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 594 1 0 \"ad6b8668_d455_40f9_9e64eac973c2db0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 595 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 596 1 0 \"81e3038e_a3ea_4252_a09b14cd3de477a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 597 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 598 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 599 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 600 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 601 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 602 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 603 1 0 \"a54c8c75_1172_46d3_a61e71fe7fea812d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 604 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 605 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 606 1 0 \"e9f473e4_b341_4e28_8c5c444235409181\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 607 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 608 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 609 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 610 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 611 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 612 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 613 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 614 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 615 1 0 \"19a32be3_7476_425d_a82433aead4637cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 616 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 617 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 618 1 0 \"81e1a27f_16e2_44ed_b7cd3b11ac866a97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 619 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 620 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 621 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 622 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 623 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 624 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 625 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 628 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 629 1 0 \"84b0a5f3_5e82_4770_81998131d1071a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 630 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 631 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 632 1 0 \"f46c286b_9141_4717_ac23994f8defc186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 633 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 634 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 635 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 636 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 637 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 638 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 639 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 641 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 642 1 0 \"a9029174_cbad_4f9c_9ca65c3b9497d605\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 643 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 644 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 645 1 0 \"bb948751_9e18_4aa8_b86a3dd67208967f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 646 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 647 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 648 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 649 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 650 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 651 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 652 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 655 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 656 1 0 \"d7ecab6c_533b_4d98_97e3fd144551f6d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 657 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 658 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 659 1 0 \"96075a25_a9b4_48ec_b53a90612b9d42a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 660 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 661 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 662 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 663 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 664 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 666 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 667 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 668 1 0 \"c8de89fe_7a53_4c03_bbe8ba85302b57ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 669 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 670 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 671 1 0 \"b9ad26f0_da3e_44e9_a29e1fa4b10f92f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 672 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 673 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 674 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 675 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 676 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 677 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 678 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 682 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 683 1 0 \"aecc8a3f_302a_4fd4_85780994769765dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 684 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 685 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 686 1 0 \"8a17da2c_6b74_4513_a05e482acef68552\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 687 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 688 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 689 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 690 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 691 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 692 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 693 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 694 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 695 1 0 \"96a3924c_7b8c_441f_b05115a7adf0396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 696 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 697 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 698 1 0 \"29acd4b5_13fb_40fe_bc6d971aa6f115a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 699 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 700 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 701 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 702 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 703 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 706 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 707 1 0 \"18981818_de5f_4fd3_b704a074fd37c9d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 708 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 709 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 710 1 0 \"6fa8ea83_c7bd_4b3e_81768063f8126364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 711 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 712 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 713 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 716 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 717 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 719 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 720 1 0 \"84efe41c_f9b0_4304_896c8b308bb07e76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 721 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 722 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 723 1 0 \"367927ae_ba00_4d5a_b9d8f5f9b3d208c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 724 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 725 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 726 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 727 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 728 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 729 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 730 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 732 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 733 1 0 \"7e6d8299_fab6_4435_8adf36d59ca04c7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 734 1 0 \"5fe75151_d308_441e_a049e85f45ca3966\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n// }} \"\"\r\n// {{ 735 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 736 1 0 \"64e95a28_a6b6_4e1b_825867f05118aebc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 737 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 738 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 739 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 740 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 741 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 742 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 743 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 746 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 747 1 0 \"08abdac2_e330_47c9_9b80d99dd0338c3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 748 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 749 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 750 1 0 \"a26bca7d_b38c_4413_b61d3da3fdfb077b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 751 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 752 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 753 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 754 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 755 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 756 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 757 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 760 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 761 1 0 \"0e03f515_b847_4dfd_8aa52f8b5f1135cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 762 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 763 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 764 1 0 \"e7b29c37_b63e_40fe_a3663d4eb8c7dc93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 765 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 766 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 767 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 768 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 769 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 770 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 771 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 772 1 0 \"7ca275a0_4aed_4b67_9535646b2074ebaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 773 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 774 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 775 1 0 \"e87b7e6f_2610_44dd_b7d0262ac681e308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 776 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 777 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 778 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 779 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 782 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 783 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 784 1 0 \"d02dc65a_05f9_4938_90df6cee1381d4dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 785 1 0 \"75688e3b_5ed1_45d1_a4d8344ca19c3fd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 786 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 787 1 0 \"b5ede424_b7f1_4369_8610d54e626df620\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 788 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 789 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 795 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 796 1 0 \"e22c8ca0_6e3f_454b_8628dd4417a6fd78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 797 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 798 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 799 1 0 \"c8c0c20e_b866_451e_9ecd69fdb0b0ed14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 800 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 801 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 802 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 803 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 805 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 806 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 807 1 0 \"e2f732a1_e433_4ab6_b3bdac9a4ca5bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 808 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 809 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 810 1 0 \"44edbcbd_1012_457f_848d11750abdfeb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 811 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 812 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 813 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 814 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 815 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 816 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 817 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 818 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 819 1 0 \"d5b14e5b_7d51_414e_af4dfb664c89e0c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 820 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 821 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 822 1 0 \"d60c31db_3b59_4498_8c47e4d2612443a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 823 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 824 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 830 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 831 1 0 \"ffa29d3e_8248_4266_80661c264964da5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 832 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 833 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 834 1 0 \"8a92c1f7_b614_4c09_b5ada70145cb0a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 835 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 836 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 837 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 838 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"67dcb608_2751_40ce_8b7e4a0603faf2dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"0f4bf0f0_7250_4df4_ad0fed77d22c4e31\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 842 1 0 \"8c27106a_1679_43a9_bf5395da0b449aab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HxFanSet\")\r\n{\r\n// }} \"\"\r\n// {{{ 843 1 0 \"b4ddaff1_bbb9_4494_8b1bbd7274a5f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"4c112600_c077_4cd1_97f013ebd6ba3dda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"persistant\"), persistant);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"3e95190c_440f_432c_aaa7fd3a2fb355a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"1e8f47c7_db5a_4fa4_aee7981e3b80ca64\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"fanSpeed\"), fanSpeed);\r\n// }} \"\"\r\n// {{ 847 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 848 1 0 \"126ff61c_704e_4f65_956d45a1882c292c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 849 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (simulate == 0)\r\n{\r\n// }} \"\"\r\n// {{ 850 1 0 \"13409ed4_ce79_4ef9_89deb34df8b6dd6a\" \"HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}\"\r\n{\r\n\tHxFan.Simulate(\"13409ed4_ce79_4ef9_89deb34df8b6dd6a\"); // Simulate\r\n}\r\n// }} \"\"\r\n// {{ 851 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 852 1 0 \"be3ae73e_7395_494a_9aed80ff221436dc\" \"HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}\"\r\n{\r\n\tHxFan.Simulate(\"be3ae73e_7395_494a_9aed80ff221436dc\"); // Simulate\r\n}\r\n// }} \"\"\r\n// {{ 853 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 854 1 0 \"ffdf7428_8946_4751_8ec8a7e00f208208\" \"HxFan:{419861B2-AD5B-4F2E-8025-46B0E593A024}\"\r\n{\r\n\tHxFan.SetComPort(\"ffdf7428_8946_4751_8ec8a7e00f208208\"); // SetComPort\r\n}\r\n// }} \"\"\r\n// {{ 855 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (persistant == 0)\r\n{\r\n// }} \"\"\r\n// {{ 856 1 0 \"d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39\" \"HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}\"\r\n{\r\n\tHxFan.SetContinuousMode(\"d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39\"); // SetContinuousMode\r\n}\r\n// }} \"\"\r\n// {{ 857 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 858 1 0 \"4914f72b_ecb0_4ab4_b458a744727e1642\" \"HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}\"\r\n{\r\n\tHxFan.SetContinuousMode(\"4914f72b_ecb0_4ab4_b458a744727e1642\"); // SetContinuousMode\r\n}\r\n// }} \"\"\r\n// {{ 859 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 860 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (fanSpeed == 0)\r\n{\r\n// }} \"\"\r\n// {{ 861 1 0 \"cef636fc_366e_46f7_9a8e1e25f716fa31\" \"HxFan:{1581574C-5388-4E48-BC78-FEE50E8DCE05}\"\r\n{\r\n\tHxFan.SetFanOff(\"cef636fc_366e_46f7_9a8e1e25f716fa31\"); // SetFanOff\r\n}\r\n// }} \"\"\r\n// {{ 862 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 863 1 0 \"f2bbd127_49ad_44c1_aa03eba6244b4cfc\" \"HxFan:{C3B1A3F9-BD5A-4660-842E-35830B4E80CA}\"\r\n{\r\n\tHxFan.SetFanSpeed(\"f2bbd127_49ad_44c1_aa03eba6244b4cfc\"); // SetFanSpeed\r\n}\r\n// }} \"\"\r\n// {{ 864 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 865 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AA4197CCBE624255B3C96A32C1894C99 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 866 1 0 \"8f5e46a2_b896_4dbc_a8eb3d63e6ee3d3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 867 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 868 1 0 \"0c83267c_5eb8_4165_96bd827e6dad924b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 869 1 0 \"8c27106a_1679_43a9_bf5395da0b449aab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 870 1 0 \"0f4bf0f0_7250_4df4_ad0fed77d22c4e31\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 871 1 0 \"67dcb608_2751_40ce_8b7e4a0603faf2dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 872 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 873 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 874 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 875 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 880 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 881 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 882 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 883 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 884 1 0 \"ab84bcc8_3da0_446b_84689087cc7a392f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 885 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 886 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 890 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 891 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 892 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 893 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 894 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 895 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 896 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 897 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 898 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Hamilton$$valid=0$$time=2019-03-18 18:17$$checksum=14112bd1$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_Test.res",
    "content": "#pragma once\r\nglobal resource Res_mlstar(1, 0xff0000, Translate(\"mlstar\"));\r\nglobal resource Res_HxFan(1, 0xff0000, Translate(\"HxFan\"));\r\nglobal resource Res_ML_STARlet(1, 0xff0000, Translate(\"ML_STARlet\"));\r\n\r\n\r\nfunction Res_mlstar_map(variable unit) variable { return(unit); }\r\nfunction Res_mlstar_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_HxFan_map(variable unit) variable { return(unit); }\r\nfunction Res_HxFan_rmap(variable address) variable { return(address); }\r\n\r\nfunction Res_ML_STARlet_map(variable unit) variable { return(unit); }\r\nfunction Res_ML_STARlet_rmap(variable address) variable { return(address); }\r\n\r\n\r\nnamespace ResourceUnit {\r\n     variable Res_mlstar;\r\n     variable Res_HxFan;\r\n     variable Res_ML_STARlet;\r\n}\r\n// $$author=Hamilton$$valid=0$$time=2024-09-06 14:25$$checksum=79960328$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_Test.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1014 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1017 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1018 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1019 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1021 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1022 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1023 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1024 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1025 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1026 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1027 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1028 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1029 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1030 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 989 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 991 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 998 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 936 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 937 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 938 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 939 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 940 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 941 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 942 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 944 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 945 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 947 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 948 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1008 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1009 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1010 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1011 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 910 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 911 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 913 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 914 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 915 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 916 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 917 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 919 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 920 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 921 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 922 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 923 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 924 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 925 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 926 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 927 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 928 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 929 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 930 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 931 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 932 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 933 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 934 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 900 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 901 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 902 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 903 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 905 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 906 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 907 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 908 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 951 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 952 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 954 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 955 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 957 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 959 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 960 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 961 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 963 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 964 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 965 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 966 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 967 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 968 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 969 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 970 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 971 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 972 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 973 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 974 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 975 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 976 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 977 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 978 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 979 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 980 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 981 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 982 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 983 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 984 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 985 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 986 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 987 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2019-03-18 18:17$$checksum=84c7831d$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_noFan.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module Controller.hs_\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"HSL_LiquidClassLib.hsl\" } \r\n namespace _Method { #include \"Inheco ODTC\\\\Inheco ODTC.hsl\" } \r\n namespace _Method { #include \"Labware Properties\\\\Labware_Property_Query.hs_\" } \r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"LiquidClassLibrary\\\\LiquidClassLibrary.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\nvariable DefaultTemperature;\r\nvariable MeasureTime;\r\nvariable MeasureHeight;\r\nvariable CalibrationValue1;\r\nvariable TempSoln1;\r\nvariable TempSoln2;\r\nvariable CalibrationValue2;\r\nvariable blnCalibrateDynamically;\r\nvariable CalibrationValueRef;\r\nvariable TempSolnRef;\r\nvariable Module;\r\nvariable Reference;\r\nvariable Calibration1;\r\nvariable Calibration2;\r\nsequence seqModule;\r\nsequence seqCalibration1;\r\nsequence seqCalibration2;\r\nsequence seqReference;\r\nvariable CalibrationTime;\r\nvariable arrCalibrationSlopeRatios[];\r\nvariable arrpHValuesReferenceSolution[];\r\nvariable CalibrationSlopeRatios;\r\nvariable pHValuesReferenceSolution;\r\nvariable BluetoothPort;\r\nvariable NumDryCycles;\r\nvariable NumWashCycles;\r\nvariable DryTime;\r\nvariable Gripper;\r\nsequence seqGripper;\r\nvariable WashPosition;\r\nsequence seqWashPosition;\r\nvariable DryPosition;\r\nsequence seqDryPosition;\r\nvariable DryCycles;\r\nvariable TransportChannel;\r\nvariable WashCycles;\r\nvariable arrpHValues[];\r\nvariable flt_pHValues;\r\nvariable seqMeasure;\r\nvariable ProbePattern;\r\nvariable seqMeasurement;\r\nvariable MeasurePositions;\r\nvariable hssErrCode;\r\nvariable LiqClassParameterName;\r\nvariable LiqClassParameterValue;\r\nvariable LiquidClassName;\r\nvariable message;\r\nvariable devicePort;\r\nvariable deviceIP;\r\nvariable localIP;\r\nvariable simulationMode;\r\nvariable deviceID;\r\nvariable lockID;\r\nvariable protocolFile;\r\nvariable methodName;\r\nvariable requestID;\r\nvariable priority;\r\nvariable duration;\r\nvariable timeout;\r\nvariable selector;\r\nvariable propertyValue;\r\nvariable propertyName;\r\nvariable labwareID;\r\nvariable TemplateLiquidClassName;\r\nvariable tipType;\r\nvariable o_CorrectionCurveNominal[];\r\nvariable o_CorrectionCurveCorrected[];\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_InitLibrary();\r\nLPQ::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"2c5f8910_21e4_4ad6_a93b69b1e4e47963\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"86069428_e80c_4904_8812aad4657c5212\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"8a7d692d_4f9d_4a02_b1f308aa4db9592e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"11b50fe6_feb2_4f6a_bc5d14c79a5c8cbb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"91101a35_f6be_4423_9ac694378c64b12f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 0);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"db79d279_0647_47f2_8df6f88553aa210e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 29 1 0 \"4cd00bbc_dde4_4147_a564ff5dbd7dbc35\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 30 1 0 \"86069428_e80c_4904_8812aad4657c5212\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 31 1 0 \"2c5f8910_21e4_4ad6_a93b69b1e4e47963\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"dfc80fbf_d3bf_402e_af38633bd83ca8e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"1d2e7142_4ab8_4e46_bdf7685dda576569\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ping\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"5bf99367_f465_4ed1_965c0d2abd185c1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 35 1 0 \"1d2e7142_4ab8_4e46_bdf7685dda576569\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 36 1 0 \"dfc80fbf_d3bf_402e_af38633bd83ca8e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 37 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 38 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 39 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 41 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 42 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 43 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 44 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 45 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 48 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 49 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 50 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 51 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 52 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 53 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 54 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 55 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 56 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 57 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 58 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 63 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 64 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 65 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 69 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 71 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 77 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 78 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 81 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 82 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 83 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 84 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 86 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 87 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 88 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 89 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 91 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 92 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 93 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 94 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 96 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 97 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 98 1 0 \"13471b0a_aeec_48e7_828bb64fc2b4ba8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid levels (mm):\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"eb89fc5d_3c00_460c_86323f9401b94b40\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid levels (mL):\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 100 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 101 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 102 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 103 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 104 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 105 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 106 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 124 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 126 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 127 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 128 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 129 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 130 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 132 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 133 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 134 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 135 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 137 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 138 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 139 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 140 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 141 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 142 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 143 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 144 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 145 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 147 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 148 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 149 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 150 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 151 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 152 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 155 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{{ 156 1 0 \"f12cebf8_f377_4e29_9178b685b8637482\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 157 1 0 \"53842548_1bc1_4cff_b1c7b9254000a8bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 158 1 0 \"40577bba_0459_4794_a91070bf46ef5b5f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 160 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 161 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 163 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 164 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 165 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 166 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 167 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 168 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 169 1 0 \"33f8a21f_6ff1_4901_9c57a2c3bfc58f55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{ 171 1 0 \"2e847c00_28a1_4b09_9ed5515ce7746892\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 172 1 0 \"f40baab8_ec2e_4552_91ddf539ae8bfda9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 173 1 0 \"2e65ae8a_e63b_4697_a998e72591e5c0c5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 174 1 0 \"7672ebc2_4687_4107_a4fd6c56c422373e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 177 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 178 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 179 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 180 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 181 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 183 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 184 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 185 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 186 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 187 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 188 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 190 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 191 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 192 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 193 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 196 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 197 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 198 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 199 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 200 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 201 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 202 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 203 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 207 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 215 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 216 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 217 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 219 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 220 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 221 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 222 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 230 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 231 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 232 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 233 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 234 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 235 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 238 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 239 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 244 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 251 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 252 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 253 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 254 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 255 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 257 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 258 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 261 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 262 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 265 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 266 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 268 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 269 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 270 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 274 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 275 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 276 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 277 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 278 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 280 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 281 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 282 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 283 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 284 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 286 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 287 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 288 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 289 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 290 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 291 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 292 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 293 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 294 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 295 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 296 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 297 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 298 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 299 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 300 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 301 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 302 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 303 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 307 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 308 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 309 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 310 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 311 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 313 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 317 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 318 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 319 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 321 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 322 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 324 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 325 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 326 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 327 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 329 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 330 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 331 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 332 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 333 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 335 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 336 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 337 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 338 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 339 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 340 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 341 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 342 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 343 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 344 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 345 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 348 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 349 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 350 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 351 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 352 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 353 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 354 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 356 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 357 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 358 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 359 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 360 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 361 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 362 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 365 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 366 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 367 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 368 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 370 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 371 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 372 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 373 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 374 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 375 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 379 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 380 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 381 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 382 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 383 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 384 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 385 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 386 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 387 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 388 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 389 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 390 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 392 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 394 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 395 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 396 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 397 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 398 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 399 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 400 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 401 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 402 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 403 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 404 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 405 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 406 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 407 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 408 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 409 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 410 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 411 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 412 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 416 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 417 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 418 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 419 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 420 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 421 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 422 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 423 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 426 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 427 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 428 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 429 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 430 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 431 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 432 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 433 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 434 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 435 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 436 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 437 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 438 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 439 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 440 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 441 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 442 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 443 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 444 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 445 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 446 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 447 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 448 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 449 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 450 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 451 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 452 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 453 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 454 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 455 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 456 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 457 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 458 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 459 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 460 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 461 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 462 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 463 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 464 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 465 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 466 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 467 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 468 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 470 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 471 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 472 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 473 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 474 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 475 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 476 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 477 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 480 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 481 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 482 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 484 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 485 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 486 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 487 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 488 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 490 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 491 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 492 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 493 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 494 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 495 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 496 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 497 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 498 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 499 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 500 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 501 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 502 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 503 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 505 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 506 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 507 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 508 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 509 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 510 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 511 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 512 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 513 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 514 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 515 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 516 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 518 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 519 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 520 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 521 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 522 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 525 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 526 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 527 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 528 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 529 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 530 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 531 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 532 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 533 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 535 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 536 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 537 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 538 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 540 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 541 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 542 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 543 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 548 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 549 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 551 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 552 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 553 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 554 1 0 \"a6d59995_3a30_4946_95b7dcf44c93cadd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"copyLiquidClass\")\r\n{\r\n// }} \"\"\r\n// {{{ 555 1 0 \"41d16181_0a85_4371_9ae49a51f5c69915\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"TemplateLiquidClass\"), TemplateLiquidClassName);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"779a8c47_ee6a_4c72_89654140941f787a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NewLiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{ 557 1 0 \"a93bead5_0f4a_4083_a5e817513285742a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_882F8F1E3A2F447c9FE7F12AEB05BF0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 558 1 0 \"cfb86e51_5d1c_4fe8_8810b86541625fc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLibrary::CopyLiquidClass(TemplateLiquidClassName, LiquidClassName);\r\n// }} \"\"\r\n// {{{ 559 1 0 \"0fac8714_36cf_47b9_b066043de7021ea6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLibrary::SetStateOriginalLiquid(LiquidClassName, 0);\r\n// }} \"\"\r\n// {{{ 560 1 0 \"dc932277_63ec_4be0_953e75a4baa49dc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLibrary::SetTadmMode(LiquidClassName, 1);\r\n// }} \"\"\r\n// {{ 561 1 0 \"7903d8fa_3f98_482b_9fb44edbd3d235fc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 562 1 0 \"a93bead5_0f4a_4083_a5e817513285742a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_882F8F1E3A2F447c9FE7F12AEB05BF0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 563 1 0 \"528f29aa_bc83_4e13_ab0f3bc6526d3a12\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 564 1 0 \"a93bead5_0f4a_4083_a5e817513285742a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 565 1 0 \"cde4b119_f65c_419c_a2599a95bffb28b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"63bf8781_1185_4c67_a95fc4396010439c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 567 1 0 \"a6d59995_3a30_4946_95b7dcf44c93cadd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 568 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setAspirateParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 569 1 0 \"d741f062_6b73_4365_ad9c8646a016138d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 570 1 0 \"86836193_1dcb_460e_8db2dda6b775abd9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 571 1 0 \"d94798d1_53c6_40de_b72c239404c94352\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 572 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 573 1 0 \"3f31be32_d184_4c20_a5127e5057f15149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"b75ad951_95b1_4114_864093345ffb2cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 575 1 0 \"a39ebf7f_8e12_47a6_aad54fd2890ba779\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 576 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E1EAD148F3254941A251DC272F774AB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 577 1 0 \"a14cc465_549a_4722_b3fb08ce2532a405\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 578 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 579 1 0 \"ec08039a_3b70_4854_894d57c13ffdc877\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 580 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 581 1 0 \"e9ac7022_fc3f_44ac_8d28a604227a3b1c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setDispenseParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 582 1 0 \"727ea790_c588_42b9_949801d8ebfe748a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 583 1 0 \"f681f66f_1f4f_4e6a_9954420280b6eab1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"59ff79d3_7b20_428d_a6f03bd61c3facc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 585 1 0 \"974491c1_043a_4905_8c29cf1701a05565\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_378C1B7A6F844a988D3A94047A45C979 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 586 1 0 \"2beb1d1d_1186_4f0d_a80275cbe08520fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"29652115_b77d_4b91_914ffcbb9cdcc21e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 588 1 0 \"52c4987a_feb1_4165_81763692ae2516b7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 589 1 0 \"974491c1_043a_4905_8c29cf1701a05565\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_378C1B7A6F844a988D3A94047A45C979 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 590 1 0 \"2eeb25d7_e592_4cb6_bc81cd0abc164d9f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 591 1 0 \"974491c1_043a_4905_8c29cf1701a05565\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 592 1 0 \"32d67fc0_3a9e_4528_9bcb1a5399c4707e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"f0192156_aca5_482d_bedd1ddeb7c7784e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 594 1 0 \"e9ac7022_fc3f_44ac_8d28a604227a3b1c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 595 1 0 \"a8b990cc_5893_46e5_9cc0f888fe39fae8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setTipType\")\r\n{\r\n// }} \"\"\r\n// {{{ 596 1 0 \"4aa7b9ce_fd73_4a55_9a3c704bfb4c443d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"2daab960_ba75_4c1e_94dea77f1c34330e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TipType\"), tipType);\r\n// }} \"\"\r\n// {{ 598 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 599 1 0 \"b471ff31_4fdd_4a9f_87431e5741a9b969\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 600 1 0 \"2a8e2856_535d_4806_bbe42ffb4cd0d2f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLibrary::SetLiquidClassTipType(LiquidClassName, tipType);\r\n// }} \"\"\r\n// {{ 601 1 0 \"28e95405_685a_4032_b361461ff897189f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 602 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3A18CA152B674dd3A42B81C4D45F719E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 603 1 0 \"c7174915_16fd_40d8_b94eac8999f4eab7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 604 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 605 1 0 \"d805e811_a796_44e9_93839b02b6d05f1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"da31069e_a165_4c2e_b95619cb57c4ae8a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 607 1 0 \"a8b990cc_5893_46e5_9cc0f888fe39fae8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 608 1 0 \"15824553_aa4e_4fcc_a2977b38faacf6bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setDispenseMode\")\r\n{\r\n// }} \"\"\r\n// {{{ 609 1 0 \"53fea63c_3332_43fe_8289429227ec0090\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 610 1 0 \"0595c7cc_b48b_4b94_8afdbfa04c5de730\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{ 611 1 0 \"6c80418a_3204_4d66_85ab76ffbc47616a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3E8EB1A8287A454aB98F789757170AA7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 612 1 0 \"77ba368e_204a_47b6_adf9b0029a775fd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 613 1 0 \"ced90b64_50ef_4921_971bc961bc61ca83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLibrary::SetLiquidClassDispenseMode(LiquidClassName, dispenseMode);\r\n// }} \"\"\r\n// {{ 614 1 0 \"ad07ca17_ee17_45de_8ed922b7ba5da46a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 615 1 0 \"6c80418a_3204_4d66_85ab76ffbc47616a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3E8EB1A8287A454aB98F789757170AA7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 616 1 0 \"7f31078d_254b_45ce_8e8a0640c9a5f542\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 617 1 0 \"6c80418a_3204_4d66_85ab76ffbc47616a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 618 1 0 \"0ed767ae_94e8_44b4_b195b90ced2f0a3b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 619 1 0 \"ab9ead1b_c4ea_4c3f_86734e292bf22f90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 620 1 0 \"15824553_aa4e_4fcc_a2977b38faacf6bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 621 1 0 \"6e13030b_52d4_46d9_8b97a18bfa928ceb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setCorrectionCurve\")\r\n{\r\n// }} \"\"\r\n// {{{ 622 1 0 \"acf6e2bc_4dd4_4df8_a5979c36e517d9a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{ 623 1 0 \"80a6e332_7817_4402_95ec1a52d3aeeadc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D2A2FEF9E80041369965564F6E773155 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 624 1 0 \"6f21f996_18ec_41c5_8e819c3ec7c94e51\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"c7459fcb_44b2_425b_95781b4a5efd8ee5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildCorrectionCurve(o_CorrectionCurveNominal, o_CorrectionCurveCorrected);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"d7541b18_c055_41bb_962867fe18557fc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLibrary::SetCorrectionCurve(LiquidClassName, o_CorrectionCurveNominal, o_CorrectionCurveCorrected);\r\n// }} \"\"\r\n// {{ 627 1 0 \"e1d079ad_fe86_4da4_85f19e2f495b5725\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 628 1 0 \"80a6e332_7817_4402_95ec1a52d3aeeadc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D2A2FEF9E80041369965564F6E773155 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 629 1 0 \"4c552221_44c7_4dc6_9b4873e90826b521\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 630 1 0 \"80a6e332_7817_4402_95ec1a52d3aeeadc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 631 1 0 \"e97b5df0_64fd_4af8_931944393d5ab474\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"28863a6d_6ab7_4fcb_8e6ce9e6de041625\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 633 1 0 \"6e13030b_52d4_46d9_8b97a18bfa928ceb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 634 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 635 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 637 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 638 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 641 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 646 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 647 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 648 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 649 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 650 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 657 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 658 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 659 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 660 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 661 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 662 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 663 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 664 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 665 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 666 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 667 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 668 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 669 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 670 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 671 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 672 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 673 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 674 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 675 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 676 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 677 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 678 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 679 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 683 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 684 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 685 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 686 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 687 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 691 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 692 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 693 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 694 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 695 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 696 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 697 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 702 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 703 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 704 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 705 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 706 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 707 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 713 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 715 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 716 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 717 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 718 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 719 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 724 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 725 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 727 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 728 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 729 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 730 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 731 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 734 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 735 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 736 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 737 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 738 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 739 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 740 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 746 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 747 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 749 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 750 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 751 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 752 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 753 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 755 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 759 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 760 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 761 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 762 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 763 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 764 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 767 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 768 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 769 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 770 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 771 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 772 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 773 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 774 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 775 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 778 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 779 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 782 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 783 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 801 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 802 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 803 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 805 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 806 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 809 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 810 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 811 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 813 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 817 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 818 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 819 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 820 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 821 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 825 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 827 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 828 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 829 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 830 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 831 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 832 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 833 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 838 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 839 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 840 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 842 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 843 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 848 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 849 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 850 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 852 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 856 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 857 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 858 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 859 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 860 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 861 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 867 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 868 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 869 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 870 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 871 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 873 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 875 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 876 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 877 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 878 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 879 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 880 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 881 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 882 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 883 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 884 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 885 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 886 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 887 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 888 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 889 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 890 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 891 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 893 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 894 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 895 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 896 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 897 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 898 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 899 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 900 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 903 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 904 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 905 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 906 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 907 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 908 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 909 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 910 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 911 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 913 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 915 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 916 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 917 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 918 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 919 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 920 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 922 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 925 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 926 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 927 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 928 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 929 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 930 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 931 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 936 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 937 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 938 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 939 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 940 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 941 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 944 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 945 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 946 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 947 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 948 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 949 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 950 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 951 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 952 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 953 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 954 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 955 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 956 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 957 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 958 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 959 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 960 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 961 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 962 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 963 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 964 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 965 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 966 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 967 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 968 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 969 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 971 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 972 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 973 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 974 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 975 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 976 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 977 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 978 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 979 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 980 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 982 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 983 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 984 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 985 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 986 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 987 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 988 1 0 \"6245a2d4_8148_417a_85b5d7c9ae63177a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 989 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 990 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 991 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 994 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 995 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 996 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 997 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 998 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1002 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1003 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1004 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 1005 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 1009 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1010 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1013 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1014 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 1015 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 1018 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1022 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1023 1 0 \"e85120d2_0b88_4b5e_b37e002128567cbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{ 1024 1 0 \"ebf344f2_dcf5_4c81_a4ae7067b2ec0190\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"391ca5a4_f7d3_4a99_86ff34fdacc1d77d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"06f8b4a9_d860_4c2d_af74b464bf671e7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"a917eb9f_2e44_4f0a_b1e4a15cdac90f9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), selector);\r\n// }} \"\"\r\n// {{ 1028 1 0 \"ebf344f2_dcf5_4c81_a4ae7067b2ec0190\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"b52b6101_b5e9_4481_b85bc7e38d8c077a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_GetTemperature(DeviceID, ControllerID, selector, temperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"79555af5_0e6e_48ed_b58b426b3fa726ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"9df523bc_abf1_4a4c_ace23a567d372ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, temperature, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1032 1 0 \"e85120d2_0b88_4b5e_b37e002128567cbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1033 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1034 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 1036 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1037 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1038 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1040 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1041 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1042 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1043 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 1044 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1046 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1048 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 1049 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1053 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1054 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 1055 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 1058 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1060 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1061 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1062 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1063 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1064 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1065 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 1069 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 1070 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 1072 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 1073 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1078 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1079 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1080 1 0 \"862dcce6_281b_41cb_8981fc71b8c79cb3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1081 1 0 \"cdfa237b_f8b7_4287_9e37b3d87736cb2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setLabwareProperty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"35e97b89_a76d_4606_81a9adb00f2d8bc5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LabwareID\"), labwareID);\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"1d6ae5e3_94d4_431b_ab796dee414a4d07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"PropertyName\"), propertyName);\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"cd182370_d62b_4ebc_8e3c35db68893b0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PropertyValue\"), propertyValue);\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"6a22db04_3931_442f_9761fe45ccbc1ed4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nLPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, labwareID, propertyName, propertyValue);\r\n// }} \"\"\r\n// {{ 1086 1 0 \"ce3ba160_7c18_40c8_9f0e30cc313e169c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"684cf29d_e747_4b62_a3edd2256644b3e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set labware ID\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"24751213_e6dc_41e6_845ee7ea4f47b569\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1089 1 0 \"cdfa237b_f8b7_4287_9e37b3d87736cb2c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1090 1 0 \"862dcce6_281b_41cb_8981fc71b8c79cb3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1091 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1092 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1093 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1109 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1110 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1111 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1112 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 1113 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1124 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1125 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1126 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1127 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1129 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1137 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1138 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1139 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1140 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1143 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1144 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1145 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1146 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1147 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1148 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1154 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1155 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1156 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1157 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1158 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1162 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1164 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1165 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1166 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1167 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1168 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1174 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1176 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1177 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1181 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1183 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1186 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1187 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1188 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1189 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1191 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1195 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1196 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1198 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1199 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1200 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1201 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1203 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1204 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1205 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1206 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1207 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1213 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1214 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1216 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1217 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1218 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1219 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1221 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1222 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1223 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1227 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1229 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1230 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1231 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1232 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1233 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1234 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1235 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1236 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1244 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1246 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1252 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1253 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1254 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1255 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1256 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1261 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1262 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1263 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1264 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1265 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1266 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1267 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1268 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1269 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1271 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1272 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1273 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1274 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1277 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1278 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1279 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1280 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1282 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1283 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1284 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1285 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1286 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1290 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1291 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1292 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1293 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1294 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1295 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1296 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1300 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1301 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1302 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1303 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1304 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1305 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1309 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1312 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1313 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1314 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1315 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1316 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1320 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1321 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1322 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1323 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1324 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1325 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1329 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1330 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1331 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1332 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1333 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1334 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1336 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1339 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1340 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1341 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1342 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1343 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1348 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1349 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1350 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1351 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1352 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1353 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1354 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1358 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1359 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1360 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1361 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1362 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1363 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1365 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1367 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1368 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1369 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1370 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1371 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1372 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1375 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1376 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1377 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1379 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1380 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1381 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1382 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1385 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1387 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1388 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1389 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1390 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1391 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1393 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1394 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1395 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1397 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1400 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1401 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1402 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1403 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1410 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1411 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1412 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1413 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1414 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1415 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1419 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1420 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1421 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1422 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1423 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1424 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1428 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1429 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1430 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1431 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1432 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1436 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1437 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1438 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1439 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1440 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1441 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1442 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"32d149fa_c238_4e8c_9c9bfe8ca03b39ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{ 1444 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1445 1 0 \"05f6e40b_f62a_4382_9b25ca234839aeb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID);\r\n// }} \"\"\r\n// {{ 1446 1 0 \"b8eff0c4_8a87_4d69_8b1fc22443527e58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1447 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_43ECC15F92874e8a8FCA2A90F3412255 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1448 1 0 \"a6315690_dcdc_4faf_9764f4edcccee401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1449 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1450 1 0 \"b152d230_641d_44fd_82876d10beb25ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"2178bb5d_1389_4bb3_92e038bed00ad7d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"0e8fa514_886c_42d7_a0fec5c2e0a40820\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1453 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1454 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1455 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1456 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_MeasureCycle\")\r\n{\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"e78c25fc_f856_4c7d_bb7f6056d2ae0e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"4c0064bb_0c23_4648_b57e5599878d63f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqMeasurement\"), seqMeasurement);\r\n// }} \"\"\r\n// {{ 1459 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (seqMeasurement == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"a11073f7_18e2_4097_baf006ed44e74081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MeasurePositions\"), MeasurePositions);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"47d49bd0_0457_440d_b1d654c85ac3c5db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(MeasurePositions, seq);\r\n// }} \"\"\r\n// {{ 1462 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"bbddeeab_2dc4_4931_900a5ec07aafe0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, seqMeasure, seq);\r\n// }} \"\"\r\n// {{ 1464 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"6b06d7c5_bf98_48d9_906ae705e4ce149b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"25fe4c02_a4e2_40cd_91289dc1c5c638b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProbePattern\"), ProbePattern);\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"02a9e02a_0596_4158_ac021180b0b5985c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1468 1 0 \"f8080019_d032_4f0c_9ef8429bde9ee7df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1469 1 0 \"83142ee1_d831_4ff1_a6734844fe789421\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues);\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"d4d4974a_23a2_43a2_851b478f0e7d24be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValues, flt_pHValues);\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"bde9c162_a4cf_40fa_a663c6b78e029610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"0a5c18e9_775d_4644_bdfcc536000642cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Measure Cycle\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"c1502c7b_2bd0_480c_a0ce6887e02484bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1474 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1475 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1476 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1477 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"d9d7f7cb_394b_40ea_a037e16efc8e063c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"0e65e09c_0178_403b_9eca768c440a479f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"fedae8c3_0c9d_426f_a30e8fdfa1d2b056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"ad8456a9_07be_4852_b2bab182e7e17dae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration1\"), Calibration1);\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"8b591ca2_adf8_4248_b5ac1fb2a84c21aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1);\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"0f28a5e9_278c_4290_aa9ee416f829755a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration2\"), Calibration2);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"b57e28d3_0011_4657_bbceba83ca97b89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2);\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"101798f0_c18a_411a_b29295d972cc9a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqReference\"), Reference);\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"1c415c8d_660d_41fe_a81fcfd6d8836038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Reference, seqReference);\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"20510ceb_5840_48de_842a1b657fa7706d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationTime\"), CalibrationTime);\r\n// }} \"\"\r\n// {{{ 1488 1 0 \"ecd67637_3e8e_4d22_89b67b39e05342fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1489 1 0 \"148b5d07_b84d_4786_b1d0f9d5e5837491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"938c1584_a353_4f03_ba14c9f33cc2c6a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue1\"), CalibrationValue1);\r\n// }} \"\"\r\n// {{{ 1491 1 0 \"cda9048b_fe59_4db2_a1d08550795038f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue2\"), CalibrationValue2);\r\n// }} \"\"\r\n// {{{ 1492 1 0 \"5d669238_eb69_4080_8b789139b291be94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValueRef\"), CalibrationValueRef);\r\n// }} \"\"\r\n// {{{ 1493 1 0 \"4c7c9992_c2e0_445a_bee9cd7dd086e585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln1\"), TempSoln1);\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"9574a12d_456e_4fd6_9b51714dd88b4a1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln2\"), TempSoln2);\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"211f81c7_5561_45ce_8cf247e76fb0f65e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSolnRef\"), TempSolnRef);\r\n// }} \"\"\r\n// {{{ 1496 1 0 \"f812ea75_ed49_4a04_b4ab3dd67f1206ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrateDynamically\"), blnCalibrateDynamically);\r\n// }} \"\"\r\n// {{{ 1497 1 0 \"178d95b8_13db_4493_a08cdaec1348c0e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1498 1 0 \"d4d33c2d_2aee_4a51_ad36cb953d687c83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{ 1499 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F882CD31309846e3BD30959B418AB982 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 1501 1 0 \"18724129_2443_4271_a6316a42ef334c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1502 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F882CD31309846e3BD30959B418AB982 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1503 1 0 \"d6c65e91_f6e8_47d9_aaf1810ffab1ffac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1504 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1505 1 0 \"7375b9e4_01c3_49a1_810fb42149ed0eea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios);\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"31ba6e89_258d_4deb_97352544c3b5c45c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution);\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"924064ec_85ac_4b42_a5ff3eb8a6a5342f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"65bd0fe0_0efb_4335_b118b89e61b948ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1509 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1510 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1511 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1512 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Dry\")\r\n{\r\n// }} \"\"\r\n// {{{ 1513 1 0 \"0f0bf03e_4950_40e7_b2899f9cabb79cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1514 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1515 1 0 \"1885a8d9_8082_44ab_bfd7a217170187db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1516 1 0 \"33dddcad_4489_4f31_8b4fea145ebbe77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1517 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D19CA5AD1071407b84599779A41B51EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1518 1 0 \"d8f5d052_f205_4e22_8998e2d0d12790ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1519 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1520 1 0 \"5521c0c7_c64b_4b49_9036f9bf6a7a83d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1521 1 0 \"9e7864cd_a0bd_4ec6_8f733a2e7ab773bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1522 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1523 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1524 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1525 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"39b0590c_dc8d_4eb3_b8bfcab65235f494\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1527 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1528 1 0 \"beaffdda_e52a_4f79_95659f907946752f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1529 1 0 \"58aab21a_307b_403b_980186d201a7c6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1530 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1531 1 0 \"4cd2a753_2761_4d3c_9cd93c15fa19a47b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1532 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"0af219f8_e5bc_4b14_a95fd7e3f2ccb712\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"7b44ca9e_e6d7_4793_8f937fc518ecc41c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1535 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1536 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1537 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1538 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SetParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"7e5e111c_21f5_4c0b_9dd06d15aee64431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqGripper\"), Gripper);\r\n// }} \"\"\r\n// {{{ 1540 1 0 \"8417ab78_f4b8_40aa_890f3b14e4204667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Gripper, seqGripper);\r\n// }} \"\"\r\n// {{{ 1541 1 0 \"f43d4896_c19a_4cc9_ad3c75f925788b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqWashPosition\"), WashPosition);\r\n// }} \"\"\r\n// {{{ 1542 1 0 \"ffcc2479_6c91_4038_bab179b027d4b03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition);\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"b731d1c6_30bc_4003_ba19e062e82293db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqDryPosition\"), DryPosition);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"a68ddb6b_780a_46ed_bcaa350f92f649fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"020f31e6_e3ef_48f4_af0e175e60e00159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TransportChannel\"), TransportChannel);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"1561e8c8_acaa_438f_9c7c57a5c196556f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WashCycles\"), WashCycles);\r\n// }} \"\"\r\n// {{{ 1547 1 0 \"7e0a9629_dce6_4ed9_81b854f636408ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryCycles\"), DryCycles);\r\n// }} \"\"\r\n// {{{ 1548 1 0 \"dacc3c17_6358_44f0_8ac4ad1fa0ae08b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{{ 1549 1 0 \"f86b35ff_9db7_4845_a3cfb7d04c520c3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime);\r\n// }} \"\"\r\n// {{{ 1550 1 0 \"ce0a2f35_ae58_4695_85513126a4acb791\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1551 1 0 \"da69f49c_299d_435d_9d95dc10f7303ce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1552 1 0 \"bd10bc62_2ace_436a_a68acec8c1f9287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1553 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1554 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1555 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1556 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Park\")\r\n{\r\n// }} \"\"\r\n// {{{ 1557 1 0 \"90471824_8967_4383_a722d29bfaf60113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"f6bbc2b1_c86d_4f64_abc12d3b740b1d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"9341ffae_9e0c_43f9_b3ccedcfbadb07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"9e0a230a_fdb5_4eec_9cf3127779adb1d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"8aacb0d9_a918_426b_9717bd2febc1f74a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"15592ad5_5751_4636_8a513ee3f27c7f11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1563 1 0 \"6222366b_a5bf_4c73_8685a3cdebb4ff4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1564 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1565 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1566 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1567 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Pickup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"347e06d8_9db7_4279_bf224e9ecf4299e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"2b0761dc_e201_46b3_a590b52421cd8ee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"76631bc5_230e_4e20_87bf493887cddd0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1571 1 0 \"2d3aba8b_cc4b_4be1_a83c30695fcf6dbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1572 1 0 \"7879f9b5_2eea_4059_8e4bef3213e8decd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1573 1 0 \"cb1582a1_3f8c_44fd_910a5f08dbe32b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1574 1 0 \"a15fc9df_322f_4ce1_83228c63669e6b16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1575 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1576 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1577 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1578 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_ExtendedLog\")\r\n{\r\n// }} \"\"\r\n// {{{ 1579 1 0 \"d101eee8_9402_428a_aa576d531ed959c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 1580 1 0 \"bc849548_9009_43ec_bb1b6c81c32132f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1581 1 0 \"0a496202_0f55_4f40_8b391260caa236ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1582 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1583 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1584 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1585 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_LoadLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{ 1586 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B416552A06404ef48774D74059C2B182 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1587 1 0 \"154ec087_ea2e_4381_bb2e261ffad534f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1588 1 0 \"79340e9d_69d5_4911_b4601ae4754a16c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1589 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B416552A06404ef48774D74059C2B182 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1590 1 0 \"46420553_d90f_4dfa_b42c9d86856c288a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1591 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"54b468e0_3ea0_4e83_9ffae95722c5cb9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBluetoothPort = StrIStr(BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1593 1 0 \"7bde202f_1c1b_4911_9f600ac6e1a5b57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumWashCycles = StrIStr(NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1594 1 0 \"c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumDryCycles = StrIStr(NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1595 1 0 \"027378a7_4549_4d3f_b8d33aa4980be4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDryTime = StrIStr(DryTime);\r\n// }} \"\"\r\n// {{{ 1596 1 0 \"fbda7cdb_3ed9_4a5c_907ce60556e0129b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1597 1 0 \"e454face_7eee_4c6e_a61e221c0e5d7fb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1598 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1599 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1600 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1601 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SaveLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{{ 1602 1 0 \"aca4c717_812e_46f9_8eb5989a720adb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BluetoothPort\"), BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1603 1 0 \"1198edc8_1ec9_479d_a4e7fd71ed50cf8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumWashCycles\"), NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1604 1 0 \"be958699_818e_43db_a757a67b7b54572a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumDryCycles\"), NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"8751a2c3_e6ee_43bf_b21f5458aebf179a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{ 1606 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4973F03471994119A9F699CE6459CBFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"1480ff51_54ea_4c38_befa457e23966aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1608 1 0 \"0e101f68_bc36_42fe_882a3951ef193f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1609 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4973F03471994119A9F699CE6459CBFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1610 1 0 \"2e180d98_e746_4b84_b623b4d0e8e198fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1611 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1612 1 0 \"cb24f9db_18c1_41af_b6f16900826be7be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"87c5e5f6_77ee_4519_879fdceaf21c1d7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1614 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1615 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1616 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1617 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"bdbbc648_a9fa_468f_b5d4d390115575eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"1a74d7ad_0c35_454c_b161ede32468b2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"c67afa78_dd60_451b_b2e31a2e6540f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1621 1 0 \"2424dca1_971a_40f8_97b763c253560a2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1622 1 0 \"8def2ba5_b51c_4e0c_b6ebfdd346a5beec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1623 1 0 \"684d328d_214e_4955_bfe9ff0627b7f8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1624 1 0 \"e6ec0fc8_d42c_4413_b2c2719c3cd18dc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1625 1 0 \"6f2273c4_1e1e_46f3_9ea6544d76383266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1626 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1627 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1628 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1629 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1630 1 0 \"b43cf782_b210_48c8_933f4cdfae78d050\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1631 1 0 \"efbfd98d_c15d_4ac9_b94250ab4361a8b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID);\r\n// }} \"\"\r\n// {{{ 1632 1 0 \"c918ad91_e33e_4f2f_9c6577fd8c93aaf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"2021a914_67dd_495e_9a9e4cf4438df298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"8d8842cd_e3b4_4397_92ad69593e9f7796\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1635 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1636 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1637 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1638 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1639 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1640 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1641 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1642 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1646 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1647 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1648 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1649 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1650 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1651 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1652 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1653 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1654 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1655 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1656 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1661 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1662 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1663 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1664 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1665 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1666 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1667 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1669 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1670 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1673 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1674 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1675 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1676 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1677 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1678 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1679 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1680 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1681 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1682 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1683 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1684 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1685 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1686 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1687 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1688 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1689 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1690 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1691 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1692 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1693 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1694 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1696 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1697 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1698 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1699 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1700 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1701 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1702 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1705 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1706 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1707 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1708 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1709 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1710 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1711 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1712 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1713 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1714 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1715 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1716 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1717 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1718 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1719 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1720 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1721 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1722 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1723 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1724 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1725 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1726 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1727 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1728 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1729 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1730 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1731 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1732 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1733 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1734 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1735 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1736 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1737 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1738 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1739 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1740 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1741 1 0 \"c26c8847_2c11_4945_b054d8f2644e86b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1742 1 0 \"15e9c2d6_5589_445c_9f6f0639817f59b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1743 1 0 \"4c9cdca8_b426_45ef_aac6503a2895cea6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Connect\")\r\n{\r\n// }} \"\"\r\n// {{{ 1744 1 0 \"b42a901b_1182_460c_9c50f6feb592bf36\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LocalIP\"), localIP);\r\n// }} \"\"\r\n// {{{ 1745 1 0 \"93955616_9078_4907_9f8c9666af0e54e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceIP\"), deviceIP);\r\n// }} \"\"\r\n// {{{ 1746 1 0 \"a7149c18_ab34_4de7_8359308e12993da7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DevicePort\"), devicePort);\r\n// }} \"\"\r\n// {{{ 1747 1 0 \"cdfe7d40_7ac9_4156_91b6f234d09ee95c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), simulationMode);\r\n// }} \"\"\r\n// {{ 1748 1 0 \"16a5008b_ee09_42df_8fda21d366f4b13b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_899365F43C1F496cBBFC0A7ABFD23EBB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1749 1 0 \"fcf1fc09_b503_4de9_80348961669da4e2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1750 1 0 \"ceb0e582_bf24_4b4e_be8b44c0ccb88bf6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::Connect(localIP, deviceIP, devicePort, simulationMode, deviceID, message);\r\n// }} \"\"\r\n// {{ 1751 1 0 \"02eb480a_a818_44a3_86f19d7f370ae6a2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1752 1 0 \"16a5008b_ee09_42df_8fda21d366f4b13b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_899365F43C1F496cBBFC0A7ABFD23EBB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1753 1 0 \"16a5008b_ee09_42df_8fda21d366f4b13b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1754 1 0 \"71896feb_20fb_4557_875b7ccdb2b0626b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1755 1 0 \"6dda3734_9d4e_4aaf_bd808789af42ea73\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceID, message, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1756 1 0 \"4c9cdca8_b426_45ef_aac6503a2895cea6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1757 1 0 \"15e9c2d6_5589_445c_9f6f0639817f59b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1758 1 0 \"04472016_2334_4ac7_b97384c436334c47\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1759 1 0 \"8b7534f2_d374_4cb4_b2f29ea0ad511934\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_CloseDoor\")\r\n{\r\n// }} \"\"\r\n// {{{ 1760 1 0 \"2b34c636_9773_4402_8fd0d80e8e59a895\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{{ 1761 1 0 \"4c2c8841_c6aa_4251_8a5ed1779b1765d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), lockID);\r\n// }} \"\"\r\n// {{{ 1762 1 0 \"2e056cb3_6e45_472f_941192498b7c31ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DevicePort\"), devicePort);\r\n// }} \"\"\r\n// {{ 1763 1 0 \"75c4377e_b6a8_46a7_86cfdaf26b6d776c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98A35EFCD37248b1B012607FF3DA1CE8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1764 1 0 \"cf693124_ada7_4227_83a65fd796aad473\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1765 1 0 \"c528ef40_ed5d_44ea_872548cf37945e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::CloseDoor(deviceID, lockID, o_stepReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1766 1 0 \"65a3b89e_1b63_4b73_95bf01dc264bc0a1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1767 1 0 \"75c4377e_b6a8_46a7_86cfdaf26b6d776c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98A35EFCD37248b1B012607FF3DA1CE8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1768 1 0 \"75c4377e_b6a8_46a7_86cfdaf26b6d776c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1769 1 0 \"27f20475_7330_474c_af5ce01884a6fc00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1770 1 0 \"b0b8a63a_0d26_4c0c_9a317c11debf8a6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1771 1 0 \"8b7534f2_d374_4cb4_b2f29ea0ad511934\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1772 1 0 \"04472016_2334_4ac7_b97384c436334c47\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1773 1 0 \"6d35cd31_d0bc_4ce0_86bac129341398b0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1774 1 0 \"c407c1df_8f79_4d9d_aa67755a7c84d84c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1775 1 0 \"75ee861f_97cf_48bc_9b87bb7c11d4c405\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{ 1776 1 0 \"8ddb835b_1ada_4fae_8e1f8635e5672098\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E967888677E5436bBCE1B93EA5815BA3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1777 1 0 \"52f57dc1_aea4_42ba_9972baa4a1952ecd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1778 1 0 \"aa96f9e7_7224_4444_abbc61e11b44980e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::GetStatus(deviceID, Translate(\"\"), o_stepReturn2, Translate(\"\"), Translate(\"\"), o_stepReturn3, o_stepReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1779 1 0 \"e1dbe03c_f61a_40c4_9a59b445bf81afa8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1780 1 0 \"8ddb835b_1ada_4fae_8e1f8635e5672098\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E967888677E5436bBCE1B93EA5815BA3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1781 1 0 \"8ddb835b_1ada_4fae_8e1f8635e5672098\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 1782 1 0 \"6179b193_b408_4db4_962fd10c6bd43051\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1783 1 0 \"4af3db01_1de8_44f5_8eb16f75ddf0a00e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1784 1 0 \"95a24b5f_90a1_4ced_a0835d6ab7d0a43e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1785 1 0 \"c407c1df_8f79_4d9d_aa67755a7c84d84c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1786 1 0 \"6d35cd31_d0bc_4ce0_86bac129341398b0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1787 1 0 \"cea27f6a_6202_4806_aaa7a3b17e1cceeb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1788 1 0 \"b9692b2d_afef_4eee_8cd6bbaa2b22ef70\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Abort\")\r\n{\r\n// }} \"\"\r\n// {{{ 1789 1 0 \"fe9456e9_c14d_4105_8de2fe0dfb6fff4f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{{ 1790 1 0 \"d015b775_0696_4d61_8f3fa2cdf262edab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), lockID);\r\n// }} \"\"\r\n// {{{ 1791 1 0 \"1c2fb381_3517_466b_a24f2ea84b44de18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DevicePort\"), devicePort);\r\n// }} \"\"\r\n// {{ 1792 1 0 \"2fa27ab3_6c09_446c_b3d6c1286dd1e907\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_24DE853C218046a3ADA1DA3BBD18A629 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1793 1 0 \"a5ff8727_9afc_4c1e_bb8ab84d41a7ded5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1794 1 0 \"d0941df9_fe1a_442a_960b6bc41fca1ac1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::Abort(deviceID, lockID, o_stepReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1795 1 0 \"195b0a55_8f81_46fe_97a9dc143ebaf469\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1796 1 0 \"2fa27ab3_6c09_446c_b3d6c1286dd1e907\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_24DE853C218046a3ADA1DA3BBD18A629 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1797 1 0 \"2fa27ab3_6c09_446c_b3d6c1286dd1e907\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1798 1 0 \"799f239d_180d_4bb6_a6a878f5a861068e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1799 1 0 \"57049679_e6cf_4764_83c6956cef384cbc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceID, message, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1800 1 0 \"b9692b2d_afef_4eee_8cd6bbaa2b22ef70\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1801 1 0 \"cea27f6a_6202_4806_aaa7a3b17e1cceeb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1802 1 0 \"bbde16fa_1d73_4832_bc7d7ad46c5244e1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1803 1 0 \"fcfa3eda_6490_4777_b35dae50357b68a0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_DownloadProtocol\")\r\n{\r\n// }} \"\"\r\n// {{{ 1804 1 0 \"81250e91_432e_48d0_ab518c1bb5da8ecd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{{ 1805 1 0 \"7ebb5dd7_0052_43af_882b3dd5a2415142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), lockID);\r\n// }} \"\"\r\n// {{{ 1806 1 0 \"47317177_f36d_4638_b78eeccf729a96f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProtocolFile\"), protocolFile);\r\n// }} \"\"\r\n// {{ 1807 1 0 \"c689daaa_a96b_4d66_9730c91434e7094a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E1B6F7DA02D44acbAD4BE64ABC64E74D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1808 1 0 \"36ba761f_bdb0_45a3_b8c0badbf5dd96ab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1809 1 0 \"c80101c4_af9e_463a_896d4303268934e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::DownloadProtocol(deviceID, lockID, protocolFile, o_stepReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1810 1 0 \"6d95f288_f880_4c39_8f61befd840cb10a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1811 1 0 \"c689daaa_a96b_4d66_9730c91434e7094a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E1B6F7DA02D44acbAD4BE64ABC64E74D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1812 1 0 \"c689daaa_a96b_4d66_9730c91434e7094a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1813 1 0 \"ecba2d11_3115_4243_a64074fe06076e96\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1814 1 0 \"2e8d85c2_1553_4fde_adb81ef825d9b32d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1815 1 0 \"fcfa3eda_6490_4777_b35dae50357b68a0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1816 1 0 \"bbde16fa_1d73_4832_bc7d7ad46c5244e1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1817 1 0 \"55c0c900_6871_4573_82b9938e7baa42e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1818 1 0 \"d32734e6_9c91_415a_a6a53eaba40eaa3e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_ExecuteMethod\")\r\n{\r\n// }} \"\"\r\n// {{{ 1819 1 0 \"eff63a19_b029_49f2_8bab1ac42ef51240\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{{ 1820 1 0 \"8b13f168_f552_49a4_9dbdc74ba5fed2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), lockID);\r\n// }} \"\"\r\n// {{{ 1821 1 0 \"6256e4a8_da6b_43bf_bed0f1ae7c6f7d3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MethodName\"), methodName);\r\n// }} \"\"\r\n// {{{ 1822 1 0 \"d4b98bee_2d76_4522_b708589248c0e654\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Priority\"), priority);\r\n// }} \"\"\r\n// {{ 1823 1 0 \"99db9a23_1346_4161_8e1c68f410771f0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D2AE7D31B0424f57A9167DDBE2CF30D1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1824 1 0 \"ed849a54_f9a3_40fe_8071436c107f85eb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1825 1 0 \"f2fdd280_d272_4cc9_96022f3df788eda1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::ExecuteMethod(deviceID, lockID, methodName, priority, duration, requestID, o_stepReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1826 1 0 \"976fe86d_5a1f_4b91_8ae22c592dd1f8f0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1827 1 0 \"99db9a23_1346_4161_8e1c68f410771f0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D2AE7D31B0424f57A9167DDBE2CF30D1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1828 1 0 \"99db9a23_1346_4161_8e1c68f410771f0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1829 1 0 \"34c90e26_86ba_42a0_842eee0f57553ef3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1830 1 0 \"ce59df92_f001_4c34_9d4fec898620ca47\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, duration, requestID, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1831 1 0 \"d32734e6_9c91_415a_a6a53eaba40eaa3e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1832 1 0 \"55c0c900_6871_4573_82b9938e7baa42e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1833 1 0 \"36d44529_a5b7_4ea6_9eb0fa9881323be7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1834 1 0 \"6f1c7e60_6f87_4777_90d9ecc57da20644\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1835 1 0 \"06173b0e_46f2_4b81_809d6b2b7a2e6673\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{{ 1836 1 0 \"383a416b_7a79_4dff_a03b4bc9ea311d78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), lockID);\r\n// }} \"\"\r\n// {{ 1837 1 0 \"88994d6c_edc7_4102_9b6542e221104600\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_20CB63FD66CF4ea5929D0350D6A5F774 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1838 1 0 \"11e4ed95_77ed_4e7a_aa715b052c88af28\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1839 1 0 \"bdd41290_5cbf_4006_b5dd96522fb78859\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::Initialize(deviceID, lockID, o_stepReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1840 1 0 \"307ddff7_ff15_414a_8c98b6f1ef0a2b5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1841 1 0 \"88994d6c_edc7_4102_9b6542e221104600\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_20CB63FD66CF4ea5929D0350D6A5F774 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1842 1 0 \"62f6fd20_e942_452f_85b06d21964397b5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1843 1 0 \"88994d6c_edc7_4102_9b6542e221104600\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1844 1 0 \"a9f5bbb4_1ebb_406f_89a9d1624652977a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1845 1 0 \"54bc78fc_f428_4878_97860b3d1007a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1846 1 0 \"6f1c7e60_6f87_4777_90d9ecc57da20644\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1847 1 0 \"36d44529_a5b7_4ea6_9eb0fa9881323be7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1848 1 0 \"cb500df2_c626_4a9d_9cb3b4a581e64d6a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1849 1 0 \"843d5e01_a8ab_46f2_8bfb55bfc6367cbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_OpenDoor\")\r\n{\r\n// }} \"\"\r\n// {{{ 1850 1 0 \"386d4caa_b6c4_408d_bc453580f02089da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{{ 1851 1 0 \"6f57bef3_9f3e_4b1f_b3a07faf26ee3110\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), lockID);\r\n// }} \"\"\r\n// {{ 1852 1 0 \"10debdc1_8d3e_49c7_be0762aaf26c32cc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6BA09E86AB664b3e892F98E97F2910C8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1853 1 0 \"acbc3c46_2bc2_4204_b855623e16b37413\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1854 1 0 \"6a0b242c_0e86_4d72_a842ff1b3299fde0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::OpenDoor(deviceID, lockID, o_stepReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1855 1 0 \"849a0ec5_4ea1_4f2f_8e0ae11e6f9cb7a3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1856 1 0 \"10debdc1_8d3e_49c7_be0762aaf26c32cc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6BA09E86AB664b3e892F98E97F2910C8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1857 1 0 \"10debdc1_8d3e_49c7_be0762aaf26c32cc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1858 1 0 \"0f2e84c5_c429_44c0_9abf7635046a446b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1859 1 0 \"5d779f95_30c2_4634_bdb5901251385c11\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1860 1 0 \"843d5e01_a8ab_46f2_8bfb55bfc6367cbc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1861 1 0 \"cb500df2_c626_4a9d_9cb3b4a581e64d6a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1862 1 0 \"ef7a40e3_cee8_4bd1_91324713f293a4d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1863 1 0 \"888492c1_f818_41ee_96a72bdf8798cccc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_waitForEndOfExecuteMethod\")\r\n{\r\n// }} \"\"\r\n// {{{ 1864 1 0 \"44085f26_5b2c_4ac3_84928ea19e338ba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{{ 1865 1 0 \"fb95387c_64e3_4af6_b4d7b0b69c02d39f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), lockID);\r\n// }} \"\"\r\n// {{{ 1866 1 0 \"0c4f27e4_11bf_4141_be4a9cb76b52e80e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"RequestID\"), requestID);\r\n// }} \"\"\r\n// {{ 1867 1 0 \"921d4699_674f_47e7_97356ef90119416a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_435E9CD35EF249e58B828482589769E0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1868 1 0 \"c3b4e9f5_667f_400f_8ab8a2510bd2b7e6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1869 1 0 \"a9a7b100_d412_43b7_972bc694b82d959c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::WaitForEndOfExecuteMethod(deviceID, timeout, requestID, o_stepReturn, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1870 1 0 \"f477df33_3c5f_485f_bc61d59b6e5b70f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1871 1 0 \"921d4699_674f_47e7_97356ef90119416a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_435E9CD35EF249e58B828482589769E0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1872 1 0 \"921d4699_674f_47e7_97356ef90119416a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1873 1 0 \"f4e4a5b7_bf7b_4f09_bc8e5f91513aaa4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1874 1 0 \"a2582389_f9ce_451d_98578dfe7fafc84c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1875 1 0 \"888492c1_f818_41ee_96a72bdf8798cccc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1876 1 0 \"ef7a40e3_cee8_4bd1_91324713f293a4d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1877 1 0 \"ef118189_0ff9_4311_a6023bd61fe99ee4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1878 1 0 \"a736de0b_14af_4235_ae8b4dc5057cfa8c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1879 1 0 \"9bcea113_3491_4ed6_a4111f93ec051e08\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), deviceID);\r\n// }} \"\"\r\n// {{ 1880 1 0 \"bc255b34_a0e8_4572_8e19d2a9c3d18d0d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6B01BAACC0FD48dfB8840D0FFC335B09 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1881 1 0 \"59941e76_2cb5_4271_be469625a426a9a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1882 1 0 \"be13102d_c514_4197_be7cac46ae712db2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInheco_ODTC::Standard::Terminate(deviceID, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1883 1 0 \"3ff1d1af_ac7d_4a89_b7edb4e5f4da6887\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1884 1 0 \"bc255b34_a0e8_4572_8e19d2a9c3d18d0d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6B01BAACC0FD48dfB8840D0FFC335B09 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1885 1 0 \"bc255b34_a0e8_4572_8e19d2a9c3d18d0d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 1886 1 0 \"49e428d8_f2ec_4313_a2543b0266b3cfe7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1887 1 0 \"475b54aa_4e8e_4c09_8360f969f25fc22f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1888 1 0 \"9d3b7346_0019_4f6d_a29a3a79b8984553\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1889 1 0 \"a736de0b_14af_4235_ae8b4dc5057cfa8c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1890 1 0 \"ef118189_0ff9_4311_a6023bd61fe99ee4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1891 1 0 \"c26c8847_2c11_4945_b054d8f2644e86b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1892 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1893 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1894 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1895 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1896 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1897 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1898 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1899 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1900 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1901 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1902 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1903 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1904 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1905 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1906 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1907 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1908 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1909 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1910 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1911 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1912 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1913 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1914 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1915 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1916 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1917 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1918 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1919 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1920 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1921 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1922 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1923 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1924 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1925 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1926 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1927 1 0 \"6957e247_4f64_4971_8d90658c99adbb87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{{ 1928 1 0 \"34cc8f4a_c310_4eb7_b936c63f8401c523\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1929 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1930 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1931 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1932 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1933 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1934 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1935 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1936 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1937 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1938 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1939 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1940 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1941 1 0 \"dd7d7b00_1e95_4e45_97a425f03a18ab04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{{ 1942 1 0 \"0021495f_472e_4321_9d1e81e8fbd43f0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1943 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1944 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1945 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1946 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1947 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1948 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1949 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1950 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1951 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1952 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1953 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1954 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1955 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1956 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1957 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1958 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1959 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1960 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1961 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1962 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1963 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1964 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1965 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1966 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1967 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1968 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1969 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1970 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1971 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1972 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1973 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1974 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1975 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1976 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1977 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1978 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1979 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1980 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1981 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1982 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1983 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1984 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1985 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1986 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1987 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1988 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1989 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1990 1 0 \"c0166b97_c0ae_417b_85c90c5ef42e5fc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1991 1 0 \"73777071_2fd2_42b0_a7545c6a6a372194\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1992 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1993 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1994 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1995 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1996 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1997 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1998 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1999 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 2000 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2001 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2002 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2003 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 2004 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2005 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2006 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2007 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 2008 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2009 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2010 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2011 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 2012 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2013 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2014 1 0 \"ecd6d069_96d7_4a72_9ffc0df77e7a1512\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 2015 1 0 \"b05c868f_c25f_47a9_b533b13ab05fc962\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2016 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2017 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2018 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2019 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2020 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2021 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2022 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2023 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 2024 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2025 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2026 1 0 \"c99aa2b7_d8a6_4cee_a1fa1d731ef77d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 2027 1 0 \"f2861b4d_28d2_4ee3_8b7c7763312067ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2028 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2029 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2030 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2031 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2032 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2033 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2034 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2035 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 2036 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 2037 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 2038 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 2039 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2040 1 0 \"a650efc1_423b_4f75_9f0da083ee44ae9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{{ 2041 1 0 \"e1ef0806_8a47_46c1_972c9ed9e299eaad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2042 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2043 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2044 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2045 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2046 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2047 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2048 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2049 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 2050 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 2051 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 2052 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2053 1 0 \"b417b8ce_5117_450e_93a9a6243c6011d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{{ 2054 1 0 \"ed43cecb_7012_4fb9_a89d129de09bdadb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2055 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2056 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2057 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2058 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2059 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2060 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2061 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2062 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 2063 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 2064 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 2065 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 2066 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2067 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2068 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 2069 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2070 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2071 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2072 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2073 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2074 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2075 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2076 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 2077 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 2078 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2079 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2080 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 2081 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2082 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2083 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2084 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2085 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2086 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2087 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2088 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 2089 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 2090 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 2091 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 2092 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 2093 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2094 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2095 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 2096 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2097 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2098 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2099 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2100 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2101 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2102 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2103 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 2104 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 2105 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2106 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2107 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 2108 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2109 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2110 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2111 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2112 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2113 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2114 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2115 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 2116 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 2117 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2118 1 0 \"73be1c30_4bfe_4a0f_aa560c8df5b091fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{{ 2119 1 0 \"39ac643d_0305_4ec6_87fc196efe3d76f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2120 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2121 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2122 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2123 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2124 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2125 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2126 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2127 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 2129 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 2130 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2131 1 0 \"272104de_2e64_4a32_a88407b030437361\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 2132 1 0 \"1362f66b_0efd_4eb5_935e84586a427637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2133 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2134 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2135 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2136 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2137 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2138 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2139 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2140 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 2141 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 2142 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 2143 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2144 1 0 \"cf1b40c4_5e9a_48bf_9390f6eab212315f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{{ 2145 1 0 \"2e7a5304_5ce9_4afb_93a4a8276dc86d74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2146 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2147 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2148 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2149 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2150 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2151 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2152 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2153 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 2154 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 2155 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 2156 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 2157 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"4b29337f_c67c_4ecf_a205f4b70e60271a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 2159 1 0 \"40aad8b7_f42e_4ad1_b0f0c033ec666548\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2160 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2161 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2162 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2164 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2165 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2166 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2167 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 2169 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 2170 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 2171 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2172 1 0 \"dfb61f9c_103b_4c42_83e0779ea05cb180\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{{ 2173 1 0 \"e4829da3_d8b6_453f_a2be82213303e9f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2174 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2175 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2176 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2177 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2178 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2179 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2180 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2181 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 2182 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2183 1 0 \"ee3103a2_d7f3_488f_b7a95e2f2b56770a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{{ 2184 1 0 \"a782313c_e15b_4340_bdda314f926e24cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2185 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2186 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2187 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2188 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2189 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2190 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2191 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2192 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 2193 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2194 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2195 1 0 \"b5ecca33_fef4_4c14_9cf702c924839607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2196 1 0 \"49e72e72_8e49_49fd_8d212a6ccff1d2fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2197 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2198 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2199 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2200 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2201 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2202 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2203 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2204 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2205 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2206 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2207 1 0 \"d186dde8_c684_4550_a023d9023ff021d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2208 1 0 \"af12e4a9_cc0f_4a82_b9593d2b489756a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2209 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2210 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2211 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2212 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2213 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2214 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2215 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2216 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 2217 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2218 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2219 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 2220 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2221 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2222 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2223 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2224 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2225 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2226 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2227 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 2228 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2229 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2230 1 0 \"3b2abeec_38f4_46a6_a30b0d0126280ebc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2231 1 0 \"c4e94e42_8405_438b_921cfe4ba73e9976\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2232 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2233 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2234 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2235 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2236 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2237 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2238 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2239 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2240 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2241 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2242 1 0 \"5aa60a5a_db92_42e0_b3277a41cacb5336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2243 1 0 \"49cd8e9e_91bd_468c_aec57e3af40280fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2244 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2245 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2246 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2247 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2248 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2249 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2250 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2251 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2252 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2253 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2254 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2255 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2256 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2257 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2258 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2259 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary();\r\nLPQ::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Stefan.Golas$$valid=0$$time=2025-10-16 10:24$$checksum=9da6c249$$length=089$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_noFan.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildCorrectionCurve( variable & o_correctionCurveNominalArray[], variable & o_correctionCurveCorrectedArray[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2442 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2402 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2403 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2404 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2405 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2406 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2407 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2423 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2424 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2425 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2426 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2427 1 0 \"73659ac2_f808_47cc_89196cc3adc8efbf\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\ntimer1.SetTimerViewName(\"\");\r\nif( 0 == timer1.SetTimer(0.05) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2428 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2429 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2430 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2431 1 0 \"9be29cc7_ad35_4b87_9e95d31796325e12\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2432 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2433 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2434 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2435 1 0 \"2a039f02_4c13_4f72_9ba40a3121b31262\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2436 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2437 1 0 \"d221d799_ee85_4f6d_a40a06cc0a69a3de\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\ntimer1.SetTimerViewName(\"\");\r\nif( 0 == timer1.SetTimer(0.05) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2438 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2439 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2440 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2373 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2374 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2375 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2376 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2377 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2378 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2379 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2380 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2381 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2382 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2383 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2315 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2316 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2317 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2318 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2319 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2320 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2321 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2322 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2323 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2324 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2325 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2326 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2327 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2417 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2418 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2419 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2420 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2271 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2272 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2273 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2274 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2275 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2276 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2277 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2278 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2280 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2281 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2282 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2283 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2284 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2285 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2286 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2287 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2288 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2289 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2290 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2291 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2292 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2293 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2294 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2295 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2261 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2262 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2263 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2264 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2265 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2266 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2267 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2268 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2269 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2335 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2336 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2338 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2339 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2341 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2343 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2344 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2345 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2347 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2348 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2349 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2350 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2351 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2352 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2353 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2354 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2355 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2356 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2357 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2358 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2359 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2360 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2361 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2362 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2363 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2364 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2365 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2366 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2367 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2368 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2369 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2370 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2371 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2385 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2386 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2387 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2388 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2389 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2390 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2391 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2392 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2393 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2394 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2395 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2396 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2397 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2398 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2399 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2400 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2409 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2410 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2411 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2412 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2413 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2414 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2415 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"Begin\"\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable {\r\n// }} \"\"\r\n// {{ 5 \"ConvertHSSErrCode\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2329 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (hssErrCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2330 1 0 \"9f0ce7fc_13c6_4496_9d762a07174e50f1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (1);\r\n// }} \"\"\r\n// {{ 2331 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2332 1 0 \"4c347e8c_4bce_4fd2_9771e3402c6f946d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildCorrectionCurve\" \"Begin\"\r\nprivate function BuildCorrectionCurve( variable & o_correctionCurveNominalArray[], variable & o_correctionCurveCorrectedArray[] ) void {\r\n// }} \"\"\r\nprivate variable arrSize;\r\nprivate variable strKeyNameCorrectedArray;\r\nprivate variable strKeyNameNominalArray;\r\nprivate variable loopCounter4;\r\nprivate variable loopCounter5;\r\n// {{ 5 \"BuildCorrectionCurve\" \"InitLocals\"\r\no_correctionCurveNominalArray.SetSize( 0);\r\no_correctionCurveCorrectedArray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2297 1 0 \"3a340a16_76d0_41c8_bf5b309ec73a108a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyNameNominalArray = Translate(\"NominalArray\");\r\n// }} \"\"\r\n// {{ 2298 1 0 \"a6aacfd2_768d_4d11_a35ac71302a19735\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyNameCorrectedArray = Translate(\"CorrectedArray\");\r\n// }} \"\"\r\n// {{ 2299 1 0 \"ccec7969_4f08_44f5_a700cb697b5b4a9b\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_correctionCurveNominalArray.SetSize(0);\r\n// }} \"\"\r\n// {{ 2300 1 0 \"8fae3767_8a62_4fef_a2ba361eb65bc161\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_correctionCurveCorrectedArray.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2301 1 0 \"66b7fe15_499d_45c1_8c4066855948207d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyNameNominalArray);\r\n// }} \"\"\r\nTrace(\"Array size\", arrSize);\r\n// {{ 2303 1 0 \"44ad5a9b_2abd_4eeb_96ac3a1f40a428a5\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2304 1 0 \"41839491_e238_46fb_942a943c436e50a5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter4 = 0; loopCounter4 < arrSize;)\r\n{\r\nloopCounter4 = loopCounter4 + 1;\r\n// }} \"\"\r\n// {{{ 2305 1 0 \"5d0b24b8_e6d4_4bcf_8a4cedeee5886970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyNameNominalArray, loopCounter4, v);\r\n// }} \"\"\r\n// {{ 2306 1 0 \"4f623f9f_1df8_4fc8_9510e85004e8c0b7\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_correctionCurveNominalArray.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2308 1 0 \"41839491_e238_46fb_942a943c436e50a5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2309 1 0 \"d1f623e5_6dee_4326_91c1168e1518c23f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter5 = 0; loopCounter5 < arrSize;)\r\n{\r\nloopCounter5 = loopCounter5 + 1;\r\n// }} \"\"\r\n// {{{ 2310 1 0 \"7563bc89_e7ee_4cca_89d1a0aac98487d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyNameCorrectedArray, loopCounter5, v);\r\n// }} \"\"\r\n// {{ 2311 1 0 \"db2fb533_67c2_4e19_b196e1920559617b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_correctionCurveCorrectedArray.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2313 1 0 \"d1f623e5_6dee_4326_91c1168e1518c23f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildCorrectionCurve\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Stefan.Golas$$valid=0$$time=2025-10-16 10:24$$checksum=7eba9336$$length=091$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 9/17/2025 6:52:03 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_OEM_TOOLKIT {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void { }\r\nfunction BarcodeReader_Read( variable & barcode ) void { }\r\nfunction 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 { }\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { }\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction Inheco_TEC_GetTemperature( variable controllerID, variable deviceID, variable selector, variable & o_stepReturn2, variable & o_stepReturn ) void { }\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void { }\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void { }\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void { }\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void { }\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void { }\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { }\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { }\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { }\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void { }\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { }\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=Stefan.Golas$$valid=0$$time=2025-09-17 18:52$$checksum=f3e6c611$$length=089$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"HSL_LiquidClassLib.hsl\"\r\n#include \"HSLInhecoTEC\\\\HSLInhecoTECLib.hsl\"\r\n#include \"HSLDaisyChainedTiltModule.hsl\"\r\n#include \"HSLBarcodeReader.hsl\"\r\n#include \"HslHamHeaterShakerLib.hsl\"\r\n#include \"HSLDaisyChainedMediaLine.hsl\"\r\n#include \"HSLDaisyChainCommunication.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void ;\r\nfunction BarcodeReader_Read( variable & barcode ) void ;\r\nfunction 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 ;\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ;\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Inheco_TEC_GetTemperature( variable controllerID, variable deviceID, variable selector, variable & o_stepReturn2, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void ;\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ;\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ;\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void ;\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ;\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable height;\r\nprivate variable calculatedVolume;\r\n// {{ 5 \"Channels_1ml_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 107 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 108 1 0 \"61c2af00_d7f3_4b2d_90f54ffba06126b4\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"61c2af00_d7f3_4b2d_90f54ffba06126b4\"); // Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 109 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BE09000023754133A7DFF78508E9EC3D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 110 1 0 \"3dd2c518_6d0a_4d7b_a227743c1263caad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 111 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 112 1 0 \"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 113 1 0 \"a37ce602_144b_4a72_98dbfe0c85169266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 114 1 0 \"36e6f2a2_6d83_40ba_a0c6ff5caefcef66\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 115 1 0 \"ce4eba9f_c8e1_4c33_a9c369da4ce7c312\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 116 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 117 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 118 1 0 \"81636f39_7511_441a_8ab707955e5f2035\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 119 1 0 \"6b53ca04_1112_466f_89a23ed352e36004\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 120 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 122 1 0 \"9c1dd6a5_9b06_43fd_9fd194129c2f2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"e6930a03_b2a0_4569_bb51b2088cac413c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 124 1 0 \"06eeeac2_52c3_47cb_b78dde137d763a9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 125 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 126 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 127 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 128 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 130 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_15E4EC7C03B0458dA8B196D2861D63BC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 131 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 132 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 133 1 0 \"450b7dae_efb3_416b_a62ef5c611c84cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 134 1 0 \"ca4e0527_c377_4a7f_99b7deddb85bdfaf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 135 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 136 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 137 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 138 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"Begin\"\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 101 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 102 1 0 \"72075d54_9924_47c4_a0154d7e90bb1065\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"72075d54_9924_47c4_a0154d7e90bb1065\"); // TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 103 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_55CAD51E8CEB46d5827DF7367C49B35D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 104 1 0 \"7acd54b9_9bda_465f_9b10e23e8987fa26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 105 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable calculatedVolume;\r\nprivate variable height;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\nprivate variable loopCounter1;\r\nprivate variable numberOfPositions;\r\n// {{ 5 \"Channels_1mL_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 62 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 63 1 0 \"ce9beee3_e67e_43c3_bfc64805ab990e08\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"ce9beee3_e67e_43c3_bfc64805ab990e08\"); // Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 64 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 65 1 0 \"493334e8_4548_4149_82f058a4b51df641\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 66 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 67 1 0 \"dd677141_96b6_4ccc_a1764ec36dc76b56\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"dd677141_96b6_4ccc_a1764ec36dc76b56\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 68 1 0 \"4fd5463f_c617_4e2b_aa27d0a820bfe2c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 69 1 0 \"6cafca26_5df8_46c0_98d5a4e2a957163a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 70 1 0 \"418d84ad_0fba_4ca8_8479b9c6dde94985\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 71 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 72 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 73 1 0 \"c8304522_b160_47ca_9780bfcfd85cf56a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 74 1 0 \"5c09e3e1_cd42_4687_940231f4491e28e1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 75 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 77 1 0 \"11b5458b_6926_471d_8cb7dde489f8a444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 78 1 0 \"51ffe893_b0e5_4383_ac38b9be481a9bee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 79 1 0 \"b02dd957_c3d3_445f_b0e36cc6cab274af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 80 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 81 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 82 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 83 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 85 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 86 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 87 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 88 1 0 \"36cc23a5_3886_4312_adc5faa6d481a26c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 89 1 0 \"9f017e3d_a3f3_4f02_914d74e549a5f3be\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 90 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 91 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 92 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 93 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"Begin\"\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 95 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 96 1 0 \"1a33c622_0a9b_473c_a857db709fcadb47\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"1a33c622_0a9b_473c_a857db709fcadb47\"); // TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D52469807F754a359D17B8D31042C6A6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 98 1 0 \"5284933d_2b98_4255_81ee24c4ca6624c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 99 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable positionBC;\r\n// {{ 5 \"Carrier_Load\" \"InitLocals\"\r\no_stepReturn_CarrierBC = 0;\r\no_stepReturn_PositionsBCs = 0;\r\no_stepReturn_PositionsBCMasks = 0;\r\no_stepReturn_PositionsIDs = 0;\r\no_CarrierBC = 0;\r\no_PositionsBCs.SetSize( 0);\r\n// }} \"\"\r\n// {{ 18 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 19 1 0 \"b445eca9_c441_45d7_b53f08a23b7b4b80\" \"ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2(\"b445eca9_c441_45d7_b53f08a23b7b4b80\"); // LoadCarrier\r\n\to_stepReturn_CarrierBC = arrRetValues[2];\r\n\to_stepReturn_PositionsBCs = arrRetValues[3];\r\n\to_stepReturn_PositionsBCMasks = arrRetValues[4];\r\n\to_stepReturn_PositionsIDs = arrRetValues[5];\r\n}\r\n// }} \"\"\r\n// {{ 20 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 21 1 0 \"6919be45_bdb7_46b6_a2ad892454bef1c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_CarrierBC = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 22 1 0 \"d814f66e_6beb_47a8_a390d3b5ea839ba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{{ 23 1 0 \"018a7d4d_f55c_435f_bfce516fc40cd0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCMasks = ErrGetDataAt(5);\r\n// }} \"\"\r\n// {{{ 24 1 0 \"28252b10_bd1a_480c_8d84ce9739ca69ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsIDs = ErrGetDataAt(6);\r\n// }} \"\"\r\n// {{ 25 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 26 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 27 1 0 \"91e50e7b_5626_4ab9_ad652563a737dba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC);\r\n// }} \"\"\r\n// {{ 28 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 29 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 30 1 0 \"6135f8c7_3486_4898_88c6e7154326c4df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 31 1 0 \"4cec9992_cb23_4182_894ee448e99b8d48\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_PositionsBCs.SetSize(0);\r\n// }} \"\"\r\n// {{ 32 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 33 1 0 \"fe82471b_5e85_4598_90b8f672ef3cf690\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 34 1 0 \"f0a92a30_0f95_4eb4_bdcf7e21db350ecb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_PositionsBCs.AddAsLast(positionBC);\r\n// }} \"\"\r\n// {{ 35 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 36 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"Begin\"\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Carrier_Unload\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 38 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 39 1 0 \"38494363_9fef_41a3_8cb17f349c9fe693\" \"ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2(\"38494363_9fef_41a3_8cb17f349c9fe693\"); // UnloadCarrier\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 40 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 41 1 0 \"9aa00b86_389e_473d_bd928bce39259e60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 42 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 44 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 45 1 0 \"f1e43893_ada0_4b74_9035cad36fab5d4b\" \"ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F(\"f1e43893_ada0_4b74_9035cad36fab5d4b\"); // ZSwapGetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 46 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90BF8C56374E469c817DB7B52FEE5D91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 47 1 0 \"5300695f_5b47_4f16_8312711c7c77441e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 48 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 56 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8675588E513E44cd8097542899F1DE5C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 57 1 0 \"3460f3d9_9fdb_4437_9cfa36d33b14f837\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"3460f3d9_9fdb_4437_9cfa36d33b14f837\"); // ZSwapPlacePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 58 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8675588E513E44cd8097542899F1DE5C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 59 1 0 \"1c1fcfa6_73ab_434d_965f40a7cb5827ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 60 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"Begin\"\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 50 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 51 1 0 \"2ed0456d_387e_49b4_a5a8105447123f04\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"2ed0456d_387e_49b4_a5a8105447123f04\"); // ZSwapMovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 52 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 53 1 0 \"b5f59ed6_6bf0_47b3_b8c295016cfa86e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 54 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 296 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 297 1 0 \"285b84de_748a_400d_a828988b60f4c175\" \"ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E(\"285b84de_748a_400d_a828988b60f4c175\"); // GetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 298 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ABA9DAA34A59470495CBB56841D2D81D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 299 1 0 \"298cdb09_c92e_4bb7_a2ecabeafcf27813\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 300 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 314 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 315 1 0 \"bcedff0a_3cba_458a_bedb1a743e5dd0bd\" \"ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55(\"bcedff0a_3cba_458a_bedb1a743e5dd0bd\"); // PutPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 316 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_22A12BE8BB2146fbB8824DF66137BF6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 317 1 0 \"8aeb393a_337d_4788_b25408ee6915eb1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 318 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"Begin\"\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 302 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 303 1 0 \"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\" \"ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E(\"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\"); // MovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 304 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E8A019BC968240cbB4C8B7397BB2F043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 305 1 0 \"b69dc448_e2ef_4c62_b6dd3535487928f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 306 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"Begin\"\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Park\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 308 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 309 1 0 \"ef5a4036_5d2f_4aae_86e669ef0581597f\" \"ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7(\"ef5a4036_5d2f_4aae_86e669ef0581597f\"); // ParkISwap\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 310 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_47ED933D92B34914984C5D98423B4C94 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 311 1 0 \"974d3165_8b4f_469b_99a59625d159b561\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 312 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"Begin\"\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 246 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 247 1 0 \"00de859c_7689_4100_85d2b03077e0d7a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(tipSequence);\r\n// }} \"\"\r\n// {{ 248 1 0 \"b3913cc3_f1bb_4e9f_b3100faec37b186d\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"b3913cc3_f1bb_4e9f_b3100faec37b186d\"); // Head96TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 249 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6640FC09A88C48daB6CB9FB2349BE364 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1df2d158_801c_4c9f_a8014869fa07863d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"315f1e4b_8d32_430c_89413b8e4b5b135a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 252 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 195 1 0 \"0fc30c09_ddb7_4665_8739dbd8f0102fdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(aspirateSequence);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"14c1eb4e_ced0_45f2_a343bc0f3c668407\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(aspirateSequence);\r\n// }} \"\"\r\n// {{ 197 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 198 1 0 \"8d6fdce5_327c_491b_aebee60a715b6c6e\" \"ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A(\"8d6fdce5_327c_491b_aebee60a715b6c6e\"); // Head96Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 199 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_00A0A59BF99B42a686A202BE72502D6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 200 1 0 \"6c23fd1d_be57_4011_8fea4ea6459aeecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 201 1 0 \"ee52ace2_98fe_454f_841ae740168bebcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 202 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 203 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 204 1 0 \"8bf3cb1f_0b71_493d_bf300c05413fc543\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 205 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 206 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 207 1 0 \"091a5303_35ee_4d82_a0b32d9ede26439d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 208 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 209 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 211 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_06FF5C7D72E044ac924A0658E57AC92A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 212 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 213 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 214 1 0 \"0b5e4cdb_1c92_4d18_a0bed95d854a0d94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 215 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"Begin\"\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_SubmergeDepthCORE;\r\nprivate variable str_FW_Digits;\r\nprivate variable flt_TipLength;\r\nprivate variable int_LLDheight;\r\nprivate variable flt_TipLength_corrected;\r\nprivate variable int_FW_Digits;\r\nprivate variable flt_StepSize;\r\nprivate variable int_Steps_mm;\r\nprivate variable str_ReturnValueH0RH;\r\nprivate variable flt_angle;\r\nprivate variable tipType;\r\n// {{ 5 \"MPH_GetLastLLD_Level\" \"InitLocals\"\r\no_flt_LastLiquidLevel = 0;\r\n// }} \"\"\r\n// {{ 254 1 0 \"f7c5b642_e642_4bd2_b342e8a2202f94b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SubmergeDepthCORE = 8.0;\r\n// }} \"\"\r\n// {{ 255 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 256 1 0 \"de2e1cfc_3be8_4752_b20a1221fc802c26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"bf16ce46_b00c_46c3_93046a4e730e9868\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(i_liquidClass);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"7d094f81_a8b9_4eb1_90a841201d1a4cca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType);\r\n// }} \"\"\r\n// {{ 259 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 260 1 0 \"a97af8ec_9af3_46fa_a150d41888290f6f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE;\r\n// }} \"\"\r\n// {{{ 261 1 0 \"8fc17eb7_3fbb_4a8e_b537d43144e8598c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle);\r\n// }} \"\"\r\n// {{ 262 1 0 \"31649b83_68f7_49a0_974f7efa6232c07d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnValueH0RH = Translate(\"\");\r\n// }} \"\"\r\n// {{ 263 1 0 \"72f92b7c_2537_40be_bc5fe85726a39b19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StepSize = 0.005;\r\n// }} \"\"\r\n// {{ 264 1 0 \"b5a3458f_9eea_4501_a6aa86c0556ad194\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b5a3458f_9eea_4501_a6aa86c0556ad194\"); // FirmwareCommand\r\n\tstr_ReturnValueH0RH = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 265 1 0 \"73c2ff19_ed4c_4c45_a9c5b56a6e84b044\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"str_ReturnValueH0RH: \"), str_ReturnValueH0RH);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 266 1 0 \"f6fe1f5f_39ae_4b71_83f733a5cf490b66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FW_Digits = StrRight(str_ReturnValueH0RH, 6);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"9883fcc4_3dcd_4199_816696b3668f733f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_FW_Digits = StrIVal(str_FW_Digits);\r\n// }} \"\"\r\n// {{ 268 1 0 \"b427e920_22bd_492e_8c900ff3a99a649c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Steps_mm = int_FW_Digits * flt_StepSize;\r\n// }} \"\"\r\n// {{ 269 1 0 \"bbe179b4_5c85_4ece_ba3738d8817cdfc5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLDheight = int_Steps_mm - flt_Z_Coord;\r\n// }} \"\"\r\n// {{ 270 1 0 \"502175ce_b71d_406e_b155fea6f39d0fd0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 271 1 0 \"3bcc328b_1906_4590_94e64b4e80f03d3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"o_flt_LastLiquidLevel: \"), o_flt_LastLiquidLevel);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 217 1 0 \"031805d0_c2b0_4435_9b8f6fbb101dc62d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(dispenseSequence);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"c249d641_ef0f_4423_bc2d48f01c114665\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(dispenseSequence);\r\n// }} \"\"\r\n// {{ 219 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 220 1 0 \"30023c25_d03e_4d52_86f122728a5fc04f\" \"ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB(\"30023c25_d03e_4d52_86f122728a5fc04f\"); // Head96Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 221 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 222 1 0 \"714a2035_eb8c_4e86_85aca8d69086952e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"bc1347df_5f38_41ae_be3c240228e5944c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 224 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 225 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 226 1 0 \"911c2699_0e84_425f_9e9384c7b6c75351\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 227 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 228 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 229 1 0 \"17abaeba_05ec_4e18_a3843b54b3bdf6f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 230 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 231 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 233 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 234 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 235 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 236 1 0 \"c826eb96_3570_4883_a8298bc890043c3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 237 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"Begin\"\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 239 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 240 1 0 \"a8f4b6bb_e103_433a_b1360393d37e32b3\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"a8f4b6bb_e103_433a_b1360393d37e32b3\"); // Head96TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 241 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C33A74C211664afd9B08BCD3DD5339FC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"71d45982_a084_4aaa_a34c6558755061d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"9e9d44f5_b614_4fb4_b6d39860c83d879d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 244 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"Begin\"\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 189 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7F7620635658430dB82A7401CB5C158F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 190 1 0 \"dc7838fc_172e_45b4_89099f664d6d452e\" \"ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2(\"dc7838fc_172e_45b4_89099f664d6d452e\"); // Initialize\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 191 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7F7620635658430dB82A7401CB5C158F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 192 1 0 \"6bd66132_cab8_473c_8437aa033b84ff48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 193 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"Begin\"\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"SendFirmwareCommand\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 273 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 274 1 0 \"c616f5ea_baed_4075_a75531e82e045e2b\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c616f5ea_baed_4075_a75531e82e045e2b\"); // FirmwareCommand\r\n\to_stepReturn = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"0f7ff03f_40eb_4e9b_a2ff42a6b9e6d59a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_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,\");\r\n// }} \"\"\r\n// {{ 276 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 277 1 0 \"305af0e7_7bac_4678_a0d1c7c3dd9900d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 278 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"Begin\"\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 280 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 281 1 0 \"8f639116_952a_4b73_b3471e6a53e3906f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate);\r\n// }} \"\"\r\n// {{ 282 1 0 \"3393edd2_b35c_4d28_9a34abe9b5cba597\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 283 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F7A233121EBD413184BEE5D2CD3510CA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 284 1 0 \"60a9b619_1ae2_496a_89ca468bc3f8e964\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 285 1 0 \"8e89b190_d2d8_4a7e_8d65313a1104b64f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 286 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"Begin\"\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_MoveToPosition\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 288 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_089FA9D7B12A47b0BAD415A10EC82051 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 289 1 0 \"2eb8fec9_f55f_4bdb_9e8f2458aae0ad13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLDaisyChainedTiltModule::MoveToPosition(Module, Position);\r\n// }} \"\"\r\n// {{ 290 1 0 \"b1a780d0_ecf5_4978_85fb85d1c7090261\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 291 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_089FA9D7B12A47b0BAD415A10EC82051 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 292 1 0 \"ce3475b4_ca3b_48ad_b9c7f3c1f1c2d5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 293 1 0 \"a8c3cab3_9bde_404e_b7d673e4d7906771\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 294 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"Begin\"\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 148 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 149 1 0 \"763b8c5e_7926_4aab_84bb556a1de548a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 150 1 0 \"7d72bd09_5be5_4a70_8d06349990512cae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 151 1 0 \"e3c035a6_0376_4030_a0e519c3f0401e3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode);\r\n// }} \"\"\r\n// {{ 152 1 0 \"ff3d60d9_7d86_4591_b213ab2e2ec6b54f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 153 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 154 1 0 \"f54e5f54_9845_4b71_959134357b62b308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 155 1 0 \"ad00a616_20b6_4fd1_b1b82f15bd592d39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 156 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_StartTemperatureControl\" \"InitLocals\"\r\nErrorCode = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 166 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 167 1 0 \"dbb9a46a_b798_4546_8857499b498c024a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 168 1 0 \"9962ba81_d090_4144_ad45cfdfb0a81848\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 169 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EF764FBDA7474071A7B517987B9B2FC2 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 170 1 0 \"1bea095e_8a1c_4a68_846e9362f2c251d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 171 1 0 \"94a7bec1_57e9_49ab_a6d3e430f8e69316\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 172 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"Begin\"\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_SetTarget\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 158 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 159 1 0 \"aef982a0_8382_45fd_aec06a11e9859c17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{ 160 1 0 \"469d7ad2_b7d8_4e9c_ac57ffe25631b189\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 161 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_56BA970A477C47bf90C6C3373DEB98B0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 162 1 0 \"666252c3_d904_4d59_af97abc58a445648\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 163 1 0 \"360d64cc_734f_4a97_8c61eb77bf58c2c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 164 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_StopTemperatureControl\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 174 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 175 1 0 \"53a1b499_97d8_49ce_85f583fb81241149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 176 1 0 \"6663219d_f732_4334_ac9149ef5e378f41\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 177 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E3152496BDA74f1681473505DC2B3A3E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 178 1 0 \"bf506361_d06d_402a_bce18579529327a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 179 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"Begin\"\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 181 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 182 1 0 \"3239a113_7650_4023_a9fad336d668211f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::Terminate(StopAllDevices);\r\n// }} \"\"\r\n// {{ 183 1 0 \"3b263a00_9a60_41fc_9972731eef692e35\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 184 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 185 1 0 \"06500de7_b6f0_46c9_83aa39385bd390ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 186 1 0 \"1d548ec4_592f_4c53_bd10fcebbc4e29a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"step return in toolkit\"), o_stepReturn);\r\n// }} \"\"\r\n// {{ 187 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Initialize\" \"Begin\"\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"BarcodeReader_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A3B61CE3E767468e8D1B59076F3D78E4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"e0cfef2c_84b3_468a_a20006a3728a8260\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Trace\"), COMPORT);\r\n// }} \"\"\r\n// {{{ 3 1 0 \"e040e6e1_8d46_47ab_87603b90eec83a04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLBarcodeReader::SetComPort(COMPORT);\r\n// }} \"\"\r\n// {{{ 4 1 0 \"97b56e2c_0824_4073_9e58f7230250d255\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLBarcodeReader::DelComBuffer();\r\n// }} \"\"\r\n// {{ 5 1 0 \"d56061ff_1640_4b1a_88dc262e7863d251\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_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,\");\r\n// }} \"\"\r\n// {{ 6 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A3B61CE3E767468e8D1B59076F3D78E4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 7 1 0 \"02ecb8f2_684e_4ec1_a9840192e80e0f56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 8 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Read\" \"Begin\"\r\nfunction BarcodeReader_Read( variable & barcode ) void {\r\n// }} \"\"\r\n// {{ 5 \"BarcodeReader_Read\" \"InitLocals\"\r\nbarcode = 0;\r\n// }} \"\"\r\n// {{ 10 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 11 1 0 \"f3cc7ab5_8df1_49cb_aaf121c9e2cc2d4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"attempting to read barcode \"), Translate(\"attempting to read barcode\"));\r\n// }} \"\"\r\n// {{{ 12 1 0 \"7efa47d3_0206_455e_9c6a05f9f0aebc1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbarcode = HSLBarcodeReader::Read();\r\n// }} \"\"\r\n// {{{ 13 1 0 \"dd9a5270_3e4b_4b95_898bbad8823e8ea2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(barcode, Translate(\"this is the barcode\"));\r\n// }} \"\"\r\n// {{ 14 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F17E80F5B0F14da6AD3DC48FC7190CFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 15 1 0 \"1bcebdcc_4eed_4f44_b21a8924c1f94855\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbarcode = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 16 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Read\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 320 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_485A52AE45C346adA048E7F329D0C390 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 321 1 0 \"70294f1d_735f_43b0_bfff139b2e168d5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4);\r\n// }} \"\"\r\n// {{ 322 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_485A52AE45C346adA048E7F329D0C390 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"b81f548d_2601_402a_9a291d45b6b50706\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 324 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_GetTemperature\" \"Begin\"\r\nfunction Inheco_TEC_GetTemperature( variable controllerID, variable deviceID, variable selector, variable & o_stepReturn2, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_GetTemperature\" \"InitLocals\"\r\no_stepReturn2 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 140 1 0 \"da54d8e7_9189_4438_9594c15a1855363a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_60EB86D9560B4ffeB391B85D18EEEC63 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 141 1 0 \"e81aae04_4de7_48d6_b932c08bcfc8a8ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLInhecoTECLib::GetActualDeviceTemperature(controllerID, deviceID, selector, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{ 142 1 0 \"380c60ec_4f9b_444a_923612af9dcd5f53\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 143 1 0 \"da54d8e7_9189_4438_9594c15a1855363a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_60EB86D9560B4ffeB391B85D18EEEC63 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 144 1 0 \"a047b3a4_8b5d_42f5_a23b3143dcfed445\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 145 1 0 \"01aecd5b_6225_401f_83eced9bff3b7e30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"step return in toolkit\"), o_stepReturn);\r\n// }} \"\"\r\n// {{ 146 1 0 \"da54d8e7_9189_4438_9594c15a1855363a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_GetTemperature\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Stefan.Golas$$valid=0$$time=2025-09-17 18:52$$checksum=7e3e6871$$length=091$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_MPE.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 3/20/2023 9:12:05 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_OEM_TOOLKIT_MPE {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction MPE2_ClampFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_ClearSourceConfiguration( variable i_intDeviceID, variable i_blnReset, variable & o_stepReturn ) void { }\r\nfunction MPE2_CollectionPlatePlaced( variable i_intDeviceID, variable i_floatCollectionPlateHeight, variable i_floatOffsetFromNozzles, variable & o_stepReturn ) void { }\r\nfunction MPE2_CollectionPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_ConnectUsingCOM( variable i_intComPort, variable i_intBaudRate, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_ConnectUsingIP( variable i_strInstrumentName, variable i_intPortNumber, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction MPE2_Disconnect( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_Dispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_fltNeedleOffset, variable & o_stepReturn ) void { }\r\nfunction MPE2_Evaporate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedleOffset, variable i_fltWellDepth, variable i_intEvaporateTime, variable & o_stepReturn ) void { }\r\nfunction MPE2_EvaporateEnd( variable i_intDeviceID, variable i_intTimeOut, variable & o_stepReturn ) void { }\r\nfunction MPE2_EvaporatePrepare( variable i_intDeviceID, variable i_fltTemperature, variable i_fltPressure, variable i_intTimeOut, variable & o_stepReturn ) void { }\r\nfunction MPE2_EvaporateWithRate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedeOffset, variable i_fltEvaporatorTravelDistance, variable i_intEvaporateTime, variable i_fltFollowRate, variable & o_stepReturn ) void { }\r\nfunction MPE2_FilterPlatePlaced( variable i_intDeviceID, variable i_fltFilterHeight, variable i_fltNozzleHeight, variable & o_stepReturn ) void { }\r\nfunction MPE2_FilterPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_Flush( variable i_intDeviceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainterID, variable & o_stepReturn ) void { }\r\nfunction MPE2_GetContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable & o_fltCapacityVolume, variable & o_intEmptyReading, variable & o_intFullReading, variable & o_strCalibrationDate, variable & o_stepReturn ) void { }\r\nfunction MPE2_GetCurrentHeaterStatus( variable i_intDeviceID, variable i_blnReset, variable & o_fltCurrentEvapTemperature, variable & o_fltCurrentGasTemp, variable & o_intHeating, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction MPE2_GetPressureSensorReadings( variable i_intDeviceID, variable & o_fltInputPressureSensor, variable & o_fltManifoldPressureSensor, variable & o_fltHighPressureSensor, variable & o_fltLowPressureSensor, variable & o_stepReturn ) void { }\r\nfunction MPE2_GetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_GetTemperatureRange( variable i_intDeviceID, variable & o_fltIMinimumTemperature, variable & o_fltMaximumTemperature, variable & o_stepReturn ) void { }\r\nfunction MPE2_GetVacuumStatus( variable i_intDeviceID, variable & o_intVacuumActive, variable & o_stepReturn ) void { }\r\nfunction MPE2_Initialize( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_InitializeWithParameters( variable i_intDeviceID, variable i_blnSmart, variable i_intWasteContainerID, variable i_intVacuumRunTime, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void { }\r\nfunction MPE2_MeasureEmptyContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void { }\r\nfunction MPE2_MeasureFullContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void { }\r\nfunction MPE2_Prime( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainerID, variable & o_stepReturn ) void { }\r\nfunction MPE2_ProcessFilterToCollectionPlate( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable & o_stepReturn ) void { }\r\nfunction MPE2_ProcessFilterToWasteContainer( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable i_intWasteContainerID, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void { }\r\nfunction MPE2_RetrieveFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_SaveContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void { }\r\nfunction MPE2_SetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\nfunction MPE2_StartContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void { }\r\nfunction MPE2_StartVacuum( variable i_intDeviceID, variable i_intWasteContainerID, variable i_blnDisableVacuum, variable & o_stepReturn ) void { }\r\nfunction MPE2_StopVacuum( variable i_intDeviceID, variable & o_stepReturn ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=stefa$$valid=0$$time=2023-03-20 09:12$$checksum=e411cbdc$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_MPE.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"Hamilton MPE2\\\\HSLMPELib.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT_MPE {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction MPE2_ClampFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_ClearSourceConfiguration( variable i_intDeviceID, variable i_blnReset, variable & o_stepReturn ) void ;\r\nfunction MPE2_CollectionPlatePlaced( variable i_intDeviceID, variable i_floatCollectionPlateHeight, variable i_floatOffsetFromNozzles, variable & o_stepReturn ) void ;\r\nfunction MPE2_CollectionPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_ConnectUsingCOM( variable i_intComPort, variable i_intBaudRate, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_ConnectUsingIP( variable i_strInstrumentName, variable i_intPortNumber, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction MPE2_Disconnect( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_Dispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_fltNeedleOffset, variable & o_stepReturn ) void ;\r\nfunction MPE2_Evaporate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedleOffset, variable i_fltWellDepth, variable i_intEvaporateTime, variable & o_stepReturn ) void ;\r\nfunction MPE2_EvaporateEnd( variable i_intDeviceID, variable i_intTimeOut, variable & o_stepReturn ) void ;\r\nfunction MPE2_EvaporatePrepare( variable i_intDeviceID, variable i_fltTemperature, variable i_fltPressure, variable i_intTimeOut, variable & o_stepReturn ) void ;\r\nfunction MPE2_EvaporateWithRate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedeOffset, variable i_fltEvaporatorTravelDistance, variable i_intEvaporateTime, variable i_fltFollowRate, variable & o_stepReturn ) void ;\r\nfunction MPE2_FilterPlatePlaced( variable i_intDeviceID, variable i_fltFilterHeight, variable i_fltNozzleHeight, variable & o_stepReturn ) void ;\r\nfunction MPE2_FilterPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_Flush( variable i_intDeviceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainterID, variable & o_stepReturn ) void ;\r\nfunction MPE2_GetContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable & o_fltCapacityVolume, variable & o_intEmptyReading, variable & o_intFullReading, variable & o_strCalibrationDate, variable & o_stepReturn ) void ;\r\nfunction MPE2_GetCurrentHeaterStatus( variable i_intDeviceID, variable i_blnReset, variable & o_fltCurrentEvapTemperature, variable & o_fltCurrentGasTemp, variable & o_intHeating, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction MPE2_GetPressureSensorReadings( variable i_intDeviceID, variable & o_fltInputPressureSensor, variable & o_fltManifoldPressureSensor, variable & o_fltHighPressureSensor, variable & o_fltLowPressureSensor, variable & o_stepReturn ) void ;\r\nfunction MPE2_GetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_GetTemperatureRange( variable i_intDeviceID, variable & o_fltIMinimumTemperature, variable & o_fltMaximumTemperature, variable & o_stepReturn ) void ;\r\nfunction MPE2_GetVacuumStatus( variable i_intDeviceID, variable & o_intVacuumActive, variable & o_stepReturn ) void ;\r\nfunction MPE2_Initialize( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_InitializeWithParameters( variable i_intDeviceID, variable i_blnSmart, variable i_intWasteContainerID, variable i_intVacuumRunTime, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void ;\r\nfunction MPE2_MeasureEmptyContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void ;\r\nfunction MPE2_MeasureFullContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void ;\r\nfunction MPE2_Prime( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainerID, variable & o_stepReturn ) void ;\r\nfunction MPE2_ProcessFilterToCollectionPlate( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable & o_stepReturn ) void ;\r\nfunction MPE2_ProcessFilterToWasteContainer( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable i_intWasteContainerID, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void ;\r\nfunction MPE2_RetrieveFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_SaveContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void ;\r\nfunction MPE2_SetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\nfunction MPE2_StartContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void ;\r\nfunction MPE2_StartVacuum( variable i_intDeviceID, variable i_intWasteContainerID, variable i_blnDisableVacuum, variable & o_stepReturn ) void ;\r\nfunction MPE2_StopVacuum( variable i_intDeviceID, variable & o_stepReturn ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"MPE2_ConnectUsingIP\" \"Begin\"\r\nfunction MPE2_ConnectUsingIP( variable i_strInstrumentName, variable i_intPortNumber, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_ConnectUsingIP\" \"InitLocals\"\r\no_intDeviceID = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 37 1 0 \"25d6ad8d_b624_413d_b9c8fbd065552ebd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B45D37AB9865453f8D267565C503CBF3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 38 1 0 \"1d66cc34_9066_4fe3_b4a87427ba6f0914\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::ConnectUsingIP(i_strInstrumentName, i_intPortNumber, i_blnSimulationMode, o_intDeviceID, i_MpeOptions);\r\n// }} \"\"\r\n// {{ 39 1 0 \"fb95730d_0f06_4a45_bbde46df15926dbc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 40 1 0 \"25d6ad8d_b624_413d_b9c8fbd065552ebd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B45D37AB9865453f8D267565C503CBF3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 41 1 0 \"0f463d24_2bdf_4631_ae9d743d289da56e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 42 1 0 \"09f52338_1af1_49de_90e906eb9311c1d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 43 1 0 \"25d6ad8d_b624_413d_b9c8fbd065552ebd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ConnectUsingIP\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ConnectUsingCOM\" \"Begin\"\r\nfunction MPE2_ConnectUsingCOM( variable i_intComPort, variable i_intBaudRate, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_ConnectUsingCOM\" \"InitLocals\"\r\no_intDeviceID = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 29 1 0 \"33974866_cd66_4d0c_8d94e332df257b84\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0A1605DD6A0B467bB5C68AE1B5EB7B99 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 30 1 0 \"373ed343_22ba_42f7_bde5da865be55351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::ConnectUsingCOM(i_intComPort, i_intBaudRate, i_blnSimulationMode, o_intDeviceID, i_MpeOptions);\r\n// }} \"\"\r\n// {{ 31 1 0 \"55a04d50_2226_4290_934dbac8a8892b66\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 32 1 0 \"33974866_cd66_4d0c_8d94e332df257b84\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0A1605DD6A0B467bB5C68AE1B5EB7B99 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 33 1 0 \"ba323870_aae2_4439_8d7a4fae7a90699f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 34 1 0 \"82347ea9_2474_4ae5_9187947834cbc946\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 35 1 0 \"33974866_cd66_4d0c_8d94e332df257b84\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ConnectUsingCOM\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ClampFilterPlate\" \"Begin\"\r\nfunction MPE2_ClampFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_ClampFilterPlate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"292911c5_1375_4f97_841a4d19c1506b0a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B9BC6AB18723482784ECE401DB7A4CE7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"d1f88e7c_e4e3_43bf_8e101f409cb24aed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::ClampFilterPlate(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 3 1 0 \"292911c5_1375_4f97_841a4d19c1506b0a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B9BC6AB18723482784ECE401DB7A4CE7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"6cb867bf_35c3_4e98_b9526e82a90fbb50\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 5 1 0 \"292911c5_1375_4f97_841a4d19c1506b0a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ClampFilterPlate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ClearSourceConfiguration\" \"Begin\"\r\nfunction MPE2_ClearSourceConfiguration( variable i_intDeviceID, variable i_blnReset, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_ClearSourceConfiguration\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 7 1 0 \"3b7240cc_447f_49cf_b4a7a671e30cc883\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14C621A3A7774a219921A7EA30C3AE4A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 8 1 0 \"d9f544f1_ad2a_4d7d_ac29b068815812d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::ClearSourceConfiguration(i_intDeviceID, i_blnReset);\r\n// }} \"\"\r\n// {{ 9 1 0 \"3b7240cc_447f_49cf_b4a7a671e30cc883\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14C621A3A7774a219921A7EA30C3AE4A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 10 1 0 \"308e58a3_a4af_4dec_8b50ce0f30ff87f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 11 1 0 \"3b7240cc_447f_49cf_b4a7a671e30cc883\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ClearSourceConfiguration\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_CollectionPlatePlaced\" \"Begin\"\r\nfunction MPE2_CollectionPlatePlaced( variable i_intDeviceID, variable i_floatCollectionPlateHeight, variable i_floatOffsetFromNozzles, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_CollectionPlatePlaced\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 13 1 0 \"e247a842_deba_40e2_819ba4d561593de4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F681CA8B612845baB6A2A15C4048BBDB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 14 1 0 \"094e7ba5_f7af_471d_bb15c6c14171a5fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::CollectionPlatePlaced(i_intDeviceID, i_floatCollectionPlateHeight, i_floatOffsetFromNozzles);\r\n// }} \"\"\r\n// {{ 15 1 0 \"0e3a99de_b99d_4490_a45fbe8d7c213f0d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 16 1 0 \"e247a842_deba_40e2_819ba4d561593de4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F681CA8B612845baB6A2A15C4048BBDB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 17 1 0 \"e8d0892f_03c3_45f2_8bcc6d696312cdcc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 18 1 0 \"b0097368_49f6_496c_8e04d20d2bb9a460\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 19 1 0 \"e247a842_deba_40e2_819ba4d561593de4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_CollectionPlatePlaced\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_CollectionPlateRemoved\" \"Begin\"\r\nfunction MPE2_CollectionPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_CollectionPlateRemoved\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 21 1 0 \"5ef073f7_47af_4335_837d38844141e649\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_23B6CD8702354dd7B18650ACEB718731 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 22 1 0 \"50d8f2c4_5d39_4da2_84af375eb6d2696e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::CollectionPlateRemoved(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 23 1 0 \"3c3967e3_1806_4556_9374c90327878318\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 24 1 0 \"5ef073f7_47af_4335_837d38844141e649\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_23B6CD8702354dd7B18650ACEB718731 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 25 1 0 \"013733d5_6d60_4cb9_bddb585c69eb475b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 26 1 0 \"73d4b316_b387_4c69_b4b3be2f18cbc22e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 27 1 0 \"5ef073f7_47af_4335_837d38844141e649\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_CollectionPlateRemoved\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_CustomDispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable placeholder[];\r\n// {{ 5 \"MPE2_CustomDispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 45 1 0 \"7d3f0609_f51f_4b89_9d051b6899c2eddb\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_30C099F478A34a0cA384182252B5B9C4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 46 1 0 \"cab84be0_0ff4_4fc1_a87c39eabe0e9f4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::CustomDispense(i_intDeviceID, i_intSourceID, i_fltWellVolume, i_fltFlowRateAspirate, i_fltFlowRateDispense, i_fltNeedleOffset, i_fltEdgeToWellOffset, placeholder, i_intDelayBetweenAspirateAndDispense, i_intDelayBetweenDispense);\r\n// }} \"\"\r\n// {{ 47 1 0 \"217ae2bf_efd0_4c00_870b2f922afc7948\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 48 1 0 \"7d3f0609_f51f_4b89_9d051b6899c2eddb\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_30C099F478A34a0cA384182252B5B9C4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 49 1 0 \"d37b0c56_580b_4623_92e3a7f47c648caf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 50 1 0 \"3ea35e5a_04a8_41f0_9d4af6796d59ca06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 51 1 0 \"7d3f0609_f51f_4b89_9d051b6899c2eddb\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_CustomDispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Disconnect\" \"Begin\"\r\nfunction MPE2_Disconnect( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_Disconnect\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 53 1 0 \"e6d7a1bd_5b6b_419a_b0abd775a7f9a652\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D57FAA75DF034a7395286B7E463702DD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 54 1 0 \"2a73a63c_396f_49b3_ae2d570aa5f6b668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::Disconnect(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 55 1 0 \"9575d07b_1894_4d4a_a947c4f66fca18bf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 56 1 0 \"e6d7a1bd_5b6b_419a_b0abd775a7f9a652\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D57FAA75DF034a7395286B7E463702DD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 57 1 0 \"239e1e26_a9c2_4c3b_8cc68ca59f99d75e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 58 1 0 \"c6f6b1e6_7712_4e65_a95f8a857e2eef6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 59 1 0 \"e6d7a1bd_5b6b_419a_b0abd775a7f9a652\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Disconnect\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Dispense\" \"Begin\"\r\nfunction MPE2_Dispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_fltNeedleOffset, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 61 1 0 \"0a982a7d_065b_4089_80d90879da8178e5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AB6F21A8AAEF47659993C076F4B8FC2D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 62 1 0 \"1c62e09f_be7d_457d_bcb1d37aebc27789\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::Dispense(i_intDeviceID, i_intSourceID, i_fltWellVolume, i_fltFlowRate, i_fltNeedleOffset);\r\n// }} \"\"\r\n// {{ 63 1 0 \"19107e39_ce93_4ab2_8740912fde2bde6c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 64 1 0 \"0a982a7d_065b_4089_80d90879da8178e5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AB6F21A8AAEF47659993C076F4B8FC2D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 65 1 0 \"7397839c_baa5_4adc_801bae285a5c0a71\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 66 1 0 \"1f13e225_7852_4114_ad57826e258bb1a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 67 1 0 \"0a982a7d_065b_4089_80d90879da8178e5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Evaporate\" \"Begin\"\r\nfunction MPE2_Evaporate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedleOffset, variable i_fltWellDepth, variable i_intEvaporateTime, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_Evaporate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 69 1 0 \"db8152b6_3f79_4c9a_8b6bfdd73361eaf2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_60B8BA2562A44bf3A577F2AD3FA487BF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 70 1 0 \"860e25c4_7f07_4b6b_9848ce1ea1a81974\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::Evaporate(i_intDeviceID, i_fltPlateHeight, i_fltNeedleOffset, i_fltWellDepth, i_intEvaporateTime);\r\n// }} \"\"\r\n// {{ 71 1 0 \"29e1d24b_9ce6_4cd2_91b6b8f0312e3e47\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 72 1 0 \"db8152b6_3f79_4c9a_8b6bfdd73361eaf2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_60B8BA2562A44bf3A577F2AD3FA487BF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 73 1 0 \"95456b21_f31b_4737_95bab1478080b35b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 74 1 0 \"1012d202_2bc6_476f_8e352e733941528e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 75 1 0 \"db8152b6_3f79_4c9a_8b6bfdd73361eaf2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Evaporate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_EvaporateEnd\" \"Begin\"\r\nfunction MPE2_EvaporateEnd( variable i_intDeviceID, variable i_intTimeOut, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_EvaporateEnd\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 77 1 0 \"86f8e99f_232f_43fc_92c52f691bfc7fbe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_921CD36207214ddf9AF42654293BEAA9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 78 1 0 \"8cee9b80_5eb7_44a5_ba36365542dfd248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::EvaporateEnd(i_intDeviceID, i_intTimeOut);\r\n// }} \"\"\r\n// {{ 79 1 0 \"3755c12b_f49c_4f86_881bb7b9ca73515e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 80 1 0 \"86f8e99f_232f_43fc_92c52f691bfc7fbe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_921CD36207214ddf9AF42654293BEAA9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 81 1 0 \"d1216187_9471_45d2_91966f1559dc91d0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 82 1 0 \"eb208701_575a_4163_837d9f06b10315eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 83 1 0 \"86f8e99f_232f_43fc_92c52f691bfc7fbe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_EvaporateEnd\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_EvaporatePrepare\" \"Begin\"\r\nfunction MPE2_EvaporatePrepare( variable i_intDeviceID, variable i_fltTemperature, variable i_fltPressure, variable i_intTimeOut, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_EvaporatePrepare\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 85 1 0 \"f5add80c_462c_4d99_b4efa626090c3172\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D806382A051E4ed3BE9CF38530A5CB56 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 86 1 0 \"819cec27_5116_49b4_a8be9262ed565cc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::EvaporatePrepare(i_intDeviceID, i_fltTemperature, i_fltPressure, i_intTimeOut);\r\n// }} \"\"\r\n// {{ 87 1 0 \"08cbe8b0_090f_4aa9_b5bd293beddd445d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 88 1 0 \"f5add80c_462c_4d99_b4efa626090c3172\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D806382A051E4ed3BE9CF38530A5CB56 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 89 1 0 \"dea617c1_9e43_4d28_9dc5b84376e1f5bd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 90 1 0 \"898862b3_eecd_4a66_b981bd7cfc8c383d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 91 1 0 \"f5add80c_462c_4d99_b4efa626090c3172\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_EvaporatePrepare\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_EvaporateWithRate\" \"Begin\"\r\nfunction MPE2_EvaporateWithRate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedeOffset, variable i_fltEvaporatorTravelDistance, variable i_intEvaporateTime, variable i_fltFollowRate, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_EvaporateWithRate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 93 1 0 \"7a6baecb_2670_4bc7_bd6ba13f1c0f19c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C2F4786CBE49457c8F1FD2D1E65FFB8B ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 94 1 0 \"07c824bc_76d2_4c02_8fe3de2c411bec05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::EvaporateWithRate(i_intDeviceID, i_fltPlateHeight, i_fltNeedeOffset, i_fltEvaporatorTravelDistance, i_intEvaporateTime, i_fltFollowRate);\r\n// }} \"\"\r\n// {{ 95 1 0 \"8f8943b5_de27_499a_ae45f3a44c499b0b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 96 1 0 \"7a6baecb_2670_4bc7_bd6ba13f1c0f19c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C2F4786CBE49457c8F1FD2D1E65FFB8B : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 97 1 0 \"1688d5cf_7980_4cec_babbcfeea55105e1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 98 1 0 \"38643089_9805_470b_b5183bb293c9803e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 99 1 0 \"7a6baecb_2670_4bc7_bd6ba13f1c0f19c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_EvaporateWithRate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_FilterPlatePlaced\" \"Begin\"\r\nfunction MPE2_FilterPlatePlaced( variable i_intDeviceID, variable i_fltFilterHeight, variable i_fltNozzleHeight, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_FilterPlatePlaced\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 101 1 0 \"10edfa89_f441_4cc1_b654e9e2a0c311ee\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6937F735EA024567A9EF36334B4DAB1A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 102 1 0 \"9c265cef_1b07_431a_9ce0d57ad3fdc3f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::FilterPlatePlaced(i_intDeviceID, i_fltFilterHeight, i_fltNozzleHeight);\r\n// }} \"\"\r\n// {{ 103 1 0 \"f75e7041_d5aa_4fc4_910473cb7079df9b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 104 1 0 \"10edfa89_f441_4cc1_b654e9e2a0c311ee\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6937F735EA024567A9EF36334B4DAB1A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 105 1 0 \"b26203cc_8d0e_4ef9_a93dd85c93e994f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 106 1 0 \"f14a5e86_bd1c_4284_bfc23f45224d475b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 107 1 0 \"10edfa89_f441_4cc1_b654e9e2a0c311ee\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_FilterPlatePlaced\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_FilterPlateRemoved\" \"Begin\"\r\nfunction MPE2_FilterPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_FilterPlateRemoved\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 109 1 0 \"0da2e548_4f2d_49d6_9cf8999ed4ec75f0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_48D332A178664294B43DAB7864E46211 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 110 1 0 \"c07a5e92_0138_48b4_83cb58e25b08c61d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::FilterPlateRemoved(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 111 1 0 \"093fa708_d24a_45e7_90a676efb5905d1d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 112 1 0 \"0da2e548_4f2d_49d6_9cf8999ed4ec75f0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_48D332A178664294B43DAB7864E46211 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 113 1 0 \"784531e5_8e45_4b9c_9e635f93a46f7a64\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 114 1 0 \"c4db826a_c9c2_4602_9e2a263c4321a432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 115 1 0 \"0da2e548_4f2d_49d6_9cf8999ed4ec75f0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_FilterPlateRemoved\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Flush\" \"Begin\"\r\nfunction MPE2_Flush( variable i_intDeviceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainterID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_Flush\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 117 1 0 \"b53983f0_cfbc_4b61_8c610a26933174e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7422216A381A4af68FEB9762A9B56A58 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 118 1 0 \"a52cc6d2_3100_435f_a28922d736f711d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::Flush(i_intDeviceID, i_fltWellVolume, i_fltFlowRate, i_intWasteContainterID);\r\n// }} \"\"\r\n// {{ 119 1 0 \"6d975e62_36dd_4e10_ad57d727cffb988c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 120 1 0 \"b53983f0_cfbc_4b61_8c610a26933174e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7422216A381A4af68FEB9762A9B56A58 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 121 1 0 \"fee54888_4d35_4eff_a3347691603f0ec9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 122 1 0 \"b2f51e60_c527_46f2_85d238640fe8ea75\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 123 1 0 \"b53983f0_cfbc_4b61_8c610a26933174e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Flush\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetContainerCalibration\" \"Begin\"\r\nfunction MPE2_GetContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable & o_fltCapacityVolume, variable & o_intEmptyReading, variable & o_intFullReading, variable & o_strCalibrationDate, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_GetContainerCalibration\" \"InitLocals\"\r\no_fltCapacityVolume = 0;\r\no_intEmptyReading = 0;\r\no_intFullReading = 0;\r\no_strCalibrationDate = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 125 1 0 \"39c3e710_91dd_47ef_b053382a5fc6b0fb\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8DC89D441DB840e2B98CC49344C30A3A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 126 1 0 \"8244c056_535d_4fbd_a2c0ef4edabd2844\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::GetContainerCalibration(i_intDeviceID, i_intSourceID, o_fltCapacityVolume, o_intEmptyReading, o_intFullReading, o_strCalibrationDate);\r\n// }} \"\"\r\n// {{ 127 1 0 \"664f032f_46e1_4e68_87219dc6a53b4dab\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 128 1 0 \"39c3e710_91dd_47ef_b053382a5fc6b0fb\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8DC89D441DB840e2B98CC49344C30A3A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 129 1 0 \"ada4a7d0_3e54_448a_81ac98ffebe495fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 130 1 0 \"56bd7db1_8eda_4e01_b0933fd3ca7cb0fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 131 1 0 \"39c3e710_91dd_47ef_b053382a5fc6b0fb\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetContainerCalibration\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetCurrentHeaterStatus\" \"Begin\"\r\nfunction MPE2_GetCurrentHeaterStatus( variable i_intDeviceID, variable i_blnReset, variable & o_fltCurrentEvapTemperature, variable & o_fltCurrentGasTemp, variable & o_intHeating, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_GetCurrentHeaterStatus\" \"InitLocals\"\r\no_fltCurrentEvapTemperature = 0;\r\no_fltCurrentGasTemp = 0;\r\no_intHeating = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 133 1 0 \"1430b216_fa57_4c7c_a2a4a4a5e9c42085\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14D4DD5BBFB54b79BFFD623954803BC5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 134 1 0 \"ead6e360_b41a_477a_8d7052314c7fa01a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::GetCurrentHeaterStatus(i_intDeviceID, i_blnReset, o_fltCurrentEvapTemperature, o_fltCurrentGasTemp, o_intHeating);\r\n// }} \"\"\r\n// {{ 135 1 0 \"1de9759f_562d_482d_a27f935304460635\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 136 1 0 \"1430b216_fa57_4c7c_a2a4a4a5e9c42085\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14D4DD5BBFB54b79BFFD623954803BC5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 137 1 0 \"ba8b4663_add3_45fa_a101a514fc950259\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 138 1 0 \"3fba07c9_79e3_4371_b618b18f0f021c3b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 139 1 0 \"1430b216_fa57_4c7c_a2a4a4a5e9c42085\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetCurrentHeaterStatus\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetHeaterTemperatureRange\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_GetHeaterTemperatureRange\" \"InitLocals\"\r\no_fltMinEvapTemperature = 0;\r\no_fltMaxEvapTemperature = 0;\r\no_fltMinGasTemperature = 0;\r\no_fltMaxGasTemperature = 0;\r\no_fltTargetTemperature = 0;\r\no_intHeating = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 141 1 0 \"8e6f3c55_f43b_495e_a2e139e99bf227c4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5FC734DC7194adcADF53B6EF50B7C2E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 142 1 0 \"7cc9bbc7_8d47_45ab_a4a716ef7c1c60e8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::GetHeaterTemperatureRange(i_intDeviceID, i_blnReset, o_fltMinEvapTemperature, o_fltMaxEvapTemperature, o_fltMinGasTemperature, o_fltMaxGasTemperature, o_fltTargetTemperature, o_intHeating);\r\n// }} \"\"\r\n// {{ 143 1 0 \"c885ee08_1c44_4b36_9b6f38a67630aac0\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 144 1 0 \"8e6f3c55_f43b_495e_a2e139e99bf227c4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5FC734DC7194adcADF53B6EF50B7C2E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 145 1 0 \"fb376560_ef67_4556_932c85a5c8c30de5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 146 1 0 \"5ad13f90_edc5_45cb_9501280f07641cad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 147 1 0 \"8e6f3c55_f43b_495e_a2e139e99bf227c4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetHeaterTemperatureRange\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetPressureSensorReadings\" \"Begin\"\r\nfunction MPE2_GetPressureSensorReadings( variable i_intDeviceID, variable & o_fltInputPressureSensor, variable & o_fltManifoldPressureSensor, variable & o_fltHighPressureSensor, variable & o_fltLowPressureSensor, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_GetPressureSensorReadings\" \"InitLocals\"\r\no_fltInputPressureSensor = 0;\r\no_fltManifoldPressureSensor = 0;\r\no_fltHighPressureSensor = 0;\r\no_fltLowPressureSensor = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 149 1 0 \"6a8212ef_4c9e_44b1_8b9453bb049cf560\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_71175CEC1A41478190A080A3862E5559 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 150 1 0 \"d09787c2_2c61_437c_bbe0e7e57d858bc1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::GetPressureSensorReadings(i_intDeviceID, o_fltInputPressureSensor, o_fltManifoldPressureSensor, o_fltHighPressureSensor, o_fltLowPressureSensor);\r\n// }} \"\"\r\n// {{ 151 1 0 \"10edc65f_0f91_41d4_9286c3c4d645c3d9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 152 1 0 \"6a8212ef_4c9e_44b1_8b9453bb049cf560\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_71175CEC1A41478190A080A3862E5559 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 153 1 0 \"ab4dbdb6_285e_4cb7_9b8952e95d14c95e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 154 1 0 \"cbca85f3_e8ed_48f7_aec8f72bc30bdd1e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 155 1 0 \"6a8212ef_4c9e_44b1_8b9453bb049cf560\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetPressureSensorReadings\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetTemperatureRange\" \"Begin\"\r\nfunction MPE2_GetTemperatureRange( variable i_intDeviceID, variable & o_fltIMinimumTemperature, variable & o_fltMaximumTemperature, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_GetTemperatureRange\" \"InitLocals\"\r\no_fltIMinimumTemperature = 0;\r\no_fltMaximumTemperature = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 165 1 0 \"a4a0d027_b3e8_46d7_9025f28f5500ebc2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1E0EDECAD00B417c85FE7336A820C112 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 166 1 0 \"2007488c_6193_40bb_b32bc58fe66c66f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::GetTemperatureRange(i_intDeviceID, o_fltIMinimumTemperature, o_fltMaximumTemperature);\r\n// }} \"\"\r\n// {{ 167 1 0 \"426211d5_4bcd_488e_95cbb36ff5a57f08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 168 1 0 \"a4a0d027_b3e8_46d7_9025f28f5500ebc2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1E0EDECAD00B417c85FE7336A820C112 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 169 1 0 \"6c1719ef_67b3_4ebc_b7096d415e1fa5d4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 170 1 0 \"fe9b374d_6f2c_461e_8d6942365cf811d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 171 1 0 \"a4a0d027_b3e8_46d7_9025f28f5500ebc2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetTemperatureRange\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetVacuumStatus\" \"Begin\"\r\nfunction MPE2_GetVacuumStatus( variable i_intDeviceID, variable & o_intVacuumActive, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_GetVacuumStatus\" \"InitLocals\"\r\no_intVacuumActive = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 173 1 0 \"46ad7b96_2d3e_44e4_85e9e902878d0443\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0C0C29A5B3E448db88A540CBF86F2040 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 174 1 0 \"b702622a_556e_4202_861727a54cafeca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::GetVacuumStatus(i_intDeviceID, o_intVacuumActive);\r\n// }} \"\"\r\n// {{ 175 1 0 \"1a3a832a_27c7_4bba_bc82c567d65c6b62\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 176 1 0 \"46ad7b96_2d3e_44e4_85e9e902878d0443\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0C0C29A5B3E448db88A540CBF86F2040 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 177 1 0 \"4daa00cf_0131_482a_a97ab70071acf478\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 178 1 0 \"e15ab814_7830_4714_8614a57cdc7cf1da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 179 1 0 \"46ad7b96_2d3e_44e4_85e9e902878d0443\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetVacuumStatus\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Initialize\" \"Begin\"\r\nfunction MPE2_Initialize( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 181 1 0 \"64a456e7_9ce1_4caf_974bf8cdb7567405\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E3E6123F67A8440b81A1CB3FB773F475 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 182 1 0 \"b3bdacc5_6062_45d2_b78b25c972053f32\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::Initialize(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 183 1 0 \"51d8de8a_fe30_4901_af70cf184dc4780d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 184 1 0 \"64a456e7_9ce1_4caf_974bf8cdb7567405\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E3E6123F67A8440b81A1CB3FB773F475 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 185 1 0 \"bb5569ff_51fe_4eb0_962c5da51b174ead\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 186 1 0 \"94dbe8af_15e1_4950_9c4c1277a3421150\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 187 1 0 \"64a456e7_9ce1_4caf_974bf8cdb7567405\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_InitializeWithParameters\" \"Begin\"\r\nfunction MPE2_InitializeWithParameters( variable i_intDeviceID, variable i_blnSmart, variable i_intWasteContainerID, variable i_intVacuumRunTime, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_InitializeWithParameters\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 189 1 0 \"91042743_807f_4abb_86f3f42d3bf418bc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8AE9D781D73441019DD1D2DDC54F96B3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 190 1 0 \"7dadc297_f6e6_410c_a954d2c0152b17f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::InitializeWithParameters(i_intDeviceID, i_blnSmart, i_intWasteContainerID, i_intVacuumRunTime, i_blnDisableVacuumCheck);\r\n// }} \"\"\r\n// {{ 191 1 0 \"465aee1b_7e04_4238_b1f13f71e0b78993\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 192 1 0 \"91042743_807f_4abb_86f3f42d3bf418bc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8AE9D781D73441019DD1D2DDC54F96B3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 193 1 0 \"e5710a6e_ebb2_41b8_a0e0a9197b99fd28\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 194 1 0 \"25152281_a7b5_4944_a0763d711ca61da9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 195 1 0 \"91042743_807f_4abb_86f3f42d3bf418bc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_InitializeWithParameters\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_MeasureEmptyContainer\" \"Begin\"\r\nfunction MPE2_MeasureEmptyContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_MeasureEmptyContainer\" \"InitLocals\"\r\no_intSensorReading = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 197 1 0 \"80c494de_3649_400a_961c95619fc476f8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FDDB9556A57846bbB8A4A97764AA6E61 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 198 1 0 \"80e6fece_cfa4_4e6c_b1a83470bb2c73ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::MeasureEmptyContainer(i_intDeviceID, i_intSourceID, o_intSensorReading);\r\n// }} \"\"\r\n// {{ 199 1 0 \"e0635f3b_4a07_468a_bc54aa3e072a7841\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 200 1 0 \"80c494de_3649_400a_961c95619fc476f8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FDDB9556A57846bbB8A4A97764AA6E61 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 201 1 0 \"38672f75_56ae_412a_a5b6001ad4d6a034\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 202 1 0 \"aab35969_5fda_4ea2_86905b983397d366\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 203 1 0 \"80c494de_3649_400a_961c95619fc476f8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_MeasureEmptyContainer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_MeasureFullContainer\" \"Begin\"\r\nfunction MPE2_MeasureFullContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_MeasureFullContainer\" \"InitLocals\"\r\no_intSensorReading = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 205 1 0 \"43a9eedf_1299_4f7b_b9d16b4848df74fd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A778E77EF45145b6B4E1D1A84D687FD1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 206 1 0 \"e49d64a9_be72_4dc4_86f640f5476e92bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::MeasureFullContainer(i_intDeviceID, i_intSourceID, o_intSensorReading);\r\n// }} \"\"\r\n// {{ 207 1 0 \"6418291d_dba3_44e1_814d305d20272139\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 208 1 0 \"43a9eedf_1299_4f7b_b9d16b4848df74fd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A778E77EF45145b6B4E1D1A84D687FD1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 209 1 0 \"f4c54faa_6288_49fd_b4b82e91c7eb9e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 210 1 0 \"6b43c1eb_30e9_4de6_8d16a39e9d37618a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 211 1 0 \"43a9eedf_1299_4f7b_b9d16b4848df74fd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_MeasureFullContainer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Prime\" \"Begin\"\r\nfunction MPE2_Prime( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainerID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_Prime\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 213 1 0 \"21cd88bd_ccae_4f23_97b28c31a8887aba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_39A79B96B270434fBCD7B29192BB85C8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2751a85b_8ed8_4eb5_90d5e8a098087323\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::Prime(i_intDeviceID, i_intSourceID, i_fltWellVolume, i_fltFlowRate, i_intWasteContainerID);\r\n// }} \"\"\r\n// {{ 215 1 0 \"26f4beb4_e551_430e_90e489ffbfe90123\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 216 1 0 \"21cd88bd_ccae_4f23_97b28c31a8887aba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_39A79B96B270434fBCD7B29192BB85C8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 217 1 0 \"1f99379f_ec35_4d51_a84489a1dffb720d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 218 1 0 \"9fc995e5_39fa_44ae_a5240377e35b61e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 219 1 0 \"21cd88bd_ccae_4f23_97b28c31a8887aba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_Prime\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ProcessFilterToCollectionPlate\" \"Begin\"\r\nfunction MPE2_ProcessFilterToCollectionPlate( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_ProcessFilterToCollectionPlate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 221 1 0 \"0040eb94_a5eb_4e2d_8e8b06f6234587f9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_60043F2A09014c5bABD65A8D266AF07E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 222 1 0 \"646c3494_03c5_458b_ad63baffccc8c946\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::ProcessFilterToCollectionPlate(i_intDeviceID, i_strControlPoints, i_blnReturnPlateToIntegrationArea);\r\n// }} \"\"\r\n// {{ 223 1 0 \"e9cba89a_28cc_42c2_957765c437a69d8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 224 1 0 \"0040eb94_a5eb_4e2d_8e8b06f6234587f9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_60043F2A09014c5bABD65A8D266AF07E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 225 1 0 \"1cb850d2_212a_4646_9c2b280b6a702b4d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 226 1 0 \"64d78110_3e16_4dd2_9b388e243f521d8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 227 1 0 \"0040eb94_a5eb_4e2d_8e8b06f6234587f9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ProcessFilterToCollectionPlate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ProcessFilterToWasteContainer\" \"Begin\"\r\nfunction MPE2_ProcessFilterToWasteContainer( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable i_intWasteContainerID, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_ProcessFilterToWasteContainer\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 229 1 0 \"37e0026d_7bcd_4a48_809ee234f8187c7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DC797114D45344f195B613FD7BF608B4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 230 1 0 \"50c6c29e_b872_4c6e_b16840cf13ca6444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::ProcessFilterToWasteContainer(i_intDeviceID, i_strControlPoints, i_blnReturnPlateToIntegrationArea, i_intWasteContainerID, i_blnDisableVacuumCheck);\r\n// }} \"\"\r\n// {{ 231 1 0 \"e91d529a_d5f7_4c1b_983091c7687a13fc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 232 1 0 \"37e0026d_7bcd_4a48_809ee234f8187c7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DC797114D45344f195B613FD7BF608B4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 233 1 0 \"14ba4e65_a9b4_49e2_ac1fc6b282d5d946\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 234 1 0 \"0cd157a3_0317_4f9e_b2dc534f7202b215\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 235 1 0 \"37e0026d_7bcd_4a48_809ee234f8187c7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_ProcessFilterToWasteContainer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_RetrieveFilterPlate\" \"Begin\"\r\nfunction MPE2_RetrieveFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_RetrieveFilterPlate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 237 1 0 \"4069e901_b501_4cd4_b2ef6e60398f2533\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_80489D0F73EC4cd88591B66B3726D225 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 238 1 0 \"1db1eedc_0c00_43f2_ac02f5b83a1463b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::RetrieveFilterPlate(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 239 1 0 \"ef2aa949_5266_474b_a3d50146a47f4fdd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 240 1 0 \"4069e901_b501_4cd4_b2ef6e60398f2533\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_80489D0F73EC4cd88591B66B3726D225 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 241 1 0 \"75398ca5_77bb_4236_b564344d50bfe355\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 242 1 0 \"3754702c_8d97_4643_9c91061936ffb1f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 243 1 0 \"4069e901_b501_4cd4_b2ef6e60398f2533\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_RetrieveFilterPlate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_StartVacuum\" \"Begin\"\r\nfunction MPE2_StartVacuum( variable i_intDeviceID, variable i_intWasteContainerID, variable i_blnDisableVacuum, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_StartVacuum\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 269 1 0 \"ff5584ca_4111_430d_8b6ae58e1f1eb21f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F00EA353D09D4f0cA555D89BEBF25FAC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 270 1 0 \"112b18b5_e7e2_4287_b617efd06028e7d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::StartMPEVacuum(i_intDeviceID, i_intWasteContainerID, i_blnDisableVacuum);\r\n// }} \"\"\r\n// {{ 271 1 0 \"247f00b4_277f_4013_b46dcd10e79aedec\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 272 1 0 \"ff5584ca_4111_430d_8b6ae58e1f1eb21f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F00EA353D09D4f0cA555D89BEBF25FAC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 273 1 0 \"4300ed5b_9942_4b18_9768799049c929af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 274 1 0 \"a85acfdb_4e46_4c37_947cbbde35ec77a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 275 1 0 \"ff5584ca_4111_430d_8b6ae58e1f1eb21f\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_StartVacuum\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_StopVacuum\" \"Begin\"\r\nfunction MPE2_StopVacuum( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_StopVacuum\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 277 1 0 \"2f3a388f_7afa_4753_ad873cc58639cea5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E5132B584A4D473a9FCBF496236A214C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 278 1 0 \"58394f46_9f2e_45bf_8284f7a2ae6d546d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::StopVacuum(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 279 1 0 \"b3dddbbe_e8c4_499a_9cda566534d33ec9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 280 1 0 \"2f3a388f_7afa_4753_ad873cc58639cea5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E5132B584A4D473a9FCBF496236A214C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 281 1 0 \"a8ffa312_280e_4998_a80cdb721b6228e9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 282 1 0 \"a587efb5_c061_49b6_8db0996cd37e5ff9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 283 1 0 \"2f3a388f_7afa_4753_ad873cc58639cea5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_StopVacuum\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_StartContainerCalibration\" \"Begin\"\r\nfunction MPE2_StartContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_StartContainerCalibration\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 261 1 0 \"b9280d89_2ec3_48aa_bc5f49763b6d5a62\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_5571AB97B3CB41f2B6524DCFC97BB5EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 262 1 0 \"869a8f25_1148_4e47_8c02bc11322096b6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::StartContainerCalibration(i_intDeviceID, i_intSourceID, i_fltVolume);\r\n// }} \"\"\r\n// {{ 263 1 0 \"859c3303_73c7_46b4_be6650c83d14cc6f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 264 1 0 \"b9280d89_2ec3_48aa_bc5f49763b6d5a62\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_5571AB97B3CB41f2B6524DCFC97BB5EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 265 1 0 \"82436c45_85bf_4662_a81288feda0471d7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 266 1 0 \"c6caac0b_36d8_49e5_8a2e415b61f5f2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 267 1 0 \"b9280d89_2ec3_48aa_bc5f49763b6d5a62\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_StartContainerCalibration\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_SaveContainerCalibration\" \"Begin\"\r\nfunction MPE2_SaveContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_SaveContainerCalibration\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 245 1 0 \"4a530735_b4e2_4487_a26d7ac0fe433402\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6802A23190BD4089933F43C88C0070BC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 246 1 0 \"679f7ba5_abc1_44a6_9dff38d36bce2c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::SaveContainerCalibration(i_intDeviceID, i_intSourceID);\r\n// }} \"\"\r\n// {{ 247 1 0 \"7b6bad9b_e99f_4ca5_a90dd84f73fce81d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 248 1 0 \"4a530735_b4e2_4487_a26d7ac0fe433402\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6802A23190BD4089933F43C88C0070BC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 249 1 0 \"3065d222_d7a5_42bc_9f3c1c7d148d2b29\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 250 1 0 \"fa53dd0b_215f_4394_a295bba14d0452ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 251 1 0 \"4a530735_b4e2_4487_a26d7ac0fe433402\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_SaveContainerCalibration\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_SetSourceConfiguration\" \"Begin\"\r\nfunction MPE2_SetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_SetSourceConfiguration\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 253 1 0 \"d20fc919_297b_4e0b_b53b0ba4f1d68b0a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C0840609B69A4036A6A031739EB19B75 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 254 1 0 \"75b26d5c_305b_49a8_8edfb0c9beeb975a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::SetSourceConfiguration(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 255 1 0 \"09535670_06ed_4568_8c127eb34562001f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 256 1 0 \"d20fc919_297b_4e0b_b53b0ba4f1d68b0a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C0840609B69A4036A6A031739EB19B75 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 257 1 0 \"fe1f75cb_c29c_4e10_be2f71b1659f1ff9\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 258 1 0 \"49655ee2_2eb5_45b1_8321f7b96832f2a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 259 1 0 \"d20fc919_297b_4e0b_b53b0ba4f1d68b0a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_SetSourceConfiguration\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetSourceConfiguration\" \"Begin\"\r\nfunction MPE2_GetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPE2_GetSourceConfiguration\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 157 1 0 \"5d4eee28_a1c6_47ea_b0abd0ff06569f96\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_5E107BCD059D424dA568A0C2A4DC30A7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 158 1 0 \"ee1ffcc0_0794_462d_940649ca3479fbf7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLMPELib::GetSourceConfiguration(i_intDeviceID);\r\n// }} \"\"\r\n// {{ 159 1 0 \"6d8f9da1_f744_40e4_9b70ef5d9a48070f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 160 1 0 \"5d4eee28_a1c6_47ea_b0abd0ff06569f96\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_5E107BCD059D424dA568A0C2A4DC30A7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 161 1 0 \"bd314dbb_771c_41ed_88631530713e0ef6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 162 1 0 \"36a11712_ce3a_46e2_b47f069c70d2bc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 163 1 0 \"5d4eee28_a1c6_47ea_b0abd0ff06569f96\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPE2_GetSourceConfiguration\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-03-20 09:12$$checksum=f551040f$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_centrifuge.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 2/10/2023 12:16:54 AM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_OEM_TOOLKIT_CENTRIFUGE {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction 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 { }\r\nfunction HamiltonCentrifuge_CoverClose( variable i_strLabel, variable & o_stepReturn ) void { }\r\nfunction HamiltonCentrifuge_CoverOpen( variable i_strLabel, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction HamiltonCentrifuge_Initialize( variable i_strLabel, variable i_strNodeName, variable i_blnSimulationMode, variable i_blnAlwaysInitialize, variable & o_stepReturn ) void { }\r\nfunction HamiltonCentrifuge_StartCentrifuge( variable i_strLabel, variable i_intDirection, variable i_intSpeed, variable i_intAcceleration, variable i_intMaxTime, variable & o_stepReturn ) void { }\r\nfunction HamiltonCentrifuge_StopCentrifuge( variable i_strLabel, variable i_intDecelleration, variable & o_stepReturn ) void { }\r\nfunction HamiltonCentrifuge_Terminate( variable i_strLabel, variable & o_stepReturn ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=stefa$$valid=0$$time=2023-02-10 00:16$$checksum=08b8e6bd$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_centrifuge.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\"\r\n#include \"HSLBarcodeReader.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT_CENTRIFUGE {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction 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 ;\r\nfunction HamiltonCentrifuge_CoverClose( variable i_strLabel, variable & o_stepReturn ) void ;\r\nfunction HamiltonCentrifuge_CoverOpen( variable i_strLabel, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction HamiltonCentrifuge_Initialize( variable i_strLabel, variable i_strNodeName, variable i_blnSimulationMode, variable i_blnAlwaysInitialize, variable & o_stepReturn ) void ;\r\nfunction HamiltonCentrifuge_StartCentrifuge( variable i_strLabel, variable i_intDirection, variable i_intSpeed, variable i_intAcceleration, variable i_intMaxTime, variable & o_stepReturn ) void ;\r\nfunction HamiltonCentrifuge_StopCentrifuge( variable i_strLabel, variable i_intDecelleration, variable & o_stepReturn ) void ;\r\nfunction HamiltonCentrifuge_Terminate( variable i_strLabel, variable & o_stepReturn ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"HamiltonCentrifuge_Initialize\" \"Begin\"\r\nfunction HamiltonCentrifuge_Initialize( variable i_strLabel, variable i_strNodeName, variable i_blnSimulationMode, variable i_blnAlwaysInitialize, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HamiltonCentrifuge_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 25 1 0 \"8f396cc9_60f7_4219_ac1c9fe2276fd3d4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AB99818B6C9C4e01A2D3408A63DDB0B1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 26 1 0 \"c61b809a_6951_4a41_92b162d30da0e530\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HamiltonCentrifuge::Initialize(i_strLabel, i_strNodeName, i_blnSimulationMode, i_blnAlwaysInitialize);\r\n// }} \"\"\r\n// {{ 27 1 0 \"8f396cc9_60f7_4219_ac1c9fe2276fd3d4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AB99818B6C9C4e01A2D3408A63DDB0B1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 28 1 0 \"d26c85f6_e647_41c0_808a53edea8c8982\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 29 1 0 \"8f396cc9_60f7_4219_ac1c9fe2276fd3d4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_Centrifuge\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"HamiltonCentrifuge_Centrifuge\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"d01bfc46_9e9c_4d7a_bd3fa6f791904929\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A2C3EC70E5E846f58CD4FE2BBD93C9D9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"f14d3090_673c_4c70_9da421f87af4d75f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HamiltonCentrifuge::Centrifuge(i_strLabel, i_blnCloseCoverAtEnd, i_intPresentPosition, i_intDirection, i_intArrSpeed, i_intArrAccelleration, i_intArrDuration, i_intDecelleration);\r\n// }} \"\"\r\n// {{ 3 1 0 \"d01bfc46_9e9c_4d7a_bd3fa6f791904929\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A2C3EC70E5E846f58CD4FE2BBD93C9D9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"c25dc277_d818_46fb_a5d49a65d6f867b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 5 1 0 \"d01bfc46_9e9c_4d7a_bd3fa6f791904929\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_Centrifuge\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_GetRotationStatus\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"HamiltonCentrifuge_GetRotationStatus\" \"InitLocals\"\r\no_blnRotorDriveRunning = 0;\r\no_int_ProfileStatus = 0;\r\no_intTimeLeft = 0;\r\no_blnCurrentSpeed = 0;\r\no_blnSpeedSensorTrip = 0;\r\no_blnGravitySensorTrip = 0;\r\no_blnTemperatureSensorTrip = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 19 1 0 \"c30abb04_f50e_4df7_a1cfad44bbbf3bc5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_419C19BCFC314cfc8125D61C4682527D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 20 1 0 \"dab46c43_7e7d_478a_a949dcf4ed01fcf3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HamiltonCentrifuge::GetRotationDriveStatus(i_strLabel, o_blnRotorDriveRunning, o_int_ProfileStatus, o_intTimeLeft, o_blnCurrentSpeed, o_blnSpeedSensorTrip, o_blnGravitySensorTrip, o_blnTemperatureSensorTrip);\r\n// }} \"\"\r\n// {{ 21 1 0 \"c30abb04_f50e_4df7_a1cfad44bbbf3bc5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_419C19BCFC314cfc8125D61C4682527D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 22 1 0 \"557851a9_1249_408d_9808213bccd348a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 23 1 0 \"c30abb04_f50e_4df7_a1cfad44bbbf3bc5\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_GetRotationStatus\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_CoverOpen\" \"Begin\"\r\nfunction HamiltonCentrifuge_CoverOpen( variable i_strLabel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HamiltonCentrifuge_CoverOpen\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 13 1 0 \"d58ac169_88cf_4fd1_91c7d27e79a79e4d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E484704EBD56486aB099BF985EAAF152 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 14 1 0 \"13997326_7197_434f_89528b4f80fe763c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HamiltonCentrifuge::CoverOpen(i_strLabel);\r\n// }} \"\"\r\n// {{ 15 1 0 \"d58ac169_88cf_4fd1_91c7d27e79a79e4d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E484704EBD56486aB099BF985EAAF152 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 16 1 0 \"130626d7_a25f_491b_ac64c946c9398d2d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 17 1 0 \"d58ac169_88cf_4fd1_91c7d27e79a79e4d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_CoverOpen\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_CoverClose\" \"Begin\"\r\nfunction HamiltonCentrifuge_CoverClose( variable i_strLabel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HamiltonCentrifuge_CoverClose\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 7 1 0 \"675a6a59_5716_4aad_a7be67a44d621f27\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8DA249B863A24d38A5E8B6EDFAE8EC9C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 8 1 0 \"3bde4bdd_f253_4ade_b11a3add924729fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HamiltonCentrifuge::CoverClose(i_strLabel);\r\n// }} \"\"\r\n// {{ 9 1 0 \"675a6a59_5716_4aad_a7be67a44d621f27\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8DA249B863A24d38A5E8B6EDFAE8EC9C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 10 1 0 \"90b316b5_8841_4665_906f0242b89acfba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 11 1 0 \"675a6a59_5716_4aad_a7be67a44d621f27\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_CoverClose\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_StartCentrifuge\" \"Begin\"\r\nfunction HamiltonCentrifuge_StartCentrifuge( variable i_strLabel, variable i_intDirection, variable i_intSpeed, variable i_intAcceleration, variable i_intMaxTime, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HamiltonCentrifuge_StartCentrifuge\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 31 1 0 \"160054e2_9d07_4b06_8990696a6c21f633\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2925F4CEB30A4628823CE84322B9DA0D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 32 1 0 \"59e1d420_00bc_4de5_ba19ef5907122ce0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HamiltonCentrifuge::StartCentrifuge(i_strLabel, i_intDirection, i_intSpeed, i_intAcceleration, i_intMaxTime);\r\n// }} \"\"\r\n// {{ 33 1 0 \"160054e2_9d07_4b06_8990696a6c21f633\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2925F4CEB30A4628823CE84322B9DA0D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"a65a3d22_f7ce_41e4_8f023e87df5f667f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 35 1 0 \"160054e2_9d07_4b06_8990696a6c21f633\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_StartCentrifuge\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_StopCentrifuge\" \"Begin\"\r\nfunction HamiltonCentrifuge_StopCentrifuge( variable i_strLabel, variable i_intDecelleration, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HamiltonCentrifuge_StopCentrifuge\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 37 1 0 \"2b8f1369_657d_4eb0_b0dad38a7560b40e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9624A18BCC154f0c948BB09C882A91EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 38 1 0 \"0be0854d_0181_4ef4_93c17722d290c889\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HamiltonCentrifuge::StopCentrifuge(i_strLabel, i_intDecelleration);\r\n// }} \"\"\r\n// {{ 39 1 0 \"2b8f1369_657d_4eb0_b0dad38a7560b40e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9624A18BCC154f0c948BB09C882A91EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"a5c8e164_4da3_4a0b_9df26a767b13252e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 41 1 0 \"2b8f1369_657d_4eb0_b0dad38a7560b40e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_StopCentrifuge\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_Terminate\" \"Begin\"\r\nfunction HamiltonCentrifuge_Terminate( variable i_strLabel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"HamiltonCentrifuge_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 43 1 0 \"8568f0bd_45dd_4b50_aa51ea5e57142996\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FB35381D1C594f7eA650BBCA433D2A47 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 44 1 0 \"52061e8e_924b_4a10_8df3a8ab0848b707\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HamiltonCentrifuge::Terminate(o_stepReturn);\r\n// }} \"\"\r\n// {{ 45 1 0 \"8568f0bd_45dd_4b50_aa51ea5e57142996\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FB35381D1C594f7eA650BBCA433D2A47 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 46 1 0 \"0b776374_a1a1_40bb_bbc047db6c198c6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 47 1 0 \"8568f0bd_45dd_4b50_aa51ea5e57142996\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"HamiltonCentrifuge_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-02-10 00:16$$checksum=e58d0858$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_pH.hs_",
    "content": "\r\n// this ALWAYS GENERATED file contains the sub-method library header\r\n// Generated at 10/28/2022 8:30:08 PM\r\n\r\n#pragma once\r\n#ifndef HSL_RUNTIME\r\nnamespace STAR_OEM_TOOLKIT_PH {\r\nfunction _InitLibrary() { }\r\nfunction _ExitLibrary() { }\r\nfunction pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { }\r\nfunction pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Enable_Extended_Log( variable & o_stepReturn ) void { }\r\nfunction pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void { }\r\nfunction pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void { }\r\nfunction 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 { }\r\nfunction 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 { }\r\nfunction pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void { }\r\nfunction pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void { }\r\nfunction pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { }\r\nfunction pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void { }\r\nfunction pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { }\r\nfunction pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void { }\r\nfunction pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void { }\r\nfunction pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { }\r\nfunction pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Template( variable i_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { }\r\nfunction pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { }\r\nfunction pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void { }\r\n} // namespace\r\n#endif\r\n\r\n#ifdef HSL_RUNTIME\r\n#include __filename__ \".hsi\"\r\n#endif\r\n// $$author=stefa$$valid=0$$time=2022-10-28 20:30$$checksum=0bd52d60$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_pH.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT_PH {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Enable_Extended_Log( variable & o_stepReturn ) void ;\r\nfunction pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void ;\r\nfunction pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void ;\r\nfunction pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Template( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"pH_Measure\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 61 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2E2474F7607B4feb8948B25BBE3B49F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 62 1 0 \"2394bca1_88c0_4399_ab04a338af9f5010\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4);\r\n// }} \"\"\r\n// {{ 63 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2E2474F7607B4feb8948B25BBE3B49F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 64 1 0 \"d771a760_6814_4866_a12a03881c971346\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 65 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate\" \"Begin\"\r\nfunction pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Calibrate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ADDE389AF4C7414193E7475BFBC151C7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"9742609f_32c7_419d_8ec016c662c584c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Calibrate(i_intModuleID, i_intCalibrationLevel, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern);\r\n// }} \"\"\r\n// {{ 3 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ADDE389AF4C7414193E7475BFBC151C7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"8904566e_857b_47da_868f8d8e8444f2bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 5 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Template\" \"Begin\"\r\nfunction pH_Template( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Template\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 145 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EBDA9B022DA24dd7955D30E2549FDE5B ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 146 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EBDA9B022DA24dd7955D30E2549FDE5B : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 147 1 0 \"a89bc761_6592_4106_a0acdd14e73bc5d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 148 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Template\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate_Dynamically\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Calibrate_Dynamically\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 7 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_94CD08297F814239B0B11419D328505E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 8 1 0 \"5f0f28e4_2d10_486d_a5f025fe43a57dfd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::CalibrateDynamically(i_intModuleID, i_intCalibrationLevel, i_intVariance, i_intTimeout, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern);\r\n// }} \"\"\r\n// {{ 9 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_94CD08297F814239B0B11419D328505E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 10 1 0 \"276c7958_53d6_44c9_bdc01f6b0631af18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 11 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate_Dynamically\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Enable_Extended_Log\" \"Begin\"\r\nfunction pH_Enable_Extended_Log( variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Enable_Extended_Log\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 43 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6213D20124C149648FFCCD6E66E53566 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 44 1 0 \"cfadb79c_ec52_4a4c_8c613ef78f0d979e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::EnableExtendedLog();\r\n// }} \"\"\r\n// {{ 45 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6213D20124C149648FFCCD6E66E53566 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 46 1 0 \"352e0c88_c061_4d35_a4aeefb9fd441f38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 47 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Enable_Extended_Log\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Get_Last_Error\" \"Begin\"\r\nfunction pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Get_Last_Error\" \"InitLocals\"\r\no_strLastError = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 49 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 50 1 0 \"1bbf5668_7da2_4593_a954eb5c20baf705\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::GetLastError(i_intModuleID, o_strLastError);\r\n// }} \"\"\r\n// {{ 51 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 52 1 0 \"1340b7b5_ecea_4308_8a8ee7d11c70edc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 53 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Get_Last_Error\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Initialize\" \"Begin\"\r\nfunction pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Initialize\" \"InitLocals\"\r\no_intModuleID = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 55 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_970E55A20F9F4e42B517C5847AEB8E38 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 56 1 0 \"297fb019_93d9_4b46_a56c3a32731a402d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Initialize(i_intComport, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 57 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_970E55A20F9F4e42B517C5847AEB8E38 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 58 1 0 \"911745ea_61cd_4f58_b8e0704906ebf222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 59 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure_Dynamically\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure_Dynamically\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 67 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AA203E903AF848e0B0529507465A94E1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 68 1 0 \"b4fb2269_5bd3_4f6c_8660501f53441522\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 69 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AA203E903AF848e0B0529507465A94E1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 70 1 0 \"b05cdfa7_6391_4ff4_81ed18ac5f6a52e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 71 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure_Dynamically\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Battery_Data\" \"Begin\"\r\nfunction pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Battery_Data\" \"InitLocals\"\r\no_strReplacementDate = 0;\r\no_intChargeCounter = 0;\r\no_intBatteryCondition = 0;\r\no_intActualCharge = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 73 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_996D8DE608A04eacBD637370A8B07B64 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 74 1 0 \"da6aa4ae_3fb0_4dcb_a2a72e6dbb23e4e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, o_intBatteryCondition, o_intActualCharge);\r\n// }} \"\"\r\n// {{ 75 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_996D8DE608A04eacBD637370A8B07B64 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 76 1 0 \"374fab67_3d2c_479b_824c5098139051de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 77 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Battery_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Calibration_Values\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Calibration_Values\" \"InitLocals\"\r\no_fltpHLowValue = 0;\r\no_fltpHLowVoltage = 0;\r\no_fltpHHighValue = 0;\r\no_fltpHHighVoltage = 0;\r\no_fltCalibrationTemperature = 0;\r\no_fltCalibrationOffset = 0;\r\no_fltCalibrationSlope = 0;\r\no_intCalibrationSlopeRation = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 79 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A458A465FAAE4354AE920AE0DDDD5DCA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 80 1 0 \"be826faa_b99a_4b0d_8bcfd9b9e6f58c1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 81 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A458A465FAAE4354AE920AE0DDDD5DCA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"3beb4db8_474e_4c8b_8c2a3a46b738bdbe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 83 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Calibration_Values\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Probe_Data\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Probe_Data\" \"InitLocals\"\r\no_strReplacementDate = 0;\r\no_intMeasurementCounter_Probe_1 = 0;\r\no_intMeasurementCounter_Probe_2 = 0;\r\no_intMeasurementCounter_Probe_3 = 0;\r\no_intMeasurementCounter_Probe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 85 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A2F80039318F4807A9355EEE8F65F09D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 86 1 0 \"39f96463_bf0a_478e_99d106ede0c66ca8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 87 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A2F80039318F4807A9355EEE8F65F09D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 88 1 0 \"c289098d_bcc1_49b8_acdb3d5a56078d64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 89 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Probe_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Technical_Data\" \"Begin\"\r\nfunction pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Technical_Data\" \"InitLocals\"\r\no_intPartNumber = 0;\r\no_intRevision = 0;\r\no_intSerialNumber = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 91 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_903977FAFD2C4e8bB89D056988CC3EF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 92 1 0 \"7b65b46f_5b72_4640_9861bacd4ace5643\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::RequestTechnicalData(i_intModuleID, i_intHardwareNumber, o_intPartNumber, o_intRevision, o_intSerialNumber);\r\n// }} \"\"\r\n// {{ 93 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_903977FAFD2C4e8bB89D056988CC3EF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 94 1 0 \"0381375a_eba4_4614_93c926558c2d7558\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 95 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Technical_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Voltage_Data\" \"Begin\"\r\nfunction pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Voltage_Data\" \"InitLocals\"\r\no_varVoltageData = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 97 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_44952D3849BE4a219EFD38455D886E56 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 98 1 0 \"4a76ad62_352e_40ca_81088288e34cdeee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::RequestVoltageData(i_intModuleID, i_intSelector, o_varVoltageData);\r\n// }} \"\"\r\n// {{ 99 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_44952D3849BE4a219EFD38455D886E56 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 100 1 0 \"043b5397_9bb9_4522_978d64f42943ee9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 101 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Voltage_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Battery_Replacement_Date\" \"Begin\"\r\nfunction pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Battery_Replacement_Date\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 103 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C13705D0B70B4e8eAA80912053CAC1F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 104 1 0 \"b9ab604b_ca72_4ee2_b99c1a7872da4624\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetBatteryReplacementDate(i_intModuleID, i_intDay, i_intMonth, i_intYear);\r\n// }} \"\"\r\n// {{ 105 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C13705D0B70B4e8eAA80912053CAC1F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 106 1 0 \"bbb0d55f_6f61_4bd2_9477cf3936b9472e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 107 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Battery_Replacement_Date\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Charge_Parameters\" \"Begin\"\r\nfunction pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Charge_Parameters\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 109 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4A84194D248D4b0088B93676813BEE2D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 110 1 0 \"c35f1bf8_8cea_4986_96ba8ef0097524c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetChargeParameters(i_intModuleID, i_blnCharge, i_blnAutoCharge, i_intChargeLevel);\r\n// }} \"\"\r\n// {{ 111 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4A84194D248D4b0088B93676813BEE2D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 112 1 0 \"ed302be8_6fd1_4215_80f039adbe780f7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 113 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Charge_Parameters\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Probe_Replacement_Date\" \"Begin\"\r\nfunction pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Probe_Replacement_Date\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 115 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_244E236DDAAF4536B249F6D8792A60A2 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 116 1 0 \"d9b9ef0e_6c6d_4272_97b55d209307f7e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetProbeReplacementDate(i_intModuleID, i_intProbe, i_intYear, i_intMonth, i_intDay);\r\n// }} \"\"\r\n// {{ 117 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_244E236DDAAF4536B249F6D8792A60A2 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 118 1 0 \"4ebc6879_cd2b_448a_b753ab26b9645392\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 119 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Probe_Replacement_Date\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Shutdown\" \"Begin\"\r\nfunction pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Shutdown\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 121 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 122 1 0 \"3b63fd46_6389_405c_8940455e9f127468\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetShutdown(i_intModuleID, i_intMode);\r\n// }} \"\"\r\n// {{ 123 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7907B9BE9B2647d09FEC0DD2979D5B14 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"804cd242_3933_4e99_a96c4367bbe3f9ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 125 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Shutdown\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Technical_Data\" \"Begin\"\r\nfunction pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Technical_Data\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 127 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_007BB8AFAE534922B6C5EA899698EA91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 128 1 0 \"8dd87239_734f_4123_90ead0ba65f0bbbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetTechnicalData(i_intModuleID, i_intHardwareNumber, i_intPartNumber, i_intRevision, i_intSerialNumber);\r\n// }} \"\"\r\n// {{ 129 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_007BB8AFAE534922B6C5EA899698EA91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ebf84842_e475_488c_9862aa5015f5fec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 131 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Technical_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Trace_Level\" \"Begin\"\r\nfunction pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Trace_Level\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 133 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E054D9949EA7480786FBA86809E1466A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 134 1 0 \"6047012d_fb0a_4b7e_8aaf873bfe7845f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 135 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E054D9949EA7480786FBA86809E1466A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 136 1 0 \"555d191a_8248_46cf_8ea20adfafc8467f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 137 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Trace_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Sleep\" \"Begin\"\r\nfunction pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Sleep\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 139 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_76094A1A6DE5412d86AB364ECCABC11C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 140 1 0 \"2a282561_49e7_4e38_9a879c795b444f19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Sleep(i_intModuleID);\r\n// }} \"\"\r\n// {{ 141 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_76094A1A6DE5412d86AB364ECCABC11C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 142 1 0 \"e0169354_be6f_4f1f_8bdafe388a9c4771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 143 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Sleep\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Terminate\" \"Begin\"\r\nfunction pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 150 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2159C97E67DC41d2931B29ED5B108588 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 151 1 0 \"5eafa92d_a6f8_43b4_85d53439a46b7150\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Terminate(i_intModuleID);\r\n// }} \"\"\r\n// {{ 152 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2159C97E67DC41d2931B29ED5B108588 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"c747eb9a_16b7_4375_a0b8c1fa3905f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 154 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Wakeup\" \"Begin\"\r\nfunction pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Wakeup\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 156 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AC33764C04E24aa192975F20CE5661F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 157 1 0 \"b874aa08_e28d_448b_bcb942611cb0081e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{ 158 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AC33764C04E24aa192975F20CE5661F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"0bb81b5c_7196_46bd_a008386d79a49a7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 160 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Wakeup\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Initialize\" \"Begin\"\r\nfunction pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 162 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7FD13D87F8D74230A78B98C5B83581AE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 163 1 0 \"73832845_cea9_4136_b893d93437a02f00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::Initialize(ML_STAR, i_intComport, i_strModuleName, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 164 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7FD13D87F8D74230A78B98C5B83581AE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 165 1 0 \"dba61f0e_40e0_4580_a0521efc45217200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 166 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Set_Trace\" \"Begin\"\r\nfunction pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Set_Trace\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 168 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 169 1 0 \"878952e6_2860_4a96_a9c8d7f2ae67c7a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 170 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B6EDA3032F05464e9D3AC6C60F6B38DD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 171 1 0 \"0f963a42_c256_489a_aaa94e1febe27518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 172 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Set_Trace\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Terminate\" \"Begin\"\r\nfunction pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 174 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3C057778551F44998B365E9253A02217 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 175 1 0 \"d4227020_99a1_4aa0_9d6e084149e70033\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::Terminate(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 176 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3C057778551F44998B365E9253A02217 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"66061ca5_5cc5_4d0f_9202635c03ec1307\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 178 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Wash\" \"Begin\"\r\nfunction pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Wash\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 180 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_78E848113B364c5bA57553087E6B301D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 181 1 0 \"f05733be_cfcc_4ec8_b953e718e1850a9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::Wash(ML_STAR, i_intModuleID, i_intCycleNumber);\r\n// }} \"\"\r\n// {{ 182 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_78E848113B364c5bA57553087E6B301D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 183 1 0 \"c9e18e37_6611_4c12_8283218c23b61e2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 184 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Wash\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Initialize\" \"Begin\"\r\nfunction pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Initialize\" \"InitLocals\"\r\no_intModuleID = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 13 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_5DF85C91FEE34492A487BBB5FD9647BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 14 1 0 \"05f15313_9f49_451a_95bbeb4c53196bc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::Initialize(ML_STAR, i_strModuleName, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 15 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_5DF85C91FEE34492A487BBB5FD9647BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 16 1 0 \"ab7a6bde_3380_4c1c_9e57ee94fd815540\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 17 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Set_Trace\" \"Begin\"\r\nfunction pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Set_Trace\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 19 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C2938C2495A74c4cA632332F553DD428 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 20 1 0 \"3cc57734_cda6_468c_a2c90189391dadd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 21 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C2938C2495A74c4cA632332F553DD428 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 22 1 0 \"b9209d93_3ded_4c38_96bc13f91674c01c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 23 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Set_Trace\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StartDrying\" \"Begin\"\r\nfunction pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_StartDrying\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 25 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_04151AE1B5D4492089F91C4D24DFB4D1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 26 1 0 \"689c20eb_6a9d_4a74_88f159552e3027f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::StartDrying(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 27 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_04151AE1B5D4492089F91C4D24DFB4D1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 28 1 0 \"adeee0f8_b525_41bd_a62b5edf9d117c6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 29 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StartDrying\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StopDrying\" \"Begin\"\r\nfunction pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_StopDrying\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 31 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A4169CBA98C24da39C38331F531BB852 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 32 1 0 \"db4fe054_872e_4452_8835e28b39a4ad1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 33 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A4169CBA98C24da39C38331F531BB852 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"47b1bc71_479a_474d_a5b3c1fe4e31d5e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 35 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StopDrying\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Terminate\" \"Begin\"\r\nfunction pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 37 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_976FC1B840694cb598ACF66A1DAAA974 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 38 1 0 \"59fd889e_96a4_4c23_a1f9d3304535be72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 39 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_976FC1B840694cb598ACF66A1DAAA974 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"6d67118e_7746_4fb9_aa5ef1f641c11cb5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 41 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-10-28 20:30$$checksum=f397232e$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_wFan.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nglobal device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable fanSpeed;\r\nvariable persistant;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"a48ecca7_58ae_4053_bcf55cb937c67cee\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"abe1ccd9_4f62_4ba7_86704f85775601a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"2054eeee_4a5e_455d_ba88a5f72b6e2d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HxFanSet\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"daa15756_3436_4933_a77343a6b74abdda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"f7a65cdd_f556_4510_93dc393aab7117ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"persistant\"), persistant);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"9aac0f80_77c6_4378_9edcafdb980a7a52\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"017efef4_a04a_4cd8_8b95c3627a4ca3f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"fanSpeed\"), fanSpeed);\r\n// }} \"\"\r\n// {{ 173 1 0 \"f4fe901f_0fea_4182_a9b32d3a52be8ba8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9524EA7A672749f5B1DC8547FF64D411 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 174 1 0 \"5289ef1c_0270_4bf7_87ecc95031ea60c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 175 1 0 \"2aac9555_3db2_42fe_95746d929bf7805c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (simulate == 0)\r\n{\r\n// }} \"\"\r\n// {{ 176 1 0 \"15813370_102c_46f8_b0b9e10f69c94545\" \"HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}\"\r\n{\r\n\tHxFan.Simulate(\"15813370_102c_46f8_b0b9e10f69c94545\"); // Simulate\r\n}\r\n// }} \"\"\r\n// {{ 177 1 0 \"2aac9555_3db2_42fe_95746d929bf7805c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 178 1 0 \"2bfa4c39_78dc_4c07_8df1587b789631e3\" \"HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}\"\r\n{\r\n\tHxFan.Simulate(\"2bfa4c39_78dc_4c07_8df1587b789631e3\"); // Simulate\r\n}\r\n// }} \"\"\r\n// {{ 179 1 0 \"2aac9555_3db2_42fe_95746d929bf7805c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 180 1 0 \"ccac4a45_40dd_478b_8cd2a33b5bfc919f\" \"HxFan:{419861B2-AD5B-4F2E-8025-46B0E593A024}\"\r\n{\r\n\tHxFan.SetComPort(\"ccac4a45_40dd_478b_8cd2a33b5bfc919f\"); // SetComPort\r\n}\r\n// }} \"\"\r\n// {{ 181 1 0 \"ec1a34ec_ccfa_435a_9b831bbbc700ae5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (persistant == 0)\r\n{\r\n// }} \"\"\r\n// {{ 182 1 0 \"c0e6fd40_d6ce_4eae_bc0fe29ab9018489\" \"HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}\"\r\n{\r\n\tHxFan.SetContinuousMode(\"c0e6fd40_d6ce_4eae_bc0fe29ab9018489\"); // SetContinuousMode\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"ec1a34ec_ccfa_435a_9b831bbbc700ae5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 184 1 0 \"f8c79ed8_291c_4649_85b5273193fb1cee\" \"HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}\"\r\n{\r\n\tHxFan.SetContinuousMode(\"f8c79ed8_291c_4649_85b5273193fb1cee\"); // SetContinuousMode\r\n}\r\n// }} \"\"\r\n// {{ 185 1 0 \"ec1a34ec_ccfa_435a_9b831bbbc700ae5b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 186 1 0 \"1c42435f_bcfc_4ea5_ac419d4f416f2ea5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (fanSpeed == 0)\r\n{\r\n// }} \"\"\r\n// {{ 187 1 0 \"f0ad384a_ad3d_442d_93a20fc5d001d549\" \"HxFan:{1581574C-5388-4E48-BC78-FEE50E8DCE05}\"\r\n{\r\n\tHxFan.SetFanOff(\"f0ad384a_ad3d_442d_93a20fc5d001d549\"); // SetFanOff\r\n}\r\n// }} \"\"\r\n// {{ 188 1 0 \"1c42435f_bcfc_4ea5_ac419d4f416f2ea5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 189 1 0 \"e7f06d9a_4b75_4e68_a44fd8d441335521\" \"HxFan:{C3B1A3F9-BD5A-4660-842E-35830B4E80CA}\"\r\n{\r\n\tHxFan.SetFanSpeed(\"e7f06d9a_4b75_4e68_a44fd8d441335521\"); // SetFanSpeed\r\n}\r\n// }} \"\"\r\n// {{ 190 1 0 \"1c42435f_bcfc_4ea5_ac419d4f416f2ea5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 191 1 0 \"f4fe901f_0fea_4182_a9b32d3a52be8ba8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9524EA7A672749f5B1DC8547FF64D411 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 192 1 0 \"fffbd95d_1444_4be1_8415015a5e31cc7e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 193 1 0 \"f4fe901f_0fea_4182_a9b32d3a52be8ba8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 194 1 0 \"9cede215_17e8_434c_bb104c71289c7f70\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 195 1 0 \"2054eeee_4a5e_455d_ba88a5f72b6e2d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 196 1 0 \"abe1ccd9_4f62_4ba7_86704f85775601a9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 197 1 0 \"a48ecca7_58ae_4053_bcf55cb937c67cee\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 198 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 199 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 200 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 201 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 202 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 203 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 205 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 207 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 208 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 209 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 210 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 211 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 214 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 215 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 216 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 217 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 218 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 219 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 221 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 233 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 234 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 235 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 237 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 238 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 239 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 240 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 244 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 248 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 249 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 250 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 251 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 252 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 253 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 254 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 255 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 256 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 261 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 262 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 265 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 266 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 268 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 269 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 270 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 271 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 273 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 274 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 275 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 276 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 277 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 278 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 279 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 284 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 285 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 286 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 288 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 289 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 292 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 293 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 294 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 295 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 296 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 297 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 298 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 299 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 301 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 302 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 306 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 307 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 308 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 309 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 310 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 311 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 312 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 313 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 316 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 317 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 319 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 320 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 321 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 322 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 324 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 325 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 326 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 327 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 328 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 329 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 330 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 331 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 335 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 336 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 337 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 338 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 339 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 344 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 346 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 347 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 348 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 349 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 350 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 351 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 352 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 353 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 354 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 355 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 356 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 357 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 358 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 359 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 360 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 361 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 362 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 366 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 367 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 368 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 370 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 371 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 373 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 375 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 376 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 377 1 0 \"27439ab7_df5a_4e1b_99b64e6c9fd0d9f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 380 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 381 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 382 1 0 \"e2da0756_7cea_44e7_963442343f3c0732\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 383 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 384 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 385 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 386 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 387 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 388 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 389 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 390 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 391 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 392 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 393 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 394 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 395 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 396 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 397 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 398 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 399 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 402 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 403 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 404 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 405 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 407 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 408 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 409 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 410 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 411 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 412 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 413 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 414 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 415 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 416 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 417 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 418 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 419 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 420 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 421 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 422 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 426 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 427 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 428 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 429 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 430 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 431 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 432 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 433 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 434 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 435 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 436 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 437 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 438 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 439 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 440 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 441 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 442 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 443 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 447 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 448 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 449 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 450 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 451 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 452 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 453 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 454 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 455 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 456 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 457 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 458 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 459 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 460 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 461 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 462 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 463 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 464 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 465 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 466 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 467 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 468 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 469 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 470 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 471 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 472 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 473 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 474 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 475 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 478 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 479 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 480 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 481 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 482 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 483 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 484 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 487 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 488 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 490 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 491 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 492 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 493 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 494 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 495 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 496 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 497 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 498 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 499 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 502 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 503 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 504 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 505 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 506 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 507 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 508 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 509 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 510 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 511 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 512 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 513 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 514 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 515 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 516 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 517 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 518 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 519 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 520 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 521 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 522 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 525 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 526 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 527 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 528 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 529 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 530 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 531 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 532 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 535 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 536 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 537 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 538 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 539 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 541 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 542 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 543 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 545 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 546 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 547 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 548 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 549 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 550 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 551 1 0 \"e1385a03_1302_4ae1_9faaea69422d67f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 552 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 553 1 0 \"5af0317c_390a_4121_92fc6695bd45edd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 554 1 0 \"8c9a281c_debc_4f33_9bd2cef6eedde57e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 555 1 0 \"3d50574c_65df_46db_976821037648878c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"642f5973_af08_450b_878d55fa1dc15b1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"c1b028b1_70dd_4627_a467661067398a2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"f0c6a22f_59e2_41c2_954cb5b06a43aa42\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 559 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 560 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 561 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 563 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 564 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 565 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 566 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 568 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 569 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 570 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 571 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 572 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 573 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 574 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 575 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 579 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 580 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 581 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 582 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 583 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 584 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 587 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 588 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 589 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 590 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 591 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 593 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 594 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 595 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 596 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 597 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 599 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 600 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 601 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 602 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 603 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 604 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 605 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 608 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 609 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 610 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 611 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 612 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 613 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 617 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 618 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 619 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 620 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 621 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 622 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 623 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 624 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 626 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 627 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 630 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 631 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 632 1 0 \"b5aacb13_c6f2_416d_a5dc16599dc22df9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 633 1 0 \"47226864_6972_4d16_b2ad8a710b8446cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 634 1 0 \"441a15aa_b581_467d_b9fbbf9a122df9d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 635 1 0 \"a7bbaac0_7490_4d32_9befc0abf2f69020\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 636 1 0 \"a94a75e5_7837_45a2_b2625523b4fbf752\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 637 1 0 \"9e3eb27c_73a6_40ac_8e75350edfaa2c68\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"40a90a47_9400_4ba4_90d2112b738e055a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"f40721bc_ba84_4790_9b0eafab1f86ae89\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"78e0048a_9b5c_41db_bfc483bd893fae4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 641 1 0 \"5410a63b_fd35_4eb9_8dea281acd2b00fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 642 1 0 \"6e99c005_b773_4b9c_a028bcf32c47a601\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"a0fded0f_3a56_426a_a363a5a1dfa118a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"9455b0fb_03c5_4685_85c22f4d3e970bfb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 645 1 0 \"0521c2b3_3cc4_415a_b370ea31976340e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 646 1 0 \"47226864_6972_4d16_b2ad8a710b8446cb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 647 1 0 \"b5aacb13_c6f2_416d_a5dc16599dc22df9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 648 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 649 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 650 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 654 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 655 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 656 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 657 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 659 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 660 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 661 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 662 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 663 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 664 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 665 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 666 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 668 1 0 \"4e026721_fd49_4127_87fda5791fa13eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 669 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 670 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 671 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 672 1 0 \"7066bb37_8c48_474d_8f467cf1f1e06a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 673 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 674 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 675 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 676 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 677 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 678 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 679 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 680 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 681 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 682 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 683 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 684 1 0 \"7f473860_0be7_4dc2_87423136869dd829\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 685 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 686 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 687 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 689 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 690 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 691 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 692 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 693 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 694 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 695 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 696 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 697 1 0 \"53df6909_1d0e_4001_ac674452fec957bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 698 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 699 1 0 \"85d76321_871e_4d0e_bb460b7513742e62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 702 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 703 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 705 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 706 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 707 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 708 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 709 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 710 1 0 \"6ba4b834_521a_46da_9ceb8ced08da95f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 711 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 712 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 713 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 714 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 715 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 716 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 717 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 718 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 719 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 720 1 0 \"20e2b3e5_8664_4809_9bcf626c89196333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 721 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 722 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 723 1 0 \"38e3e61d_a654_46f5_87f53cf7dfc09446\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 724 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 725 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 726 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 727 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 728 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 729 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 730 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 731 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 732 1 0 \"d92781d1_27c2_48fb_acfd9cb32428e910\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 733 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 734 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 735 1 0 \"19daab0c_59b0_4af8_a070bee39acf20c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 736 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 737 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 738 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 739 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 740 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 741 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 742 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 743 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 744 1 0 \"df61bf49_7625_493f_ad06bbdbb36b494a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 745 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 746 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 747 1 0 \"accda6cd_138b_411c_bf3af9b152e986c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 748 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 749 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 750 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 751 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 752 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 753 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 754 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 755 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 756 1 0 \"8d513473_33ad_47dc_a8c3ed9799195b58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 757 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 758 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 759 1 0 \"ee004b75_f488_428e_99b02212bd478984\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 760 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 761 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 762 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 763 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 764 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 765 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 766 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 767 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 768 1 0 \"4f9610c2_a783_4586_b1725e8904e476cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 769 1 0 \"eea3f2ce_93c1_4efd_be90b89d775a6867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 770 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 771 1 0 \"ad6b8668_d455_40f9_9e64eac973c2db0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 772 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 773 1 0 \"81e3038e_a3ea_4252_a09b14cd3de477a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 774 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 775 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 776 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 777 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 778 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 779 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 780 1 0 \"a54c8c75_1172_46d3_a61e71fe7fea812d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 781 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 782 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 783 1 0 \"e9f473e4_b341_4e28_8c5c444235409181\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 784 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 785 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 786 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 787 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 788 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 789 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 790 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 791 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 792 1 0 \"19a32be3_7476_425d_a82433aead4637cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 793 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 794 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 795 1 0 \"81e1a27f_16e2_44ed_b7cd3b11ac866a97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 796 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 797 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 798 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 799 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 800 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 801 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 802 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 803 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 804 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 805 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 806 1 0 \"84b0a5f3_5e82_4770_81998131d1071a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 807 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 808 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 809 1 0 \"f46c286b_9141_4717_ac23994f8defc186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 810 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 811 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 812 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 813 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 814 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 815 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 816 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 817 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 818 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 819 1 0 \"a9029174_cbad_4f9c_9ca65c3b9497d605\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 820 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 821 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 822 1 0 \"bb948751_9e18_4aa8_b86a3dd67208967f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 823 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 824 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 830 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 831 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 832 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 833 1 0 \"d7ecab6c_533b_4d98_97e3fd144551f6d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 834 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 835 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 836 1 0 \"96075a25_a9b4_48ec_b53a90612b9d42a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 837 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 838 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 839 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 840 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 842 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 843 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 844 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 845 1 0 \"c8de89fe_7a53_4c03_bbe8ba85302b57ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 846 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 847 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 848 1 0 \"b9ad26f0_da3e_44e9_a29e1fa4b10f92f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 849 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 850 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 851 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 852 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 853 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 854 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 855 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 857 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 858 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 859 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 860 1 0 \"aecc8a3f_302a_4fd4_85780994769765dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 861 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 862 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 863 1 0 \"8a17da2c_6b74_4513_a05e482acef68552\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 864 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 865 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 866 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 867 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 868 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 869 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 870 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 871 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 872 1 0 \"96a3924c_7b8c_441f_b05115a7adf0396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 873 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 874 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 875 1 0 \"29acd4b5_13fb_40fe_bc6d971aa6f115a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 876 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 877 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 878 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 879 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 880 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 882 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 883 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 884 1 0 \"18981818_de5f_4fd3_b704a074fd37c9d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 885 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 886 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 887 1 0 \"6fa8ea83_c7bd_4b3e_81768063f8126364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 888 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 889 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 890 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 891 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 892 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 893 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 894 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 895 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 896 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 897 1 0 \"84efe41c_f9b0_4304_896c8b308bb07e76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 898 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 899 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 900 1 0 \"367927ae_ba00_4d5a_b9d8f5f9b3d208c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 901 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 902 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 903 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 904 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 905 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 906 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 907 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 908 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 909 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 910 1 0 \"7e6d8299_fab6_4435_8adf36d59ca04c7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 911 1 0 \"5fe75151_d308_441e_a049e85f45ca3966\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n// }} \"\"\r\n// {{ 912 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 913 1 0 \"64e95a28_a6b6_4e1b_825867f05118aebc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 914 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 915 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 916 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 917 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 918 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 919 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 920 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 922 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 923 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 924 1 0 \"08abdac2_e330_47c9_9b80d99dd0338c3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 925 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 926 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 927 1 0 \"a26bca7d_b38c_4413_b61d3da3fdfb077b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 928 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 929 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 930 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 931 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 932 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 933 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 934 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 936 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 937 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 938 1 0 \"0e03f515_b847_4dfd_8aa52f8b5f1135cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 939 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 940 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 941 1 0 \"e7b29c37_b63e_40fe_a3663d4eb8c7dc93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 942 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 943 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 944 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 945 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 946 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 947 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 948 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 949 1 0 \"7ca275a0_4aed_4b67_9535646b2074ebaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 950 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 951 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 952 1 0 \"e87b7e6f_2610_44dd_b7d0262ac681e308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 953 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 954 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 955 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 956 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 957 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 958 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 959 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 960 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 961 1 0 \"d02dc65a_05f9_4938_90df6cee1381d4dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 962 1 0 \"75688e3b_5ed1_45d1_a4d8344ca19c3fd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 963 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 964 1 0 \"b5ede424_b7f1_4369_8610d54e626df620\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 965 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 966 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 967 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 968 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 969 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 970 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 971 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 972 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 973 1 0 \"e22c8ca0_6e3f_454b_8628dd4417a6fd78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 974 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 975 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 976 1 0 \"c8c0c20e_b866_451e_9ecd69fdb0b0ed14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 977 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 978 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 979 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 980 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 981 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 982 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 983 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 984 1 0 \"e2f732a1_e433_4ab6_b3bdac9a4ca5bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 985 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 986 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 987 1 0 \"44edbcbd_1012_457f_848d11750abdfeb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 988 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 989 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 990 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 991 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 992 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 993 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 994 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 995 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 996 1 0 \"d5b14e5b_7d51_414e_af4dfb664c89e0c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 997 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 998 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 999 1 0 \"d60c31db_3b59_4498_8c47e4d2612443a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1000 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1002 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1003 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1004 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1005 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1007 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1008 1 0 \"ffa29d3e_8248_4266_80661c264964da5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1009 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1010 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1011 1 0 \"8a92c1f7_b614_4c09_b5ada70145cb0a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1012 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1014 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1015 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1016 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1017 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1018 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1019 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1022 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1024 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1025 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1026 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1027 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1028 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1029 1 0 \"ab84bcc8_3da0_446b_84689087cc7a392f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1030 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1032 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1033 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1034 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 1036 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1037 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 1038 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 1039 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1040 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1041 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1042 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Hamilton$$valid=0$$time=2022-02-22 16:01$$checksum=573fc517$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/STAR_OEM_wFan.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1159 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1162 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1163 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1164 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1166 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1167 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1168 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1169 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1170 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1171 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1172 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1173 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1174 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1175 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1176 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1137 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1138 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1139 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1143 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1144 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 1081 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 1083 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 1085 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1086 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1087 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 1089 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 1090 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 1092 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1093 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1153 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1154 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1155 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1156 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1055 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 1056 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 1058 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1059 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1060 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 1061 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 1062 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 1064 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1065 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1066 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 1068 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1069 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1070 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 1072 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1073 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 1074 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 1075 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 1076 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1077 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1078 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1079 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 1045 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 1046 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1047 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1048 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 1050 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 1052 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1053 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 1096 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 1097 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 1099 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 1102 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 1104 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 1105 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1106 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 1112 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 1113 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 1114 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 1115 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 1116 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1119 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1121 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1122 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1124 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1125 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1127 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1128 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1129 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2022-02-22 16:01$$checksum=5de09258$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/testWasher.hsl",
    "content": "#include \"Demo Methods\\\\BMG Reader Test.res\"\r\nglobal device ML_STAR (\"Demo Methods\\\\BMG Reader Test.lay\", \"ML_STAR\", hslTrue);\r\nglobal device HxFan (\"Demo Methods\\\\BMG Reader Test.lay\", \"HxFan\", hslTrue);\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLPTLLib.hsl\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{ 1 1 0 \"86aa3f41_f93c_45f5_9800c006eb699fcb\" \"ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2(\"86aa3f41_f93c_45f5_9800c006eb699fcb\"); // Initialize\r\n}\r\n// }} \"\"\r\n// {{ 2 1 0 \"9fe707ef_770d_4316_a1478e7beaf62f57\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"9fe707ef_770d_4316_a1478e7beaf62f57\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2018-06-04 10:33$$checksum=2bc9847f$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/testWasher.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2018-06-04 10:33$$checksum=c334ce46$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx1C7B.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_ODTC.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n namespace _Method { #include \"Inheco ODTC\\\\Inheco ODTC.hsl\" } \r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable LockID;\r\nvariable SiLAMessage;\r\nvariable SiLAReturnValue;\r\nvariable DeviceIP;\r\nvariable LocalIP;\r\nvariable Message;\r\nvariable DevicePort;\r\nvariable ProtocolFile;\r\nvariable ErrorMessage;\r\nvariable MethodName;\r\nvariable Priority;\r\nvariable Duration;\r\nvariable RequestID;\r\nvariable Time;\r\nvariable ActualTemperatures[];\r\nvariable ActualTemperatureNames[];\r\nvariable str_ActualTemperatureNames;\r\nvariable str_ActualTemperatures;\r\nvariable strDeviceID;\r\nvariable TimeToWait;\r\nvariable PMSID;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_ODTC::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 344 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 346 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 347 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 348 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 351 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 352 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 353 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 354 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 356 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 357 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 358 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 359 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 360 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 361 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 362 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 365 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 366 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 367 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 368 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 370 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 371 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 374 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 381 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 382 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 390 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 391 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 392 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 393 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 394 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 396 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 397 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 398 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 399 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 402 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 403 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 404 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 405 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 407 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 408 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 409 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 418 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 426 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 427 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 435 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 437 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 438 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 439 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 440 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 441 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 442 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 443 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 446 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 447 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 448 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 450 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 451 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 452 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 455 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 456 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 457 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 459 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 461 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 462 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 463 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 466 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 467 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 468 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 470 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 471 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 481 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 482 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 490 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 491 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 492 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 493 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 494 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 495 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 496 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 497 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 498 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 499 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 501 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 502 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 503 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 504 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 505 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 506 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 507 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 508 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 511 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 512 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 515 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 517 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 518 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 519 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 520 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 521 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 522 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 523 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 524 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 526 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 527 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 528 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 529 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 530 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 531 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 532 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 535 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 536 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 537 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"fc551e3b_1f4d_4d8d_8fed3ee38abdebdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 541 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 542 1 0 \"e1385a03_1302_4ae1_9faaea69422d67f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 543 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 544 1 0 \"5af0317c_390a_4121_92fc6695bd45edd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"8c9a281c_debc_4f33_9bd2cef6eedde57e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"3d50574c_65df_46db_976821037648878c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"642f5973_af08_450b_878d55fa1dc15b1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 548 1 0 \"c1b028b1_70dd_4627_a467661067398a2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 549 1 0 \"f0c6a22f_59e2_41c2_954cb5b06a43aa42\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 550 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 551 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 552 1 0 \"fc551e3b_1f4d_4d8d_8fed3ee38abdebdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 553 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 554 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 555 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 556 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 557 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 559 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 560 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 561 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 562 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 563 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 564 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 565 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 566 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 569 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 570 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 571 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 572 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 573 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 574 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 575 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 578 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 579 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 580 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 581 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 582 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 583 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 584 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 585 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 587 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 588 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 589 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 590 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 591 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 593 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 594 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 595 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 596 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 599 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 600 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 602 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 603 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 604 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 608 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 609 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 610 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 611 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 612 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 613 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 614 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 615 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 617 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 618 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 619 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 620 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 621 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 622 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 623 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 624 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 625 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 632 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 633 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 634 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 635 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 636 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 637 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 638 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 639 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 640 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 641 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 642 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 649 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 650 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 657 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 658 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 659 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 660 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 661 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 662 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 663 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 664 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 665 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 666 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 670 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 671 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 672 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 673 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 674 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 675 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 676 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 683 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 684 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 685 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 686 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 687 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 688 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 689 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 693 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 694 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 695 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 696 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 697 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 702 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 703 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 705 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 706 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 713 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 716 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 717 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 724 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 725 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 734 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 735 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 736 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 737 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 738 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 746 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 747 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 748 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 749 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 750 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 755 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 760 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 761 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 763 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 764 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 765 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 766 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 767 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 768 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 771 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 772 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 773 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 774 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 775 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 777 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 778 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 779 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 781 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 782 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 783 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 790 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 791 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 792 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 794 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 795 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 801 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 802 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 803 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 805 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 809 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 810 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 811 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 813 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 814 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 815 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 816 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 817 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 819 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 820 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 821 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 830 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 831 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 838 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 839 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 842 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 848 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 849 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 850 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 852 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 857 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 858 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 859 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 860 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 861 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 862 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 863 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 864 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 867 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 868 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 869 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 870 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 871 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 872 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 873 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 875 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 878 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 879 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 880 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 882 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 886 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 891 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 894 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 895 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 896 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 897 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 898 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 899 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 900 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 906 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 908 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 909 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 910 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 911 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 912 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 913 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 917 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 918 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 919 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 920 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 921 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 922 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 925 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 926 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 927 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 928 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 929 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 930 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 931 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 936 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 937 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 938 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 939 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 940 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 944 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 945 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 947 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 948 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 949 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 950 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 951 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 952 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 953 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 956 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 957 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 958 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 959 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 960 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 961 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 962 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 964 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 965 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 966 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 967 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 968 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 969 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 970 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 971 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 972 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 973 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 974 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 975 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 976 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 977 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 978 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 979 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 980 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 982 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 985 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 986 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 987 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 988 1 0 \"c254f141_56e5_4dd6_867413cd84657042\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 989 1 0 \"a5a0a6fa_f020_4f0c_892b14922a8a43d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 990 1 0 \"87bcb443_ba4e_4831_b6d85d5676ceae1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Abort\")\r\n{\r\n// }} \"\"\r\n// {{{ 991 1 0 \"32d200eb_0ae6_409a_a27f1bd9e350adc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"60937dfd_fa84_49e4_a6330092ff42006c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"83aa31af_13e9_48fa_86a3688beb3a1be8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Abort(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"7094499b_8677_4e4c_acf20a22a53d4c8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Abort\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"37a6eb15_6c8d_473f_b9dffab95f789ac5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"ed56f986_bb0e_4e3d_b4d7300a7eeb0b58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"e98e447d_05f0_430c_afd0ba887aca6b76\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 998 1 0 \"87bcb443_ba4e_4831_b6d85d5676ceae1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 999 1 0 \"a5a0a6fa_f020_4f0c_892b14922a8a43d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1000 1 0 \"ced572f9_f877_4613_993ac898da106542\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1001 1 0 \"03a935ee_2760_4356_bd8073e8de6b173b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_CloseDoor\")\r\n{\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"6a66458b_03aa_4556_a7119c29debe4db5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"8835ccf5_7cde_492a_9d03a87f66212529\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"52be61c1_07d8_46d7_971799c333aa010a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::CloseDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"6051ed5f_5327_408e_ab4e4006ce62d8ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Close Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"e77e745c_0fd9_4817_9c991dc6c147e97c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"6a920b48_4355_48b6_9fee746e310180ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"f607e257_0faa_41ba_953a4eff67bb8a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1009 1 0 \"03a935ee_2760_4356_bd8073e8de6b173b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1010 1 0 \"ced572f9_f877_4613_993ac898da106542\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1011 1 0 \"5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1012 1 0 \"83d25d49_d146_4249_9f0335e6f838ddb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Connect\")\r\n{\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"ea96e218_a676_4c43_8187dccb61fdcfad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LocalIP\"), LocalIP);\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"9f39afff_baf8_4c02_90919e91b050d9b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceIP\"), DeviceIP);\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"ac76b36c_ea11_4135_b099c4da1dd83d48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DevicePort\"), DevicePort);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"217e9a1b_a533_42fd_909df59d5d25c92a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"47c48ac4_65f4_4ac5_9c5d4ff87e80792d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Connect(LocalIP, DeviceIP, DevicePort, SimulationMode, DeviceID, Message, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"44b7be8c_cda6_44d7_9a3512b3014b5aaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Connect\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"988ae1b5_28c3_4982_a500bf7ceebf13f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Connect\"), Message);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"4806a116_031e_444f_bcf99da98fc2aa03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"ecb51768_e47b_48e1_a68b612754c89d2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1022 1 0 \"1045876f_9227_42d4_8f284b4615f7bd52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Message, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1023 1 0 \"83d25d49_d146_4249_9f0335e6f838ddb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1024 1 0 \"5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1025 1 0 \"170cad08_e039_423f_89bd02bf1417c189\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1026 1 0 \"f37a1dca_bc87_4a1a_b736b41bf3acacbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_DownloadProtocol\")\r\n{\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"40cbc2ca_86a5_4676_8bcc39a2f6f075f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"ca78a1d6_10a8_4411_8b063849d86a765f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"2a2898df_3962_48ea_872e3cb37c538f1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProtocolFile\"), ProtocolFile);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"61926133_1a9a_4ae7_919d1c60533131c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::DownloadProtocol(DeviceID, LockID, ProtocolFile, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"63ab11b5_28c5_4f1d_a7a32d8e3ec48cb1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Download Protocol\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"8ec284ea_82fb_4835_a7371e261781305c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"fd4faeae_7ccf_4aa6_a8abbca7275971c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"8656e596_fb43_4c25_81f91e4348204c13\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1035 1 0 \"f37a1dca_bc87_4a1a_b736b41bf3acacbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1036 1 0 \"170cad08_e039_423f_89bd02bf1417c189\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1037 1 0 \"95be4335_330f_498d_9cbb97fc242dae19\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1038 1 0 \"f8b53e0a_3303_4063_8c4b05c22b482521\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_EvaluateError\")\r\n{\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"e360752c_31f7_4bfc_85305c84dc5f7546\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ErrorCode\"), ErrorCode);\r\n// }} \"\"\r\n// {{{ 1040 1 0 \"0b3b8a56_af82_4264_b0c16517d839ebe4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::EvaluateError(ErrorCode, ErrorMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"639398d5_46e9_473e_b535a1b1e05aaf2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Evaluate Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"53eec77c_8020_45cb_a87b12aa6861c3ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"7e52272f_d6bd_42c0_aaec9e3104211d0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ErrorMessage, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1044 1 0 \"f8b53e0a_3303_4063_8c4b05c22b482521\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1045 1 0 \"95be4335_330f_498d_9cbb97fc242dae19\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1046 1 0 \"7df278e6_a78b_42de_82fff06047d78c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1047 1 0 \"1a6a3b23_5cdf_4b08_9b878c81c0c034fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Execute\")\r\n{\r\n// }} \"\"\r\n// {{{ 1048 1 0 \"8747e547_373a_456a_b7c45f3fe0fa4962\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"6ed86f44_9a40_4aec_a24da2c3e14c5cfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"c95214ca_8dc7_4e36_b861cd3cb7e88fce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MethodName\"), MethodName);\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"6354dcdf_bc96_4f43_8e24d16a07ef73a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Priority\"), Priority);\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"f9e2fc96_8719_4db6_961a737c70234591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::ExecuteMethod(DeviceID, LockID, MethodName, Priority, Duration, RequestID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"8eedb12b_8149_4adb_b4a36b25cb56997c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Download Protocol\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"2f5e22f5_6e53_4423_b3c5dcff878744ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRequestID = StrIStr(RequestID);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"af3ce5c4_f396_4686_af8c35c3b1896cbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDuration = StrIStr(Duration);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"56cb4cd9_4ad1_4fe3_938eb0863af7c9cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"42f6ed5e_78f5_47a7_80c65ef13fa2e465\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"27d4d016_fe70_40d9_af54cd49911a2e7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, Duration, RequestID, id);\r\n// }} \"\"\r\n// {{ 1059 1 0 \"1a6a3b23_5cdf_4b08_9b878c81c0c034fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1060 1 0 \"7df278e6_a78b_42de_82fff06047d78c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1061 1 0 \"fe8ceaf6_1a4c_4c99_810b07e636105fa8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1062 1 0 \"f8f85888_8577_4a10_b97ab15879e1b18f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_OpenDoor\")\r\n{\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"3f5cc39f_b933_4665_a725e5d720270a1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"32818a09_3083_4b68_be177e73ea51bf2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"ca47ad1d_7179_4e19_86fd05211f0416ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::OpenDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"721b0fe9_6b70_412e_b6184c3698366299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"b0647e1f_7f95_4f56_832807c0437add1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"071ab0f7_cca9_424c_a4c8b816b1e1a01d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1069 1 0 \"8d79ee78_725d_4b1c_8da948ede755b62e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1070 1 0 \"f8f85888_8577_4a10_b97ab15879e1b18f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1071 1 0 \"fe8ceaf6_1a4c_4c99_810b07e636105fa8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1072 1 0 \"3c16909b_f92f_4869_be09f5ef2fb55e11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1073 1 0 \"3c157612_f55a_40ee_b823fe12e24332f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"a152ec6a_17c0_4ab7_9d87710d8577b2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"1a35d7ba_f083_47be_92136e57f9ed3912\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"3e352ec2_6234_4391_90eb2accc24b087c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Initialize(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"42735754_1a4d_4010_a30f4c85204e159a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"5f865b77_d620_4d27_b1b98c39e384ad41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"67cb5e45_ee7c_4838_b49f2f3f1f1757c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"a9ef6ddb_28b3_420e_a501b6911c3a2769\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"3c157612_f55a_40ee_b823fe12e24332f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1082 1 0 \"3c16909b_f92f_4869_be09f5ef2fb55e11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1083 1 0 \"2918af2a_a130_45ea_b188aa281e864ea8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1084 1 0 \"bf6ddca4_4a60_4455_8397f87f4d24b725\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_ReadActualTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"e6bea63f_c17b_410d_9822608c8267f985\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"edacec9c_28b9_474f_b1558fa726ec2132\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"7fd71047_b3fb_46f5_b5c9f44caec9dd8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::ReadActualTemperature(DeviceID, LockID, SiLAReturnValue, SiLAMessage, ActualTemperatures, ActualTemperatureNames, Time, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"2c27785b_ea35_4934_b654a42db98c118e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Read Temperature\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"4875b702_70e3_4f15_a162e186bb3e9c6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"2d1e6390_eb2e_42e2_848902a0a274a03f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(ActualTemperatures, str_ActualTemperatures);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"120c6294_947e_4b65_b7dd22db08edad17\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(ActualTemperatureNames, str_ActualTemperatureNames);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"7ba7e642_228e_4c42_91a540016b1ecb80\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"89ab9aa6_c667_4fb4_9331cfc5de16392a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, str_ActualTemperatures, str_ActualTemperatureNames, SiLAReturnValue, id);\r\n// }} \"\"\r\n// {{ 1094 1 0 \"bf6ddca4_4a60_4455_8397f87f4d24b725\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1095 1 0 \"2918af2a_a130_45ea_b188aa281e864ea8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1096 1 0 \"32f8d0ae_5127_4186_8dbecc8f7061190f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1097 1 0 \"25b084db_1bed_428b_81ed9dbd2e6b4b60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Reset\")\r\n{\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"54770d0a_c4d8_4bf5_923ea37b0a7bb99a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"055ec305_2f32_4ed5_931e842d3f3dc35b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"c8ec64df_4c79_4d3c_a7ebf0843fb669dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TimeToWait\"), TimeToWait);\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"7de11167_b4a1_4c1d_b459187603f47406\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"c5acc94b_7623_41cc_8be567f94d4ef391\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"strDeviceID\"), strDeviceID);\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"270c90b6_e23e_41ab_89787ba6b70e15e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"PMSID\"), PMSID);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"ce22a8c7_2622_4d15_a255b99991b3a19f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Reset(DeviceID, LockID, SiLAReturnValue, SiLAMessage, SimulationMode, TimeToWait, strDeviceID, PMSID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"5f5f4ac1_af5a_4f5a_83d0452099476350\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Reset\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"91142402_f680_4164_b2867f68a77f19f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"65a340a5_cfe4_49e4_ae15c8fa6f9ca3a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMessage = StrIStr(Message);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"85ff8a84_cc36_4e57_ace1facda0037584\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"7f85d4fa_6d5f_4c6c_9c6a0c94995fdfa4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1110 1 0 \"25b084db_1bed_428b_81ed9dbd2e6b4b60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1111 1 0 \"32f8d0ae_5127_4186_8dbecc8f7061190f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1112 1 0 \"45adfa7a_43f6_4879_94eecbbc7cd6241e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1113 1 0 \"c7a1be4c_8922_45fe_a8d03b329ad39a3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"5679fc2a_b149_4156_afe65b4260835f63\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"492d5009_7311_49b9_88d37e5272f71a3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Terminate(DeviceID, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"cde37514_c4cf_4ee2_94144ec6f2d8a602\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"7437d0c9_d030_4bc3_9892e6e67143d3a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"56d42bd9_d271_4178_b988201f9be09dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1119 1 0 \"c7a1be4c_8922_45fe_a8d03b329ad39a3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1120 1 0 \"45adfa7a_43f6_4879_94eecbbc7cd6241e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1121 1 0 \"c254f141_56e5_4dd6_867413cd84657042\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1122 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1123 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1127 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1128 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1129 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1133 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1134 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1135 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1136 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1137 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1138 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1139 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1142 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1143 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1144 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1145 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1146 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1147 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1150 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1151 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1152 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1153 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1155 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1157 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1158 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1159 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1160 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1162 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1165 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1166 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1167 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1169 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1171 1 0 \"1823653c_5e02_428a_badd7ca34d3aabf1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1172 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1173 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1174 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1176 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1177 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1178 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1179 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1180 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1181 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1183 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 1185 1 0 \"9d9a3dcb_ddc9_47c5_a860665377ee3e86\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1186 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1187 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1188 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1189 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1191 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1192 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1193 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1194 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1195 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1196 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1197 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1199 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1200 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1201 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1203 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1204 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1205 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1206 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1207 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1208 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1209 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1211 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1212 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1213 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1214 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1215 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1216 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1217 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1218 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1220 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1221 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1222 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1223 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1224 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1225 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1227 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1228 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1229 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1230 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1232 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1233 1 0 \"949c257a_0d44_4a50_bb10d9b59e6a02c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1234 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1235 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1236 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1237 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1239 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1240 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1241 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1242 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1243 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1244 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1245 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1246 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1247 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1248 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1249 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1251 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1252 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1253 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1255 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1256 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1257 1 0 \"0bd6e3be_da2c_4500_973c9d6eae8e7ae6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1259 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1260 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1261 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1262 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1263 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1264 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1265 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1266 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1268 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1269 1 0 \"5b647db8_f1d6_4deb_9b859eb1dfda063d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1271 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1272 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1273 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1274 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1275 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1276 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1277 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1278 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1282 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1283 1 0 \"ad365bf1_c5e9_4c85_b1b623b20be98474\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1284 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 1285 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1286 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1287 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1289 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1290 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1291 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1292 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1293 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1294 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1295 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1296 1 0 \"f307f49e_48c2_428e_80c1d57693f85156\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 1298 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1299 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1300 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1301 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1302 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1303 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1304 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1305 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1309 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1310 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1312 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1313 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1314 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1315 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1316 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1317 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1318 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1319 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1320 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1321 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1322 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1323 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1324 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1325 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1326 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1328 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1329 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1330 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1331 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1332 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1333 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1334 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1336 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1337 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1339 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1340 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1341 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1342 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1343 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1344 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1345 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1346 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1348 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1349 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1350 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1351 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1352 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1353 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1354 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1355 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1356 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1357 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1358 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1359 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1360 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1361 1 0 \"dab3ac84_179e_4fd8_9b00ad14f3ef613e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1362 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 1363 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1364 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1365 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1367 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1368 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1369 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1370 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1373 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1374 1 0 \"523b190e_f70f_4a28_b16582e7161b390a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1375 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1376 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1377 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1378 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1380 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1381 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1382 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1383 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1385 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1386 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1387 1 0 \"e043b61a_b8c5_46d4_9bf331f7566a8911\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"a302e74e_d752_4ae6_b492a17f601bef41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{ 1389 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1390 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1391 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1393 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1394 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1395 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1396 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1397 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1400 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1401 1 0 \"10af5b65_9ddd_4a4b_b040d8f5b6e642cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1403 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1404 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1405 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1407 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1408 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1409 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1410 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1412 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1414 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1415 1 0 \"497404d1_5fea_46f0_9598d8e1c1cb11ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 1417 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1418 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1419 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1420 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1421 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1422 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1423 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1424 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1425 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1426 1 0 \"d8b2a327_d63a_46f2_8c273b2eedb8cb34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1428 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1429 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1430 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1431 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1432 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1433 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1434 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1435 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1436 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1437 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1438 1 0 \"9d792f4f_4c49_4998_b21fd7f7d6a58fce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"b811fcbc_7d95_47c6_9c33e18415810e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1440 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1441 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1442 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1444 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1445 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1446 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1447 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1448 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1449 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1450 1 0 \"384c69b8_0ce8_4a27_af0a4060e6f1a01d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1452 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1453 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1454 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1456 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1457 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1458 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1459 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1460 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1461 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1463 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1464 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1465 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1467 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1468 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1469 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1470 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1472 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1473 1 0 \"6c68258f_f870_4c46_b358dc4391ced463\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1474 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1475 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1476 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1477 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1479 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1480 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1481 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1482 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1484 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1485 1 0 \"f5db2a6b_8286_4195_844af45f48c61d3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1487 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1488 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1489 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1491 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1492 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1493 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1494 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1495 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1496 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1497 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1498 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1499 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1502 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1503 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1504 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1505 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1506 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 1507 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1509 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1510 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1511 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1512 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1513 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 1514 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1515 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 1517 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1518 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1519 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1520 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1521 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_ODTC::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2023-01-24 20:18$$checksum=31080e67$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx1C7B.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1673 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1641 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1642 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1646 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1654 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1655 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1656 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1657 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1658 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1659 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1661 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1662 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1663 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1664 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1665 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1666 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1667 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1668 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1669 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1670 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1612 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1616 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1617 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1621 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1622 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 1559 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 1561 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 1563 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1564 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1565 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1566 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 1567 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 1568 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 1570 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1571 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1648 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1649 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1650 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1651 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1533 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 1534 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1535 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 1536 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1537 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1538 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 1540 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 1542 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1543 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1544 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 1546 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1547 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1548 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 1549 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 1550 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1551 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 1552 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 1553 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 1554 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1555 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1556 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1557 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 1523 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 1524 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1525 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1526 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1527 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 1528 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 1529 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 1530 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1531 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 1574 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 1575 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 1577 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 1580 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 1582 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 1583 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1584 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1586 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1587 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 1588 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 1589 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 1590 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 1591 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 1592 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 1593 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 1594 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 1595 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 1596 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1597 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1599 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1600 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 1601 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1602 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1603 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 1604 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1605 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1606 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1608 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1609 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1610 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1624 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1625 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1629 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1630 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1631 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 1632 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1638 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1639 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-01-24 20:18$$checksum=ea998bb2$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx1C7B.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx1DE8.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module Controller.hs_\" } \r\n#include \"STAR_OEM_Test.res\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\nvariable DefaultTemperature;\r\nvariable MeasureTime;\r\nvariable MeasureHeight;\r\nvariable CalibrationValue1;\r\nvariable TempSoln1;\r\nvariable TempSoln2;\r\nvariable CalibrationValue2;\r\nvariable blnCalibrateDynamically;\r\nvariable CalibrationValueRef;\r\nvariable TempSolnRef;\r\nvariable Module;\r\nvariable Reference;\r\nvariable Calibration1;\r\nvariable Calibration2;\r\nsequence seqModule;\r\nsequence seqCalibration1;\r\nsequence seqCalibration2;\r\nsequence seqReference;\r\nvariable CalibrationTime;\r\nvariable arrCalibrationSlopeRatios[];\r\nvariable arrpHValuesReferenceSolution[];\r\nvariable CalibrationSlopeRatios;\r\nvariable pHValuesReferenceSolution;\r\nvariable BluetoothPort;\r\nvariable NumDryCycles;\r\nvariable NumWashCycles;\r\nvariable DryTime;\r\nvariable Gripper;\r\nsequence seqGripper;\r\nvariable WashPosition;\r\nsequence seqWashPosition;\r\nvariable DryPosition;\r\nsequence seqDryPosition;\r\nvariable DryCycles;\r\nvariable TransportChannel;\r\nvariable WashCycles;\r\nvariable arrpHValues[];\r\nvariable flt_pHValues;\r\nvariable seqMeasure;\r\nvariable ProbePattern;\r\nvariable seqMeasurement;\r\nvariable MeasurePositions;\r\nvariable hssErrCode;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Iï¿½m a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 344 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 346 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 347 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 348 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 351 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 352 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 353 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 354 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 356 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 357 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 358 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 359 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 360 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 361 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 362 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 365 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 366 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 367 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 368 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 370 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 371 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 374 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 381 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 382 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 390 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 391 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 392 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 393 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 394 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 396 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 397 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 398 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 399 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 402 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 403 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 404 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 405 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 407 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 408 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 409 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 418 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 426 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 427 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 435 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 437 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 438 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 439 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 440 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 441 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 442 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 443 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 446 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 447 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 448 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 450 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 451 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 452 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 455 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 456 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 457 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 459 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 461 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 462 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 463 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 466 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 467 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 468 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 470 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 471 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 481 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 482 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 490 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 491 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 492 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 493 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 494 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 495 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 496 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 497 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 498 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 499 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 501 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 502 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 503 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 504 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 505 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 506 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 507 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 508 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 511 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 512 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 515 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 517 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 518 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 519 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 520 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 521 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 522 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 523 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 524 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 526 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 527 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 528 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 529 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 530 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 531 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 532 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 535 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 536 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 537 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 541 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 542 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 548 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 549 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 550 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 551 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 552 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 553 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 554 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 555 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 559 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 560 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 561 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 563 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 564 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 565 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 569 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 570 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 571 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 572 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 573 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 579 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 580 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 581 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 582 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 583 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 587 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 588 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 589 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 590 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 591 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 592 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 594 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 595 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 596 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 597 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 598 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 599 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 600 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 601 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 602 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 603 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 607 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 608 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 609 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 610 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 611 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 613 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 617 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 618 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 619 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 620 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 621 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 622 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 623 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 631 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 632 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 633 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 634 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 635 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 636 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 637 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 640 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 641 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 642 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 643 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 644 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 649 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 650 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 653 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 654 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 655 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 656 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 657 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 659 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 661 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 662 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 663 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 664 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 666 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 667 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 670 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 671 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 672 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 673 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 674 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 675 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 682 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 683 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 684 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 685 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 686 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 687 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 693 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 694 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 695 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 696 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 697 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 698 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 702 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 703 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 704 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 705 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 706 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 707 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 708 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 709 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 710 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 713 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 715 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 716 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 721 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 722 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 723 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 724 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 725 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 733 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 734 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 736 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 737 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 743 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 744 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 745 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 746 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 747 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 752 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 753 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 754 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 755 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 756 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 760 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 761 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 762 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 763 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 764 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 768 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 771 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 772 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 773 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 774 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 775 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 778 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 779 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 780 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 782 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 783 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 787 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 788 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 789 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 790 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 791 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 792 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 794 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 797 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 798 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 799 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 800 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 801 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 802 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 803 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 804 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 805 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 807 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 808 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 809 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 810 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 811 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 813 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 817 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 819 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 820 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 821 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 822 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 823 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 825 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 827 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 828 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 829 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 830 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 831 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 832 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 833 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 838 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 839 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 840 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 841 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 842 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 843 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 844 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 845 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 848 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 849 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 850 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 852 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 853 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 857 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 858 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 859 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 860 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 861 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 867 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 868 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 869 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 870 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 871 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 873 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 875 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 878 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 879 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 880 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 882 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 886 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 887 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 888 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 891 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 892 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 894 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 895 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 897 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 898 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 899 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 900 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 901 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 906 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 907 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 908 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 909 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 910 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 911 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 913 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 914 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 917 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 918 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 919 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 920 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 922 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 923 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 925 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 926 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 927 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 928 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 929 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 930 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 931 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 934 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 935 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 936 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 938 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 939 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 943 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 944 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 945 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 947 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 948 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 949 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 950 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 951 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 952 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 953 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 956 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 957 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 958 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 959 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 960 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 961 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 962 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 964 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 965 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 966 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 967 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 968 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 969 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 971 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 972 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 973 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 974 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 975 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 976 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 977 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 979 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 980 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 982 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 985 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 986 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 987 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 988 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 989 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 992 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 993 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 994 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 995 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 996 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 998 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1007 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1008 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1009 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1010 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1020 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1021 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1022 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1023 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1024 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1028 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1029 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1030 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1031 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1037 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1038 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1039 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1040 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1046 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1048 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1049 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1050 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1051 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1060 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1061 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1069 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1070 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1071 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1072 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1082 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1083 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1084 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1099 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1100 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1101 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1102 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1111 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1112 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1113 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1114 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1115 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1126 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1127 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1128 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1129 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1136 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1137 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1138 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1139 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1143 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1144 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1145 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1148 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1149 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1150 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1151 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1157 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1158 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1160 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1161 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1162 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1163 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1164 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1166 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1173 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1174 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1175 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1176 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1177 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1181 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1183 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1184 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1185 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1186 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1189 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1191 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1195 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1196 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1197 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1198 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1200 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1203 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1204 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1205 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1206 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1207 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1214 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1215 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1216 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1217 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1218 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1221 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1222 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1223 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1224 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1225 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1227 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1231 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1232 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1233 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1234 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1235 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1236 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1244 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1246 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1252 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1253 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1255 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1261 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1263 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1264 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1265 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1269 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1271 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1272 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1273 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1274 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1277 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1282 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1283 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1284 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1285 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1286 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1290 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1292 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1293 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1294 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1296 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1300 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1301 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1302 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1303 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1304 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1305 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1309 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1311 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1312 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1313 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1314 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1315 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1316 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1320 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1321 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1322 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1323 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1324 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1325 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"32d149fa_c238_4e8c_9c9bfe8ca03b39ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{ 1327 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"05f6e40b_f62a_4382_9b25ca234839aeb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID);\r\n// }} \"\"\r\n// {{ 1329 1 0 \"b8eff0c4_8a87_4d69_8b1fc22443527e58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1330 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_43ECC15F92874e8a8FCA2A90F3412255 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1331 1 0 \"a6315690_dcdc_4faf_9764f4edcccee401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1332 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1333 1 0 \"b152d230_641d_44fd_82876d10beb25ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1334 1 0 \"2178bb5d_1389_4bb3_92e038bed00ad7d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"0e8fa514_886c_42d7_a0fec5c2e0a40820\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1336 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1337 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1338 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1339 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_MeasureCycle\")\r\n{\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"e78c25fc_f856_4c7d_bb7f6056d2ae0e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"4c0064bb_0c23_4648_b57e5599878d63f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqMeasurement\"), seqMeasurement);\r\n// }} \"\"\r\n// {{ 1342 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (seqMeasurement == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1343 1 0 \"a11073f7_18e2_4097_baf006ed44e74081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MeasurePositions\"), MeasurePositions);\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"47d49bd0_0457_440d_b1d654c85ac3c5db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(MeasurePositions, seq);\r\n// }} \"\"\r\n// {{ 1345 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"bbddeeab_2dc4_4931_900a5ec07aafe0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, seqMeasure, seq);\r\n// }} \"\"\r\n// {{ 1347 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"6b06d7c5_bf98_48d9_906ae705e4ce149b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"25fe4c02_a4e2_40cd_91289dc1c5c638b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProbePattern\"), ProbePattern);\r\n// }} \"\"\r\n// {{{ 1350 1 0 \"02a9e02a_0596_4158_ac021180b0b5985c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1351 1 0 \"f8080019_d032_4f0c_9ef8429bde9ee7df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1352 1 0 \"83142ee1_d831_4ff1_a6734844fe789421\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues);\r\n// }} \"\"\r\n// {{{ 1353 1 0 \"d4d4974a_23a2_43a2_851b478f0e7d24be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValues, flt_pHValues);\r\n// }} \"\"\r\n// {{{ 1354 1 0 \"bde9c162_a4cf_40fa_a663c6b78e029610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"0a5c18e9_775d_4644_bdfcc536000642cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Measure Cycle\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"c1502c7b_2bd0_480c_a0ce6887e02484bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1357 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1358 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1359 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1360 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1361 1 0 \"d9d7f7cb_394b_40ea_a037e16efc8e063c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1362 1 0 \"0e65e09c_0178_403b_9eca768c440a479f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1363 1 0 \"fedae8c3_0c9d_426f_a30e8fdfa1d2b056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"ad8456a9_07be_4852_b2bab182e7e17dae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration1\"), Calibration1);\r\n// }} \"\"\r\n// {{{ 1365 1 0 \"8b591ca2_adf8_4248_b5ac1fb2a84c21aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1);\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"0f28a5e9_278c_4290_aa9ee416f829755a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration2\"), Calibration2);\r\n// }} \"\"\r\n// {{{ 1367 1 0 \"b57e28d3_0011_4657_bbceba83ca97b89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2);\r\n// }} \"\"\r\n// {{{ 1368 1 0 \"101798f0_c18a_411a_b29295d972cc9a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqReference\"), Reference);\r\n// }} \"\"\r\n// {{{ 1369 1 0 \"1c415c8d_660d_41fe_a81fcfd6d8836038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Reference, seqReference);\r\n// }} \"\"\r\n// {{{ 1370 1 0 \"20510ceb_5840_48de_842a1b657fa7706d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationTime\"), CalibrationTime);\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"ecd67637_3e8e_4d22_89b67b39e05342fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"148b5d07_b84d_4786_b1d0f9d5e5837491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"938c1584_a353_4f03_ba14c9f33cc2c6a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue1\"), CalibrationValue1);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"cda9048b_fe59_4db2_a1d08550795038f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue2\"), CalibrationValue2);\r\n// }} \"\"\r\n// {{{ 1375 1 0 \"5d669238_eb69_4080_8b789139b291be94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValueRef\"), CalibrationValueRef);\r\n// }} \"\"\r\n// {{{ 1376 1 0 \"4c7c9992_c2e0_445a_bee9cd7dd086e585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln1\"), TempSoln1);\r\n// }} \"\"\r\n// {{{ 1377 1 0 \"9574a12d_456e_4fd6_9b51714dd88b4a1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln2\"), TempSoln2);\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"211f81c7_5561_45ce_8cf247e76fb0f65e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSolnRef\"), TempSolnRef);\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"f812ea75_ed49_4a04_b4ab3dd67f1206ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrateDynamically\"), blnCalibrateDynamically);\r\n// }} \"\"\r\n// {{{ 1380 1 0 \"178d95b8_13db_4493_a08cdaec1348c0e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"d4d33c2d_2aee_4a51_ad36cb953d687c83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{ 1382 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F882CD31309846e3BD30959B418AB982 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 1384 1 0 \"18724129_2443_4271_a6316a42ef334c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1385 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F882CD31309846e3BD30959B418AB982 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1386 1 0 \"d6c65e91_f6e8_47d9_aaf1810ffab1ffac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1387 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"7375b9e4_01c3_49a1_810fb42149ed0eea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios);\r\n// }} \"\"\r\n// {{{ 1389 1 0 \"31ba6e89_258d_4deb_97352544c3b5c45c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution);\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"924064ec_85ac_4b42_a5ff3eb8a6a5342f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1391 1 0 \"65bd0fe0_0efb_4335_b118b89e61b948ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1392 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1393 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1394 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1395 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Dry\")\r\n{\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"0f0bf03e_4950_40e7_b2899f9cabb79cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1397 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"1885a8d9_8082_44ab_bfd7a217170187db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1399 1 0 \"33dddcad_4489_4f31_8b4fea145ebbe77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1400 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D19CA5AD1071407b84599779A41B51EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1401 1 0 \"d8f5d052_f205_4e22_8998e2d0d12790ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1402 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"5521c0c7_c64b_4b49_9036f9bf6a7a83d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"9e7864cd_a0bd_4ec6_8f733a2e7ab773bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1405 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1406 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1407 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1408 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"39b0590c_dc8d_4eb3_b8bfcab65235f494\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1410 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"beaffdda_e52a_4f79_95659f907946752f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1412 1 0 \"58aab21a_307b_403b_980186d201a7c6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1413 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1414 1 0 \"4cd2a753_2761_4d3c_9cd93c15fa19a47b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1415 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"0af219f8_e5bc_4b14_a95fd7e3f2ccb712\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"7b44ca9e_e6d7_4793_8f937fc518ecc41c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1418 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1419 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1420 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1421 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SetParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1422 1 0 \"7e5e111c_21f5_4c0b_9dd06d15aee64431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqGripper\"), Gripper);\r\n// }} \"\"\r\n// {{{ 1423 1 0 \"8417ab78_f4b8_40aa_890f3b14e4204667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Gripper, seqGripper);\r\n// }} \"\"\r\n// {{{ 1424 1 0 \"f43d4896_c19a_4cc9_ad3c75f925788b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqWashPosition\"), WashPosition);\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"ffcc2479_6c91_4038_bab179b027d4b03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition);\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"b731d1c6_30bc_4003_ba19e062e82293db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqDryPosition\"), DryPosition);\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"a68ddb6b_780a_46ed_bcaa350f92f649fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition);\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"020f31e6_e3ef_48f4_af0e175e60e00159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TransportChannel\"), TransportChannel);\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"1561e8c8_acaa_438f_9c7c57a5c196556f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WashCycles\"), WashCycles);\r\n// }} \"\"\r\n// {{{ 1430 1 0 \"7e0a9629_dce6_4ed9_81b854f636408ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryCycles\"), DryCycles);\r\n// }} \"\"\r\n// {{{ 1431 1 0 \"dacc3c17_6358_44f0_8ac4ad1fa0ae08b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{{ 1432 1 0 \"f86b35ff_9db7_4845_a3cfb7d04c520c3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime);\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"ce0a2f35_ae58_4695_85513126a4acb791\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"da69f49c_299d_435d_9d95dc10f7303ce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"bd10bc62_2ace_436a_a68acec8c1f9287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1436 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1437 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1438 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1439 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Park\")\r\n{\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"90471824_8967_4383_a722d29bfaf60113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"f6bbc2b1_c86d_4f64_abc12d3b740b1d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1442 1 0 \"9341ffae_9e0c_43f9_b3ccedcfbadb07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"9e0a230a_fdb5_4eec_9cf3127779adb1d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1444 1 0 \"8aacb0d9_a918_426b_9717bd2febc1f74a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1445 1 0 \"15592ad5_5751_4636_8a513ee3f27c7f11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"6222366b_a5bf_4c73_8685a3cdebb4ff4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1447 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1448 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1449 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1450 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Pickup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"347e06d8_9db7_4279_bf224e9ecf4299e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"2b0761dc_e201_46b3_a590b52421cd8ee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"76631bc5_230e_4e20_87bf493887cddd0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"2d3aba8b_cc4b_4be1_a83c30695fcf6dbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"7879f9b5_2eea_4059_8e4bef3213e8decd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"cb1582a1_3f8c_44fd_910a5f08dbe32b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"a15fc9df_322f_4ce1_83228c63669e6b16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1458 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1459 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1460 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1461 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_ExtendedLog\")\r\n{\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"d101eee8_9402_428a_aa576d531ed959c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"bc849548_9009_43ec_bb1b6c81c32132f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"0a496202_0f55_4f40_8b391260caa236ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1465 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1466 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1467 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1468 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_LoadLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{ 1469 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B416552A06404ef48774D74059C2B182 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"154ec087_ea2e_4381_bb2e261ffad534f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1471 1 0 \"79340e9d_69d5_4911_b4601ae4754a16c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1472 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B416552A06404ef48774D74059C2B182 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1473 1 0 \"46420553_d90f_4dfa_b42c9d86856c288a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1474 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"54b468e0_3ea0_4e83_9ffae95722c5cb9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBluetoothPort = StrIStr(BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"7bde202f_1c1b_4911_9f600ac6e1a5b57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumWashCycles = StrIStr(NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1477 1 0 \"c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumDryCycles = StrIStr(NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"027378a7_4549_4d3f_b8d33aa4980be4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDryTime = StrIStr(DryTime);\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"fbda7cdb_3ed9_4a5c_907ce60556e0129b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"e454face_7eee_4c6e_a61e221c0e5d7fb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1481 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1482 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1483 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1484 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SaveLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"aca4c717_812e_46f9_8eb5989a720adb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BluetoothPort\"), BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"1198edc8_1ec9_479d_a4e7fd71ed50cf8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumWashCycles\"), NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"be958699_818e_43db_a757a67b7b54572a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumDryCycles\"), NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1488 1 0 \"8751a2c3_e6ee_43bf_b21f5458aebf179a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{ 1489 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4973F03471994119A9F699CE6459CBFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"1480ff51_54ea_4c38_befa457e23966aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1491 1 0 \"0e101f68_bc36_42fe_882a3951ef193f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1492 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4973F03471994119A9F699CE6459CBFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1493 1 0 \"2e180d98_e746_4b84_b623b4d0e8e198fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1494 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"cb24f9db_18c1_41af_b6f16900826be7be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1496 1 0 \"87c5e5f6_77ee_4519_879fdceaf21c1d7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1497 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1498 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1499 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1500 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"bdbbc648_a9fa_468f_b5d4d390115575eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1502 1 0 \"1a74d7ad_0c35_454c_b161ede32468b2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1503 1 0 \"c67afa78_dd60_451b_b2e31a2e6540f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1504 1 0 \"2424dca1_971a_40f8_97b763c253560a2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1505 1 0 \"8def2ba5_b51c_4e0c_b6ebfdd346a5beec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"684d328d_214e_4955_bfe9ff0627b7f8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"e6ec0fc8_d42c_4413_b2c2719c3cd18dc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"6f2273c4_1e1e_46f3_9ea6544d76383266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1509 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1510 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1511 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1512 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1513 1 0 \"b43cf782_b210_48c8_933f4cdfae78d050\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1514 1 0 \"efbfd98d_c15d_4ac9_b94250ab4361a8b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID);\r\n// }} \"\"\r\n// {{{ 1515 1 0 \"c918ad91_e33e_4f2f_9c6577fd8c93aaf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"2021a914_67dd_495e_9a9e4cf4438df298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"8d8842cd_e3b4_4397_92ad69593e9f7796\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1518 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1519 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1520 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1521 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1522 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1523 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1527 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1528 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1529 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1530 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1531 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1532 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1533 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1534 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1535 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1536 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1538 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1540 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1541 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1542 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1547 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1548 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1549 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1550 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1551 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1552 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1553 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1555 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1556 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1557 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1558 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1563 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1564 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1565 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1566 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1567 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1571 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1572 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1573 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1574 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1576 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1577 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1579 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1580 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1581 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1582 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1584 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1585 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1586 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1587 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1588 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1589 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1591 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1592 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1593 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1594 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1595 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1596 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1597 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1600 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1601 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1602 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1603 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1604 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1608 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1609 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1610 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1611 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1612 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1616 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1617 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1618 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1621 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1622 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1623 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1624 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1625 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1626 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1629 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1630 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1631 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1632 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1634 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1635 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1636 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1638 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1639 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1640 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1642 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1644 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1646 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1647 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1648 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1649 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1652 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1653 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1654 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1655 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1656 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1658 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"6957e247_4f64_4971_8d90658c99adbb87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"34cc8f4a_c310_4eb7_b936c63f8401c523\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1661 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1662 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1663 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1664 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1665 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1666 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1667 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1668 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1669 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1670 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1673 1 0 \"dd7d7b00_1e95_4e45_97a425f03a18ab04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{{ 1674 1 0 \"0021495f_472e_4321_9d1e81e8fbd43f0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1675 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1676 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1677 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1678 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1679 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1680 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1681 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1682 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1683 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1684 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1685 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1686 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1687 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1688 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1689 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1690 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1691 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1692 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1693 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1694 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1695 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1696 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1697 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1698 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1699 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1700 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1701 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1702 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1704 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1705 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1706 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1707 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1708 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1709 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1710 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1711 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1712 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1713 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1714 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1715 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1716 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1717 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1718 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1719 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1720 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1721 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1722 1 0 \"c0166b97_c0ae_417b_85c90c5ef42e5fc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1723 1 0 \"73777071_2fd2_42b0_a7545c6a6a372194\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1724 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1725 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1726 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1727 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1728 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1729 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1730 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1731 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1732 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1733 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1734 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1735 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1736 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1737 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1738 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1739 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1740 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1741 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1742 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1743 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1744 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1745 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1746 1 0 \"ecd6d069_96d7_4a72_9ffc0df77e7a1512\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1747 1 0 \"b05c868f_c25f_47a9_b533b13ab05fc962\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1748 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1749 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1750 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1751 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1752 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1753 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1754 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1755 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1756 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1757 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1758 1 0 \"c99aa2b7_d8a6_4cee_a1fa1d731ef77d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1759 1 0 \"f2861b4d_28d2_4ee3_8b7c7763312067ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1760 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1761 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1762 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1763 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1764 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1765 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1766 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1767 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1768 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1769 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1770 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1771 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1772 1 0 \"a650efc1_423b_4f75_9f0da083ee44ae9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{{ 1773 1 0 \"e1ef0806_8a47_46c1_972c9ed9e299eaad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1774 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1775 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1776 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1778 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1779 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1780 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1781 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1782 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1783 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1784 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1785 1 0 \"b417b8ce_5117_450e_93a9a6243c6011d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{{ 1786 1 0 \"ed43cecb_7012_4fb9_a89d129de09bdadb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1787 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1788 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1789 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1790 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1791 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1792 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1793 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1794 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1795 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1796 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1797 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1798 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1799 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1800 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1801 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1802 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1803 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1804 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1805 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1806 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1807 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1808 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1809 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1810 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1811 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1812 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1813 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1814 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1815 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1816 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1817 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1818 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1819 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1820 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1821 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1822 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1823 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1824 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1825 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1826 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1827 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1828 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1829 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1830 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1831 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1832 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1833 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1834 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1835 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1836 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1837 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1838 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1839 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1840 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1841 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1842 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1843 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1844 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1845 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1846 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1847 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1848 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1849 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1850 1 0 \"73be1c30_4bfe_4a0f_aa560c8df5b091fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1851 1 0 \"39ac643d_0305_4ec6_87fc196efe3d76f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1852 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1853 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1854 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1855 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1856 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1857 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1858 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1859 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1860 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1861 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1862 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1863 1 0 \"272104de_2e64_4a32_a88407b030437361\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1864 1 0 \"1362f66b_0efd_4eb5_935e84586a427637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1865 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1866 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1867 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1868 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1869 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1870 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1871 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1872 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1873 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1874 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1875 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1876 1 0 \"cf1b40c4_5e9a_48bf_9390f6eab212315f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1877 1 0 \"2e7a5304_5ce9_4afb_93a4a8276dc86d74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1878 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1879 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1880 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1881 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1882 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1883 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1884 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1885 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1886 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1887 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1888 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1889 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1890 1 0 \"4b29337f_c67c_4ecf_a205f4b70e60271a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1891 1 0 \"40aad8b7_f42e_4ad1_b0f0c033ec666548\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1892 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1893 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1894 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1895 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1896 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1897 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1898 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1899 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1900 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1901 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1902 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1903 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1904 1 0 \"dfb61f9c_103b_4c42_83e0779ea05cb180\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{{ 1905 1 0 \"e4829da3_d8b6_453f_a2be82213303e9f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1906 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1907 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1908 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1909 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1910 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1911 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1912 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1913 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1914 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1915 1 0 \"ee3103a2_d7f3_488f_b7a95e2f2b56770a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{{ 1916 1 0 \"a782313c_e15b_4340_bdda314f926e24cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1917 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1918 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1919 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1920 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1921 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1922 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1923 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1924 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1925 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1926 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1927 1 0 \"b5ecca33_fef4_4c14_9cf702c924839607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1928 1 0 \"49e72e72_8e49_49fd_8d212a6ccff1d2fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1929 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1930 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1931 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1932 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1933 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1934 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1935 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1936 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1937 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1938 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1939 1 0 \"d186dde8_c684_4550_a023d9023ff021d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1940 1 0 \"af12e4a9_cc0f_4a82_b9593d2b489756a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1941 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1942 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1943 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1944 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1945 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1946 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1947 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1948 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1949 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1950 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1951 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1952 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1953 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1954 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1955 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1956 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1957 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1958 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1959 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1960 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1961 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1962 1 0 \"3b2abeec_38f4_46a6_a30b0d0126280ebc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1963 1 0 \"c4e94e42_8405_438b_921cfe4ba73e9976\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1964 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1965 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1966 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1967 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1968 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1969 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1970 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1971 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1972 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1973 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1974 1 0 \"5aa60a5a_db92_42e0_b3277a41cacb5336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1975 1 0 \"49cd8e9e_91bd_468c_aec57e3af40280fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1976 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1977 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1978 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1979 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1980 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1981 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1982 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1983 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1984 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1985 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1986 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1987 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1988 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1989 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1990 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1991 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1992 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1993 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1994 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1995 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 1996 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1997 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1998 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1999 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2000 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2001 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2002 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2003 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2004 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2005 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2006 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2007 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2008 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2009 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2010 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Roboter$$valid=0$$time=2023-04-25 15:45$$checksum=6411032d$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx1DE8.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2175 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2135 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2136 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2137 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2138 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2139 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2156 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2157 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2159 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2160 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2161 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2162 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2163 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2164 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2165 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2166 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2167 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2168 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2169 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2170 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2171 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2172 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2173 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2106 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2107 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2108 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2109 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2110 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2111 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2112 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2113 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2114 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2115 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2116 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2048 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2049 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2050 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2051 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2052 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2053 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2054 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2055 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2056 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2057 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2058 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2059 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2060 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2150 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2151 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2152 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2153 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2022 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2023 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2024 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2025 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2026 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2027 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2029 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2031 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2032 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2033 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2034 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2035 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2036 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2037 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2038 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2039 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2040 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2041 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2042 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2043 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2044 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2045 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2046 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2012 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2013 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2014 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2015 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2016 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2017 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2018 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2019 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2020 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2068 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2069 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2071 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2072 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2074 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2076 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2077 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2078 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2080 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2081 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2082 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2083 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2084 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2085 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2086 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2087 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2088 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2089 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2090 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2091 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2092 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2093 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2094 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2095 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2096 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2097 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2098 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2099 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2100 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2101 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2102 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2103 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2104 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2118 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2119 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2120 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2121 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2122 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2123 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2124 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2125 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2126 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2127 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2129 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2130 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2131 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2132 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2142 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2143 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2144 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2145 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2146 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2147 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2148 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"Begin\"\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable {\r\n// }} \"\"\r\n// {{ 5 \"ConvertHSSErrCode\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2062 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (hssErrCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2063 1 0 \"9f0ce7fc_13c6_4496_9d762a07174e50f1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (1);\r\n// }} \"\"\r\n// {{ 2064 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2065 1 0 \"4c347e8c_4bce_4fd2_9771e3402c6f946d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Roboter$$valid=0$$time=2023-04-25 15:45$$checksum=526b92e7$$length=086$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx1DE8.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx2A1D.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module Controller.hs_\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"HSL_LiquidClassLib.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\nvariable DefaultTemperature;\r\nvariable MeasureTime;\r\nvariable MeasureHeight;\r\nvariable CalibrationValue1;\r\nvariable TempSoln1;\r\nvariable TempSoln2;\r\nvariable CalibrationValue2;\r\nvariable blnCalibrateDynamically;\r\nvariable CalibrationValueRef;\r\nvariable TempSolnRef;\r\nvariable Module;\r\nvariable Reference;\r\nvariable Calibration1;\r\nvariable Calibration2;\r\nsequence seqModule;\r\nsequence seqCalibration1;\r\nsequence seqCalibration2;\r\nsequence seqReference;\r\nvariable CalibrationTime;\r\nvariable arrCalibrationSlopeRatios[];\r\nvariable arrpHValuesReferenceSolution[];\r\nvariable CalibrationSlopeRatios;\r\nvariable pHValuesReferenceSolution;\r\nvariable BluetoothPort;\r\nvariable NumDryCycles;\r\nvariable NumWashCycles;\r\nvariable DryTime;\r\nvariable Gripper;\r\nsequence seqGripper;\r\nvariable WashPosition;\r\nsequence seqWashPosition;\r\nvariable DryPosition;\r\nsequence seqDryPosition;\r\nvariable DryCycles;\r\nvariable TransportChannel;\r\nvariable WashCycles;\r\nvariable arrpHValues[];\r\nvariable flt_pHValues;\r\nvariable seqMeasure;\r\nvariable ProbePattern;\r\nvariable seqMeasurement;\r\nvariable MeasurePositions;\r\nvariable hssErrCode;\r\nvariable LiqClassParameterName;\r\nvariable LiqClassParameterValue;\r\nvariable LiquidClassName;\r\nvariable LiquidClassParameterValue;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"04505c20_428c_4440_8169ddcbaade8bbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 0);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 29 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 30 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 31 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 34 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 35 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 39 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 41 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 42 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 43 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 44 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 45 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 47 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 48 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 49 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 51 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 52 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 53 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 64 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 66 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 77 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 78 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 79 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 81 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 83 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 84 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 86 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 88 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 89 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 96 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 99 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 100 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 123 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 124 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 125 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 126 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 127 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 128 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 129 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 130 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 132 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 134 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 135 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 141 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 142 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 143 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 145 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 146 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 150 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 151 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 152 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 155 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 156 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 157 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 160 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 161 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 163 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 164 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 165 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 169 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 170 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 174 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 175 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 177 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 178 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 179 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 180 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 183 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 184 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 186 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 187 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 188 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 201 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 202 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 203 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 204 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 206 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 207 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 208 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 209 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 216 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 217 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 218 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 220 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 221 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 222 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 238 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 239 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 240 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 242 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 243 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 244 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 245 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 252 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 253 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 254 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 256 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 257 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 261 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 262 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 265 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 266 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 267 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 268 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 269 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 270 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 271 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 274 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 275 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 276 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 279 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 280 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 286 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 287 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 289 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 290 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 294 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 298 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 299 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 300 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 312 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 313 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 314 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 315 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 316 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 317 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 318 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 319 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 320 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 321 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 322 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 323 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 324 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 325 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 326 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 327 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 328 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 329 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 330 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 331 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 335 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 336 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 338 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 339 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 340 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 344 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 345 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 346 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 347 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 348 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 349 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 352 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 353 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 354 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 356 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 357 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 358 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 359 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 360 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 361 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 362 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 366 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 367 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 368 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 370 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 371 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 372 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 374 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 382 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 383 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 384 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 385 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 386 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 387 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 388 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 389 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 390 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 391 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 392 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 393 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 394 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 395 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 396 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 397 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 398 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 399 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 402 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 403 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 404 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 405 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 407 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 408 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 409 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 410 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 418 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 426 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 427 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 428 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 429 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 430 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 431 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 432 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 433 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 434 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 435 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 436 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 437 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 438 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 439 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 440 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 441 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 442 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 443 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 444 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 447 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 448 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 450 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 451 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 452 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 454 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 455 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 456 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 457 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 458 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 459 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 460 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 461 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 462 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 463 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 464 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 466 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 467 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 468 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 470 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 471 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 472 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 481 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 482 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 484 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 485 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 486 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 487 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 488 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 489 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 490 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 491 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 492 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 493 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 494 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 495 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 496 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 497 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 498 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 499 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 502 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 503 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 504 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 506 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 507 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 508 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 509 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 511 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 512 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 513 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 516 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 518 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 519 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 520 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 521 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 522 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 523 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 524 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 526 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 527 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 528 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 529 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 530 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 531 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 532 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 535 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 536 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 537 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 538 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 539 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 541 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setAspirateParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 542 1 0 \"d741f062_6b73_4365_ad9c8646a016138d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"86836193_1dcb_460e_8db2dda6b775abd9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"d94798d1_53c6_40de_b72c239404c94352\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 545 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 546 1 0 \"3f31be32_d184_4c20_a5127e5057f15149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"b75ad951_95b1_4114_864093345ffb2cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 548 1 0 \"39c793b0_ff2b_4f98_8777af88953926ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 549 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E1EAD148F3254941A251DC272F774AB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 550 1 0 \"edca8fd8_6dcd_4da1_83335a6ade44afe2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 551 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 552 1 0 \"9659fadc_8b56_42dd_84f93223c42fcac7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 553 1 0 \"ec08039a_3b70_4854_894d57c13ffdc877\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 554 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 555 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setDispenseParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 556 1 0 \"4aa7b9ce_fd73_4a55_9a3c704bfb4c443d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"27e93e41_ad5f_4b74_a1844bb15c0dfdfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"10da81a6_cef8_4c18_9416f561b557ad45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 559 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 560 1 0 \"b471ff31_4fdd_4a9f_87431e5741a9b969\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 561 1 0 \"1478809d_e829_4040_a50d7b3a44944f4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 562 1 0 \"2b0f0071_b3f4_427c_89691e712bb58085\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 563 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3A18CA152B674dd3A42B81C4D45F719E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 564 1 0 \"79e8bd1f_8c05_4c90_83e299e38c6c5f99\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 565 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 566 1 0 \"d805e811_a796_44e9_93839b02b6d05f1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"da31069e_a165_4c2e_b95619cb57c4ae8a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 568 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 569 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 570 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 571 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 572 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 573 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 579 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 580 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 581 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 582 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 583 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 584 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 585 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 588 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 589 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 590 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 591 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 592 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 593 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 594 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 595 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 596 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 599 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 600 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 601 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 602 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 603 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 604 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 609 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 610 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 611 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 612 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 613 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 614 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 617 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 618 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 619 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 620 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 621 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 622 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 626 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 627 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 628 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 629 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 630 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 633 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 634 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 635 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 636 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 637 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 638 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 639 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 640 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 641 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 642 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 649 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 650 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 651 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 652 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 653 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 654 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 657 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 659 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 661 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 662 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 663 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 664 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 666 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 670 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 671 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 672 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 673 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 674 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 675 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 683 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 684 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 685 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 686 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 687 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 688 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 693 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 694 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 695 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 696 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 697 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 698 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 702 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 703 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 705 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 706 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 713 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 716 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 717 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 724 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 725 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 726 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 727 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 728 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 729 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 734 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 735 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 736 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 737 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 738 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 739 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 740 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 741 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 746 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 747 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 752 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 753 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 754 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 755 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 756 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 760 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 761 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 763 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 764 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 765 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 766 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 767 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 768 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 771 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 772 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 773 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 774 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 775 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 776 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 777 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 778 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 779 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 780 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 781 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 782 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 783 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 784 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 785 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 786 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 787 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 790 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 791 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 792 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 794 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 795 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 801 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 802 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 803 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 805 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 806 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 809 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 810 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 811 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 812 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 813 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 814 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 817 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 818 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 819 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 820 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 821 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 822 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 825 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 827 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 828 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 829 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 830 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 831 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 832 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 838 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 839 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 842 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 848 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 849 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 850 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 851 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 852 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 853 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 854 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 857 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 858 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 859 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 860 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 861 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 862 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 863 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 864 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 867 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 868 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 869 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 870 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 871 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 872 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 873 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 874 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 875 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 876 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 880 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 881 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 882 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 883 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 884 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 886 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 887 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 888 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 889 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 891 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 892 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 894 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 895 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 897 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 898 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 899 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 900 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 901 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 902 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 906 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 908 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 909 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 910 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 911 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 912 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 913 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 917 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 918 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 919 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 920 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 921 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 922 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 923 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 925 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 926 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 927 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 928 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 929 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 930 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 931 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 932 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 936 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 937 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 938 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 939 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 940 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 941 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 944 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 945 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 947 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 948 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 949 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 950 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 951 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 952 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 953 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 954 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 956 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 957 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 958 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 959 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 960 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 961 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 962 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 964 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 965 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 966 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 967 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 968 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 969 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 970 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 971 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 972 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 973 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 974 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 975 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 976 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 977 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 978 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 979 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 980 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 981 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 982 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 983 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 984 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 985 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 986 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 987 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 988 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 989 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 990 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 991 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 998 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 999 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1003 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1004 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1005 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1006 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1007 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1009 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1010 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1022 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1023 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1024 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1025 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1026 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1037 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1038 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1039 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1040 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1041 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1046 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1048 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1051 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1052 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1053 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1054 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1059 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1060 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1061 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1062 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1068 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1069 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1070 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1071 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1072 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1079 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1080 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1081 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1082 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1100 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1101 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1102 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1103 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1111 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1112 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1113 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1114 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1115 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1127 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1129 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1130 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1131 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1132 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1133 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1137 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1138 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1139 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1143 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1144 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1145 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1146 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1157 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1158 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1159 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1160 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1162 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1164 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1166 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1167 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1168 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1169 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1170 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1174 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1176 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1177 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1179 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1180 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1181 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1182 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1183 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1186 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1189 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1191 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1192 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1193 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1194 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1195 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1196 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1200 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1203 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1204 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1205 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1206 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1207 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1213 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1214 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1215 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1216 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1217 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1218 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1221 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1222 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1223 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1226 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1227 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1228 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1229 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1233 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1234 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1235 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1236 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1237 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1238 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1243 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1244 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1245 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1246 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1247 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1252 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1253 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1254 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1255 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1256 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1261 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1263 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1264 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1265 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1269 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1271 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1272 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1273 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1274 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1275 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1276 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1277 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1282 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1283 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1284 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1285 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1286 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1290 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1292 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1293 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1294 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1296 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1300 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1301 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1302 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1303 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1304 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1305 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1309 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1312 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1313 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1314 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1315 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1316 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1317 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1320 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1321 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1322 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1323 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1324 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1325 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1326 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1327 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1329 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1331 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1332 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1333 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1334 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1335 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1336 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1342 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1343 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1344 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1345 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1350 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1351 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1352 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1353 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1354 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1355 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1356 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"32d149fa_c238_4e8c_9c9bfe8ca03b39ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{ 1358 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1359 1 0 \"05f6e40b_f62a_4382_9b25ca234839aeb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID);\r\n// }} \"\"\r\n// {{ 1360 1 0 \"b8eff0c4_8a87_4d69_8b1fc22443527e58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1361 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_43ECC15F92874e8a8FCA2A90F3412255 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1362 1 0 \"a6315690_dcdc_4faf_9764f4edcccee401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1363 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"b152d230_641d_44fd_82876d10beb25ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1365 1 0 \"2178bb5d_1389_4bb3_92e038bed00ad7d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"0e8fa514_886c_42d7_a0fec5c2e0a40820\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1367 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1368 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1369 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1370 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_MeasureCycle\")\r\n{\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"e78c25fc_f856_4c7d_bb7f6056d2ae0e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"4c0064bb_0c23_4648_b57e5599878d63f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqMeasurement\"), seqMeasurement);\r\n// }} \"\"\r\n// {{ 1373 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (seqMeasurement == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"a11073f7_18e2_4097_baf006ed44e74081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MeasurePositions\"), MeasurePositions);\r\n// }} \"\"\r\n// {{{ 1375 1 0 \"47d49bd0_0457_440d_b1d654c85ac3c5db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(MeasurePositions, seq);\r\n// }} \"\"\r\n// {{ 1376 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1377 1 0 \"bbddeeab_2dc4_4931_900a5ec07aafe0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, seqMeasure, seq);\r\n// }} \"\"\r\n// {{ 1378 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"6b06d7c5_bf98_48d9_906ae705e4ce149b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1380 1 0 \"25fe4c02_a4e2_40cd_91289dc1c5c638b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProbePattern\"), ProbePattern);\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"02a9e02a_0596_4158_ac021180b0b5985c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1382 1 0 \"f8080019_d032_4f0c_9ef8429bde9ee7df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"83142ee1_d831_4ff1_a6734844fe789421\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues);\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"d4d4974a_23a2_43a2_851b478f0e7d24be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValues, flt_pHValues);\r\n// }} \"\"\r\n// {{{ 1385 1 0 \"bde9c162_a4cf_40fa_a663c6b78e029610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"0a5c18e9_775d_4644_bdfcc536000642cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Measure Cycle\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1387 1 0 \"c1502c7b_2bd0_480c_a0ce6887e02484bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1388 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1389 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1390 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1391 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"d9d7f7cb_394b_40ea_a037e16efc8e063c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1393 1 0 \"0e65e09c_0178_403b_9eca768c440a479f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1394 1 0 \"fedae8c3_0c9d_426f_a30e8fdfa1d2b056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1395 1 0 \"ad8456a9_07be_4852_b2bab182e7e17dae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration1\"), Calibration1);\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"8b591ca2_adf8_4248_b5ac1fb2a84c21aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1);\r\n// }} \"\"\r\n// {{{ 1397 1 0 \"0f28a5e9_278c_4290_aa9ee416f829755a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration2\"), Calibration2);\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"b57e28d3_0011_4657_bbceba83ca97b89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"101798f0_c18a_411a_b29295d972cc9a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqReference\"), Reference);\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"1c415c8d_660d_41fe_a81fcfd6d8836038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Reference, seqReference);\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"20510ceb_5840_48de_842a1b657fa7706d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationTime\"), CalibrationTime);\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"ecd67637_3e8e_4d22_89b67b39e05342fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"148b5d07_b84d_4786_b1d0f9d5e5837491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"938c1584_a353_4f03_ba14c9f33cc2c6a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue1\"), CalibrationValue1);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"cda9048b_fe59_4db2_a1d08550795038f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue2\"), CalibrationValue2);\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"5d669238_eb69_4080_8b789139b291be94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValueRef\"), CalibrationValueRef);\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"4c7c9992_c2e0_445a_bee9cd7dd086e585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln1\"), TempSoln1);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"9574a12d_456e_4fd6_9b51714dd88b4a1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln2\"), TempSoln2);\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"211f81c7_5561_45ce_8cf247e76fb0f65e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSolnRef\"), TempSolnRef);\r\n// }} \"\"\r\n// {{{ 1410 1 0 \"f812ea75_ed49_4a04_b4ab3dd67f1206ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrateDynamically\"), blnCalibrateDynamically);\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"178d95b8_13db_4493_a08cdaec1348c0e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1412 1 0 \"d4d33c2d_2aee_4a51_ad36cb953d687c83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{ 1413 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F882CD31309846e3BD30959B418AB982 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1414 1 0 \"ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 1415 1 0 \"18724129_2443_4271_a6316a42ef334c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1416 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F882CD31309846e3BD30959B418AB982 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1417 1 0 \"d6c65e91_f6e8_47d9_aaf1810ffab1ffac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1418 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"7375b9e4_01c3_49a1_810fb42149ed0eea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios);\r\n// }} \"\"\r\n// {{{ 1420 1 0 \"31ba6e89_258d_4deb_97352544c3b5c45c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution);\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"924064ec_85ac_4b42_a5ff3eb8a6a5342f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1422 1 0 \"65bd0fe0_0efb_4335_b118b89e61b948ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1423 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1424 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1425 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1426 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Dry\")\r\n{\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"0f0bf03e_4950_40e7_b2899f9cabb79cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1428 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"1885a8d9_8082_44ab_bfd7a217170187db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1430 1 0 \"33dddcad_4489_4f31_8b4fea145ebbe77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1431 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D19CA5AD1071407b84599779A41B51EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1432 1 0 \"d8f5d052_f205_4e22_8998e2d0d12790ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1433 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"5521c0c7_c64b_4b49_9036f9bf6a7a83d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"9e7864cd_a0bd_4ec6_8f733a2e7ab773bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1436 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1437 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1438 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1439 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"39b0590c_dc8d_4eb3_b8bfcab65235f494\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1441 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1442 1 0 \"beaffdda_e52a_4f79_95659f907946752f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1443 1 0 \"58aab21a_307b_403b_980186d201a7c6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1444 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1445 1 0 \"4cd2a753_2761_4d3c_9cd93c15fa19a47b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1446 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"0af219f8_e5bc_4b14_a95fd7e3f2ccb712\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1448 1 0 \"7b44ca9e_e6d7_4793_8f937fc518ecc41c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1449 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1450 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1451 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1452 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SetParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"7e5e111c_21f5_4c0b_9dd06d15aee64431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqGripper\"), Gripper);\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"8417ab78_f4b8_40aa_890f3b14e4204667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Gripper, seqGripper);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"f43d4896_c19a_4cc9_ad3c75f925788b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqWashPosition\"), WashPosition);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"ffcc2479_6c91_4038_bab179b027d4b03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"b731d1c6_30bc_4003_ba19e062e82293db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqDryPosition\"), DryPosition);\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"a68ddb6b_780a_46ed_bcaa350f92f649fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition);\r\n// }} \"\"\r\n// {{{ 1459 1 0 \"020f31e6_e3ef_48f4_af0e175e60e00159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TransportChannel\"), TransportChannel);\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"1561e8c8_acaa_438f_9c7c57a5c196556f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WashCycles\"), WashCycles);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"7e0a9629_dce6_4ed9_81b854f636408ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryCycles\"), DryCycles);\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"dacc3c17_6358_44f0_8ac4ad1fa0ae08b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"f86b35ff_9db7_4845_a3cfb7d04c520c3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"ce0a2f35_ae58_4695_85513126a4acb791\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"da69f49c_299d_435d_9d95dc10f7303ce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"bd10bc62_2ace_436a_a68acec8c1f9287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1467 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1468 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1469 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1470 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Park\")\r\n{\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"90471824_8967_4383_a722d29bfaf60113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"f6bbc2b1_c86d_4f64_abc12d3b740b1d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"9341ffae_9e0c_43f9_b3ccedcfbadb07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1474 1 0 \"9e0a230a_fdb5_4eec_9cf3127779adb1d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"8aacb0d9_a918_426b_9717bd2febc1f74a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"15592ad5_5751_4636_8a513ee3f27c7f11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1477 1 0 \"6222366b_a5bf_4c73_8685a3cdebb4ff4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1478 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1479 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1480 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1481 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Pickup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"347e06d8_9db7_4279_bf224e9ecf4299e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"2b0761dc_e201_46b3_a590b52421cd8ee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"76631bc5_230e_4e20_87bf493887cddd0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"2d3aba8b_cc4b_4be1_a83c30695fcf6dbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"7879f9b5_2eea_4059_8e4bef3213e8decd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"cb1582a1_3f8c_44fd_910a5f08dbe32b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1488 1 0 \"a15fc9df_322f_4ce1_83228c63669e6b16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1489 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1490 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1491 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1492 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_ExtendedLog\")\r\n{\r\n// }} \"\"\r\n// {{{ 1493 1 0 \"d101eee8_9402_428a_aa576d531ed959c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"bc849548_9009_43ec_bb1b6c81c32132f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"0a496202_0f55_4f40_8b391260caa236ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1496 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1497 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1498 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1499 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_LoadLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{ 1500 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B416552A06404ef48774D74059C2B182 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"154ec087_ea2e_4381_bb2e261ffad534f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1502 1 0 \"79340e9d_69d5_4911_b4601ae4754a16c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1503 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B416552A06404ef48774D74059C2B182 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1504 1 0 \"46420553_d90f_4dfa_b42c9d86856c288a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1505 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"54b468e0_3ea0_4e83_9ffae95722c5cb9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBluetoothPort = StrIStr(BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"7bde202f_1c1b_4911_9f600ac6e1a5b57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumWashCycles = StrIStr(NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumDryCycles = StrIStr(NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1509 1 0 \"027378a7_4549_4d3f_b8d33aa4980be4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDryTime = StrIStr(DryTime);\r\n// }} \"\"\r\n// {{{ 1510 1 0 \"fbda7cdb_3ed9_4a5c_907ce60556e0129b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1511 1 0 \"e454face_7eee_4c6e_a61e221c0e5d7fb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1512 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1513 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1514 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1515 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SaveLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"aca4c717_812e_46f9_8eb5989a720adb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BluetoothPort\"), BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"1198edc8_1ec9_479d_a4e7fd71ed50cf8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumWashCycles\"), NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1518 1 0 \"be958699_818e_43db_a757a67b7b54572a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumDryCycles\"), NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1519 1 0 \"8751a2c3_e6ee_43bf_b21f5458aebf179a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{ 1520 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4973F03471994119A9F699CE6459CBFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1521 1 0 \"1480ff51_54ea_4c38_befa457e23966aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1522 1 0 \"0e101f68_bc36_42fe_882a3951ef193f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1523 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4973F03471994119A9F699CE6459CBFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1524 1 0 \"2e180d98_e746_4b84_b623b4d0e8e198fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1525 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"cb24f9db_18c1_41af_b6f16900826be7be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1527 1 0 \"87c5e5f6_77ee_4519_879fdceaf21c1d7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1528 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1529 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1530 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1531 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1532 1 0 \"bdbbc648_a9fa_468f_b5d4d390115575eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"1a74d7ad_0c35_454c_b161ede32468b2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"c67afa78_dd60_451b_b2e31a2e6540f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1535 1 0 \"2424dca1_971a_40f8_97b763c253560a2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1536 1 0 \"8def2ba5_b51c_4e0c_b6ebfdd346a5beec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"684d328d_214e_4955_bfe9ff0627b7f8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1538 1 0 \"e6ec0fc8_d42c_4413_b2c2719c3cd18dc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"6f2273c4_1e1e_46f3_9ea6544d76383266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1540 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1541 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1542 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1543 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"b43cf782_b210_48c8_933f4cdfae78d050\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"efbfd98d_c15d_4ac9_b94250ab4361a8b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"c918ad91_e33e_4f2f_9c6577fd8c93aaf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1547 1 0 \"2021a914_67dd_495e_9a9e4cf4438df298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1548 1 0 \"8d8842cd_e3b4_4397_92ad69593e9f7796\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1549 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1550 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1551 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1552 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1553 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1554 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1555 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1556 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1557 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1563 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1564 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1565 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1566 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1567 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1571 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1572 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1573 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1574 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1576 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1577 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1579 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1580 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1581 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1582 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1584 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1585 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1586 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1587 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1588 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1589 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1591 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1593 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1594 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1595 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1596 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1597 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1600 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1601 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1602 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1603 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1604 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1605 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1608 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1609 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1610 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1611 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1612 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1613 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1616 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1617 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1621 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1622 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1623 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1624 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1625 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1629 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1630 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1631 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1632 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1633 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1634 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1638 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1639 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1640 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1642 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1643 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1646 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1647 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1648 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1649 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1652 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1653 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1654 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1655 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1656 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1657 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1661 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1662 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1663 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1664 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1665 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1666 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1667 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1669 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1670 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1671 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1672 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1673 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1674 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1675 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1676 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1677 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1678 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1679 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1680 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1681 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1682 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1683 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1684 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1685 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1686 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1687 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1688 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1689 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1690 1 0 \"6957e247_4f64_4971_8d90658c99adbb87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{{ 1691 1 0 \"34cc8f4a_c310_4eb7_b936c63f8401c523\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1692 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1693 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1694 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1696 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1697 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1698 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1699 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1700 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1701 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1702 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1703 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"dd7d7b00_1e95_4e45_97a425f03a18ab04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{{ 1705 1 0 \"0021495f_472e_4321_9d1e81e8fbd43f0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1706 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1707 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1708 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1709 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1710 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1711 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1712 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1713 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1714 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1715 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1716 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1717 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1718 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1719 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1720 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1721 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1722 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1723 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1724 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1725 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1726 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1727 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1728 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1729 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1730 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1731 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1732 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1733 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1734 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1735 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1736 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1737 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1738 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1739 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1740 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1741 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1742 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1743 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1744 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1745 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1746 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1747 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1748 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1749 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1750 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1751 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1752 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1753 1 0 \"c0166b97_c0ae_417b_85c90c5ef42e5fc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1754 1 0 \"73777071_2fd2_42b0_a7545c6a6a372194\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1755 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1756 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1757 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1758 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1759 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1760 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1761 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1762 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1763 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1764 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1765 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1766 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1767 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1768 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1769 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1770 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1771 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1772 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1773 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1774 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1775 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1776 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"ecd6d069_96d7_4a72_9ffc0df77e7a1512\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1778 1 0 \"b05c868f_c25f_47a9_b533b13ab05fc962\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1779 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1780 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1781 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1782 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1783 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1784 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1785 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1786 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1787 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1788 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1789 1 0 \"c99aa2b7_d8a6_4cee_a1fa1d731ef77d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1790 1 0 \"f2861b4d_28d2_4ee3_8b7c7763312067ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1791 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1792 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1793 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1794 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1795 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1796 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1797 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1798 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1799 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1800 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1801 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1802 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1803 1 0 \"a650efc1_423b_4f75_9f0da083ee44ae9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{{ 1804 1 0 \"e1ef0806_8a47_46c1_972c9ed9e299eaad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1805 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1806 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1807 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1808 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1809 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1810 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1811 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1812 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1813 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1814 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1815 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1816 1 0 \"b417b8ce_5117_450e_93a9a6243c6011d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{{ 1817 1 0 \"ed43cecb_7012_4fb9_a89d129de09bdadb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1818 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1819 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1820 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1821 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1822 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1823 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1824 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1825 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1826 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1827 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1828 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1829 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1830 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1831 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1832 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1833 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1834 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1835 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1836 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1837 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1838 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1839 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1840 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1841 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1842 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1843 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1844 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1845 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1846 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1847 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1848 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1849 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1850 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1851 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1852 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1853 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1854 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1855 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1856 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1857 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1858 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1859 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1860 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1861 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1862 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1863 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1864 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1865 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1866 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1867 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1868 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1869 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1870 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1871 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1872 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1873 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1874 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1875 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1876 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1877 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1878 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1879 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1880 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1881 1 0 \"73be1c30_4bfe_4a0f_aa560c8df5b091fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1882 1 0 \"39ac643d_0305_4ec6_87fc196efe3d76f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1883 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1884 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1885 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1886 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1887 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1888 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1889 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1890 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1891 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1892 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1893 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1894 1 0 \"272104de_2e64_4a32_a88407b030437361\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1895 1 0 \"1362f66b_0efd_4eb5_935e84586a427637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1896 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1897 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1898 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1899 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1900 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1901 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1902 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1903 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1904 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1905 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1906 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1907 1 0 \"cf1b40c4_5e9a_48bf_9390f6eab212315f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1908 1 0 \"2e7a5304_5ce9_4afb_93a4a8276dc86d74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1909 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1910 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1911 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1912 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1913 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1914 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1915 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1916 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1917 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1918 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1919 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1920 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1921 1 0 \"4b29337f_c67c_4ecf_a205f4b70e60271a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1922 1 0 \"40aad8b7_f42e_4ad1_b0f0c033ec666548\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1923 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1924 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1925 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1926 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1927 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1928 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1929 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1930 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1931 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1932 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1933 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1934 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1935 1 0 \"dfb61f9c_103b_4c42_83e0779ea05cb180\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{{ 1936 1 0 \"e4829da3_d8b6_453f_a2be82213303e9f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1937 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1938 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1939 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1940 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1941 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1942 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1943 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1944 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1945 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1946 1 0 \"ee3103a2_d7f3_488f_b7a95e2f2b56770a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{{ 1947 1 0 \"a782313c_e15b_4340_bdda314f926e24cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1948 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1949 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1950 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1951 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1952 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1953 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1954 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1955 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1956 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1957 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1958 1 0 \"b5ecca33_fef4_4c14_9cf702c924839607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1959 1 0 \"49e72e72_8e49_49fd_8d212a6ccff1d2fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1960 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1961 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1962 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1963 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1964 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1965 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1966 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1967 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1968 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1969 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1970 1 0 \"d186dde8_c684_4550_a023d9023ff021d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1971 1 0 \"af12e4a9_cc0f_4a82_b9593d2b489756a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1972 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1973 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1974 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1975 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1976 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1977 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1978 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1979 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1980 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1981 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1982 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1983 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1984 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1985 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1986 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1987 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1988 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1989 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1990 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1991 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1992 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1993 1 0 \"3b2abeec_38f4_46a6_a30b0d0126280ebc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1994 1 0 \"c4e94e42_8405_438b_921cfe4ba73e9976\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1995 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1996 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1997 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1998 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1999 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2000 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2001 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2002 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2003 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2004 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2005 1 0 \"5aa60a5a_db92_42e0_b3277a41cacb5336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2006 1 0 \"49cd8e9e_91bd_468c_aec57e3af40280fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2007 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2008 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2009 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2010 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2011 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2012 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2013 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2014 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2015 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2016 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 2017 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 2018 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 2019 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 2020 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 2021 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 2022 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2023 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2024 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 2025 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2026 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 2027 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 2029 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2030 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2031 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2032 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2033 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2034 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2035 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2036 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2037 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2038 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2039 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2040 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2041 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2023-05-14 14:31$$checksum=726c0442$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx2A1D.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2206 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2166 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2167 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2169 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2170 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2171 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2187 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2188 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2189 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2190 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2191 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2192 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2193 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2194 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2195 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2196 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2197 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2198 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2199 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2200 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2201 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2202 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2203 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2204 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2137 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2138 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2139 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2141 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2142 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2143 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2144 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2145 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2146 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2147 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2079 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2080 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2081 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2082 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2083 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2084 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2085 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2086 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2087 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2088 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2089 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2090 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2091 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2181 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2182 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2183 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2184 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2053 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2054 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2055 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2056 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2057 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2058 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2059 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2060 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2062 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2063 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2064 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2065 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2066 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2067 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2068 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2069 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2070 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2071 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2072 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2073 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2074 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2075 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2076 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2077 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2043 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2044 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2045 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2046 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2047 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2048 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2049 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2050 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2051 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2099 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2100 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2102 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2103 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2105 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2107 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2108 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2109 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2111 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2112 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2113 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2114 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2115 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2116 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2117 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2118 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2119 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2120 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2121 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2122 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2123 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2124 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2125 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2126 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2127 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2128 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2129 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2130 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2131 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2132 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2134 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2135 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2149 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2150 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2151 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2153 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2154 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2155 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2156 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2157 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2159 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2160 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2161 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2162 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2164 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2173 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2174 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2175 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2176 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2177 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2178 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2179 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"Begin\"\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable {\r\n// }} \"\"\r\n// {{ 5 \"ConvertHSSErrCode\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2093 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (hssErrCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2094 1 0 \"9f0ce7fc_13c6_4496_9d762a07174e50f1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (1);\r\n// }} \"\"\r\n// {{ 2095 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2096 1 0 \"4c347e8c_4bce_4fd2_9771e3402c6f946d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-05-14 14:31$$checksum=4fdbf7d4$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx2A1D.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx2D5B.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 341 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 342 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 343 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 344 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 345 1 0 \"27439ab7_df5a_4e1b_99b64e6c9fd0d9f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 348 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 349 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e2da0756_7cea_44e7_963442343f3c0732\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 352 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 353 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 354 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 356 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 357 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 358 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 359 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 360 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 361 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 362 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 363 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 366 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 367 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 368 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 370 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 373 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 375 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 376 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 377 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 378 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 379 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 380 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 381 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 382 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 390 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 392 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 394 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 396 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 397 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 399 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 400 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 401 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 402 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 403 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 404 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 405 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 406 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 407 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 408 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 409 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 418 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 419 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 420 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 421 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 422 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 423 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 424 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 425 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 426 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 427 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 435 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 437 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 438 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 439 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 440 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 441 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 442 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 443 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 446 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 447 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 448 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 449 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 450 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 451 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 452 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 453 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 454 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 455 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 456 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 457 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 458 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 459 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 460 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 461 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 462 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 463 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 466 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 467 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 468 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 469 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 470 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 471 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 473 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 475 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 476 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 477 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 478 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 479 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 480 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 481 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 490 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 491 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 492 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 493 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 494 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 495 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 496 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 497 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 498 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 499 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 500 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 502 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 503 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 506 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 507 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 508 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 509 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 510 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 511 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 512 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 513 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 514 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 518 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 519 1 0 \"e1385a03_1302_4ae1_9faaea69422d67f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 520 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 521 1 0 \"5af0317c_390a_4121_92fc6695bd45edd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 522 1 0 \"8c9a281c_debc_4f33_9bd2cef6eedde57e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"3d50574c_65df_46db_976821037648878c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"642f5973_af08_450b_878d55fa1dc15b1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 525 1 0 \"c1b028b1_70dd_4627_a467661067398a2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 526 1 0 \"f0c6a22f_59e2_41c2_954cb5b06a43aa42\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 527 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 528 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 529 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 530 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 531 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 532 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 533 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 534 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 535 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 536 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 537 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 538 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 539 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 540 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 541 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 542 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 543 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 548 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 549 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 551 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 552 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 553 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 554 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 555 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 556 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 559 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 560 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 561 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 562 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 563 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 564 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 565 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 568 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 569 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 570 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 571 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 572 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 573 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 576 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 577 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 578 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 579 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 580 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 581 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 583 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 585 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 586 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 588 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 589 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 590 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 591 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 592 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 594 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 595 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 598 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 599 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 600 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 602 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 603 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 609 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 610 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 611 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 613 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 614 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 615 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 616 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 617 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 618 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 619 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 620 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 621 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 622 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 633 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 634 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 635 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 637 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 638 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 641 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 649 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 650 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 651 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 652 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 653 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 657 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 659 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 661 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 662 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 663 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 664 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 666 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 670 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 671 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 672 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 673 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 674 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 675 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 679 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 680 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 681 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 682 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 683 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 684 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 685 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 686 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 687 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 690 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 691 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 692 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 693 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 694 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 695 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 696 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 697 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 702 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 703 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 704 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 705 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 706 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 711 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 712 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 713 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 714 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 715 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 716 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 723 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 724 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 725 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 726 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 727 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 734 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 735 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 736 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 737 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 741 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 742 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 743 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 744 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 745 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 746 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 747 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 754 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 755 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 756 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 757 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 758 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 760 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 761 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 763 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 764 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 768 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 769 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 770 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 771 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 772 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 773 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 774 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 775 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 778 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 779 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 782 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 783 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 801 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 802 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 803 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 805 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 806 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 809 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 810 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 811 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 813 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 815 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 816 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 817 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 818 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 819 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 820 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 821 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 830 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 831 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 837 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 838 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 841 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 842 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 846 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 847 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 848 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 849 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 850 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 851 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 852 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 855 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 856 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 857 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 858 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 859 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 860 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 861 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 864 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 865 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 866 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 867 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 868 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 869 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 870 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 871 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 873 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 874 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 875 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 876 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 877 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 880 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 881 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 882 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 885 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 886 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 887 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 888 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 889 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 890 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 891 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 894 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 895 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 896 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 897 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 898 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 899 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 900 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 904 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 905 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 906 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 907 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 908 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 909 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 910 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 911 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 913 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 914 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 915 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 916 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 917 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 918 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 919 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 920 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 922 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 925 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 926 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 927 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 928 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 929 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 930 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 931 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 935 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 936 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 938 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 939 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 944 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 945 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 946 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 947 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 948 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 949 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 950 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 951 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 952 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 953 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 954 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 955 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 956 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 957 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 958 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 959 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 960 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 961 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 962 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 963 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 964 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 965 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 966 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 967 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 968 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 969 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 971 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 972 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 973 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 974 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 975 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 976 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 977 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 978 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 979 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 980 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 981 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 982 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 985 1 0 \"4e026721_fd49_4127_87fda5791fa13eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 986 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 987 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 988 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 989 1 0 \"7066bb37_8c48_474d_8f467cf1f1e06a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 990 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 991 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 993 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 994 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 995 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 996 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 997 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 998 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 999 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1000 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1001 1 0 \"7f473860_0be7_4dc2_87423136869dd829\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1002 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1006 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1007 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1008 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1009 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1010 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1011 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1013 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1014 1 0 \"53df6909_1d0e_4001_ac674452fec957bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1015 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"85d76321_871e_4d0e_bb460b7513742e62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1019 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1020 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1021 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1022 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1024 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 1026 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1027 1 0 \"6ba4b834_521a_46da_9ceb8ced08da95f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1028 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1031 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1032 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1033 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1034 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1036 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1037 1 0 \"20e2b3e5_8664_4809_9bcf626c89196333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1038 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1039 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1040 1 0 \"38e3e61d_a654_46f5_87f53cf7dfc09446\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1041 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1043 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1044 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1045 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1046 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1048 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1049 1 0 \"d92781d1_27c2_48fb_acfd9cb32428e910\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1051 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1052 1 0 \"19daab0c_59b0_4af8_a070bee39acf20c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1053 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1055 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1056 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1057 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1058 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1060 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1061 1 0 \"df61bf49_7625_493f_ad06bbdbb36b494a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1063 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1064 1 0 \"accda6cd_138b_411c_bf3af9b152e986c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1065 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1067 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1068 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1069 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1070 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1072 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1073 1 0 \"8d513473_33ad_47dc_a8c3ed9799195b58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1075 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1076 1 0 \"ee004b75_f488_428e_99b02212bd478984\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1077 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1079 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1080 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1081 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1082 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1084 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1085 1 0 \"4f9610c2_a783_4586_b1725e8904e476cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"eea3f2ce_93c1_4efd_be90b89d775a6867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1087 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1088 1 0 \"ad6b8668_d455_40f9_9e64eac973c2db0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1089 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"81e3038e_a3ea_4252_a09b14cd3de477a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1091 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1092 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1093 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1094 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1096 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1097 1 0 \"a54c8c75_1172_46d3_a61e71fe7fea812d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1099 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1100 1 0 \"e9f473e4_b341_4e28_8c5c444235409181\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1101 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1103 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1104 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1105 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1106 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1108 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1109 1 0 \"19a32be3_7476_425d_a82433aead4637cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1112 1 0 \"81e1a27f_16e2_44ed_b7cd3b11ac866a97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1113 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1115 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1116 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1117 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1118 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1122 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1123 1 0 \"84b0a5f3_5e82_4770_81998131d1071a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 1125 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1126 1 0 \"f46c286b_9141_4717_ac23994f8defc186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1127 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1129 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1130 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1131 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1132 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1135 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1136 1 0 \"a9029174_cbad_4f9c_9ca65c3b9497d605\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1137 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 1138 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1139 1 0 \"bb948751_9e18_4aa8_b86a3dd67208967f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1140 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1142 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1143 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1144 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1145 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1149 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1150 1 0 \"d7ecab6c_533b_4d98_97e3fd144551f6d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1152 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1153 1 0 \"96075a25_a9b4_48ec_b53a90612b9d42a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1154 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1156 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1157 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1158 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1159 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1161 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1162 1 0 \"c8de89fe_7a53_4c03_bbe8ba85302b57ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1165 1 0 \"b9ad26f0_da3e_44e9_a29e1fa4b10f92f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1166 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1168 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1169 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1170 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1171 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1174 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1176 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1177 1 0 \"aecc8a3f_302a_4fd4_85780994769765dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1179 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1180 1 0 \"8a17da2c_6b74_4513_a05e482acef68552\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1181 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1183 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1184 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1185 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1186 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1188 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1189 1 0 \"96a3924c_7b8c_441f_b05115a7adf0396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1191 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1192 1 0 \"29acd4b5_13fb_40fe_bc6d971aa6f115a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1193 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1195 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1196 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1197 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1198 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1200 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1201 1 0 \"18981818_de5f_4fd3_b704a074fd37c9d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 1203 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1204 1 0 \"6fa8ea83_c7bd_4b3e_81768063f8126364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1205 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1206 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1207 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1208 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1209 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1210 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1214 1 0 \"84efe41c_f9b0_4304_896c8b308bb07e76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1216 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1217 1 0 \"367927ae_ba00_4d5a_b9d8f5f9b3d208c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1218 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1220 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1221 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1222 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1223 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1226 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1227 1 0 \"7e6d8299_fab6_4435_8adf36d59ca04c7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"5fe75151_d308_441e_a049e85f45ca3966\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n// }} \"\"\r\n// {{ 1229 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1230 1 0 \"64e95a28_a6b6_4e1b_825867f05118aebc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1231 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1233 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1234 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1235 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1236 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1240 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1241 1 0 \"08abdac2_e330_47c9_9b80d99dd0338c3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1244 1 0 \"a26bca7d_b38c_4413_b61d3da3fdfb077b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1245 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1246 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1247 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1248 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1249 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1250 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1252 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1253 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1254 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1255 1 0 \"0e03f515_b847_4dfd_8aa52f8b5f1135cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 1257 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1258 1 0 \"e7b29c37_b63e_40fe_a3663d4eb8c7dc93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1259 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1261 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1262 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1263 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1264 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1265 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1266 1 0 \"7ca275a0_4aed_4b67_9535646b2074ebaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1268 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1269 1 0 \"e87b7e6f_2610_44dd_b7d0262ac681e308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1270 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1271 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1272 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1273 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1274 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1275 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1277 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1278 1 0 \"d02dc65a_05f9_4938_90df6cee1381d4dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"75688e3b_5ed1_45d1_a4d8344ca19c3fd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1280 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1281 1 0 \"b5ede424_b7f1_4369_8610d54e626df620\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1282 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1283 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1284 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1285 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1286 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1287 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1289 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1290 1 0 \"e22c8ca0_6e3f_454b_8628dd4417a6fd78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1293 1 0 \"c8c0c20e_b866_451e_9ecd69fdb0b0ed14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1294 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1295 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1296 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1297 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1298 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1299 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1300 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1301 1 0 \"e2f732a1_e433_4ab6_b3bdac9a4ca5bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1302 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1303 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1304 1 0 \"44edbcbd_1012_457f_848d11750abdfeb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1305 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1307 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1308 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1309 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1310 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1312 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1313 1 0 \"d5b14e5b_7d51_414e_af4dfb664c89e0c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1314 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1315 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1316 1 0 \"d60c31db_3b59_4498_8c47e4d2612443a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1317 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1319 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1320 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1321 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1322 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1323 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1324 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1325 1 0 \"ffa29d3e_8248_4266_80661c264964da5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1327 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1328 1 0 \"8a92c1f7_b614_4c09_b5ada70145cb0a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1329 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1331 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1332 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1333 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1334 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1335 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1336 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1342 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1343 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1344 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1345 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1346 1 0 \"ab84bcc8_3da0_446b_84689087cc7a392f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1347 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1349 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1350 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1351 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1352 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 1353 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1354 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 1356 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1357 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1358 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1359 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1360 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2022-10-28 20:34$$checksum=79280978$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx2D5B.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1512 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1493 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1496 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1497 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1498 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1499 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1500 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1501 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1502 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1503 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1504 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1505 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1506 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1507 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1508 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1509 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1510 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1459 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 1398 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 1400 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 1402 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1403 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1404 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 1406 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 1407 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 1409 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1410 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1487 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1488 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1489 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1490 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1372 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 1373 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1376 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1377 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 1379 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 1381 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1382 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1383 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 1385 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1386 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1387 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 1389 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1390 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 1391 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 1392 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 1393 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1394 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1395 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1396 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 1362 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 1363 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1364 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1365 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 1367 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 1368 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 1369 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1370 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 1413 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 1414 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 1416 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 1419 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 1421 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 1422 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1423 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 1428 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 1429 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 1430 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 1431 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 1432 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 1433 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1436 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 1437 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1438 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1439 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1441 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1442 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1444 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1445 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1448 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1449 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1468 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1469 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 1474 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1477 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-10-28 20:34$$checksum=a4132343$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx2D5B.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx305.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module Controller.hs_\" } \r\n#include \"STAR_OEM_Test.res\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\nvariable DefaultTemperature;\r\nvariable MeasureTime;\r\nvariable MeasureHeight;\r\nvariable CalibrationValue1;\r\nvariable TempSoln1;\r\nvariable TempSoln2;\r\nvariable CalibrationValue2;\r\nvariable blnCalibrateDynamically;\r\nvariable CalibrationValueRef;\r\nvariable TempSolnRef;\r\nvariable Module;\r\nvariable Reference;\r\nvariable Calibration1;\r\nvariable Calibration2;\r\nsequence seqModule;\r\nsequence seqCalibration1;\r\nsequence seqCalibration2;\r\nsequence seqReference;\r\nvariable CalibrationTime;\r\nvariable arrCalibrationSlopeRatios[];\r\nvariable arrpHValuesReferenceSolution[];\r\nvariable CalibrationSlopeRatios;\r\nvariable pHValuesReferenceSolution;\r\nvariable BluetoothPort;\r\nvariable NumDryCycles;\r\nvariable NumWashCycles;\r\nvariable DryTime;\r\nvariable Gripper;\r\nsequence seqGripper;\r\nvariable WashPosition;\r\nsequence seqWashPosition;\r\nvariable DryPosition;\r\nsequence seqDryPosition;\r\nvariable DryCycles;\r\nvariable TransportChannel;\r\nvariable WashCycles;\r\nvariable Measurement;\r\nvariable arrpHValues[];\r\nvariable flt_pHValues;\r\nvariable seqMeasure;\r\nvariable measurePositions;\r\nvariable ProbePattern;\r\nvariable seqMeasurement;\r\nvariable poss;\r\nvariable measurementPositions;\r\nvariable MeasurePositions;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 344 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 346 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 347 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 348 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 351 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 352 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 353 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 354 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 356 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 357 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 358 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 359 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 360 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 361 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 362 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 365 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 366 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 367 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 368 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 370 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 371 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 374 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 381 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 382 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 390 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 391 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 392 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 393 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 394 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 396 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 397 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 398 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 399 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 402 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 403 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 404 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 405 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 407 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 408 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 409 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 418 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 426 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 427 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 435 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 437 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 438 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 439 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 440 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 441 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 442 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 443 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 446 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 447 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 448 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 450 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 451 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 452 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 455 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 456 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 457 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 459 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 461 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 462 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 463 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 466 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 467 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 468 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 470 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 471 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 481 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 482 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 490 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 491 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 492 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 493 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 494 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 495 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 496 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 497 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 498 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 499 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 501 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 502 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 503 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 504 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 505 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 506 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 507 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 508 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 511 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 512 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 515 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 517 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 518 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 519 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 520 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 521 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 522 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 523 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 524 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 526 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 527 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 528 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 529 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 530 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 531 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 532 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 535 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 536 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 537 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 541 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 542 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 548 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 549 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 550 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 551 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 552 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 553 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 554 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 555 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 559 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 560 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 561 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 563 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 564 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 565 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 569 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 570 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 571 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 572 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 573 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 579 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 580 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 581 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 582 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 583 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 587 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 588 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 589 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 590 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 591 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 592 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 594 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 595 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 596 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 597 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 598 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 599 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 600 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 601 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 602 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 603 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 607 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 608 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 609 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 610 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 611 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 613 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 617 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 618 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 619 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 620 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 621 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 622 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 623 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 631 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 632 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 633 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 634 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 635 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 636 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 637 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 640 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 641 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 642 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 643 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 644 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 649 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 650 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 653 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 654 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 655 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 656 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 657 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 659 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 661 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 662 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 663 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 664 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 666 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 667 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 670 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 671 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 672 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 673 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 674 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 675 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 682 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 683 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 684 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 685 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 686 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 687 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 693 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 694 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 695 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 696 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 697 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 698 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 702 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 703 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 704 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 705 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 706 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 707 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 708 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 709 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 710 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 713 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 715 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 716 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 721 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 722 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 723 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 724 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 725 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 733 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 734 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 736 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 737 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 743 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 744 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 745 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 746 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 747 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 752 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 753 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 754 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 755 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 756 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 760 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 761 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 762 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 763 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 764 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 768 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 771 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 772 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 773 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 774 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 775 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 778 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 779 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 780 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 782 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 783 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 787 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 788 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 789 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 790 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 791 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 792 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 794 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 797 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 798 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 799 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 800 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 801 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 802 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 803 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 804 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 805 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 807 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 808 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 809 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 810 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 811 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 813 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 817 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 819 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 820 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 821 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 822 1 0 \"6f58ba5c_3565_4ac3_8325c7d865499fef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 823 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 825 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 827 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 828 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 829 1 0 \"6f58ba5c_3565_4ac3_8325c7d865499fef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 830 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 831 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 832 1 0 \"9c5d9740_c35c_46a4_bf36695ba9a70bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 833 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 838 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 839 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 840 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 841 1 0 \"9c5d9740_c35c_46a4_bf36695ba9a70bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 842 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 843 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 844 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 845 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 848 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 849 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 850 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 852 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 853 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 857 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 858 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 859 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 860 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 861 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 867 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 868 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 869 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 870 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 871 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 873 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 875 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 878 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 879 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 880 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 882 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 886 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 887 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 888 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 891 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 892 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 894 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 895 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 897 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 898 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 899 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 900 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 901 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 906 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 907 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 908 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 909 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 910 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 911 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 913 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 914 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 917 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 918 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 919 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 920 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 922 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 923 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 925 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 926 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 927 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 928 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 929 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 930 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 931 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 934 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 935 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 936 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 938 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 939 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 943 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 944 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 945 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 947 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 948 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 949 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 950 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 951 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 952 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 953 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 956 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 957 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 958 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 959 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 960 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 961 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 962 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 964 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 965 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 966 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 967 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 968 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 969 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 971 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 972 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 973 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 974 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 975 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 976 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 977 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 979 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 980 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 982 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 985 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 986 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 987 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 988 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 989 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 992 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 993 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 994 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 995 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 996 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 998 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1007 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1008 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1009 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1010 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1020 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1021 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1022 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1023 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1024 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1028 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1029 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1030 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1031 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1037 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1038 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1039 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1040 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1046 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1048 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1049 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1050 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1051 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1060 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1061 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1069 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1070 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1071 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1072 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1082 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1083 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1084 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1099 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1100 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1101 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1102 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1111 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1112 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1113 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1114 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1115 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1126 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1127 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1128 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1129 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1136 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1137 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1138 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1139 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1143 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1144 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1145 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1148 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1149 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1150 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1151 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1157 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1158 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1160 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1161 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1162 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1163 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1164 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1166 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1173 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1174 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1175 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1176 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1177 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1181 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1183 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1184 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1185 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1186 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1189 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1191 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1195 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1196 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1197 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1198 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1200 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1203 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1204 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1205 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1206 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1207 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1214 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1215 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1216 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1217 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1218 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1221 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1222 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1223 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1224 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1225 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1227 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1231 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1232 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1233 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1234 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1235 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1236 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1244 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1246 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1252 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1253 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1255 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1261 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1263 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1264 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1265 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1269 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1271 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1272 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1273 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1274 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1277 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1282 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1283 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1284 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1285 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1286 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1290 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1292 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1293 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1294 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1296 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1300 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1301 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1302 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1303 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1304 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1305 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1309 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1311 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1312 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1313 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1314 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1315 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1316 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1320 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1321 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1322 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1323 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1324 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1325 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"32d149fa_c238_4e8c_9c9bfe8ca03b39ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{ 1327 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"05f6e40b_f62a_4382_9b25ca234839aeb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID);\r\n// }} \"\"\r\n// {{ 1329 1 0 \"b8eff0c4_8a87_4d69_8b1fc22443527e58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1330 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_43ECC15F92874e8a8FCA2A90F3412255 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1331 1 0 \"a6315690_dcdc_4faf_9764f4edcccee401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1332 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1333 1 0 \"b152d230_641d_44fd_82876d10beb25ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1334 1 0 \"2178bb5d_1389_4bb3_92e038bed00ad7d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"0e8fa514_886c_42d7_a0fec5c2e0a40820\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1336 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1337 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1338 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1339 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_MeasureCycle\")\r\n{\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"e78c25fc_f856_4c7d_bb7f6056d2ae0e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"4c0064bb_0c23_4648_b57e5599878d63f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqMeasurement\"), seqMeasurement);\r\n// }} \"\"\r\n// {{ 1342 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (seqMeasurement == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1343 1 0 \"a11073f7_18e2_4097_baf006ed44e74081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MeasurePositions\"), MeasurePositions);\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"47d49bd0_0457_440d_b1d654c85ac3c5db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(MeasurePositions, seq);\r\n// }} \"\"\r\n// {{ 1345 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"bbddeeab_2dc4_4931_900a5ec07aafe0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, seqMeasure, seq);\r\n// }} \"\"\r\n// {{ 1347 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"6b06d7c5_bf98_48d9_906ae705e4ce149b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"25fe4c02_a4e2_40cd_91289dc1c5c638b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProbePattern\"), ProbePattern);\r\n// }} \"\"\r\n// {{{ 1350 1 0 \"02a9e02a_0596_4158_ac021180b0b5985c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1351 1 0 \"f8080019_d032_4f0c_9ef8429bde9ee7df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1352 1 0 \"83142ee1_d831_4ff1_a6734844fe789421\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues);\r\n// }} \"\"\r\n// {{{ 1353 1 0 \"d4d4974a_23a2_43a2_851b478f0e7d24be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValues, flt_pHValues);\r\n// }} \"\"\r\n// {{{ 1354 1 0 \"bde9c162_a4cf_40fa_a663c6b78e029610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"0a5c18e9_775d_4644_bdfcc536000642cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Measure Cycle\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"c1502c7b_2bd0_480c_a0ce6887e02484bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1357 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1358 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1359 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1360 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1361 1 0 \"d9d7f7cb_394b_40ea_a037e16efc8e063c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1362 1 0 \"0e65e09c_0178_403b_9eca768c440a479f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1363 1 0 \"fedae8c3_0c9d_426f_a30e8fdfa1d2b056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"ad8456a9_07be_4852_b2bab182e7e17dae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration1\"), Calibration1);\r\n// }} \"\"\r\n// {{{ 1365 1 0 \"8b591ca2_adf8_4248_b5ac1fb2a84c21aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1);\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"0f28a5e9_278c_4290_aa9ee416f829755a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration2\"), Calibration2);\r\n// }} \"\"\r\n// {{{ 1367 1 0 \"b57e28d3_0011_4657_bbceba83ca97b89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2);\r\n// }} \"\"\r\n// {{{ 1368 1 0 \"101798f0_c18a_411a_b29295d972cc9a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqReference\"), Reference);\r\n// }} \"\"\r\n// {{{ 1369 1 0 \"1c415c8d_660d_41fe_a81fcfd6d8836038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Reference, seqReference);\r\n// }} \"\"\r\n// {{{ 1370 1 0 \"20510ceb_5840_48de_842a1b657fa7706d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationTime\"), CalibrationTime);\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"ecd67637_3e8e_4d22_89b67b39e05342fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"148b5d07_b84d_4786_b1d0f9d5e5837491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"938c1584_a353_4f03_ba14c9f33cc2c6a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue1\"), CalibrationValue1);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"cda9048b_fe59_4db2_a1d08550795038f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue2\"), CalibrationValue2);\r\n// }} \"\"\r\n// {{{ 1375 1 0 \"5d669238_eb69_4080_8b789139b291be94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValueRef\"), CalibrationValueRef);\r\n// }} \"\"\r\n// {{{ 1376 1 0 \"4c7c9992_c2e0_445a_bee9cd7dd086e585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln1\"), TempSoln1);\r\n// }} \"\"\r\n// {{{ 1377 1 0 \"9574a12d_456e_4fd6_9b51714dd88b4a1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln2\"), TempSoln2);\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"211f81c7_5561_45ce_8cf247e76fb0f65e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSolnRef\"), TempSolnRef);\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"f812ea75_ed49_4a04_b4ab3dd67f1206ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrateDynamically\"), blnCalibrateDynamically);\r\n// }} \"\"\r\n// {{{ 1380 1 0 \"178d95b8_13db_4493_a08cdaec1348c0e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"d4d33c2d_2aee_4a51_ad36cb953d687c83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{ 1382 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F882CD31309846e3BD30959B418AB982 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 1384 1 0 \"18724129_2443_4271_a6316a42ef334c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1385 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F882CD31309846e3BD30959B418AB982 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1386 1 0 \"d6c65e91_f6e8_47d9_aaf1810ffab1ffac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1387 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"7375b9e4_01c3_49a1_810fb42149ed0eea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios);\r\n// }} \"\"\r\n// {{{ 1389 1 0 \"31ba6e89_258d_4deb_97352544c3b5c45c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution);\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"924064ec_85ac_4b42_a5ff3eb8a6a5342f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1391 1 0 \"65bd0fe0_0efb_4335_b118b89e61b948ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1392 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1393 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1394 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1395 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Dry\")\r\n{\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"0f0bf03e_4950_40e7_b2899f9cabb79cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1397 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"1885a8d9_8082_44ab_bfd7a217170187db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1399 1 0 \"33dddcad_4489_4f31_8b4fea145ebbe77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1400 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D19CA5AD1071407b84599779A41B51EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1401 1 0 \"d8f5d052_f205_4e22_8998e2d0d12790ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1402 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"5521c0c7_c64b_4b49_9036f9bf6a7a83d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"9e7864cd_a0bd_4ec6_8f733a2e7ab773bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1405 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1406 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1407 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1408 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"39b0590c_dc8d_4eb3_b8bfcab65235f494\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1410 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"beaffdda_e52a_4f79_95659f907946752f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1412 1 0 \"58aab21a_307b_403b_980186d201a7c6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1413 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1414 1 0 \"4cd2a753_2761_4d3c_9cd93c15fa19a47b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1415 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"0af219f8_e5bc_4b14_a95fd7e3f2ccb712\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"7b44ca9e_e6d7_4793_8f937fc518ecc41c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1418 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1419 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1420 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1421 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SetParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1422 1 0 \"7e5e111c_21f5_4c0b_9dd06d15aee64431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqGripper\"), Gripper);\r\n// }} \"\"\r\n// {{{ 1423 1 0 \"8417ab78_f4b8_40aa_890f3b14e4204667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Gripper, seqGripper);\r\n// }} \"\"\r\n// {{{ 1424 1 0 \"f43d4896_c19a_4cc9_ad3c75f925788b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqWashPosition\"), WashPosition);\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"ffcc2479_6c91_4038_bab179b027d4b03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition);\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"b731d1c6_30bc_4003_ba19e062e82293db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqDryPosition\"), DryPosition);\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"a68ddb6b_780a_46ed_bcaa350f92f649fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition);\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"020f31e6_e3ef_48f4_af0e175e60e00159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TransportChannel\"), TransportChannel);\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"1561e8c8_acaa_438f_9c7c57a5c196556f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WashCycles\"), WashCycles);\r\n// }} \"\"\r\n// {{{ 1430 1 0 \"7e0a9629_dce6_4ed9_81b854f636408ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryCycles\"), DryCycles);\r\n// }} \"\"\r\n// {{{ 1431 1 0 \"dacc3c17_6358_44f0_8ac4ad1fa0ae08b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{{ 1432 1 0 \"f86b35ff_9db7_4845_a3cfb7d04c520c3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime);\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"ce0a2f35_ae58_4695_85513126a4acb791\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"da69f49c_299d_435d_9d95dc10f7303ce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"bd10bc62_2ace_436a_a68acec8c1f9287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1436 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1437 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1438 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1439 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Park\")\r\n{\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"90471824_8967_4383_a722d29bfaf60113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"f6bbc2b1_c86d_4f64_abc12d3b740b1d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1442 1 0 \"9341ffae_9e0c_43f9_b3ccedcfbadb07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"9e0a230a_fdb5_4eec_9cf3127779adb1d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1444 1 0 \"8aacb0d9_a918_426b_9717bd2febc1f74a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1445 1 0 \"15592ad5_5751_4636_8a513ee3f27c7f11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"6222366b_a5bf_4c73_8685a3cdebb4ff4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1447 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1448 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1449 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1450 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Pickup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"347e06d8_9db7_4279_bf224e9ecf4299e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"2b0761dc_e201_46b3_a590b52421cd8ee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"76631bc5_230e_4e20_87bf493887cddd0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"2d3aba8b_cc4b_4be1_a83c30695fcf6dbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"7879f9b5_2eea_4059_8e4bef3213e8decd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"cb1582a1_3f8c_44fd_910a5f08dbe32b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"a15fc9df_322f_4ce1_83228c63669e6b16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1458 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1459 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1460 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1461 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_ExtendedLog\")\r\n{\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"d101eee8_9402_428a_aa576d531ed959c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"bc849548_9009_43ec_bb1b6c81c32132f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"0a496202_0f55_4f40_8b391260caa236ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1465 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1466 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1467 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1468 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_LoadLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{ 1469 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B416552A06404ef48774D74059C2B182 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"154ec087_ea2e_4381_bb2e261ffad534f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1471 1 0 \"79340e9d_69d5_4911_b4601ae4754a16c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1472 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B416552A06404ef48774D74059C2B182 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1473 1 0 \"46420553_d90f_4dfa_b42c9d86856c288a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1474 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"54b468e0_3ea0_4e83_9ffae95722c5cb9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBluetoothPort = StrIStr(BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"7bde202f_1c1b_4911_9f600ac6e1a5b57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumWashCycles = StrIStr(NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1477 1 0 \"c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumDryCycles = StrIStr(NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"027378a7_4549_4d3f_b8d33aa4980be4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDryTime = StrIStr(DryTime);\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"fbda7cdb_3ed9_4a5c_907ce60556e0129b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"e454face_7eee_4c6e_a61e221c0e5d7fb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1481 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1482 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1483 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1484 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SaveLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"aca4c717_812e_46f9_8eb5989a720adb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BluetoothPort\"), BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"1198edc8_1ec9_479d_a4e7fd71ed50cf8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumWashCycles\"), NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"be958699_818e_43db_a757a67b7b54572a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumDryCycles\"), NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1488 1 0 \"8751a2c3_e6ee_43bf_b21f5458aebf179a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{ 1489 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4973F03471994119A9F699CE6459CBFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"1480ff51_54ea_4c38_befa457e23966aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1491 1 0 \"0e101f68_bc36_42fe_882a3951ef193f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1492 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4973F03471994119A9F699CE6459CBFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1493 1 0 \"2e180d98_e746_4b84_b623b4d0e8e198fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1494 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"cb24f9db_18c1_41af_b6f16900826be7be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1496 1 0 \"87c5e5f6_77ee_4519_879fdceaf21c1d7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1497 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1498 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1499 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1500 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"bdbbc648_a9fa_468f_b5d4d390115575eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1502 1 0 \"1a74d7ad_0c35_454c_b161ede32468b2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1503 1 0 \"c67afa78_dd60_451b_b2e31a2e6540f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1504 1 0 \"2424dca1_971a_40f8_97b763c253560a2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1505 1 0 \"8def2ba5_b51c_4e0c_b6ebfdd346a5beec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"684d328d_214e_4955_bfe9ff0627b7f8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"e6ec0fc8_d42c_4413_b2c2719c3cd18dc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"6f2273c4_1e1e_46f3_9ea6544d76383266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1509 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1510 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1511 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1512 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1513 1 0 \"b43cf782_b210_48c8_933f4cdfae78d050\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1514 1 0 \"efbfd98d_c15d_4ac9_b94250ab4361a8b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID);\r\n// }} \"\"\r\n// {{{ 1515 1 0 \"c918ad91_e33e_4f2f_9c6577fd8c93aaf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"2021a914_67dd_495e_9a9e4cf4438df298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"8d8842cd_e3b4_4397_92ad69593e9f7796\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1518 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1519 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1520 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1521 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1522 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1523 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1527 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1528 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1529 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1530 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1531 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1532 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1533 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1534 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1535 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1536 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1538 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1540 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1541 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1542 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1547 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1548 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1549 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1550 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1551 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1552 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1553 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1555 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1556 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1557 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1558 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1563 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1564 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1565 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1566 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1567 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1571 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1572 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1573 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1574 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1576 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1577 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1579 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1580 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1581 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1582 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1584 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1585 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1586 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1587 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1588 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1589 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1591 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1592 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1593 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1594 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1595 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1596 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1597 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1600 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1601 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1602 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1603 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1604 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1608 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1609 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1610 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1611 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1612 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1616 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1617 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1618 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1621 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1622 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1623 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1624 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1625 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1626 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1629 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1630 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1631 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1632 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1634 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1635 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1636 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1638 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1639 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1640 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1642 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1644 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1646 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1647 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1648 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1649 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1652 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1653 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1654 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1655 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1656 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1658 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1660 1 0 \"1823653c_5e02_428a_badd7ca34d3aabf1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1661 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1662 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1663 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1664 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1665 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1666 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1667 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1668 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1669 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1670 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1673 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 1674 1 0 \"9d9a3dcb_ddc9_47c5_a860665377ee3e86\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1675 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1676 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1677 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1678 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1679 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1680 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1681 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1682 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1683 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1684 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1685 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1686 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1687 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1688 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1689 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1690 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1691 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1692 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1693 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1694 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1695 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1696 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1697 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1698 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1699 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1700 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1701 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1702 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1704 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1705 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1706 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1707 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1708 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1709 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1710 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1711 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1712 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1713 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1714 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1715 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1716 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1717 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1718 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1719 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1720 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1721 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1722 1 0 \"949c257a_0d44_4a50_bb10d9b59e6a02c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1723 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1724 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1725 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1726 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1727 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1728 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1729 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1730 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1731 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1732 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1733 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1734 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1735 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1736 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1737 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1738 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1739 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1740 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1741 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1742 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1743 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1744 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1745 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1746 1 0 \"0bd6e3be_da2c_4500_973c9d6eae8e7ae6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1747 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1748 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1749 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1750 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1751 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1752 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1753 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1754 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1755 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1756 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1757 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1758 1 0 \"5b647db8_f1d6_4deb_9b859eb1dfda063d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1759 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1760 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1761 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1762 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1763 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1764 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1765 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1766 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1767 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1768 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1769 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1770 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1771 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1772 1 0 \"ad365bf1_c5e9_4c85_b1b623b20be98474\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1773 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 1774 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1775 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1776 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1778 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1779 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1780 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1781 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1782 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1783 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1784 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1785 1 0 \"f307f49e_48c2_428e_80c1d57693f85156\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1786 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 1787 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1788 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1789 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1790 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1791 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1792 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1793 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1794 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1795 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1796 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1797 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1798 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1799 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1800 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1801 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1802 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1803 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1804 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1805 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1806 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1807 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1808 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1809 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1810 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1811 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1812 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1813 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1814 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1815 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1816 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1817 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1818 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1819 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1820 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1821 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1822 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1823 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1824 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1825 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1826 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1827 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1828 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1829 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1830 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1831 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1832 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1833 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1834 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1835 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1836 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1837 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1838 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1839 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1840 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1841 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1842 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1843 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1844 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1845 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1846 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1847 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1848 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1849 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1850 1 0 \"dab3ac84_179e_4fd8_9b00ad14f3ef613e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1851 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 1852 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1853 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1854 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1855 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1856 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1857 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1858 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1859 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1860 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1861 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1862 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1863 1 0 \"523b190e_f70f_4a28_b16582e7161b390a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1864 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1865 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1866 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1867 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1868 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1869 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1870 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1871 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1872 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1873 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1874 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1875 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1876 1 0 \"e043b61a_b8c5_46d4_9bf331f7566a8911\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1877 1 0 \"a302e74e_d752_4ae6_b492a17f601bef41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{ 1878 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1879 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1880 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1881 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1882 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1883 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1884 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1885 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1886 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1887 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1888 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1889 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1890 1 0 \"10af5b65_9ddd_4a4b_b040d8f5b6e642cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1891 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1892 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1893 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1894 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1895 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1896 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1897 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1898 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1899 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1900 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1901 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1902 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1903 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1904 1 0 \"497404d1_5fea_46f0_9598d8e1c1cb11ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1905 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 1906 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1907 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1908 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1909 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1910 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1911 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1912 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1913 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1914 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1915 1 0 \"d8b2a327_d63a_46f2_8c273b2eedb8cb34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1916 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1917 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1918 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1919 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1920 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1921 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1922 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1923 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1924 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1925 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1926 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1927 1 0 \"9d792f4f_4c49_4998_b21fd7f7d6a58fce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1928 1 0 \"b811fcbc_7d95_47c6_9c33e18415810e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1929 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1930 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1931 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1932 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1933 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1934 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1935 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1936 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1937 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1938 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1939 1 0 \"384c69b8_0ce8_4a27_af0a4060e6f1a01d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1940 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1941 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1942 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1943 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1944 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1945 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1946 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1947 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1948 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1949 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1950 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1951 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1952 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1953 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1954 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1955 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1956 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1957 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1958 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1959 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1960 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1961 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1962 1 0 \"6c68258f_f870_4c46_b358dc4391ced463\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1963 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1964 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1965 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1966 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1967 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1968 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1969 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1970 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1971 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1972 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1973 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1974 1 0 \"f5db2a6b_8286_4195_844af45f48c61d3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1975 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1976 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1977 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1978 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1979 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1980 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1981 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1982 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1983 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1984 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1985 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1986 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1987 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1988 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1989 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1990 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1991 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1992 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1993 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1994 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1995 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 1996 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1997 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1998 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1999 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2000 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2001 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2002 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2003 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2004 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2005 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2006 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2007 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2008 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2009 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2010 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2023-03-02 10:47$$checksum=da16688a$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx305.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2170 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2130 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2131 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2132 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2134 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2135 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2151 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2153 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2154 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2155 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2156 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2157 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2158 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2159 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2160 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2161 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2162 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2163 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2164 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2165 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2166 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2167 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2101 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2102 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2103 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2104 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2105 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2106 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2107 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2108 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2109 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2110 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2111 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2048 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2049 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2050 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2051 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2052 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2053 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2054 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2055 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2056 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2057 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2058 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2059 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2060 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2145 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2146 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2147 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2148 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2022 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2023 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2024 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2025 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2026 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2027 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2029 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2031 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2032 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2033 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2034 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2035 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2036 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2037 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2038 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2039 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2040 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2041 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2042 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2043 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2044 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2045 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2046 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2012 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2013 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2014 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2015 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2016 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2017 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2018 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2019 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2020 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2063 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2064 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2066 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2067 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2069 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2071 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2072 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2073 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2075 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2076 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2077 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2078 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2079 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2080 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2081 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2082 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2083 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2084 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2085 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2086 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2087 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2088 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2089 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2090 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2091 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2092 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2093 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2094 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2095 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2096 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2097 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2098 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2099 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2113 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2114 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2115 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2116 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2117 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2118 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2119 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2120 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2121 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2122 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2123 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2124 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2125 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2126 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2127 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2137 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2138 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2139 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2140 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2141 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2142 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2143 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-03-02 10:47$$checksum=c7ebfcf8$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx305.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx393D.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"HSL_LiquidClassLib.hsl\"\r\n#include \"HSLInhecoTEC\\\\HSLInhecoTECLib.hsl\"\r\n#include \"HSLDaisyChainedTiltModule.hsl\"\r\n#include \"HSLBarcodeReader.hsl\"\r\n#include \"HslHamHeaterShakerLib.hsl\"\r\n#include \"HSLDaisyChainedMediaLine.hsl\"\r\n#include \"HSLDaisyChainCommunication.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void ;\r\nfunction BarcodeReader_Read( variable & barcode ) void ;\r\nfunction 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 ;\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ;\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void ;\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ;\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ;\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void ;\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ;\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable height;\r\nprivate variable calculatedVolume;\r\n// {{ 5 \"Channels_1ml_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 107 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 108 1 0 \"61c2af00_d7f3_4b2d_90f54ffba06126b4\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"61c2af00_d7f3_4b2d_90f54ffba06126b4\"); // Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 109 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BE09000023754133A7DFF78508E9EC3D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 110 1 0 \"3dd2c518_6d0a_4d7b_a227743c1263caad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 111 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 112 1 0 \"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 113 1 0 \"a37ce602_144b_4a72_98dbfe0c85169266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 114 1 0 \"36e6f2a2_6d83_40ba_a0c6ff5caefcef66\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 115 1 0 \"ce4eba9f_c8e1_4c33_a9c369da4ce7c312\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 116 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 117 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 118 1 0 \"81636f39_7511_441a_8ab707955e5f2035\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 119 1 0 \"6b53ca04_1112_466f_89a23ed352e36004\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 120 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 122 1 0 \"9c1dd6a5_9b06_43fd_9fd194129c2f2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"e6930a03_b2a0_4569_bb51b2088cac413c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 124 1 0 \"06eeeac2_52c3_47cb_b78dde137d763a9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 125 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 126 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 127 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 128 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 130 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_15E4EC7C03B0458dA8B196D2861D63BC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 131 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 132 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 133 1 0 \"450b7dae_efb3_416b_a62ef5c611c84cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 134 1 0 \"ca4e0527_c377_4a7f_99b7deddb85bdfaf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 135 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 136 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 137 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 138 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"Begin\"\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 101 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 102 1 0 \"72075d54_9924_47c4_a0154d7e90bb1065\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"72075d54_9924_47c4_a0154d7e90bb1065\"); // TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 103 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_55CAD51E8CEB46d5827DF7367C49B35D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 104 1 0 \"7acd54b9_9bda_465f_9b10e23e8987fa26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 105 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable calculatedVolume;\r\nprivate variable height;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\nprivate variable loopCounter1;\r\nprivate variable numberOfPositions;\r\n// {{ 5 \"Channels_1mL_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 62 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 63 1 0 \"ce9beee3_e67e_43c3_bfc64805ab990e08\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"ce9beee3_e67e_43c3_bfc64805ab990e08\"); // Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 64 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 65 1 0 \"493334e8_4548_4149_82f058a4b51df641\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 66 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 67 1 0 \"dd677141_96b6_4ccc_a1764ec36dc76b56\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"dd677141_96b6_4ccc_a1764ec36dc76b56\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 68 1 0 \"4fd5463f_c617_4e2b_aa27d0a820bfe2c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 69 1 0 \"6cafca26_5df8_46c0_98d5a4e2a957163a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 70 1 0 \"418d84ad_0fba_4ca8_8479b9c6dde94985\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 71 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 72 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 73 1 0 \"c8304522_b160_47ca_9780bfcfd85cf56a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 74 1 0 \"5c09e3e1_cd42_4687_940231f4491e28e1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 75 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 77 1 0 \"11b5458b_6926_471d_8cb7dde489f8a444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 78 1 0 \"51ffe893_b0e5_4383_ac38b9be481a9bee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 79 1 0 \"b02dd957_c3d3_445f_b0e36cc6cab274af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 80 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 81 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 82 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 83 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 85 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 86 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 87 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 88 1 0 \"36cc23a5_3886_4312_adc5faa6d481a26c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 89 1 0 \"9f017e3d_a3f3_4f02_914d74e549a5f3be\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 90 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 91 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 92 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 93 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"Begin\"\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 95 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 96 1 0 \"1a33c622_0a9b_473c_a857db709fcadb47\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"1a33c622_0a9b_473c_a857db709fcadb47\"); // TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D52469807F754a359D17B8D31042C6A6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 98 1 0 \"5284933d_2b98_4255_81ee24c4ca6624c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 99 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable positionBC;\r\n// {{ 5 \"Carrier_Load\" \"InitLocals\"\r\no_stepReturn_CarrierBC = 0;\r\no_stepReturn_PositionsBCs = 0;\r\no_stepReturn_PositionsBCMasks = 0;\r\no_stepReturn_PositionsIDs = 0;\r\no_CarrierBC = 0;\r\no_PositionsBCs.SetSize( 0);\r\n// }} \"\"\r\n// {{ 18 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 19 1 0 \"b445eca9_c441_45d7_b53f08a23b7b4b80\" \"ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2(\"b445eca9_c441_45d7_b53f08a23b7b4b80\"); // LoadCarrier\r\n\to_stepReturn_CarrierBC = arrRetValues[2];\r\n\to_stepReturn_PositionsBCs = arrRetValues[3];\r\n\to_stepReturn_PositionsBCMasks = arrRetValues[4];\r\n\to_stepReturn_PositionsIDs = arrRetValues[5];\r\n}\r\n// }} \"\"\r\n// {{ 20 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 21 1 0 \"6919be45_bdb7_46b6_a2ad892454bef1c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_CarrierBC = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 22 1 0 \"d814f66e_6beb_47a8_a390d3b5ea839ba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{{ 23 1 0 \"018a7d4d_f55c_435f_bfce516fc40cd0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCMasks = ErrGetDataAt(5);\r\n// }} \"\"\r\n// {{{ 24 1 0 \"28252b10_bd1a_480c_8d84ce9739ca69ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsIDs = ErrGetDataAt(6);\r\n// }} \"\"\r\n// {{ 25 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 26 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 27 1 0 \"91e50e7b_5626_4ab9_ad652563a737dba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC);\r\n// }} \"\"\r\n// {{ 28 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 29 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 30 1 0 \"6135f8c7_3486_4898_88c6e7154326c4df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 31 1 0 \"4cec9992_cb23_4182_894ee448e99b8d48\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_PositionsBCs.SetSize(0);\r\n// }} \"\"\r\n// {{ 32 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 33 1 0 \"fe82471b_5e85_4598_90b8f672ef3cf690\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 34 1 0 \"f0a92a30_0f95_4eb4_bdcf7e21db350ecb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_PositionsBCs.AddAsLast(positionBC);\r\n// }} \"\"\r\n// {{ 35 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 36 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"Begin\"\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Carrier_Unload\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 38 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 39 1 0 \"38494363_9fef_41a3_8cb17f349c9fe693\" \"ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2(\"38494363_9fef_41a3_8cb17f349c9fe693\"); // UnloadCarrier\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 40 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 41 1 0 \"9aa00b86_389e_473d_bd928bce39259e60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 42 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 44 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 45 1 0 \"f1e43893_ada0_4b74_9035cad36fab5d4b\" \"ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F(\"f1e43893_ada0_4b74_9035cad36fab5d4b\"); // ZSwapGetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 46 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90BF8C56374E469c817DB7B52FEE5D91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 47 1 0 \"5300695f_5b47_4f16_8312711c7c77441e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 48 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 56 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8675588E513E44cd8097542899F1DE5C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 57 1 0 \"3460f3d9_9fdb_4437_9cfa36d33b14f837\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"3460f3d9_9fdb_4437_9cfa36d33b14f837\"); // ZSwapPlacePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 58 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8675588E513E44cd8097542899F1DE5C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 59 1 0 \"1c1fcfa6_73ab_434d_965f40a7cb5827ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 60 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"Begin\"\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 50 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 51 1 0 \"2ed0456d_387e_49b4_a5a8105447123f04\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"2ed0456d_387e_49b4_a5a8105447123f04\"); // ZSwapMovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 52 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 53 1 0 \"b5f59ed6_6bf0_47b3_b8c295016cfa86e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 54 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 285 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 286 1 0 \"285b84de_748a_400d_a828988b60f4c175\" \"ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E(\"285b84de_748a_400d_a828988b60f4c175\"); // GetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 287 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ABA9DAA34A59470495CBB56841D2D81D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 288 1 0 \"298cdb09_c92e_4bb7_a2ecabeafcf27813\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 289 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 303 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 304 1 0 \"bcedff0a_3cba_458a_bedb1a743e5dd0bd\" \"ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55(\"bcedff0a_3cba_458a_bedb1a743e5dd0bd\"); // PutPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 305 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_22A12BE8BB2146fbB8824DF66137BF6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 306 1 0 \"8aeb393a_337d_4788_b25408ee6915eb1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 307 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"Begin\"\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 291 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 292 1 0 \"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\" \"ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E(\"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\"); // MovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 293 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E8A019BC968240cbB4C8B7397BB2F043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 294 1 0 \"b69dc448_e2ef_4c62_b6dd3535487928f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 295 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"Begin\"\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Park\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 297 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 298 1 0 \"ef5a4036_5d2f_4aae_86e669ef0581597f\" \"ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7(\"ef5a4036_5d2f_4aae_86e669ef0581597f\"); // ParkISwap\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 299 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_47ED933D92B34914984C5D98423B4C94 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"974d3165_8b4f_469b_99a59625d159b561\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 301 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"Begin\"\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 236 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 237 1 0 \"b3913cc3_f1bb_4e9f_b3100faec37b186d\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"b3913cc3_f1bb_4e9f_b3100faec37b186d\"); // Head96TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 238 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6640FC09A88C48daB6CB9FB2349BE364 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"1df2d158_801c_4c9f_a8014869fa07863d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"315f1e4b_8d32_430c_89413b8e4b5b135a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 241 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 185 1 0 \"0fc30c09_ddb7_4665_8739dbd8f0102fdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(aspirateSequence);\r\n// }} \"\"\r\n// {{{ 186 1 0 \"14c1eb4e_ced0_45f2_a343bc0f3c668407\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(aspirateSequence);\r\n// }} \"\"\r\n// {{ 187 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 188 1 0 \"8d6fdce5_327c_491b_aebee60a715b6c6e\" \"ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A(\"8d6fdce5_327c_491b_aebee60a715b6c6e\"); // Head96Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 189 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_00A0A59BF99B42a686A202BE72502D6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 190 1 0 \"6c23fd1d_be57_4011_8fea4ea6459aeecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"ee52ace2_98fe_454f_841ae740168bebcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 192 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 193 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 194 1 0 \"8bf3cb1f_0b71_493d_bf300c05413fc543\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 195 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 196 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 197 1 0 \"091a5303_35ee_4d82_a0b32d9ede26439d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 198 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 199 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 201 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_06FF5C7D72E044ac924A0658E57AC92A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 202 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 203 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 204 1 0 \"0b5e4cdb_1c92_4d18_a0bed95d854a0d94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 205 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"Begin\"\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_SubmergeDepthCORE;\r\nprivate variable str_FW_Digits;\r\nprivate variable flt_TipLength;\r\nprivate variable int_LLDheight;\r\nprivate variable flt_TipLength_corrected;\r\nprivate variable int_FW_Digits;\r\nprivate variable flt_StepSize;\r\nprivate variable int_Steps_mm;\r\nprivate variable str_ReturnValueH0RH;\r\nprivate variable flt_angle;\r\nprivate variable tipType;\r\n// {{ 5 \"MPH_GetLastLLD_Level\" \"InitLocals\"\r\no_flt_LastLiquidLevel = 0;\r\n// }} \"\"\r\n// {{ 243 1 0 \"f7c5b642_e642_4bd2_b342e8a2202f94b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SubmergeDepthCORE = 8.0;\r\n// }} \"\"\r\n// {{ 244 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 245 1 0 \"de2e1cfc_3be8_4752_b20a1221fc802c26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"bf16ce46_b00c_46c3_93046a4e730e9868\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(i_liquidClass);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"7d094f81_a8b9_4eb1_90a841201d1a4cca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType);\r\n// }} \"\"\r\n// {{ 248 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 249 1 0 \"a97af8ec_9af3_46fa_a150d41888290f6f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE;\r\n// }} \"\"\r\n// {{{ 250 1 0 \"8fc17eb7_3fbb_4a8e_b537d43144e8598c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle);\r\n// }} \"\"\r\n// {{ 251 1 0 \"31649b83_68f7_49a0_974f7efa6232c07d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnValueH0RH = Translate(\"\");\r\n// }} \"\"\r\n// {{ 252 1 0 \"72f92b7c_2537_40be_bc5fe85726a39b19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StepSize = 0.005;\r\n// }} \"\"\r\n// {{ 253 1 0 \"b5a3458f_9eea_4501_a6aa86c0556ad194\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b5a3458f_9eea_4501_a6aa86c0556ad194\"); // FirmwareCommand\r\n\tstr_ReturnValueH0RH = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 254 1 0 \"73c2ff19_ed4c_4c45_a9c5b56a6e84b044\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"str_ReturnValueH0RH: \"), str_ReturnValueH0RH);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 255 1 0 \"f6fe1f5f_39ae_4b71_83f733a5cf490b66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FW_Digits = StrRight(str_ReturnValueH0RH, 6);\r\n// }} \"\"\r\n// {{{ 256 1 0 \"9883fcc4_3dcd_4199_816696b3668f733f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_FW_Digits = StrIVal(str_FW_Digits);\r\n// }} \"\"\r\n// {{ 257 1 0 \"b427e920_22bd_492e_8c900ff3a99a649c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Steps_mm = int_FW_Digits * flt_StepSize;\r\n// }} \"\"\r\n// {{ 258 1 0 \"bbe179b4_5c85_4ece_ba3738d8817cdfc5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLDheight = int_Steps_mm - flt_Z_Coord;\r\n// }} \"\"\r\n// {{ 259 1 0 \"502175ce_b71d_406e_b155fea6f39d0fd0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 260 1 0 \"3bcc328b_1906_4590_94e64b4e80f03d3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"o_flt_LastLiquidLevel: \"), o_flt_LastLiquidLevel);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 207 1 0 \"031805d0_c2b0_4435_9b8f6fbb101dc62d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(dispenseSequence);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"c249d641_ef0f_4423_bc2d48f01c114665\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(dispenseSequence);\r\n// }} \"\"\r\n// {{ 209 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 210 1 0 \"30023c25_d03e_4d52_86f122728a5fc04f\" \"ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB(\"30023c25_d03e_4d52_86f122728a5fc04f\"); // Head96Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 211 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 212 1 0 \"714a2035_eb8c_4e86_85aca8d69086952e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"bc1347df_5f38_41ae_be3c240228e5944c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 214 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 215 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 216 1 0 \"911c2699_0e84_425f_9e9384c7b6c75351\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 217 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"17abaeba_05ec_4e18_a3843b54b3bdf6f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 220 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 221 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 223 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 224 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 225 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 226 1 0 \"c826eb96_3570_4883_a8298bc890043c3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 227 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"Begin\"\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 229 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 230 1 0 \"a8f4b6bb_e103_433a_b1360393d37e32b3\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"a8f4b6bb_e103_433a_b1360393d37e32b3\"); // Head96TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 231 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C33A74C211664afd9B08BCD3DD5339FC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 232 1 0 \"71d45982_a084_4aaa_a34c6558755061d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"9e9d44f5_b614_4fb4_b6d39860c83d879d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 234 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"Begin\"\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 179 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7F7620635658430dB82A7401CB5C158F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 180 1 0 \"dc7838fc_172e_45b4_89099f664d6d452e\" \"ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2(\"dc7838fc_172e_45b4_89099f664d6d452e\"); // Initialize\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 181 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7F7620635658430dB82A7401CB5C158F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 182 1 0 \"6bd66132_cab8_473c_8437aa033b84ff48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 183 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"Begin\"\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"SendFirmwareCommand\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 262 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 263 1 0 \"c616f5ea_baed_4075_a75531e82e045e2b\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c616f5ea_baed_4075_a75531e82e045e2b\"); // FirmwareCommand\r\n\to_stepReturn = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 264 1 0 \"0f7ff03f_40eb_4e9b_a2ff42a6b9e6d59a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_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,\");\r\n// }} \"\"\r\n// {{ 265 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 266 1 0 \"305af0e7_7bac_4678_a0d1c7c3dd9900d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 267 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"Begin\"\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 269 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 270 1 0 \"8f639116_952a_4b73_b3471e6a53e3906f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate);\r\n// }} \"\"\r\n// {{ 271 1 0 \"3393edd2_b35c_4d28_9a34abe9b5cba597\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 272 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F7A233121EBD413184BEE5D2CD3510CA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 273 1 0 \"60a9b619_1ae2_496a_89ca468bc3f8e964\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 274 1 0 \"8e89b190_d2d8_4a7e_8d65313a1104b64f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 275 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"Begin\"\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_MoveToPosition\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 277 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_089FA9D7B12A47b0BAD415A10EC82051 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 278 1 0 \"2eb8fec9_f55f_4bdb_9e8f2458aae0ad13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLDaisyChainedTiltModule::MoveToPosition(Module, Position);\r\n// }} \"\"\r\n// {{ 279 1 0 \"b1a780d0_ecf5_4978_85fb85d1c7090261\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 280 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_089FA9D7B12A47b0BAD415A10EC82051 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 281 1 0 \"ce3475b4_ca3b_48ad_b9c7f3c1f1c2d5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 282 1 0 \"a8c3cab3_9bde_404e_b7d673e4d7906771\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 283 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"Begin\"\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 140 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 141 1 0 \"e3c035a6_0376_4030_a0e519c3f0401e3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode);\r\n// }} \"\"\r\n// {{ 142 1 0 \"ff3d60d9_7d86_4591_b213ab2e2ec6b54f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 143 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 144 1 0 \"f54e5f54_9845_4b71_959134357b62b308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 145 1 0 \"ad00a616_20b6_4fd1_b1b82f15bd592d39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 146 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_StartTemperatureControl\" \"InitLocals\"\r\nErrorCode = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 156 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 157 1 0 \"dbb9a46a_b798_4546_8857499b498c024a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 158 1 0 \"9962ba81_d090_4144_ad45cfdfb0a81848\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 159 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EF764FBDA7474071A7B517987B9B2FC2 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 160 1 0 \"1bea095e_8a1c_4a68_846e9362f2c251d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 161 1 0 \"94a7bec1_57e9_49ab_a6d3e430f8e69316\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 162 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"Begin\"\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_SetTarget\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 148 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 149 1 0 \"aef982a0_8382_45fd_aec06a11e9859c17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{ 150 1 0 \"469d7ad2_b7d8_4e9c_ac57ffe25631b189\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 151 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_56BA970A477C47bf90C6C3373DEB98B0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 152 1 0 \"666252c3_d904_4d59_af97abc58a445648\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 153 1 0 \"360d64cc_734f_4a97_8c61eb77bf58c2c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 154 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_StopTemperatureControl\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 164 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 165 1 0 \"53a1b499_97d8_49ce_85f583fb81241149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 166 1 0 \"6663219d_f732_4334_ac9149ef5e378f41\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 167 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E3152496BDA74f1681473505DC2B3A3E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 168 1 0 \"bf506361_d06d_402a_bce18579529327a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 169 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"Begin\"\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 171 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 172 1 0 \"3239a113_7650_4023_a9fad336d668211f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::Terminate(StopAllDevices);\r\n// }} \"\"\r\n// {{ 173 1 0 \"3b263a00_9a60_41fc_9972731eef692e35\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 174 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 175 1 0 \"06500de7_b6f0_46c9_83aa39385bd390ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"1d548ec4_592f_4c53_bd10fcebbc4e29a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"step return in toolkit\"), o_stepReturn);\r\n// }} \"\"\r\n// {{ 177 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Initialize\" \"Begin\"\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"BarcodeReader_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A3B61CE3E767468e8D1B59076F3D78E4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"e0cfef2c_84b3_468a_a20006a3728a8260\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Trace\"), COMPORT);\r\n// }} \"\"\r\n// {{{ 3 1 0 \"e040e6e1_8d46_47ab_87603b90eec83a04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLBarcodeReader::SetComPort(COMPORT);\r\n// }} \"\"\r\n// {{{ 4 1 0 \"97b56e2c_0824_4073_9e58f7230250d255\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLBarcodeReader::DelComBuffer();\r\n// }} \"\"\r\n// {{ 5 1 0 \"d56061ff_1640_4b1a_88dc262e7863d251\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_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,\");\r\n// }} \"\"\r\n// {{ 6 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A3B61CE3E767468e8D1B59076F3D78E4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 7 1 0 \"02ecb8f2_684e_4ec1_a9840192e80e0f56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 8 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Read\" \"Begin\"\r\nfunction BarcodeReader_Read( variable & barcode ) void {\r\n// }} \"\"\r\n// {{ 5 \"BarcodeReader_Read\" \"InitLocals\"\r\nbarcode = 0;\r\n// }} \"\"\r\n// {{ 10 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 11 1 0 \"f3cc7ab5_8df1_49cb_aaf121c9e2cc2d4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"attempting to read barcode \"), Translate(\"attempting to read barcode\"));\r\n// }} \"\"\r\n// {{{ 12 1 0 \"7efa47d3_0206_455e_9c6a05f9f0aebc1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbarcode = HSLBarcodeReader::Read();\r\n// }} \"\"\r\n// {{{ 13 1 0 \"dd9a5270_3e4b_4b95_898bbad8823e8ea2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(barcode, Translate(\"this is the barcode\"));\r\n// }} \"\"\r\n// {{ 14 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F17E80F5B0F14da6AD3DC48FC7190CFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 15 1 0 \"1bcebdcc_4eed_4f44_b21a8924c1f94855\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbarcode = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 16 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Read\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 309 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_485A52AE45C346adA048E7F329D0C390 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 310 1 0 \"70294f1d_735f_43b0_bfff139b2e168d5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4);\r\n// }} \"\"\r\n// {{ 311 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_485A52AE45C346adA048E7F329D0C390 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 312 1 0 \"b81f548d_2601_402a_9a291d45b6b50706\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 313 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2024-07-10 19:18$$checksum=97f73db2$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx393D.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx3D8A.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_ODTC.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n namespace _Method { #include \"Inheco ODTC\\\\Inheco ODTC.hsl\" } \r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable LockID;\r\nvariable SiLAMessage;\r\nvariable SiLAReturnValue;\r\nvariable DeviceIP;\r\nvariable LocalIP;\r\nvariable Message;\r\nvariable DevicePort;\r\nvariable ProtocolFile;\r\nvariable ErrorMessage;\r\nvariable MethodName;\r\nvariable Priority;\r\nvariable Duration;\r\nvariable RequestID;\r\nvariable Time;\r\nvariable ActualTemperatures[];\r\nvariable ActualTemperatureNames[];\r\nvariable str_ActualTemperatureNames;\r\nvariable str_ActualTemperatures;\r\nvariable strDeviceID;\r\nvariable TimeToWait;\r\nvariable PMSID;\r\nvariable PMS_ID;\r\nvariable Current_Time;\r\nvariable Locked;\r\nvariable State;\r\nvariable Result;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_ODTC::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 344 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 346 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 347 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 348 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 351 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 352 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 353 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 354 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 356 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 357 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 358 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 359 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 360 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 361 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 362 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 365 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 366 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 367 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 368 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 370 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 371 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 374 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 381 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 382 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 390 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 391 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 392 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 393 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 394 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 396 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 397 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 398 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 399 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 402 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 403 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 404 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 405 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 407 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 408 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 409 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 418 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 426 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 427 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 435 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 437 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 438 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 439 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 440 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 441 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 442 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 443 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 446 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 447 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 448 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 450 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 451 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 452 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 455 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 456 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 457 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 459 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 461 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 462 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 463 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 466 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 467 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 468 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 470 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 471 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 481 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 482 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 490 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 491 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 492 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 493 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 494 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 495 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 496 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 497 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 498 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 499 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 501 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 502 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 503 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 504 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 505 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 506 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 507 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 508 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 511 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 512 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 515 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 517 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 518 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 519 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 520 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 521 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 522 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 523 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 524 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 526 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 527 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 528 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 529 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 530 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 531 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 532 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 535 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 536 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 537 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"fc551e3b_1f4d_4d8d_8fed3ee38abdebdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 541 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 542 1 0 \"e1385a03_1302_4ae1_9faaea69422d67f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 543 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 544 1 0 \"5af0317c_390a_4121_92fc6695bd45edd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"8c9a281c_debc_4f33_9bd2cef6eedde57e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"3d50574c_65df_46db_976821037648878c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"642f5973_af08_450b_878d55fa1dc15b1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 548 1 0 \"c1b028b1_70dd_4627_a467661067398a2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 549 1 0 \"f0c6a22f_59e2_41c2_954cb5b06a43aa42\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 550 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 551 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 552 1 0 \"fc551e3b_1f4d_4d8d_8fed3ee38abdebdc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 553 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 554 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 555 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 556 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 557 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 559 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 560 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 561 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 562 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 563 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 564 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 565 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 566 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 569 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 570 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 571 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 572 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 573 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 574 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 575 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 578 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 579 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 580 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 581 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 582 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 583 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 584 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 585 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 587 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 588 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 589 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 590 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 591 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 593 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 594 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 595 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 596 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 599 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 600 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 602 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 603 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 604 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 608 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 609 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 610 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 611 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 612 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 613 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 614 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 615 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 617 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 618 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 619 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 620 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 621 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 622 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 623 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 624 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 625 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 632 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 633 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 634 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 635 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 636 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 637 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 638 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 639 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 640 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 641 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 642 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 649 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 650 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 657 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 658 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 659 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 660 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 661 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 662 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 663 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 664 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 665 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 666 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 670 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 671 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 672 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 673 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 674 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 675 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 676 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 683 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 684 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 685 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 686 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 687 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 688 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 689 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 693 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 694 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 695 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 696 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 697 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 702 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 703 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 705 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 706 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 713 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 716 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 717 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 724 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 725 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 734 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 735 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 736 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 737 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 738 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 746 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 747 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 748 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 749 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 750 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 755 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 760 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 761 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 763 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 764 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 765 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 766 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 767 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 768 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 771 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 772 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 773 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 774 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 775 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 777 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 778 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 779 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 781 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 782 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 783 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 790 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 791 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 792 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 794 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 795 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 801 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 802 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 803 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 805 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 809 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 810 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 811 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 813 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 814 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 815 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 816 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 817 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 819 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 820 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 821 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 830 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 831 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 838 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 839 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 842 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 848 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 849 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 850 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 852 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 857 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 858 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 859 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 860 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 861 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 862 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 863 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 864 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 867 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 868 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 869 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 870 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 871 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 872 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 873 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 875 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 878 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 879 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 880 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 882 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 886 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 891 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 894 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 895 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 896 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 897 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 898 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 899 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 900 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 906 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 908 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 909 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 910 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 911 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 912 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 913 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 917 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 918 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 919 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 920 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 921 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 922 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 925 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 926 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 927 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 928 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 929 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 930 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 931 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 936 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 937 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 938 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 939 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 940 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 944 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 945 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 947 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 948 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 949 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 950 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 951 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 952 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 953 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 956 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 957 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 958 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 959 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 960 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 961 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 962 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 964 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 965 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 966 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 967 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 968 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 969 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 970 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 971 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 972 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 973 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 974 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 975 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 976 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 977 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 978 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 979 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 980 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 982 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 985 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 986 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 987 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 988 1 0 \"c254f141_56e5_4dd6_867413cd84657042\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 989 1 0 \"a5a0a6fa_f020_4f0c_892b14922a8a43d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 990 1 0 \"87bcb443_ba4e_4831_b6d85d5676ceae1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Abort\")\r\n{\r\n// }} \"\"\r\n// {{{ 991 1 0 \"32d200eb_0ae6_409a_a27f1bd9e350adc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"60937dfd_fa84_49e4_a6330092ff42006c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"83aa31af_13e9_48fa_86a3688beb3a1be8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Abort(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"7094499b_8677_4e4c_acf20a22a53d4c8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Abort\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"37a6eb15_6c8d_473f_b9dffab95f789ac5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"ed56f986_bb0e_4e3d_b4d7300a7eeb0b58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"e98e447d_05f0_430c_afd0ba887aca6b76\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 998 1 0 \"87bcb443_ba4e_4831_b6d85d5676ceae1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 999 1 0 \"a5a0a6fa_f020_4f0c_892b14922a8a43d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1000 1 0 \"ced572f9_f877_4613_993ac898da106542\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1001 1 0 \"03a935ee_2760_4356_bd8073e8de6b173b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_CloseDoor\")\r\n{\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"6a66458b_03aa_4556_a7119c29debe4db5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"8835ccf5_7cde_492a_9d03a87f66212529\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"52be61c1_07d8_46d7_971799c333aa010a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::CloseDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"6051ed5f_5327_408e_ab4e4006ce62d8ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Close Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"e77e745c_0fd9_4817_9c991dc6c147e97c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"6a920b48_4355_48b6_9fee746e310180ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"f607e257_0faa_41ba_953a4eff67bb8a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1009 1 0 \"03a935ee_2760_4356_bd8073e8de6b173b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1010 1 0 \"ced572f9_f877_4613_993ac898da106542\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1011 1 0 \"5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1012 1 0 \"83d25d49_d146_4249_9f0335e6f838ddb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Connect\")\r\n{\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"ea96e218_a676_4c43_8187dccb61fdcfad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LocalIP\"), LocalIP);\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"9f39afff_baf8_4c02_90919e91b050d9b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceIP\"), DeviceIP);\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"ac76b36c_ea11_4135_b099c4da1dd83d48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DevicePort\"), DevicePort);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"217e9a1b_a533_42fd_909df59d5d25c92a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"47c48ac4_65f4_4ac5_9c5d4ff87e80792d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Connect(LocalIP, DeviceIP, DevicePort, SimulationMode, DeviceID, Message, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"44b7be8c_cda6_44d7_9a3512b3014b5aaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Connect\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"988ae1b5_28c3_4982_a500bf7ceebf13f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Connect\"), Message);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"4806a116_031e_444f_bcf99da98fc2aa03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"ecb51768_e47b_48e1_a68b612754c89d2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1022 1 0 \"1045876f_9227_42d4_8f284b4615f7bd52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Message, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1023 1 0 \"83d25d49_d146_4249_9f0335e6f838ddb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1024 1 0 \"5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1025 1 0 \"170cad08_e039_423f_89bd02bf1417c189\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1026 1 0 \"f37a1dca_bc87_4a1a_b736b41bf3acacbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_DownloadProtocol\")\r\n{\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"40cbc2ca_86a5_4676_8bcc39a2f6f075f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"ca78a1d6_10a8_4411_8b063849d86a765f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"2a2898df_3962_48ea_872e3cb37c538f1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProtocolFile\"), ProtocolFile);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"61926133_1a9a_4ae7_919d1c60533131c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::DownloadProtocol(DeviceID, LockID, ProtocolFile, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"63ab11b5_28c5_4f1d_a7a32d8e3ec48cb1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Download Protocol\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"8ec284ea_82fb_4835_a7371e261781305c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"fd4faeae_7ccf_4aa6_a8abbca7275971c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"8656e596_fb43_4c25_81f91e4348204c13\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1035 1 0 \"f37a1dca_bc87_4a1a_b736b41bf3acacbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1036 1 0 \"170cad08_e039_423f_89bd02bf1417c189\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1037 1 0 \"95be4335_330f_498d_9cbb97fc242dae19\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1038 1 0 \"f8b53e0a_3303_4063_8c4b05c22b482521\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_EvaluateError\")\r\n{\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"e360752c_31f7_4bfc_85305c84dc5f7546\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ErrorCode\"), ErrorCode);\r\n// }} \"\"\r\n// {{{ 1040 1 0 \"0b3b8a56_af82_4264_b0c16517d839ebe4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::EvaluateError(ErrorCode, ErrorMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"639398d5_46e9_473e_b535a1b1e05aaf2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Evaluate Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"53eec77c_8020_45cb_a87b12aa6861c3ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"7e52272f_d6bd_42c0_aaec9e3104211d0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ErrorMessage, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1044 1 0 \"f8b53e0a_3303_4063_8c4b05c22b482521\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1045 1 0 \"95be4335_330f_498d_9cbb97fc242dae19\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1046 1 0 \"7df278e6_a78b_42de_82fff06047d78c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1047 1 0 \"7072fce7_707a_4f05_873c2b04e45efaa5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_ExecuteMethod\")\r\n{\r\n// }} \"\"\r\n// {{{ 1048 1 0 \"8747e547_373a_456a_b7c45f3fe0fa4962\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"6ed86f44_9a40_4aec_a24da2c3e14c5cfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"c95214ca_8dc7_4e36_b861cd3cb7e88fce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MethodName\"), MethodName);\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"6354dcdf_bc96_4f43_8e24d16a07ef73a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Priority\"), Priority);\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"f9e2fc96_8719_4db6_961a737c70234591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::ExecuteMethod(DeviceID, LockID, MethodName, Priority, Duration, RequestID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"8eedb12b_8149_4adb_b4a36b25cb56997c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Download Protocol\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"2f5e22f5_6e53_4423_b3c5dcff878744ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRequestID = StrIStr(RequestID);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"af3ce5c4_f396_4686_af8c35c3b1896cbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDuration = StrIStr(Duration);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"56cb4cd9_4ad1_4fe3_938eb0863af7c9cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"42f6ed5e_78f5_47a7_80c65ef13fa2e465\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"27d4d016_fe70_40d9_af54cd49911a2e7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, Duration, RequestID, id);\r\n// }} \"\"\r\n// {{ 1059 1 0 \"7072fce7_707a_4f05_873c2b04e45efaa5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1060 1 0 \"7df278e6_a78b_42de_82fff06047d78c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1061 1 0 \"fe8ceaf6_1a4c_4c99_810b07e636105fa8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1062 1 0 \"f8f85888_8577_4a10_b97ab15879e1b18f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_OpenDoor\")\r\n{\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"3f5cc39f_b933_4665_a725e5d720270a1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"32818a09_3083_4b68_be177e73ea51bf2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"ca47ad1d_7179_4e19_86fd05211f0416ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::OpenDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"721b0fe9_6b70_412e_b6184c3698366299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"b0647e1f_7f95_4f56_832807c0437add1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"071ab0f7_cca9_424c_a4c8b816b1e1a01d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1069 1 0 \"8d79ee78_725d_4b1c_8da948ede755b62e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1070 1 0 \"f8f85888_8577_4a10_b97ab15879e1b18f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1071 1 0 \"fe8ceaf6_1a4c_4c99_810b07e636105fa8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1072 1 0 \"3c16909b_f92f_4869_be09f5ef2fb55e11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1073 1 0 \"3c157612_f55a_40ee_b823fe12e24332f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"a152ec6a_17c0_4ab7_9d87710d8577b2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"1a35d7ba_f083_47be_92136e57f9ed3912\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"3e352ec2_6234_4391_90eb2accc24b087c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Initialize(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"42735754_1a4d_4010_a30f4c85204e159a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"5f865b77_d620_4d27_b1b98c39e384ad41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"67cb5e45_ee7c_4838_b49f2f3f1f1757c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"a9ef6ddb_28b3_420e_a501b6911c3a2769\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"3c157612_f55a_40ee_b823fe12e24332f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1082 1 0 \"3c16909b_f92f_4869_be09f5ef2fb55e11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1083 1 0 \"2918af2a_a130_45ea_b188aa281e864ea8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1084 1 0 \"bf6ddca4_4a60_4455_8397f87f4d24b725\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_ReadActualTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"e6bea63f_c17b_410d_9822608c8267f985\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"edacec9c_28b9_474f_b1558fa726ec2132\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"7fd71047_b3fb_46f5_b5c9f44caec9dd8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::ReadActualTemperature(DeviceID, LockID, SiLAReturnValue, SiLAMessage, ActualTemperatures, ActualTemperatureNames, Time, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"2c27785b_ea35_4934_b654a42db98c118e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Read Temperature\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"4875b702_70e3_4f15_a162e186bb3e9c6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"2d1e6390_eb2e_42e2_848902a0a274a03f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(ActualTemperatures, str_ActualTemperatures);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"120c6294_947e_4b65_b7dd22db08edad17\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(ActualTemperatureNames, str_ActualTemperatureNames);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"7ba7e642_228e_4c42_91a540016b1ecb80\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"89ab9aa6_c667_4fb4_9331cfc5de16392a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, str_ActualTemperatures, str_ActualTemperatureNames, SiLAReturnValue, id);\r\n// }} \"\"\r\n// {{ 1094 1 0 \"bf6ddca4_4a60_4455_8397f87f4d24b725\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1095 1 0 \"2918af2a_a130_45ea_b188aa281e864ea8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1096 1 0 \"32f8d0ae_5127_4186_8dbecc8f7061190f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1097 1 0 \"25b084db_1bed_428b_81ed9dbd2e6b4b60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Reset\")\r\n{\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"54770d0a_c4d8_4bf5_923ea37b0a7bb99a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"055ec305_2f32_4ed5_931e842d3f3dc35b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"c8ec64df_4c79_4d3c_a7ebf0843fb669dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TimeToWait\"), TimeToWait);\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"7de11167_b4a1_4c1d_b459187603f47406\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"c5acc94b_7623_41cc_8be567f94d4ef391\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"strDeviceID\"), strDeviceID);\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"270c90b6_e23e_41ab_89787ba6b70e15e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"PMSID\"), PMSID);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"ce22a8c7_2622_4d15_a255b99991b3a19f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Reset(DeviceID, LockID, SiLAReturnValue, SiLAMessage, SimulationMode, TimeToWait, strDeviceID, PMSID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"5f5f4ac1_af5a_4f5a_83d0452099476350\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Reset\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"91142402_f680_4164_b2867f68a77f19f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"65a340a5_cfe4_49e4_ae15c8fa6f9ca3a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMessage = StrIStr(Message);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"85ff8a84_cc36_4e57_ace1facda0037584\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"7f85d4fa_6d5f_4c6c_9c6a0c94995fdfa4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1110 1 0 \"25b084db_1bed_428b_81ed9dbd2e6b4b60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1111 1 0 \"32f8d0ae_5127_4186_8dbecc8f7061190f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1112 1 0 \"51f7ba64_eb3d_4919_840a54f9d890fae8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1113 1 0 \"9eceba50_29ae_4c59_a6858f927aa63220\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"17e9eb5a_0890_4852_aa7203ed60c2e6fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"af491f4d_08dd_4266_988323b19ab4ae21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::GetStatus(DeviceID, strDeviceID, State, Locked, PMS_ID, Current_Time, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"eb379091_0ce2_4b58_b2de3803b8b7e4a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"f1d81878_8b71_4ddb_bd170dbc47b258ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), strDeviceID);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"1ed775c8_e152_473f_afb053901f12f27e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), Current_Time);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"b6854df9_0048_4379_a45d9c10b1a2e081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"7af5f5b4_66aa_4f36_9a95228efbc14b6c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"a387c327_bc68_4b7e_b755032527737c0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"316cbd48_dd20_4cbb_83337a0d9debd8a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"b8697a57_1081_4c31_a98e091e392113f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"12f1a9d8_74ca_410c_9253620d011e9bf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, strDeviceID, State, Locked, PMS_ID, Current_Time, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1125 1 0 \"9eceba50_29ae_4c59_a6858f927aa63220\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1126 1 0 \"51f7ba64_eb3d_4919_840a54f9d890fae8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1127 1 0 \"45adfa7a_43f6_4879_94eecbbc7cd6241e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1128 1 0 \"c7a1be4c_8922_45fe_a8d03b329ad39a3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1129 1 0 \"5679fc2a_b149_4156_afe65b4260835f63\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"492d5009_7311_49b9_88d37e5272f71a3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Terminate(DeviceID, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"cde37514_c4cf_4ee2_94144ec6f2d8a602\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"7437d0c9_d030_4bc3_9892e6e67143d3a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"56d42bd9_d271_4178_b988201f9be09dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1134 1 0 \"c7a1be4c_8922_45fe_a8d03b329ad39a3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1135 1 0 \"45adfa7a_43f6_4879_94eecbbc7cd6241e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1136 1 0 \"b0f57e64_345a_446f_b484b3f98342b5b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1137 1 0 \"d2d87d10_3538_4cfe_b99e9ea2160e3e76\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1138 1 0 \"b69581df_cb8d_4fe3_b91fbd7c6912cd84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1139 1 0 \"6ae4f976_589c_4784_b354c7814e6dcde1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::GetLastData(DeviceID, LockID, Result, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"8be17100_32fe_4ad7_9002b94bcf924f42\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"69fe485b_5659_4f59_b5fdb0f4567a92a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"b8d08077_08c9_4f6d_bcc7f858d26788e4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1143 1 0 \"d2d87d10_3538_4cfe_b99e9ea2160e3e76\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1144 1 0 \"b0f57e64_345a_446f_b484b3f98342b5b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1145 1 0 \"c254f141_56e5_4dd6_867413cd84657042\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1146 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1147 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1152 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1153 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1157 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1158 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1159 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1160 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1161 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1162 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1164 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1166 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1167 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1169 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1170 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1171 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1174 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1175 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1176 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1177 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1179 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1181 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1182 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1183 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1184 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1186 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1188 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1189 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1190 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1191 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1193 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1195 1 0 \"1823653c_5e02_428a_badd7ca34d3aabf1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1196 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1197 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1198 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1200 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1202 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1203 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1204 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1205 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1206 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1207 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 1209 1 0 \"9d9a3dcb_ddc9_47c5_a860665377ee3e86\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1210 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1211 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1212 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1213 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1214 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1215 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1216 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1217 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1218 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1220 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1221 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1222 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1223 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1224 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1225 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1227 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1228 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1229 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1230 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1232 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1233 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1234 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1235 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1236 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1237 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1239 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1240 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1241 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1242 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1243 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1244 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1245 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1246 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1247 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1248 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1249 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1251 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1252 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1253 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1255 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1256 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1257 1 0 \"949c257a_0d44_4a50_bb10d9b59e6a02c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1259 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1260 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1261 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1262 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1263 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1264 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1265 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1266 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1268 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1269 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1271 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1272 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1273 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1274 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1275 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1276 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1277 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1278 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1280 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1281 1 0 \"0bd6e3be_da2c_4500_973c9d6eae8e7ae6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1282 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1283 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1284 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1285 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1286 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1287 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1288 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1289 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1290 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1293 1 0 \"5b647db8_f1d6_4deb_9b859eb1dfda063d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1294 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1295 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1296 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1297 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1299 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1300 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1301 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1302 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1303 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1304 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1305 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1306 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1307 1 0 \"ad365bf1_c5e9_4c85_b1b623b20be98474\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 1309 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1310 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1311 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1312 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1313 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1314 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1315 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1316 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1319 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1320 1 0 \"f307f49e_48c2_428e_80c1d57693f85156\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1321 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 1322 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1323 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1324 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1325 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1326 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1327 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1328 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1329 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1331 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1332 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1333 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1334 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1336 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1337 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1338 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1340 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1341 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1342 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1343 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1345 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1346 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1348 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1349 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1350 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1351 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1352 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1353 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1354 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1355 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1358 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1359 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1360 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1361 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1362 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1363 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1364 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1365 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1367 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1368 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1369 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1370 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1372 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1373 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1376 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1377 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1379 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1380 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1381 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1382 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1384 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1385 1 0 \"dab3ac84_179e_4fd8_9b00ad14f3ef613e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 1387 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1388 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1389 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1391 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1392 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1393 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1394 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1395 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1397 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1398 1 0 \"523b190e_f70f_4a28_b16582e7161b390a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1400 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1401 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1402 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1404 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1405 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1406 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1407 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1410 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1411 1 0 \"e043b61a_b8c5_46d4_9bf331f7566a8911\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1412 1 0 \"a302e74e_d752_4ae6_b492a17f601bef41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{ 1413 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1414 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1415 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1417 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1418 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1419 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1420 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1422 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1423 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1424 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1425 1 0 \"10af5b65_9ddd_4a4b_b040d8f5b6e642cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1427 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1428 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1429 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1430 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1431 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1432 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1433 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1434 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1436 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1437 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1438 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1439 1 0 \"497404d1_5fea_46f0_9598d8e1c1cb11ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 1441 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1442 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1443 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1444 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1445 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1446 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1447 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1448 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1449 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1450 1 0 \"d8b2a327_d63a_46f2_8c273b2eedb8cb34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1452 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1453 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1454 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1456 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1457 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1458 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1459 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1461 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1462 1 0 \"9d792f4f_4c49_4998_b21fd7f7d6a58fce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"b811fcbc_7d95_47c6_9c33e18415810e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1464 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1465 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1466 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1468 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1469 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1470 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1471 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1473 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1474 1 0 \"384c69b8_0ce8_4a27_af0a4060e6f1a01d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1476 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1477 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1478 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1480 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1481 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1482 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1483 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1484 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1485 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1487 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1488 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1489 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1491 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1492 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1493 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1494 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1496 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1497 1 0 \"6c68258f_f870_4c46_b358dc4391ced463\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1498 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1499 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1500 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1501 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1502 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1503 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1504 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1505 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1506 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1508 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1509 1 0 \"f5db2a6b_8286_4195_844af45f48c61d3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1510 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1511 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1512 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1513 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1514 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1515 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1516 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1517 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1518 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1519 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1520 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1521 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1522 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1523 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1526 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1527 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1528 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1529 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1530 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 1531 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1532 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1534 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1535 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1536 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 1538 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1539 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 1540 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 1541 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1542 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1543 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1544 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_ODTC::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2023-01-28 01:33$$checksum=7e318e39$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx3D8A.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1697 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1665 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1666 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1667 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1669 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1670 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1678 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1679 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1680 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1681 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1682 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1683 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1684 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1685 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1686 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1687 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1688 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1689 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1690 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1691 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1692 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1693 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1694 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1638 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1639 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1640 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1641 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1642 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1646 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 1583 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1584 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 1585 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 1586 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 1587 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1588 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1589 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 1591 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 1592 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 1593 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 1594 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1595 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1672 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1673 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1674 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1675 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1557 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 1558 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 1560 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1561 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1562 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 1563 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 1564 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 1566 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1567 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1568 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 1570 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1571 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1572 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 1573 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 1574 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1575 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 1576 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 1577 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 1578 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1579 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1580 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1581 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 1547 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 1548 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1549 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1550 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1551 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 1552 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 1553 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 1554 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1555 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 1598 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 1599 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 1601 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1602 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 1604 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 1606 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 1607 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1608 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1610 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1611 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 1612 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 1613 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 1614 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 1615 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 1616 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 1617 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 1618 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1621 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 1622 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1623 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1624 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 1625 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1626 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1627 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1629 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1630 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1631 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1632 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1648 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1649 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1652 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1653 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1654 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1655 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 1656 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1661 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1662 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1663 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-01-28 01:33$$checksum=39f6dc7b$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx3D8A.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx4005.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module Controller.hs_\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"HSL_LiquidClassLib.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\nvariable DefaultTemperature;\r\nvariable MeasureTime;\r\nvariable MeasureHeight;\r\nvariable CalibrationValue1;\r\nvariable TempSoln1;\r\nvariable TempSoln2;\r\nvariable CalibrationValue2;\r\nvariable blnCalibrateDynamically;\r\nvariable CalibrationValueRef;\r\nvariable TempSolnRef;\r\nvariable Module;\r\nvariable Reference;\r\nvariable Calibration1;\r\nvariable Calibration2;\r\nsequence seqModule;\r\nsequence seqCalibration1;\r\nsequence seqCalibration2;\r\nsequence seqReference;\r\nvariable CalibrationTime;\r\nvariable arrCalibrationSlopeRatios[];\r\nvariable arrpHValuesReferenceSolution[];\r\nvariable CalibrationSlopeRatios;\r\nvariable pHValuesReferenceSolution;\r\nvariable BluetoothPort;\r\nvariable NumDryCycles;\r\nvariable NumWashCycles;\r\nvariable DryTime;\r\nvariable Gripper;\r\nsequence seqGripper;\r\nvariable WashPosition;\r\nsequence seqWashPosition;\r\nvariable DryPosition;\r\nsequence seqDryPosition;\r\nvariable DryCycles;\r\nvariable TransportChannel;\r\nvariable WashCycles;\r\nvariable arrpHValues[];\r\nvariable flt_pHValues;\r\nvariable seqMeasure;\r\nvariable ProbePattern;\r\nvariable seqMeasurement;\r\nvariable MeasurePositions;\r\nvariable hssErrCode;\r\nvariable LiqClassParameterName;\r\nvariable LiqClassParameterValue;\r\nvariable LiquidClassName;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"04505c20_428c_4440_8169ddcbaade8bbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 0);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 29 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 30 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 31 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 34 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 35 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 39 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 41 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 42 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 43 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 44 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 45 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 47 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 48 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 49 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 51 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 52 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 53 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 64 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 66 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 77 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 78 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 79 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 81 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 83 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 84 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 86 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 88 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 89 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 96 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 99 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 100 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 123 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 124 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 125 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 126 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 127 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 128 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 129 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 130 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 132 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 134 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 135 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 141 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 142 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 143 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 145 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 146 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 150 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{{ 151 1 0 \"f12cebf8_f377_4e29_9178b685b8637482\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 152 1 0 \"53842548_1bc1_4cff_b1c7b9254000a8bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"40577bba_0459_4794_a91070bf46ef5b5f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 154 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 155 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 156 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 157 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 158 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 160 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 161 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 162 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 163 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 164 1 0 \"33f8a21f_6ff1_4901_9c57a2c3bfc58f55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 165 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{ 166 1 0 \"2e847c00_28a1_4b09_9ed5515ce7746892\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 167 1 0 \"f40baab8_ec2e_4552_91ddf539ae8bfda9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 168 1 0 \"2e65ae8a_e63b_4697_a998e72591e5c0c5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 169 1 0 \"7672ebc2_4687_4107_a4fd6c56c422373e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 172 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 173 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 174 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 175 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 176 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 177 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 178 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 179 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 182 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 183 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 184 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 185 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 186 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 187 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 188 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 191 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 192 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 193 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 194 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 195 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 196 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 201 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 202 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 203 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 207 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 210 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 211 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 212 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 214 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 215 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 216 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 217 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 219 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 221 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 225 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 226 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 227 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 228 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 229 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 230 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 238 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 239 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 244 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 246 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 247 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 248 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 250 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 251 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 252 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 253 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 254 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 255 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 256 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 261 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 262 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 263 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 264 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 266 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 268 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 270 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 271 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 273 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 274 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 275 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 276 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 277 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 278 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 279 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 283 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 284 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 285 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 288 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 289 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 294 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 298 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 299 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 302 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 303 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 304 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 305 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 306 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 307 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 308 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 312 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 313 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 316 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 317 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 318 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 319 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 321 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 322 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 329 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 330 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 331 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 332 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 333 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 334 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 335 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 336 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 337 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 338 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 339 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 343 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 344 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 346 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 347 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 348 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 352 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 353 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 354 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 355 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 356 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 357 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 358 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 359 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 360 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 361 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 362 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 365 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 366 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 367 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 368 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 369 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 370 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 374 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 375 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 376 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 377 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 378 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 379 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 380 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 382 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 383 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 384 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 385 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 386 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 387 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 388 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 389 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 390 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 391 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 392 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 393 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 394 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 395 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 396 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 397 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 398 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 399 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 400 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 401 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 402 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 403 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 404 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 405 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 406 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 407 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 408 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 409 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 411 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 412 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 413 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 414 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 415 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 416 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 417 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 418 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 426 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 427 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 428 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 429 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 430 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 431 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 432 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 433 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 434 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 435 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 436 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 437 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 438 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 439 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 440 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 441 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 442 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 443 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 444 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 445 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 446 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 447 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 448 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 449 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 450 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 451 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 452 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 454 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 455 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 456 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 457 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 458 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 459 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 460 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 461 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 462 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 463 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 464 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 465 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 466 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 467 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 468 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 469 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 470 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 471 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 472 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 475 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 476 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 477 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 478 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 479 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 480 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 481 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 482 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 483 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 484 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 485 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 486 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 487 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 488 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 490 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 491 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 492 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 493 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 494 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 495 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 496 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 497 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 498 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 499 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 500 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 501 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 502 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 503 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 505 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 506 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 507 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 508 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 510 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 511 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 512 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 514 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 515 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 516 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 517 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 518 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 519 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 520 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 521 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 522 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 523 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 524 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 526 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 527 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 528 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 529 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 530 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 531 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 532 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 533 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 534 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 535 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 536 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 537 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 538 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 539 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 540 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 541 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 542 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 544 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 545 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 546 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 547 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 548 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 549 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setAspirateParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 550 1 0 \"d741f062_6b73_4365_ad9c8646a016138d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 551 1 0 \"86836193_1dcb_460e_8db2dda6b775abd9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 552 1 0 \"d94798d1_53c6_40de_b72c239404c94352\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 553 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 554 1 0 \"3f31be32_d184_4c20_a5127e5057f15149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 555 1 0 \"b75ad951_95b1_4114_864093345ffb2cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 556 1 0 \"a39ebf7f_8e12_47a6_aad54fd2890ba779\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 557 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E1EAD148F3254941A251DC272F774AB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 558 1 0 \"a14cc465_549a_4722_b3fb08ce2532a405\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 559 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 560 1 0 \"ec08039a_3b70_4854_894d57c13ffdc877\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 561 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setDispenseParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 563 1 0 \"4aa7b9ce_fd73_4a55_9a3c704bfb4c443d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 564 1 0 \"27e93e41_ad5f_4b74_a1844bb15c0dfdfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 565 1 0 \"10da81a6_cef8_4c18_9416f561b557ad45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 566 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 567 1 0 \"b471ff31_4fdd_4a9f_87431e5741a9b969\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"8f401b71_156d_43b5_892982e8478456f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 569 1 0 \"28e95405_685a_4032_b361461ff897189f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 570 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3A18CA152B674dd3A42B81C4D45F719E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 571 1 0 \"c7174915_16fd_40d8_b94eac8999f4eab7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 572 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 573 1 0 \"d805e811_a796_44e9_93839b02b6d05f1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"da31069e_a165_4c2e_b95619cb57c4ae8a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 575 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 576 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 577 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 578 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 579 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 580 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 581 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 583 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 588 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 589 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 590 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 591 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 592 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 594 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 595 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 599 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 600 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 602 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 603 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 607 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 608 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 609 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 610 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 611 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 613 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 617 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 618 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 619 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 620 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 621 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 622 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 625 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 626 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 627 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 628 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 629 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 633 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 634 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 635 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 637 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 641 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 645 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 646 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 647 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 648 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 649 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 650 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 657 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 658 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 659 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 660 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 661 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 662 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 663 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 664 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 665 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 666 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 669 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 670 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 671 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 672 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 673 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 674 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 675 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 678 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 679 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 680 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 681 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 682 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 683 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 684 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 685 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 686 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 687 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 691 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 692 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 693 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 694 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 695 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 696 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 697 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 701 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 702 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 703 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 706 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 709 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 710 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 711 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 712 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 713 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 715 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 716 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 720 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 721 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 722 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 723 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 724 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 725 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 732 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 733 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 734 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 736 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 737 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 744 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 745 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 746 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 747 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 748 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 755 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 759 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 760 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 761 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 762 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 763 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 764 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 768 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 771 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 772 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 773 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 774 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 775 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 778 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 779 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 780 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 781 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 782 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 783 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 784 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 785 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 798 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 799 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 800 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 801 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 802 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 803 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 804 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 805 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 809 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 810 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 811 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 812 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 813 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 817 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 818 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 819 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 820 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 821 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 830 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 831 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 835 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 836 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 837 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 838 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 839 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 840 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 841 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 842 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 845 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 846 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 847 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 848 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 849 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 850 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 851 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 852 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 857 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 858 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 859 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 860 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 861 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 867 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 868 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 869 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 870 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 871 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 873 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 875 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 879 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 880 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 882 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 883 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 886 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 891 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 894 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 895 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 896 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 897 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 898 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 899 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 900 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 905 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 906 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 907 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 908 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 909 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 910 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 911 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 913 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 916 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 917 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 918 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 919 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 920 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 922 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 924 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 925 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 926 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 927 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 928 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 929 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 930 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 931 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 932 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 933 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 936 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 937 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 938 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 939 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 944 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 945 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 946 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 947 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 948 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 949 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 950 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 951 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 952 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 953 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 955 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 956 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 957 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 958 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 959 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 960 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 961 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 962 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 964 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 965 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 966 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 967 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 968 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 969 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 971 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 972 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 973 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 974 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 975 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 976 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 977 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 979 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 980 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 981 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 982 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 985 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 986 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 987 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 988 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 989 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 990 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 991 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 994 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 995 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 996 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 997 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 998 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 1005 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 1009 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1010 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1011 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1012 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1013 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1014 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1022 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1024 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1030 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1031 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1032 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1033 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1037 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1038 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1040 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1045 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1046 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1047 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1048 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1058 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1059 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1060 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1061 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1066 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1067 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1068 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1069 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1070 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1072 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1075 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1076 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1077 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1078 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1081 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1086 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1087 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1088 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1089 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1107 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1108 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1109 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1110 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1111 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1112 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1113 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1119 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1120 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1121 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1122 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1127 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1129 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1137 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1138 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1139 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1140 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1143 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1144 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1145 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1150 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1151 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1152 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1153 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1157 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1158 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1162 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1165 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1166 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1167 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1174 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1175 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1176 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1177 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1181 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1183 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1186 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1187 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1188 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1189 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1191 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1195 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1196 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1198 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1199 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1200 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1201 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1203 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1204 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1205 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1206 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1207 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1211 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1212 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1213 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1214 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1216 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1217 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1218 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1221 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1222 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1223 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1224 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1227 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1233 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1234 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1235 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1236 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1242 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1243 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1244 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1246 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1251 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1252 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1253 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1255 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1260 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1261 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1262 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1263 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1264 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1265 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1269 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1270 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1271 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1272 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1273 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1274 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1277 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1281 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1282 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1283 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1284 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1285 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1286 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1290 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1291 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1292 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1293 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1294 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1295 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1296 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1300 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1301 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1302 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1303 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1304 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1305 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1309 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1310 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1311 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1312 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1313 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1314 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1315 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1316 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1320 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1321 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1322 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1323 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1324 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1325 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1329 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1331 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1332 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1333 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1334 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1336 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1340 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1341 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1342 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1343 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1349 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1350 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1351 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1352 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1353 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1354 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1358 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1359 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1360 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1361 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1362 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1363 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"32d149fa_c238_4e8c_9c9bfe8ca03b39ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{ 1365 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"05f6e40b_f62a_4382_9b25ca234839aeb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID);\r\n// }} \"\"\r\n// {{ 1367 1 0 \"b8eff0c4_8a87_4d69_8b1fc22443527e58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1368 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_43ECC15F92874e8a8FCA2A90F3412255 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1369 1 0 \"a6315690_dcdc_4faf_9764f4edcccee401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1370 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"b152d230_641d_44fd_82876d10beb25ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"2178bb5d_1389_4bb3_92e038bed00ad7d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"0e8fa514_886c_42d7_a0fec5c2e0a40820\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1374 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1375 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1376 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1377 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_MeasureCycle\")\r\n{\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"e78c25fc_f856_4c7d_bb7f6056d2ae0e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"4c0064bb_0c23_4648_b57e5599878d63f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqMeasurement\"), seqMeasurement);\r\n// }} \"\"\r\n// {{ 1380 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (seqMeasurement == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"a11073f7_18e2_4097_baf006ed44e74081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MeasurePositions\"), MeasurePositions);\r\n// }} \"\"\r\n// {{{ 1382 1 0 \"47d49bd0_0457_440d_b1d654c85ac3c5db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(MeasurePositions, seq);\r\n// }} \"\"\r\n// {{ 1383 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"bbddeeab_2dc4_4931_900a5ec07aafe0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, seqMeasure, seq);\r\n// }} \"\"\r\n// {{ 1385 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"6b06d7c5_bf98_48d9_906ae705e4ce149b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1387 1 0 \"25fe4c02_a4e2_40cd_91289dc1c5c638b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProbePattern\"), ProbePattern);\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"02a9e02a_0596_4158_ac021180b0b5985c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1389 1 0 \"f8080019_d032_4f0c_9ef8429bde9ee7df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"83142ee1_d831_4ff1_a6734844fe789421\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues);\r\n// }} \"\"\r\n// {{{ 1391 1 0 \"d4d4974a_23a2_43a2_851b478f0e7d24be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValues, flt_pHValues);\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"bde9c162_a4cf_40fa_a663c6b78e029610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1393 1 0 \"0a5c18e9_775d_4644_bdfcc536000642cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Measure Cycle\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1394 1 0 \"c1502c7b_2bd0_480c_a0ce6887e02484bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1395 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1396 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1397 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1398 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"d9d7f7cb_394b_40ea_a037e16efc8e063c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"0e65e09c_0178_403b_9eca768c440a479f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"fedae8c3_0c9d_426f_a30e8fdfa1d2b056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"ad8456a9_07be_4852_b2bab182e7e17dae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration1\"), Calibration1);\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"8b591ca2_adf8_4248_b5ac1fb2a84c21aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"0f28a5e9_278c_4290_aa9ee416f829755a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration2\"), Calibration2);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"b57e28d3_0011_4657_bbceba83ca97b89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2);\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"101798f0_c18a_411a_b29295d972cc9a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqReference\"), Reference);\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"1c415c8d_660d_41fe_a81fcfd6d8836038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Reference, seqReference);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"20510ceb_5840_48de_842a1b657fa7706d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationTime\"), CalibrationTime);\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"ecd67637_3e8e_4d22_89b67b39e05342fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1410 1 0 \"148b5d07_b84d_4786_b1d0f9d5e5837491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"938c1584_a353_4f03_ba14c9f33cc2c6a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue1\"), CalibrationValue1);\r\n// }} \"\"\r\n// {{{ 1412 1 0 \"cda9048b_fe59_4db2_a1d08550795038f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue2\"), CalibrationValue2);\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"5d669238_eb69_4080_8b789139b291be94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValueRef\"), CalibrationValueRef);\r\n// }} \"\"\r\n// {{{ 1414 1 0 \"4c7c9992_c2e0_445a_bee9cd7dd086e585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln1\"), TempSoln1);\r\n// }} \"\"\r\n// {{{ 1415 1 0 \"9574a12d_456e_4fd6_9b51714dd88b4a1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln2\"), TempSoln2);\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"211f81c7_5561_45ce_8cf247e76fb0f65e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSolnRef\"), TempSolnRef);\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"f812ea75_ed49_4a04_b4ab3dd67f1206ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrateDynamically\"), blnCalibrateDynamically);\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"178d95b8_13db_4493_a08cdaec1348c0e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"d4d33c2d_2aee_4a51_ad36cb953d687c83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{ 1420 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F882CD31309846e3BD30959B418AB982 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 1422 1 0 \"18724129_2443_4271_a6316a42ef334c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1423 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F882CD31309846e3BD30959B418AB982 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1424 1 0 \"d6c65e91_f6e8_47d9_aaf1810ffab1ffac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1425 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"7375b9e4_01c3_49a1_810fb42149ed0eea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios);\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"31ba6e89_258d_4deb_97352544c3b5c45c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution);\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"924064ec_85ac_4b42_a5ff3eb8a6a5342f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"65bd0fe0_0efb_4335_b118b89e61b948ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1430 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1431 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1432 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1433 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Dry\")\r\n{\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"0f0bf03e_4950_40e7_b2899f9cabb79cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1435 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1436 1 0 \"1885a8d9_8082_44ab_bfd7a217170187db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1437 1 0 \"33dddcad_4489_4f31_8b4fea145ebbe77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1438 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D19CA5AD1071407b84599779A41B51EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1439 1 0 \"d8f5d052_f205_4e22_8998e2d0d12790ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1440 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"5521c0c7_c64b_4b49_9036f9bf6a7a83d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1442 1 0 \"9e7864cd_a0bd_4ec6_8f733a2e7ab773bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1443 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1444 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1445 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1446 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"39b0590c_dc8d_4eb3_b8bfcab65235f494\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1448 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1449 1 0 \"beaffdda_e52a_4f79_95659f907946752f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1450 1 0 \"58aab21a_307b_403b_980186d201a7c6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1451 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1452 1 0 \"4cd2a753_2761_4d3c_9cd93c15fa19a47b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1453 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"0af219f8_e5bc_4b14_a95fd7e3f2ccb712\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"7b44ca9e_e6d7_4793_8f937fc518ecc41c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1456 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1457 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1458 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1459 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SetParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"7e5e111c_21f5_4c0b_9dd06d15aee64431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqGripper\"), Gripper);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"8417ab78_f4b8_40aa_890f3b14e4204667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Gripper, seqGripper);\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"f43d4896_c19a_4cc9_ad3c75f925788b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqWashPosition\"), WashPosition);\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"ffcc2479_6c91_4038_bab179b027d4b03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"b731d1c6_30bc_4003_ba19e062e82293db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqDryPosition\"), DryPosition);\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"a68ddb6b_780a_46ed_bcaa350f92f649fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition);\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"020f31e6_e3ef_48f4_af0e175e60e00159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TransportChannel\"), TransportChannel);\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"1561e8c8_acaa_438f_9c7c57a5c196556f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WashCycles\"), WashCycles);\r\n// }} \"\"\r\n// {{{ 1468 1 0 \"7e0a9629_dce6_4ed9_81b854f636408ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryCycles\"), DryCycles);\r\n// }} \"\"\r\n// {{{ 1469 1 0 \"dacc3c17_6358_44f0_8ac4ad1fa0ae08b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"f86b35ff_9db7_4845_a3cfb7d04c520c3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime);\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"ce0a2f35_ae58_4695_85513126a4acb791\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"da69f49c_299d_435d_9d95dc10f7303ce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"bd10bc62_2ace_436a_a68acec8c1f9287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1474 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1475 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1476 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1477 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Park\")\r\n{\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"90471824_8967_4383_a722d29bfaf60113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"f6bbc2b1_c86d_4f64_abc12d3b740b1d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"9341ffae_9e0c_43f9_b3ccedcfbadb07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"9e0a230a_fdb5_4eec_9cf3127779adb1d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"8aacb0d9_a918_426b_9717bd2febc1f74a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"15592ad5_5751_4636_8a513ee3f27c7f11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"6222366b_a5bf_4c73_8685a3cdebb4ff4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1485 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1486 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1487 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1488 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Pickup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1489 1 0 \"347e06d8_9db7_4279_bf224e9ecf4299e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"2b0761dc_e201_46b3_a590b52421cd8ee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1491 1 0 \"76631bc5_230e_4e20_87bf493887cddd0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1492 1 0 \"2d3aba8b_cc4b_4be1_a83c30695fcf6dbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1493 1 0 \"7879f9b5_2eea_4059_8e4bef3213e8decd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"cb1582a1_3f8c_44fd_910a5f08dbe32b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"a15fc9df_322f_4ce1_83228c63669e6b16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1496 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1497 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1498 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1499 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_ExtendedLog\")\r\n{\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"d101eee8_9402_428a_aa576d531ed959c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"bc849548_9009_43ec_bb1b6c81c32132f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1502 1 0 \"0a496202_0f55_4f40_8b391260caa236ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1503 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1504 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1505 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1506 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_LoadLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{ 1507 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B416552A06404ef48774D74059C2B182 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"154ec087_ea2e_4381_bb2e261ffad534f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1509 1 0 \"79340e9d_69d5_4911_b4601ae4754a16c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1510 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B416552A06404ef48774D74059C2B182 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1511 1 0 \"46420553_d90f_4dfa_b42c9d86856c288a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1512 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1513 1 0 \"54b468e0_3ea0_4e83_9ffae95722c5cb9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBluetoothPort = StrIStr(BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1514 1 0 \"7bde202f_1c1b_4911_9f600ac6e1a5b57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumWashCycles = StrIStr(NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1515 1 0 \"c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumDryCycles = StrIStr(NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"027378a7_4549_4d3f_b8d33aa4980be4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDryTime = StrIStr(DryTime);\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"fbda7cdb_3ed9_4a5c_907ce60556e0129b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1518 1 0 \"e454face_7eee_4c6e_a61e221c0e5d7fb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1519 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1520 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1521 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1522 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SaveLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{{ 1523 1 0 \"aca4c717_812e_46f9_8eb5989a720adb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BluetoothPort\"), BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"1198edc8_1ec9_479d_a4e7fd71ed50cf8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumWashCycles\"), NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"be958699_818e_43db_a757a67b7b54572a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumDryCycles\"), NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"8751a2c3_e6ee_43bf_b21f5458aebf179a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{ 1527 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4973F03471994119A9F699CE6459CBFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1528 1 0 \"1480ff51_54ea_4c38_befa457e23966aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1529 1 0 \"0e101f68_bc36_42fe_882a3951ef193f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1530 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4973F03471994119A9F699CE6459CBFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1531 1 0 \"2e180d98_e746_4b84_b623b4d0e8e198fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1532 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"cb24f9db_18c1_41af_b6f16900826be7be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"87c5e5f6_77ee_4519_879fdceaf21c1d7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1535 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1536 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1537 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1538 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"bdbbc648_a9fa_468f_b5d4d390115575eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1540 1 0 \"1a74d7ad_0c35_454c_b161ede32468b2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1541 1 0 \"c67afa78_dd60_451b_b2e31a2e6540f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1542 1 0 \"2424dca1_971a_40f8_97b763c253560a2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"8def2ba5_b51c_4e0c_b6ebfdd346a5beec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"684d328d_214e_4955_bfe9ff0627b7f8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"e6ec0fc8_d42c_4413_b2c2719c3cd18dc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"6f2273c4_1e1e_46f3_9ea6544d76383266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1547 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1548 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1549 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1550 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1551 1 0 \"b43cf782_b210_48c8_933f4cdfae78d050\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1552 1 0 \"efbfd98d_c15d_4ac9_b94250ab4361a8b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID);\r\n// }} \"\"\r\n// {{{ 1553 1 0 \"c918ad91_e33e_4f2f_9c6577fd8c93aaf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"2021a914_67dd_495e_9a9e4cf4438df298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1555 1 0 \"8d8842cd_e3b4_4397_92ad69593e9f7796\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1556 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1557 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1558 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1559 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1560 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1561 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1563 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1564 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1565 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1566 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1567 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1571 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1572 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1573 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1574 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1576 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1577 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1579 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1580 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1581 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1582 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1584 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1585 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1586 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1587 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1588 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1589 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1591 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1593 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1594 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1595 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1596 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1597 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1600 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1601 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1602 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1603 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1604 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1608 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1609 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1610 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1611 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1612 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1616 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1617 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1618 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1619 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1620 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1621 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1622 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1623 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1624 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1625 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1629 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1630 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1631 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1632 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1638 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1639 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1640 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1642 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1646 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1647 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1648 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1649 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1650 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1652 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1653 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1654 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1655 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1656 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1660 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1661 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1662 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1663 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1664 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1665 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1666 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1667 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1669 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1670 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1673 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1674 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1675 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1676 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1677 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1678 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1679 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1680 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1681 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1682 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1683 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1684 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1685 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1686 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1687 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1688 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1689 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1690 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1691 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1692 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1693 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1694 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1696 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1697 1 0 \"6957e247_4f64_4971_8d90658c99adbb87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{{ 1698 1 0 \"34cc8f4a_c310_4eb7_b936c63f8401c523\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1699 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1700 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1701 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1702 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1705 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1706 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1707 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1708 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1709 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1710 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1711 1 0 \"dd7d7b00_1e95_4e45_97a425f03a18ab04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{{ 1712 1 0 \"0021495f_472e_4321_9d1e81e8fbd43f0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1713 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1714 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1715 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1716 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1717 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1718 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1719 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1720 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1721 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1722 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1723 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1724 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1725 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1726 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1727 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1728 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1729 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1730 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1731 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1732 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1733 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1734 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1735 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1736 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1737 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1738 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1739 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1740 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1741 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1742 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1743 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1744 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1745 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1746 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1747 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1748 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1749 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1750 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1751 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1752 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1753 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1754 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1755 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1756 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1757 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1758 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1759 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1760 1 0 \"c0166b97_c0ae_417b_85c90c5ef42e5fc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1761 1 0 \"73777071_2fd2_42b0_a7545c6a6a372194\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1762 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1763 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1764 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1765 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1766 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1767 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1768 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1769 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1770 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1771 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1772 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1773 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1774 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1775 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1776 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1778 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1779 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1780 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1781 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1782 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1783 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1784 1 0 \"ecd6d069_96d7_4a72_9ffc0df77e7a1512\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1785 1 0 \"b05c868f_c25f_47a9_b533b13ab05fc962\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1786 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1787 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1788 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1789 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1790 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1791 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1792 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1793 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1794 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1795 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1796 1 0 \"c99aa2b7_d8a6_4cee_a1fa1d731ef77d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1797 1 0 \"f2861b4d_28d2_4ee3_8b7c7763312067ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1798 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1799 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1800 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1801 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1802 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1803 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1804 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1805 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1806 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1807 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1808 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1809 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1810 1 0 \"a650efc1_423b_4f75_9f0da083ee44ae9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{{ 1811 1 0 \"e1ef0806_8a47_46c1_972c9ed9e299eaad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1812 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1813 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1814 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1815 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1816 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1817 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1818 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1819 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1820 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1821 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1822 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1823 1 0 \"b417b8ce_5117_450e_93a9a6243c6011d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{{ 1824 1 0 \"ed43cecb_7012_4fb9_a89d129de09bdadb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1825 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1826 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1827 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1828 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1829 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1830 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1831 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1832 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1833 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1834 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1835 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1836 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1837 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1838 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1839 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1840 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1841 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1842 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1843 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1844 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1845 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1846 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1847 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1848 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1849 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1850 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1851 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1852 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1853 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1854 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1855 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1856 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1857 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1858 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1859 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1860 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1861 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1862 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1863 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1864 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1865 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1866 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1867 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1868 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1869 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1870 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1871 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1872 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1873 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1874 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1875 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1876 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1877 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1878 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1879 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1880 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1881 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1882 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1883 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1884 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1885 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1886 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1887 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1888 1 0 \"73be1c30_4bfe_4a0f_aa560c8df5b091fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1889 1 0 \"39ac643d_0305_4ec6_87fc196efe3d76f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1890 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1891 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1892 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1893 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1894 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1895 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1896 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1897 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1898 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1899 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1900 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1901 1 0 \"272104de_2e64_4a32_a88407b030437361\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1902 1 0 \"1362f66b_0efd_4eb5_935e84586a427637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1903 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1904 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1905 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1906 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1907 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1908 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1909 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1910 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1911 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1912 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1913 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1914 1 0 \"cf1b40c4_5e9a_48bf_9390f6eab212315f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1915 1 0 \"2e7a5304_5ce9_4afb_93a4a8276dc86d74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1916 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1917 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1918 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1919 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1920 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1921 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1922 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1923 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1924 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1925 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1926 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1927 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1928 1 0 \"4b29337f_c67c_4ecf_a205f4b70e60271a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1929 1 0 \"40aad8b7_f42e_4ad1_b0f0c033ec666548\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1930 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1931 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1932 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1933 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1934 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1935 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1936 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1937 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1938 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1939 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1940 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1941 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1942 1 0 \"dfb61f9c_103b_4c42_83e0779ea05cb180\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{{ 1943 1 0 \"e4829da3_d8b6_453f_a2be82213303e9f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1944 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1945 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1946 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1947 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1948 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1949 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1950 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1951 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1952 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1953 1 0 \"ee3103a2_d7f3_488f_b7a95e2f2b56770a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{{ 1954 1 0 \"a782313c_e15b_4340_bdda314f926e24cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1955 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1956 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1957 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1958 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1959 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1960 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1961 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1962 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1963 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1964 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1965 1 0 \"b5ecca33_fef4_4c14_9cf702c924839607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1966 1 0 \"49e72e72_8e49_49fd_8d212a6ccff1d2fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1967 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1968 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1969 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1970 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1971 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1972 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1973 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1974 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1975 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1976 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1977 1 0 \"d186dde8_c684_4550_a023d9023ff021d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1978 1 0 \"af12e4a9_cc0f_4a82_b9593d2b489756a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1979 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1980 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1981 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1982 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1983 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1984 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1985 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1986 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1987 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1988 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1989 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1990 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1991 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1992 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1993 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1994 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1995 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1996 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1997 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1998 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1999 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2000 1 0 \"3b2abeec_38f4_46a6_a30b0d0126280ebc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2001 1 0 \"c4e94e42_8405_438b_921cfe4ba73e9976\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2002 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2003 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2004 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2005 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2006 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2007 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2008 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2009 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2010 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2011 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2012 1 0 \"5aa60a5a_db92_42e0_b3277a41cacb5336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2013 1 0 \"49cd8e9e_91bd_468c_aec57e3af40280fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2014 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2015 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2016 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2017 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2018 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2019 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2020 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2021 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2022 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2023 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 2024 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 2025 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 2026 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 2027 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 2029 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2030 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2031 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 2032 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2033 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 2034 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2035 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 2036 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2037 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2038 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2039 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2040 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2041 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2042 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2043 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2044 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2045 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2046 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2047 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2048 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Hamilton$$valid=0$$time=2024-09-06 15:33$$checksum=6be64d0a$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx4005.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2213 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2173 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2174 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2175 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2176 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2177 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2178 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2194 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2195 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2196 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2197 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2198 1 0 \"73659ac2_f808_47cc_89196cc3adc8efbf\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\ntimer1.SetTimerViewName(\"\");\r\nif( 0 == timer1.SetTimer(0.05) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2199 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2200 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2201 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2202 1 0 \"9be29cc7_ad35_4b87_9e95d31796325e12\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2203 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2204 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2205 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2206 1 0 \"2a039f02_4c13_4f72_9ba40a3121b31262\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2207 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2208 1 0 \"d221d799_ee85_4f6d_a40a06cc0a69a3de\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\ntimer1.SetTimerViewName(\"\");\r\nif( 0 == timer1.SetTimer(0.05) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2209 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2210 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2211 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2144 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2145 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2146 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2147 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2148 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2149 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2150 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2151 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2153 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2154 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2086 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2087 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2088 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2089 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2090 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2091 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2092 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2093 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2094 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2095 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2096 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2097 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2098 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2188 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2189 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2190 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2191 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2060 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2061 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2062 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2063 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2064 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2065 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2066 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2067 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2069 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2070 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2071 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2072 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2073 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2074 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2075 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2076 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2077 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2078 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2079 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2080 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2081 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2082 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2083 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2084 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2050 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2051 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2052 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2053 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2054 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2055 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2056 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2057 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2058 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2106 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2107 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2109 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2110 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2112 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2114 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2115 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2116 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2118 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2119 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2120 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2121 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2122 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2123 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2124 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2125 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2126 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2127 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2129 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2130 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2131 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2132 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2134 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2135 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2136 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2137 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2138 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2139 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2141 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2142 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2156 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2157 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2159 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2160 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2161 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2162 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2164 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2165 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2166 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2167 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2169 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2170 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2171 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2180 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2181 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2182 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2183 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2184 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2185 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2186 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"Begin\"\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable {\r\n// }} \"\"\r\n// {{ 5 \"ConvertHSSErrCode\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2100 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (hssErrCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2101 1 0 \"9f0ce7fc_13c6_4496_9d762a07174e50f1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (1);\r\n// }} \"\"\r\n// {{ 2102 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2103 1 0 \"4c347e8c_4bce_4fd2_9771e3402c6f946d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2024-09-06 15:33$$checksum=400be611$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx4005.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx48F0.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT_PH {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Enable_Extended_Log( variable & o_stepReturn ) void ;\r\nfunction pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void ;\r\nfunction pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void ;\r\nfunction pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Template( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"pH_Measure\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 61 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2E2474F7607B4feb8948B25BBE3B49F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 62 1 0 \"2394bca1_88c0_4399_ab04a338af9f5010\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4);\r\n// }} \"\"\r\n// {{ 63 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2E2474F7607B4feb8948B25BBE3B49F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 64 1 0 \"d771a760_6814_4866_a12a03881c971346\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 65 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate\" \"Begin\"\r\nfunction pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Calibrate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ADDE389AF4C7414193E7475BFBC151C7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"9742609f_32c7_419d_8ec016c662c584c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Calibrate(i_intModuleID, i_intCalibrationLevel, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern);\r\n// }} \"\"\r\n// {{ 3 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ADDE389AF4C7414193E7475BFBC151C7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"8904566e_857b_47da_868f8d8e8444f2bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 5 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Template\" \"Begin\"\r\nfunction pH_Template( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Template\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 145 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EBDA9B022DA24dd7955D30E2549FDE5B ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 146 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EBDA9B022DA24dd7955D30E2549FDE5B : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 147 1 0 \"a89bc761_6592_4106_a0acdd14e73bc5d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 148 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Template\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate_Dynamically\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Calibrate_Dynamically\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 7 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_94CD08297F814239B0B11419D328505E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 8 1 0 \"5f0f28e4_2d10_486d_a5f025fe43a57dfd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::CalibrateDynamically(i_intModuleID, i_intCalibrationLevel, i_intVariance, i_intTimeout, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern);\r\n// }} \"\"\r\n// {{ 9 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_94CD08297F814239B0B11419D328505E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 10 1 0 \"276c7958_53d6_44c9_bdc01f6b0631af18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 11 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate_Dynamically\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Enable_Extended_Log\" \"Begin\"\r\nfunction pH_Enable_Extended_Log( variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Enable_Extended_Log\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 43 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6213D20124C149648FFCCD6E66E53566 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 44 1 0 \"cfadb79c_ec52_4a4c_8c613ef78f0d979e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::EnableExtendedLog();\r\n// }} \"\"\r\n// {{ 45 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6213D20124C149648FFCCD6E66E53566 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 46 1 0 \"352e0c88_c061_4d35_a4aeefb9fd441f38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 47 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Enable_Extended_Log\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Get_Last_Error\" \"Begin\"\r\nfunction pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Get_Last_Error\" \"InitLocals\"\r\no_strLastError = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 49 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 50 1 0 \"1bbf5668_7da2_4593_a954eb5c20baf705\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::GetLastError(i_intModuleID, o_strLastError);\r\n// }} \"\"\r\n// {{ 51 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 52 1 0 \"1340b7b5_ecea_4308_8a8ee7d11c70edc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 53 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Get_Last_Error\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Initialize\" \"Begin\"\r\nfunction pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Initialize\" \"InitLocals\"\r\no_intModuleID = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 55 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_970E55A20F9F4e42B517C5847AEB8E38 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 56 1 0 \"297fb019_93d9_4b46_a56c3a32731a402d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Initialize(i_intComport, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 57 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_970E55A20F9F4e42B517C5847AEB8E38 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 58 1 0 \"911745ea_61cd_4f58_b8e0704906ebf222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 59 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure_Dynamically\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure_Dynamically\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 67 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AA203E903AF848e0B0529507465A94E1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 68 1 0 \"b4fb2269_5bd3_4f6c_8660501f53441522\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 69 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AA203E903AF848e0B0529507465A94E1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 70 1 0 \"b05cdfa7_6391_4ff4_81ed18ac5f6a52e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 71 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure_Dynamically\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Battery_Data\" \"Begin\"\r\nfunction pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Battery_Data\" \"InitLocals\"\r\no_strReplacementDate = 0;\r\no_intChargeCounter = 0;\r\no_intBatteryCondition = 0;\r\no_intActualCharge = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 73 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_996D8DE608A04eacBD637370A8B07B64 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 74 1 0 \"da6aa4ae_3fb0_4dcb_a2a72e6dbb23e4e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, o_intBatteryCondition, o_intActualCharge);\r\n// }} \"\"\r\n// {{ 75 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_996D8DE608A04eacBD637370A8B07B64 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 76 1 0 \"374fab67_3d2c_479b_824c5098139051de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 77 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Battery_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Calibration_Values\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Calibration_Values\" \"InitLocals\"\r\no_fltpHLowValue = 0;\r\no_fltpHLowVoltage = 0;\r\no_fltpHHighValue = 0;\r\no_fltpHHighVoltage = 0;\r\no_fltCalibrationTemperature = 0;\r\no_fltCalibrationOffset = 0;\r\no_fltCalibrationSlope = 0;\r\no_intCalibrationSlopeRation = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 79 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A458A465FAAE4354AE920AE0DDDD5DCA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 80 1 0 \"be826faa_b99a_4b0d_8bcfd9b9e6f58c1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 81 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A458A465FAAE4354AE920AE0DDDD5DCA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"3beb4db8_474e_4c8b_8c2a3a46b738bdbe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 83 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Calibration_Values\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Probe_Data\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Probe_Data\" \"InitLocals\"\r\no_strReplacementDate = 0;\r\no_intMeasurementCounter_Probe_1 = 0;\r\no_intMeasurementCounter_Probe_2 = 0;\r\no_intMeasurementCounter_Probe_3 = 0;\r\no_intMeasurementCounter_Probe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 85 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A2F80039318F4807A9355EEE8F65F09D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 86 1 0 \"39f96463_bf0a_478e_99d106ede0c66ca8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 87 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A2F80039318F4807A9355EEE8F65F09D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 88 1 0 \"c289098d_bcc1_49b8_acdb3d5a56078d64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 89 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Probe_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Technical_Data\" \"Begin\"\r\nfunction pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Technical_Data\" \"InitLocals\"\r\no_intPartNumber = 0;\r\no_intRevision = 0;\r\no_intSerialNumber = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 91 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_903977FAFD2C4e8bB89D056988CC3EF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 92 1 0 \"7b65b46f_5b72_4640_9861bacd4ace5643\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::RequestTechnicalData(i_intModuleID, i_intHardwareNumber, o_intPartNumber, o_intRevision, o_intSerialNumber);\r\n// }} \"\"\r\n// {{ 93 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_903977FAFD2C4e8bB89D056988CC3EF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 94 1 0 \"0381375a_eba4_4614_93c926558c2d7558\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 95 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Technical_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Voltage_Data\" \"Begin\"\r\nfunction pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Voltage_Data\" \"InitLocals\"\r\no_varVoltageData = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 97 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_44952D3849BE4a219EFD38455D886E56 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 98 1 0 \"4a76ad62_352e_40ca_81088288e34cdeee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::RequestVoltageData(i_intModuleID, i_intSelector, o_varVoltageData);\r\n// }} \"\"\r\n// {{ 99 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_44952D3849BE4a219EFD38455D886E56 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 100 1 0 \"043b5397_9bb9_4522_978d64f42943ee9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 101 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Voltage_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Battery_Replacement_Date\" \"Begin\"\r\nfunction pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Battery_Replacement_Date\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 103 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C13705D0B70B4e8eAA80912053CAC1F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 104 1 0 \"b9ab604b_ca72_4ee2_b99c1a7872da4624\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetBatteryReplacementDate(i_intModuleID, i_intDay, i_intMonth, i_intYear);\r\n// }} \"\"\r\n// {{ 105 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C13705D0B70B4e8eAA80912053CAC1F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 106 1 0 \"bbb0d55f_6f61_4bd2_9477cf3936b9472e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 107 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Battery_Replacement_Date\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Charge_Parameters\" \"Begin\"\r\nfunction pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Charge_Parameters\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 109 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4A84194D248D4b0088B93676813BEE2D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 110 1 0 \"c35f1bf8_8cea_4986_96ba8ef0097524c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetChargeParameters(i_intModuleID, i_blnCharge, i_blnAutoCharge, i_intChargeLevel);\r\n// }} \"\"\r\n// {{ 111 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4A84194D248D4b0088B93676813BEE2D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 112 1 0 \"ed302be8_6fd1_4215_80f039adbe780f7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 113 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Charge_Parameters\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Probe_Replacement_Date\" \"Begin\"\r\nfunction pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Probe_Replacement_Date\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 115 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_244E236DDAAF4536B249F6D8792A60A2 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 116 1 0 \"d9b9ef0e_6c6d_4272_97b55d209307f7e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetProbeReplacementDate(i_intModuleID, i_intProbe, i_intYear, i_intMonth, i_intDay);\r\n// }} \"\"\r\n// {{ 117 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_244E236DDAAF4536B249F6D8792A60A2 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 118 1 0 \"4ebc6879_cd2b_448a_b753ab26b9645392\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 119 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Probe_Replacement_Date\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Shutdown\" \"Begin\"\r\nfunction pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Shutdown\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 121 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 122 1 0 \"3b63fd46_6389_405c_8940455e9f127468\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetShutdown(i_intModuleID, i_intMode);\r\n// }} \"\"\r\n// {{ 123 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7907B9BE9B2647d09FEC0DD2979D5B14 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"804cd242_3933_4e99_a96c4367bbe3f9ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 125 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Shutdown\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Technical_Data\" \"Begin\"\r\nfunction pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Technical_Data\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 127 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_007BB8AFAE534922B6C5EA899698EA91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 128 1 0 \"8dd87239_734f_4123_90ead0ba65f0bbbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetTechnicalData(i_intModuleID, i_intHardwareNumber, i_intPartNumber, i_intRevision, i_intSerialNumber);\r\n// }} \"\"\r\n// {{ 129 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_007BB8AFAE534922B6C5EA899698EA91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ebf84842_e475_488c_9862aa5015f5fec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 131 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Technical_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Trace_Level\" \"Begin\"\r\nfunction pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Trace_Level\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 133 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E054D9949EA7480786FBA86809E1466A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 134 1 0 \"6047012d_fb0a_4b7e_8aaf873bfe7845f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 135 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E054D9949EA7480786FBA86809E1466A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 136 1 0 \"555d191a_8248_46cf_8ea20adfafc8467f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 137 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Trace_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Sleep\" \"Begin\"\r\nfunction pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Sleep\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 139 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_76094A1A6DE5412d86AB364ECCABC11C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 140 1 0 \"2a282561_49e7_4e38_9a879c795b444f19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Sleep(i_intModuleID);\r\n// }} \"\"\r\n// {{ 141 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_76094A1A6DE5412d86AB364ECCABC11C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 142 1 0 \"e0169354_be6f_4f1f_8bdafe388a9c4771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 143 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Sleep\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Terminate\" \"Begin\"\r\nfunction pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 150 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2159C97E67DC41d2931B29ED5B108588 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 151 1 0 \"5eafa92d_a6f8_43b4_85d53439a46b7150\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Terminate(i_intModuleID);\r\n// }} \"\"\r\n// {{ 152 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2159C97E67DC41d2931B29ED5B108588 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"c747eb9a_16b7_4375_a0b8c1fa3905f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 154 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Wakeup\" \"Begin\"\r\nfunction pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Wakeup\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 156 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AC33764C04E24aa192975F20CE5661F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 157 1 0 \"b874aa08_e28d_448b_bcb942611cb0081e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{ 158 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AC33764C04E24aa192975F20CE5661F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"0bb81b5c_7196_46bd_a008386d79a49a7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 160 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Wakeup\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Initialize\" \"Begin\"\r\nfunction pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 162 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7FD13D87F8D74230A78B98C5B83581AE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 163 1 0 \"407cb5f5_2a38_472f_b4bf70af1717b0f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Washer_Module::Initialize(ML_STAR, i_intComport, i_strModuleName, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 164 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7FD13D87F8D74230A78B98C5B83581AE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 165 1 0 \"dba61f0e_40e0_4580_a0521efc45217200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 166 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Set_Trace\" \"Begin\"\r\nfunction pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Set_Trace\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 168 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 169 1 0 \"878952e6_2860_4a96_a9c8d7f2ae67c7a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 170 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B6EDA3032F05464e9D3AC6C60F6B38DD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 171 1 0 \"0f963a42_c256_489a_aaa94e1febe27518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 172 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Set_Trace\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Terminate\" \"Begin\"\r\nfunction pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 174 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3C057778551F44998B365E9253A02217 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 175 1 0 \"d4227020_99a1_4aa0_9d6e084149e70033\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::Terminate(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 176 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3C057778551F44998B365E9253A02217 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"66061ca5_5cc5_4d0f_9202635c03ec1307\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 178 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Wash\" \"Begin\"\r\nfunction pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Wash\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 180 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_78E848113B364c5bA57553087E6B301D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 181 1 0 \"f05733be_cfcc_4ec8_b953e718e1850a9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::Wash(ML_STAR, i_intModuleID, i_intCycleNumber);\r\n// }} \"\"\r\n// {{ 182 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_78E848113B364c5bA57553087E6B301D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 183 1 0 \"c9e18e37_6611_4c12_8283218c23b61e2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 184 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Wash\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Initialize\" \"Begin\"\r\nfunction pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Initialize\" \"InitLocals\"\r\no_intModuleID = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 13 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_5DF85C91FEE34492A487BBB5FD9647BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 14 1 0 \"05f15313_9f49_451a_95bbeb4c53196bc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::Initialize(ML_STAR, i_strModuleName, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 15 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_5DF85C91FEE34492A487BBB5FD9647BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 16 1 0 \"ab7a6bde_3380_4c1c_9e57ee94fd815540\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 17 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Set_Trace\" \"Begin\"\r\nfunction pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Set_Trace\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 19 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C2938C2495A74c4cA632332F553DD428 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 20 1 0 \"3cc57734_cda6_468c_a2c90189391dadd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 21 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C2938C2495A74c4cA632332F553DD428 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 22 1 0 \"b9209d93_3ded_4c38_96bc13f91674c01c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 23 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Set_Trace\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StartDrying\" \"Begin\"\r\nfunction pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_StartDrying\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 25 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_04151AE1B5D4492089F91C4D24DFB4D1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 26 1 0 \"689c20eb_6a9d_4a74_88f159552e3027f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::StartDrying(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 27 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_04151AE1B5D4492089F91C4D24DFB4D1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 28 1 0 \"adeee0f8_b525_41bd_a62b5edf9d117c6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 29 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StartDrying\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StopDrying\" \"Begin\"\r\nfunction pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_StopDrying\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 31 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A4169CBA98C24da39C38331F531BB852 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 32 1 0 \"db4fe054_872e_4452_8835e28b39a4ad1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 33 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A4169CBA98C24da39C38331F531BB852 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"47b1bc71_479a_474d_a5b3c1fe4e31d5e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 35 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StopDrying\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Terminate\" \"Begin\"\r\nfunction pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 37 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_976FC1B840694cb598ACF66A1DAAA974 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 38 1 0 \"59fd889e_96a4_4c23_a1f9d3304535be72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 39 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_976FC1B840694cb598ACF66A1DAAA974 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"6d67118e_7746_4fb9_aa5ef1f641c11cb5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 41 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-10-03 21:03$$checksum=596532a0$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx48F0.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx5A3E.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\nglobal device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable fanSpeed;\r\nvariable persistant;\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 73 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 74 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 75 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 79 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 80 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 81 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 82 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 83 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 86 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 87 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 88 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 89 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 90 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 91 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 92 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 96 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 97 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 98 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 100 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 111 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 112 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 113 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 115 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 116 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 117 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 118 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 124 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 125 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 126 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 127 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 128 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 129 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 132 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 133 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 134 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 135 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 136 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 138 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 139 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 140 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 141 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 142 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 143 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 144 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 145 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 147 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 148 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 149 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 150 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 151 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 152 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 155 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 156 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 157 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 159 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 160 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 161 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 162 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 163 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 164 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 165 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 166 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 169 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 170 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 171 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 174 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 177 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 178 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 179 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 183 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 184 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 185 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 186 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 187 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 189 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 190 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 191 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 192 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 200 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 201 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 203 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 204 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 205 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 207 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 216 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 217 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 219 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 221 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 222 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 223 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 225 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 226 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 227 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 228 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 236 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 237 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 239 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 240 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 244 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 245 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 246 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 248 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 249 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 250 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 251 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 252 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 253 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 254 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 255 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 256 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 258 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 259 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 260 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 261 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 262 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 265 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 266 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 268 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 269 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 270 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 271 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 272 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 273 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 274 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 275 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 276 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 277 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 278 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 279 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 280 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 281 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 282 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 283 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 286 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 287 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 288 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 289 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 294 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 295 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 296 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 298 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 299 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 301 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 302 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 303 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 304 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 305 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 306 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 307 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 308 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 309 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 310 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 311 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 312 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 313 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 316 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 317 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 319 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 320 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 321 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 322 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 324 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 325 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 326 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 327 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"27439ab7_df5a_4e1b_99b64e6c9fd0d9f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 330 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 331 1 0 \"e2da0756_7cea_44e7_963442343f3c0732\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 332 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 333 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 335 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 336 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 337 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 338 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 339 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 340 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 341 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 344 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 345 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 348 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 351 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 352 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 353 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 354 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 355 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 356 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 357 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 358 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 359 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 360 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 361 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 362 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 363 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 364 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 365 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 366 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 367 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 368 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 370 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 372 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 373 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 375 1 0 \"e411727d_3702_4640_8cb2d7ab8b58a300\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 376 1 0 \"ed119e90_c1cf_47e9_882c9179c7675524\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 377 1 0 \"006e4737_2b28_4b29_88cabf15c00d0b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 378 1 0 \"7424658f_9b27_4ef0_96837fa8add4c1ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 379 1 0 \"18dba370_9751_4c10_938c0dcc1f09476a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"ba1314c5_bdbb_4947_b8ee11ecc5c9306e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"2de0b12d_07d0_4e02_aeb0adc84a286d4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 382 1 0 \"62251128_9c16_4b76_a74221e3e5485ec4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 383 1 0 \"991ef31e_cf56_46cb_a1b5023d16177201\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 384 1 0 \"a7e77649_9eb2_4bbe_8d4df91d28ca2833\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 385 1 0 \"bce9279a_be9d_4a51_b382d782fe953b4f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 386 1 0 \"cae1eeb4_415a_4ca2_9cbdc8fbd7bcb5ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 387 1 0 \"47122b9f_c6d0_4a2d_aab3313da595b6db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 388 1 0 \"b3579536_edb4_4221_babfa43071cf483f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 389 1 0 \"4a408dec_c225_49ad_bf9a34fc001001a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 390 1 0 \"254c5a0f_44da_4098_b535a89623fde4e9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"ce8d1267_fa97_4dc5_a35fdb48eed4af6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 392 1 0 \"267e45b6_811f_46eb_a5cf5dcb26fa4ab0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"40e3aef8_bb0d_49d2_be4badbbed382613\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 394 1 0 \"83550ea0_852b_4084_b34f7fcfd03b6bdf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 395 1 0 \"48212cee_a3fa_4708_951f45d7135865bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 396 1 0 \"7424658f_9b27_4ef0_96837fa8add4c1ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 397 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 398 1 0 \"fbc3301f_ce0a_48d5_ad28d0de566e8968\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 399 1 0 \"a6a66731_2fea_4358_8cc6545cbb29217a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 400 1 0 \"ff2e3d36_c066_4d66_b6acbb2d01d07322\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 401 1 0 \"a6a66731_2fea_4358_8cc6545cbb29217a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 402 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 403 1 0 \"40ff9454_596f_42b1_a566d8ee6f7e392c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 404 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 405 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 406 1 0 \"905809a6_70ea_4397_b8baecc2ca9a1bd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 407 1 0 \"a70a035b_d0bc_4cc3_917340dffbf2ee6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 408 1 0 \"3f92b115_b29a_4772_955189aa840c37db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 409 1 0 \"a70a035b_d0bc_4cc3_917340dffbf2ee6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 410 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 411 1 0 \"ca37a475_a69e_4367_aae015a113535d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 412 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 413 1 0 \"6767b91d_ea7b_4619_b57b512927b0cb6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"034d46bd_e017_4e49_bda2a918b966a9ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"2167695b_833d_4537_b1ca621cd9cb254f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 416 1 0 \"006e4737_2b28_4b29_88cabf15c00d0b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 417 1 0 \"ed119e90_c1cf_47e9_882c9179c7675524\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 418 1 0 \"2d45fcde_698f_4b1e_85c2b355d05ece3f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 419 1 0 \"664c8ad8_1978_406c_ba006c21ee6cdc2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 420 1 0 \"8dc2ff24_58d0_4fb9_b4476261c7ec9f73\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 421 1 0 \"4b09b616_7ad2_4d2f_a3f51c49956f7d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"784d4df8_3b6e_41d3_ac01d0b30128d63d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"ce22c98b_cefd_44e1_a21f17817fa26757\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 424 1 0 \"8dc2ff24_58d0_4fb9_b4476261c7ec9f73\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 425 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 426 1 0 \"19bdcb09_5067_4650_a51d59790ea58358\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 427 1 0 \"6bb5085c_63ec_4166_b16d4b088bf17a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"bbcdaabe_ca2a_4ec9_9c13e083f812412a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 429 1 0 \"6bb5085c_63ec_4166_b16d4b088bf17a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 430 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 431 1 0 \"69b92e0b_ba29_42dc_a6d5ea83701df138\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 432 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 433 1 0 \"4f9e972e_7acd_45bc_9ed8d7ec3835b42b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 434 1 0 \"57844fa2_0bdc_4ba5_aea223c87eb45a0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 435 1 0 \"cf9a830f_2fb4_44b1_8226f2041b55c305\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 436 1 0 \"664c8ad8_1978_406c_ba006c21ee6cdc2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 437 1 0 \"2d45fcde_698f_4b1e_85c2b355d05ece3f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 438 1 0 \"9d132be9_3327_43f0_861eab191b312efe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 439 1 0 \"f6cc8299_2f28_46a6_9bb97037e5dc466a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 440 1 0 \"ea361219_5a73_449b_9e9f28937269d164\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 441 1 0 \"9271e4c5_3af5_416a_b4ff109847510419\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 442 1 0 \"56a04f09_338f_4736_aca6e9c2d81e2c66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 443 1 0 \"1e90c36e_9422_4cbb_8894ee0ca1ecb7a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"2fb72d08_217e_46b5_974400449189f377\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"83dd7d6c_87dd_4660_8113302408cde86f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"3619d2e6_ca56_4e64_93bc2c4e763b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 447 1 0 \"60a67018_c240_43a5_9f44311bc1e98746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 448 1 0 \"c33ebbef_42a4_46fd_9a8469f9e411c897\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 449 1 0 \"20603c7b_d59a_4c57_96ee9752927ff64f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 450 1 0 \"1e3f75b9_3592_485c_8b2d352f72a3c437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 451 1 0 \"ea361219_5a73_449b_9e9f28937269d164\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 452 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 453 1 0 \"768ae6ad_e584_4b00_8ded5be49db3ac78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e9be51d0_8991_4d2b_8f1e4353bb247c8c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 455 1 0 \"2bdfa4de_1f49_4935_801ba5f52847fdc3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 456 1 0 \"e9be51d0_8991_4d2b_8f1e4353bb247c8c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 457 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"8ad7936f_b4fc_4d56_b2a69c2117a3e2c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 459 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 461 1 0 \"ae513bfa_0e69_4286_982d555c61b04bea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 462 1 0 \"d58b1c9a_619d_4564_b7013ae9300a62c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 463 1 0 \"c6f18361_c2d4_497e_b3568731fe7f72c5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 464 1 0 \"d58b1c9a_619d_4564_b7013ae9300a62c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 465 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 466 1 0 \"a1ed641c_3701_495f_ab89e05bf92c5b2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 467 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 468 1 0 \"f6d60a86_5450_40d3_be3b7f2c660e2fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 469 1 0 \"4805700b_6f6f_426a_9bcbf4176c6fb71f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 470 1 0 \"74998056_c8c5_4618_88757b8da6932071\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 471 1 0 \"f6cc8299_2f28_46a6_9bb97037e5dc466a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 472 1 0 \"9d132be9_3327_43f0_861eab191b312efe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 473 1 0 \"3625fde9_51e1_4bb2_84181491a737c26b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"82f46916_6725_423b_bde46572a3389992\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 475 1 0 \"bfcf1a15_a297_4990_80d9119c099d7671\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 476 1 0 \"c7a26fdd_6c33_4ae6_a90ef3acfdc7f489\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 477 1 0 \"bfcf1a15_a297_4990_80d9119c099d7671\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 478 1 0 \"34a065e0_018c_461b_87990a6c61147520\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"3c7ef19d_c34c_4a13_86e9e970b61a69e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"cb13151a_7bef_4779_99b9954f02aea276\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 481 1 0 \"82f46916_6725_423b_bde46572a3389992\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"3625fde9_51e1_4bb2_84181491a737c26b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"e411727d_3702_4640_8cb2d7ab8b58a300\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 484 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 485 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 486 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 487 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 488 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 490 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 491 1 0 \"4e026721_fd49_4127_87fda5791fa13eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 492 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 493 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 494 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 495 1 0 \"7066bb37_8c48_474d_8f467cf1f1e06a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 496 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 497 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 498 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 499 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 500 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 501 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 502 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 503 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 504 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 505 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 506 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 507 1 0 \"7f473860_0be7_4dc2_87423136869dd829\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 508 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 509 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 511 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 512 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 513 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 516 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 517 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 518 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 519 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 520 1 0 \"53df6909_1d0e_4001_ac674452fec957bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 521 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 522 1 0 \"85d76321_871e_4d0e_bb460b7513742e62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 525 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 526 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 527 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 528 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 529 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 530 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 531 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 532 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 533 1 0 \"6ba4b834_521a_46da_9ceb8ced08da95f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 534 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 535 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 536 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 537 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 541 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 542 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 543 1 0 \"20e2b3e5_8664_4809_9bcf626c89196333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 544 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 545 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 546 1 0 \"38e3e61d_a654_46f5_87f53cf7dfc09446\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 547 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 548 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 549 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 551 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 552 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 553 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 554 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 555 1 0 \"d92781d1_27c2_48fb_acfd9cb32428e910\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 556 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 557 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 558 1 0 \"19daab0c_59b0_4af8_a070bee39acf20c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 559 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 560 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 561 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 563 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 564 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 565 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 566 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 567 1 0 \"df61bf49_7625_493f_ad06bbdbb36b494a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 568 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 569 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 570 1 0 \"accda6cd_138b_411c_bf3af9b152e986c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 571 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 572 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 573 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 574 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 575 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 576 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 577 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 578 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 579 1 0 \"8d513473_33ad_47dc_a8c3ed9799195b58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 580 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 581 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 582 1 0 \"ee004b75_f488_428e_99b02212bd478984\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 583 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 584 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 585 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 586 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 587 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 588 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 589 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 590 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 591 1 0 \"4f9610c2_a783_4586_b1725e8904e476cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 592 1 0 \"eea3f2ce_93c1_4efd_be90b89d775a6867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 593 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 594 1 0 \"ad6b8668_d455_40f9_9e64eac973c2db0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 595 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 596 1 0 \"81e3038e_a3ea_4252_a09b14cd3de477a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 597 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 598 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 599 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 600 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 601 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 602 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 603 1 0 \"a54c8c75_1172_46d3_a61e71fe7fea812d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 604 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 605 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 606 1 0 \"e9f473e4_b341_4e28_8c5c444235409181\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 607 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 608 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 609 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 610 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 611 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 612 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 613 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 614 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 615 1 0 \"19a32be3_7476_425d_a82433aead4637cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 616 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 617 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 618 1 0 \"81e1a27f_16e2_44ed_b7cd3b11ac866a97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 619 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 620 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 621 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 622 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 623 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 624 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 625 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 628 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 629 1 0 \"84b0a5f3_5e82_4770_81998131d1071a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 630 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 631 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 632 1 0 \"f46c286b_9141_4717_ac23994f8defc186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 633 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 634 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 635 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 636 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 637 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 638 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 639 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 641 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 642 1 0 \"a9029174_cbad_4f9c_9ca65c3b9497d605\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 643 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 644 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 645 1 0 \"bb948751_9e18_4aa8_b86a3dd67208967f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 646 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 647 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 648 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 649 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 650 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 651 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 652 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 655 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 656 1 0 \"d7ecab6c_533b_4d98_97e3fd144551f6d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 657 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 658 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 659 1 0 \"96075a25_a9b4_48ec_b53a90612b9d42a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 660 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 661 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 662 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 663 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 664 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 666 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 667 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 668 1 0 \"c8de89fe_7a53_4c03_bbe8ba85302b57ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 669 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 670 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 671 1 0 \"b9ad26f0_da3e_44e9_a29e1fa4b10f92f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 672 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 673 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 674 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 675 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 676 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 677 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 678 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 682 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 683 1 0 \"aecc8a3f_302a_4fd4_85780994769765dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 684 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 685 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 686 1 0 \"8a17da2c_6b74_4513_a05e482acef68552\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 687 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 688 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 689 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 690 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 691 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 692 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 693 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 694 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 695 1 0 \"96a3924c_7b8c_441f_b05115a7adf0396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 696 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 697 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 698 1 0 \"29acd4b5_13fb_40fe_bc6d971aa6f115a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 699 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 700 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 701 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 702 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 703 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 706 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 707 1 0 \"18981818_de5f_4fd3_b704a074fd37c9d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 708 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 709 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 710 1 0 \"6fa8ea83_c7bd_4b3e_81768063f8126364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 711 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 712 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 713 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 716 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 717 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 719 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 720 1 0 \"84efe41c_f9b0_4304_896c8b308bb07e76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 721 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 722 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 723 1 0 \"367927ae_ba00_4d5a_b9d8f5f9b3d208c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 724 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 725 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 726 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 727 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 728 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 729 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 730 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 732 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 733 1 0 \"7e6d8299_fab6_4435_8adf36d59ca04c7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 734 1 0 \"5fe75151_d308_441e_a049e85f45ca3966\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n// }} \"\"\r\n// {{ 735 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 736 1 0 \"64e95a28_a6b6_4e1b_825867f05118aebc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 737 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 738 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 739 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 740 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 741 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 742 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 743 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 746 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 747 1 0 \"08abdac2_e330_47c9_9b80d99dd0338c3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 748 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 749 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 750 1 0 \"a26bca7d_b38c_4413_b61d3da3fdfb077b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 751 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 752 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 753 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 754 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 755 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 756 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 757 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 760 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 761 1 0 \"0e03f515_b847_4dfd_8aa52f8b5f1135cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 762 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 763 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 764 1 0 \"e7b29c37_b63e_40fe_a3663d4eb8c7dc93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 765 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 766 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 767 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 768 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 769 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 770 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 771 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 772 1 0 \"7ca275a0_4aed_4b67_9535646b2074ebaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 773 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 774 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 775 1 0 \"e87b7e6f_2610_44dd_b7d0262ac681e308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 776 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 777 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 778 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 779 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 782 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 783 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 784 1 0 \"d02dc65a_05f9_4938_90df6cee1381d4dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 785 1 0 \"75688e3b_5ed1_45d1_a4d8344ca19c3fd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 786 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 787 1 0 \"b5ede424_b7f1_4369_8610d54e626df620\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 788 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 789 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 795 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 796 1 0 \"e22c8ca0_6e3f_454b_8628dd4417a6fd78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 797 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 798 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 799 1 0 \"c8c0c20e_b866_451e_9ecd69fdb0b0ed14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 800 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 801 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 802 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 803 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 805 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 806 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 807 1 0 \"e2f732a1_e433_4ab6_b3bdac9a4ca5bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 808 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 809 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 810 1 0 \"44edbcbd_1012_457f_848d11750abdfeb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 811 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 812 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 813 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 814 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 815 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 816 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 817 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 818 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 819 1 0 \"d5b14e5b_7d51_414e_af4dfb664c89e0c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 820 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 821 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 822 1 0 \"d60c31db_3b59_4498_8c47e4d2612443a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 823 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 824 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 830 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 831 1 0 \"ffa29d3e_8248_4266_80661c264964da5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 832 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 833 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 834 1 0 \"8a92c1f7_b614_4c09_b5ada70145cb0a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 835 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 836 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 837 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 838 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"67dcb608_2751_40ce_8b7e4a0603faf2dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"0f4bf0f0_7250_4df4_ad0fed77d22c4e31\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 842 1 0 \"8c27106a_1679_43a9_bf5395da0b449aab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HxFanSet\")\r\n{\r\n// }} \"\"\r\n// {{{ 843 1 0 \"b4ddaff1_bbb9_4494_8b1bbd7274a5f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"4c112600_c077_4cd1_97f013ebd6ba3dda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"persistant\"), persistant);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"3e95190c_440f_432c_aaa7fd3a2fb355a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"1e8f47c7_db5a_4fa4_aee7981e3b80ca64\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"fanSpeed\"), fanSpeed);\r\n// }} \"\"\r\n// {{ 847 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 848 1 0 \"126ff61c_704e_4f65_956d45a1882c292c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 849 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (simulate == 0)\r\n{\r\n// }} \"\"\r\n// {{ 850 1 0 \"13409ed4_ce79_4ef9_89deb34df8b6dd6a\" \"HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}\"\r\n{\r\n\tHxFan.Simulate(\"13409ed4_ce79_4ef9_89deb34df8b6dd6a\"); // Simulate\r\n}\r\n// }} \"\"\r\n// {{ 851 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 852 1 0 \"be3ae73e_7395_494a_9aed80ff221436dc\" \"HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}\"\r\n{\r\n\tHxFan.Simulate(\"be3ae73e_7395_494a_9aed80ff221436dc\"); // Simulate\r\n}\r\n// }} \"\"\r\n// {{ 853 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 854 1 0 \"ffdf7428_8946_4751_8ec8a7e00f208208\" \"HxFan:{419861B2-AD5B-4F2E-8025-46B0E593A024}\"\r\n{\r\n\tHxFan.SetComPort(\"ffdf7428_8946_4751_8ec8a7e00f208208\"); // SetComPort\r\n}\r\n// }} \"\"\r\n// {{ 855 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (persistant == 0)\r\n{\r\n// }} \"\"\r\n// {{ 856 1 0 \"d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39\" \"HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}\"\r\n{\r\n\tHxFan.SetContinuousMode(\"d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39\"); // SetContinuousMode\r\n}\r\n// }} \"\"\r\n// {{ 857 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 858 1 0 \"4914f72b_ecb0_4ab4_b458a744727e1642\" \"HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}\"\r\n{\r\n\tHxFan.SetContinuousMode(\"4914f72b_ecb0_4ab4_b458a744727e1642\"); // SetContinuousMode\r\n}\r\n// }} \"\"\r\n// {{ 859 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 860 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (fanSpeed == 0)\r\n{\r\n// }} \"\"\r\n// {{ 861 1 0 \"cef636fc_366e_46f7_9a8e1e25f716fa31\" \"HxFan:{1581574C-5388-4E48-BC78-FEE50E8DCE05}\"\r\n{\r\n\tHxFan.SetFanOff(\"cef636fc_366e_46f7_9a8e1e25f716fa31\"); // SetFanOff\r\n}\r\n// }} \"\"\r\n// {{ 862 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 863 1 0 \"f2bbd127_49ad_44c1_aa03eba6244b4cfc\" \"HxFan:{C3B1A3F9-BD5A-4660-842E-35830B4E80CA}\"\r\n{\r\n\tHxFan.SetFanSpeed(\"f2bbd127_49ad_44c1_aa03eba6244b4cfc\"); // SetFanSpeed\r\n}\r\n// }} \"\"\r\n// {{ 864 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 865 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AA4197CCBE624255B3C96A32C1894C99 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 866 1 0 \"8f5e46a2_b896_4dbc_a8eb3d63e6ee3d3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 867 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 868 1 0 \"0c83267c_5eb8_4165_96bd827e6dad924b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 869 1 0 \"8c27106a_1679_43a9_bf5395da0b449aab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 870 1 0 \"0f4bf0f0_7250_4df4_ad0fed77d22c4e31\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 871 1 0 \"67dcb608_2751_40ce_8b7e4a0603faf2dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 872 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 873 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 874 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 875 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 880 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 881 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 882 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 883 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 884 1 0 \"ab84bcc8_3da0_446b_84689087cc7a392f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 885 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 886 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 890 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 891 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 892 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 893 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 894 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 895 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 896 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 897 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 898 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Hamilton$$valid=0$$time=2019-03-18 18:17$$checksum=14112bd1$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx5A3E.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1014 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1017 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1018 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1019 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1021 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1022 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1023 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1024 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1025 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1026 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1027 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1028 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1029 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1030 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 989 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 991 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 998 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 936 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 937 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 938 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 939 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 940 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 941 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 942 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 944 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 945 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 947 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 948 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1008 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1009 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1010 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1011 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 910 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 911 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 913 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 914 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 915 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 916 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 917 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 919 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 920 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 921 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 922 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 923 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 924 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 925 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 926 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 927 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 928 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 929 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 930 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 931 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 932 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 933 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 934 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 900 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 901 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 902 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 903 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 905 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 906 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 907 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 908 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 951 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 952 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 954 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 955 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 957 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 959 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 960 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 961 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 963 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 964 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 965 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 966 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 967 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 968 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 969 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 970 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 971 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 972 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 973 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 974 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 975 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 976 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 977 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 978 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 979 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 980 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 981 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 982 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 983 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 984 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 985 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 986 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 987 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2019-03-18 18:17$$checksum=84c7831d$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx5FF.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module Controller.hs_\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"HSL_LiquidClassLib.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\nvariable DefaultTemperature;\r\nvariable MeasureTime;\r\nvariable MeasureHeight;\r\nvariable CalibrationValue1;\r\nvariable TempSoln1;\r\nvariable TempSoln2;\r\nvariable CalibrationValue2;\r\nvariable blnCalibrateDynamically;\r\nvariable CalibrationValueRef;\r\nvariable TempSolnRef;\r\nvariable Module;\r\nvariable Reference;\r\nvariable Calibration1;\r\nvariable Calibration2;\r\nsequence seqModule;\r\nsequence seqCalibration1;\r\nsequence seqCalibration2;\r\nsequence seqReference;\r\nvariable CalibrationTime;\r\nvariable arrCalibrationSlopeRatios[];\r\nvariable arrpHValuesReferenceSolution[];\r\nvariable CalibrationSlopeRatios;\r\nvariable pHValuesReferenceSolution;\r\nvariable BluetoothPort;\r\nvariable NumDryCycles;\r\nvariable NumWashCycles;\r\nvariable DryTime;\r\nvariable Gripper;\r\nsequence seqGripper;\r\nvariable WashPosition;\r\nsequence seqWashPosition;\r\nvariable DryPosition;\r\nsequence seqDryPosition;\r\nvariable DryCycles;\r\nvariable TransportChannel;\r\nvariable WashCycles;\r\nvariable arrpHValues[];\r\nvariable flt_pHValues;\r\nvariable seqMeasure;\r\nvariable ProbePattern;\r\nvariable seqMeasurement;\r\nvariable MeasurePositions;\r\nvariable hssErrCode;\r\nvariable LiqClassParameterName;\r\nvariable LiqClassParameterValue;\r\nvariable LiquidClassName;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"04505c20_428c_4440_8169ddcbaade8bbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 0);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 29 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 30 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 31 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 34 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 35 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 39 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 41 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 42 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 43 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 44 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 45 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 47 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 48 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 49 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 51 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 52 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 53 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 64 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 66 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 77 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 78 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 79 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 81 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 83 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 84 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 86 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 88 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 89 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 96 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 99 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 100 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 123 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 124 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 125 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 126 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 127 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 128 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 129 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 130 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 132 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 134 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 135 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 141 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 142 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 143 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 145 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 146 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 150 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 151 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 152 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 155 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 156 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 157 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 160 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 161 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 163 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 164 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 165 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 169 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 170 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 174 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 175 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 177 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 178 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 179 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 180 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 183 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 184 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 186 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 187 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 188 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 201 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 202 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 203 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 204 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 206 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 207 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 208 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 209 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 216 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 217 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 218 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 220 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 221 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 222 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 238 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 239 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 240 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 242 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 243 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 244 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 245 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 252 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 253 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 254 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 256 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 257 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 261 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 262 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 265 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 266 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 267 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 268 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 269 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 270 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 271 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 274 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 275 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 276 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 279 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 280 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 286 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 287 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 289 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 290 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 294 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 298 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 299 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 300 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 312 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 313 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 314 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 315 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 316 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 317 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 318 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 319 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 320 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 321 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 322 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 323 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 324 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 325 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 326 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 327 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 328 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 329 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 330 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 331 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 335 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 336 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 338 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 339 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 340 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 344 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 345 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 346 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 347 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 348 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 349 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 352 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 353 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 354 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 356 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 357 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 358 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 359 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 360 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 361 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 362 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 366 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 367 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 368 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 370 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 371 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 372 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 374 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 382 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 383 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 384 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 385 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 386 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 387 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 388 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 389 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 390 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 391 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 392 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 393 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 394 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 395 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 396 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 397 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 398 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 399 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 402 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 403 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 404 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 405 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 407 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 408 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 409 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 410 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 418 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 426 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 427 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 428 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 429 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 430 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 431 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 432 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 433 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 434 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 435 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 436 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 437 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 438 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 439 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 440 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 441 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 442 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 443 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 444 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 447 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 448 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 450 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 451 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 452 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 454 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 455 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 456 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 457 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 458 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 459 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 460 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 461 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 462 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 463 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 464 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 466 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 467 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 468 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 470 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 471 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 472 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 481 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 482 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 484 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 485 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 486 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 487 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 488 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 489 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 490 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 491 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 492 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 493 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 494 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 495 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 496 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 497 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 498 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 499 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 502 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 503 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 504 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 506 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 507 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 508 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 509 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 511 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 512 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 513 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 516 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 518 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 519 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 520 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 521 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 522 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 523 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 524 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 526 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 527 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 528 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 529 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 530 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 531 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 532 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 535 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 536 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 537 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 538 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 539 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 541 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setAspirateParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 542 1 0 \"d741f062_6b73_4365_ad9c8646a016138d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"86836193_1dcb_460e_8db2dda6b775abd9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"d94798d1_53c6_40de_b72c239404c94352\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 545 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 546 1 0 \"3f31be32_d184_4c20_a5127e5057f15149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"b75ad951_95b1_4114_864093345ffb2cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 548 1 0 \"a39ebf7f_8e12_47a6_aad54fd2890ba779\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 549 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E1EAD148F3254941A251DC272F774AB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 550 1 0 \"a14cc465_549a_4722_b3fb08ce2532a405\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 551 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 552 1 0 \"ec08039a_3b70_4854_894d57c13ffdc877\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 553 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 554 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setDispenseParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 555 1 0 \"4aa7b9ce_fd73_4a55_9a3c704bfb4c443d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"27e93e41_ad5f_4b74_a1844bb15c0dfdfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"10da81a6_cef8_4c18_9416f561b557ad45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 558 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 559 1 0 \"b471ff31_4fdd_4a9f_87431e5741a9b969\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 560 1 0 \"8f401b71_156d_43b5_892982e8478456f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 561 1 0 \"28e95405_685a_4032_b361461ff897189f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 562 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3A18CA152B674dd3A42B81C4D45F719E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 563 1 0 \"c7174915_16fd_40d8_b94eac8999f4eab7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 564 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 565 1 0 \"d805e811_a796_44e9_93839b02b6d05f1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"da31069e_a165_4c2e_b95619cb57c4ae8a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 567 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 568 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 569 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 570 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 571 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 572 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 573 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 579 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 580 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 581 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 582 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 583 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 584 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 588 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 589 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 590 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 591 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 593 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 594 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 595 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 599 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 600 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 602 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 603 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 609 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 610 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 611 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 612 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 613 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 617 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 618 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 619 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 620 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 621 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 622 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 625 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 626 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 627 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 628 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 629 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 633 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 634 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 635 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 636 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 637 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 638 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 639 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 640 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 641 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 649 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 650 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 651 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 652 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 653 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 657 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 659 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 661 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 662 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 663 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 664 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 665 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 666 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 670 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 671 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 672 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 673 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 674 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 675 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 683 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 684 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 685 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 686 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 687 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 693 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 694 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 695 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 696 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 697 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 701 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 702 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 703 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 706 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 712 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 713 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 714 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 716 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 724 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 725 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 726 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 727 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 728 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 734 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 735 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 736 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 737 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 738 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 739 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 740 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 746 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 747 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 751 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 752 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 753 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 754 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 755 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 760 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 761 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 763 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 764 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 765 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 766 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 767 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 768 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 771 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 772 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 773 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 774 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 775 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 776 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 777 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 778 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 779 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 780 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 781 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 782 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 783 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 784 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 785 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 786 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 801 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 802 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 803 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 805 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 809 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 810 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 811 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 812 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 813 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 817 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 818 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 819 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 820 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 821 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 825 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 827 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 828 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 829 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 830 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 831 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 837 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 838 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 841 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 842 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 848 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 849 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 850 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 852 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 853 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 857 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 858 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 859 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 860 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 861 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 862 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 863 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 867 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 868 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 869 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 870 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 871 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 872 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 873 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 874 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 875 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 879 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 880 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 882 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 883 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 886 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 891 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 894 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 895 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 897 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 898 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 899 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 900 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 901 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 906 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 908 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 909 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 910 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 911 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 912 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 913 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 916 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 917 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 918 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 919 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 920 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 921 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 922 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 924 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 925 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 926 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 927 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 928 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 929 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 930 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 931 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 936 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 938 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 939 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 940 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 943 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 944 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 945 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 947 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 948 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 949 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 950 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 951 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 952 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 953 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 956 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 957 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 958 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 959 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 960 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 961 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 962 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 964 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 965 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 966 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 967 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 968 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 969 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 971 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 972 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 973 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 974 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 975 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 976 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 977 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 978 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 979 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 980 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 982 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 983 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 985 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 986 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 987 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 988 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 989 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 990 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 997 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 998 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1002 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1003 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1004 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1005 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1006 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1009 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1010 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1022 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1023 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1024 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1025 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1037 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1038 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1039 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1040 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1046 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1048 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1050 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1051 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1052 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1053 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1058 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1059 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1060 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1061 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1067 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1068 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1069 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1070 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1072 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1078 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1079 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1080 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1081 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1099 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1100 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1101 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1102 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1112 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1113 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1114 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1127 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1129 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1130 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1131 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1132 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1137 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1138 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1139 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1142 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1143 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1144 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1145 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1156 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1157 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1158 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1159 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1162 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1164 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1166 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1167 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1168 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1169 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1174 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1176 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1177 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1178 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1179 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1180 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1181 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1183 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1186 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1189 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1190 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1191 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1192 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1193 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1195 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1196 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1200 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1203 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1204 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1205 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1206 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1207 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1214 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1215 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1216 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1217 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1218 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1221 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1222 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1223 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1225 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1226 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1227 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1228 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1233 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1234 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1235 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1236 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1237 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1244 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1246 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1252 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1253 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1255 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1261 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1262 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1263 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1264 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1265 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1269 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1271 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1272 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1273 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1274 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1275 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1276 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1277 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1282 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1283 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1284 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1285 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1286 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1290 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1293 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1294 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1296 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1300 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1301 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1302 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1303 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1304 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1305 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1309 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1312 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1313 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1314 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1315 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1316 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1320 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1321 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1322 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1323 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1324 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1325 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1326 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1329 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1331 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1332 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1333 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1334 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1335 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1336 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1341 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1342 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1343 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1344 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1350 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1351 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1352 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1353 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1354 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1355 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"32d149fa_c238_4e8c_9c9bfe8ca03b39ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{ 1357 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1358 1 0 \"05f6e40b_f62a_4382_9b25ca234839aeb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID);\r\n// }} \"\"\r\n// {{ 1359 1 0 \"b8eff0c4_8a87_4d69_8b1fc22443527e58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1360 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_43ECC15F92874e8a8FCA2A90F3412255 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1361 1 0 \"a6315690_dcdc_4faf_9764f4edcccee401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1362 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1363 1 0 \"b152d230_641d_44fd_82876d10beb25ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"2178bb5d_1389_4bb3_92e038bed00ad7d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1365 1 0 \"0e8fa514_886c_42d7_a0fec5c2e0a40820\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1366 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1367 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1368 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1369 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_MeasureCycle\")\r\n{\r\n// }} \"\"\r\n// {{{ 1370 1 0 \"e78c25fc_f856_4c7d_bb7f6056d2ae0e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"4c0064bb_0c23_4648_b57e5599878d63f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqMeasurement\"), seqMeasurement);\r\n// }} \"\"\r\n// {{ 1372 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (seqMeasurement == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"a11073f7_18e2_4097_baf006ed44e74081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MeasurePositions\"), MeasurePositions);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"47d49bd0_0457_440d_b1d654c85ac3c5db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(MeasurePositions, seq);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1376 1 0 \"bbddeeab_2dc4_4931_900a5ec07aafe0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, seqMeasure, seq);\r\n// }} \"\"\r\n// {{ 1377 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"6b06d7c5_bf98_48d9_906ae705e4ce149b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"25fe4c02_a4e2_40cd_91289dc1c5c638b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProbePattern\"), ProbePattern);\r\n// }} \"\"\r\n// {{{ 1380 1 0 \"02a9e02a_0596_4158_ac021180b0b5985c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"f8080019_d032_4f0c_9ef8429bde9ee7df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1382 1 0 \"83142ee1_d831_4ff1_a6734844fe789421\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues);\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"d4d4974a_23a2_43a2_851b478f0e7d24be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValues, flt_pHValues);\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"bde9c162_a4cf_40fa_a663c6b78e029610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1385 1 0 \"0a5c18e9_775d_4644_bdfcc536000642cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Measure Cycle\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"c1502c7b_2bd0_480c_a0ce6887e02484bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1387 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1388 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1389 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1390 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1391 1 0 \"d9d7f7cb_394b_40ea_a037e16efc8e063c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"0e65e09c_0178_403b_9eca768c440a479f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1393 1 0 \"fedae8c3_0c9d_426f_a30e8fdfa1d2b056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1394 1 0 \"ad8456a9_07be_4852_b2bab182e7e17dae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration1\"), Calibration1);\r\n// }} \"\"\r\n// {{{ 1395 1 0 \"8b591ca2_adf8_4248_b5ac1fb2a84c21aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1);\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"0f28a5e9_278c_4290_aa9ee416f829755a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration2\"), Calibration2);\r\n// }} \"\"\r\n// {{{ 1397 1 0 \"b57e28d3_0011_4657_bbceba83ca97b89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2);\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"101798f0_c18a_411a_b29295d972cc9a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqReference\"), Reference);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"1c415c8d_660d_41fe_a81fcfd6d8836038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Reference, seqReference);\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"20510ceb_5840_48de_842a1b657fa7706d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationTime\"), CalibrationTime);\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"ecd67637_3e8e_4d22_89b67b39e05342fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"148b5d07_b84d_4786_b1d0f9d5e5837491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"938c1584_a353_4f03_ba14c9f33cc2c6a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue1\"), CalibrationValue1);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"cda9048b_fe59_4db2_a1d08550795038f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue2\"), CalibrationValue2);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"5d669238_eb69_4080_8b789139b291be94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValueRef\"), CalibrationValueRef);\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"4c7c9992_c2e0_445a_bee9cd7dd086e585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln1\"), TempSoln1);\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"9574a12d_456e_4fd6_9b51714dd88b4a1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln2\"), TempSoln2);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"211f81c7_5561_45ce_8cf247e76fb0f65e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSolnRef\"), TempSolnRef);\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"f812ea75_ed49_4a04_b4ab3dd67f1206ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrateDynamically\"), blnCalibrateDynamically);\r\n// }} \"\"\r\n// {{{ 1410 1 0 \"178d95b8_13db_4493_a08cdaec1348c0e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"d4d33c2d_2aee_4a51_ad36cb953d687c83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{ 1412 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F882CD31309846e3BD30959B418AB982 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 1414 1 0 \"18724129_2443_4271_a6316a42ef334c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1415 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F882CD31309846e3BD30959B418AB982 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1416 1 0 \"d6c65e91_f6e8_47d9_aaf1810ffab1ffac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1417 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"7375b9e4_01c3_49a1_810fb42149ed0eea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios);\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"31ba6e89_258d_4deb_97352544c3b5c45c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution);\r\n// }} \"\"\r\n// {{{ 1420 1 0 \"924064ec_85ac_4b42_a5ff3eb8a6a5342f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"65bd0fe0_0efb_4335_b118b89e61b948ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1422 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1423 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1424 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1425 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Dry\")\r\n{\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"0f0bf03e_4950_40e7_b2899f9cabb79cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1427 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"1885a8d9_8082_44ab_bfd7a217170187db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1429 1 0 \"33dddcad_4489_4f31_8b4fea145ebbe77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1430 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D19CA5AD1071407b84599779A41B51EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1431 1 0 \"d8f5d052_f205_4e22_8998e2d0d12790ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1432 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"5521c0c7_c64b_4b49_9036f9bf6a7a83d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"9e7864cd_a0bd_4ec6_8f733a2e7ab773bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1435 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1436 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1437 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1438 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"39b0590c_dc8d_4eb3_b8bfcab65235f494\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1440 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"beaffdda_e52a_4f79_95659f907946752f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1442 1 0 \"58aab21a_307b_403b_980186d201a7c6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1443 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1444 1 0 \"4cd2a753_2761_4d3c_9cd93c15fa19a47b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1445 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"0af219f8_e5bc_4b14_a95fd7e3f2ccb712\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"7b44ca9e_e6d7_4793_8f937fc518ecc41c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1448 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1449 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1450 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1451 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SetParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"7e5e111c_21f5_4c0b_9dd06d15aee64431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqGripper\"), Gripper);\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"8417ab78_f4b8_40aa_890f3b14e4204667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Gripper, seqGripper);\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"f43d4896_c19a_4cc9_ad3c75f925788b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqWashPosition\"), WashPosition);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"ffcc2479_6c91_4038_bab179b027d4b03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"b731d1c6_30bc_4003_ba19e062e82293db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqDryPosition\"), DryPosition);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"a68ddb6b_780a_46ed_bcaa350f92f649fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition);\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"020f31e6_e3ef_48f4_af0e175e60e00159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TransportChannel\"), TransportChannel);\r\n// }} \"\"\r\n// {{{ 1459 1 0 \"1561e8c8_acaa_438f_9c7c57a5c196556f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WashCycles\"), WashCycles);\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"7e0a9629_dce6_4ed9_81b854f636408ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryCycles\"), DryCycles);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"dacc3c17_6358_44f0_8ac4ad1fa0ae08b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"f86b35ff_9db7_4845_a3cfb7d04c520c3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime);\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"ce0a2f35_ae58_4695_85513126a4acb791\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"da69f49c_299d_435d_9d95dc10f7303ce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"bd10bc62_2ace_436a_a68acec8c1f9287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1466 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1467 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1468 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1469 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Park\")\r\n{\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"90471824_8967_4383_a722d29bfaf60113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"f6bbc2b1_c86d_4f64_abc12d3b740b1d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"9341ffae_9e0c_43f9_b3ccedcfbadb07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"9e0a230a_fdb5_4eec_9cf3127779adb1d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1474 1 0 \"8aacb0d9_a918_426b_9717bd2febc1f74a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"15592ad5_5751_4636_8a513ee3f27c7f11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"6222366b_a5bf_4c73_8685a3cdebb4ff4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1477 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1478 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1479 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1480 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Pickup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"347e06d8_9db7_4279_bf224e9ecf4299e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"2b0761dc_e201_46b3_a590b52421cd8ee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"76631bc5_230e_4e20_87bf493887cddd0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"2d3aba8b_cc4b_4be1_a83c30695fcf6dbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"7879f9b5_2eea_4059_8e4bef3213e8decd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"cb1582a1_3f8c_44fd_910a5f08dbe32b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"a15fc9df_322f_4ce1_83228c63669e6b16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1488 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1489 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1490 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1491 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_ExtendedLog\")\r\n{\r\n// }} \"\"\r\n// {{{ 1492 1 0 \"d101eee8_9402_428a_aa576d531ed959c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 1493 1 0 \"bc849548_9009_43ec_bb1b6c81c32132f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"0a496202_0f55_4f40_8b391260caa236ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1495 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1496 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1497 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1498 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_LoadLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{ 1499 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B416552A06404ef48774D74059C2B182 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"154ec087_ea2e_4381_bb2e261ffad534f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1501 1 0 \"79340e9d_69d5_4911_b4601ae4754a16c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1502 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B416552A06404ef48774D74059C2B182 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1503 1 0 \"46420553_d90f_4dfa_b42c9d86856c288a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1504 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1505 1 0 \"54b468e0_3ea0_4e83_9ffae95722c5cb9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBluetoothPort = StrIStr(BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"7bde202f_1c1b_4911_9f600ac6e1a5b57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumWashCycles = StrIStr(NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumDryCycles = StrIStr(NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"027378a7_4549_4d3f_b8d33aa4980be4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDryTime = StrIStr(DryTime);\r\n// }} \"\"\r\n// {{{ 1509 1 0 \"fbda7cdb_3ed9_4a5c_907ce60556e0129b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1510 1 0 \"e454face_7eee_4c6e_a61e221c0e5d7fb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1511 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1512 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1513 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1514 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SaveLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{{ 1515 1 0 \"aca4c717_812e_46f9_8eb5989a720adb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BluetoothPort\"), BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"1198edc8_1ec9_479d_a4e7fd71ed50cf8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumWashCycles\"), NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"be958699_818e_43db_a757a67b7b54572a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumDryCycles\"), NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1518 1 0 \"8751a2c3_e6ee_43bf_b21f5458aebf179a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{ 1519 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4973F03471994119A9F699CE6459CBFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1520 1 0 \"1480ff51_54ea_4c38_befa457e23966aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1521 1 0 \"0e101f68_bc36_42fe_882a3951ef193f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1522 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4973F03471994119A9F699CE6459CBFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1523 1 0 \"2e180d98_e746_4b84_b623b4d0e8e198fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1524 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"cb24f9db_18c1_41af_b6f16900826be7be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"87c5e5f6_77ee_4519_879fdceaf21c1d7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1527 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1528 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1529 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1530 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1531 1 0 \"bdbbc648_a9fa_468f_b5d4d390115575eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1532 1 0 \"1a74d7ad_0c35_454c_b161ede32468b2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"c67afa78_dd60_451b_b2e31a2e6540f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"2424dca1_971a_40f8_97b763c253560a2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1535 1 0 \"8def2ba5_b51c_4e0c_b6ebfdd346a5beec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1536 1 0 \"684d328d_214e_4955_bfe9ff0627b7f8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"e6ec0fc8_d42c_4413_b2c2719c3cd18dc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1538 1 0 \"6f2273c4_1e1e_46f3_9ea6544d76383266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1539 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1540 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1541 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1542 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"b43cf782_b210_48c8_933f4cdfae78d050\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"efbfd98d_c15d_4ac9_b94250ab4361a8b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"c918ad91_e33e_4f2f_9c6577fd8c93aaf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"2021a914_67dd_495e_9a9e4cf4438df298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1547 1 0 \"8d8842cd_e3b4_4397_92ad69593e9f7796\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1548 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1549 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1550 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1551 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1552 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1553 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1555 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1556 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1557 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1563 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1564 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1565 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1566 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1567 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1571 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1572 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1573 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1574 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1576 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1577 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1579 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1580 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1581 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1582 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1584 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1585 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1586 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1587 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1588 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1589 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1591 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1593 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1594 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1595 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1596 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1597 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1600 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1601 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1602 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1603 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1604 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1608 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1609 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1610 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1611 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1612 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1616 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1617 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1621 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1622 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1623 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1624 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1625 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1629 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1630 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1631 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1632 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1633 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1638 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1639 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1640 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1642 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1646 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1647 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1648 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1649 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1652 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1653 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1654 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1655 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1656 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1661 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1662 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1663 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1664 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1665 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1666 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1667 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1669 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1670 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1671 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1672 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1673 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1674 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1675 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1676 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1677 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1678 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1679 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1680 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1681 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1682 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1683 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1684 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1685 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1686 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1687 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1688 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1689 1 0 \"6957e247_4f64_4971_8d90658c99adbb87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{{ 1690 1 0 \"34cc8f4a_c310_4eb7_b936c63f8401c523\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1691 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1692 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1693 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1694 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1696 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1697 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1698 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1699 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1700 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1701 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1702 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"dd7d7b00_1e95_4e45_97a425f03a18ab04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"0021495f_472e_4321_9d1e81e8fbd43f0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1705 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1706 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1707 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1708 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1709 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1710 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1711 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1712 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1713 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1714 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1715 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1716 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1717 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1718 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1719 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1720 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1721 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1722 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1723 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1724 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1725 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1726 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1727 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1728 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1729 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1730 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1731 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1732 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1733 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1734 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1735 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1736 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1737 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1738 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1739 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1740 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1741 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1742 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1743 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1744 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1745 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1746 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1747 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1748 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1749 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1750 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1751 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1752 1 0 \"c0166b97_c0ae_417b_85c90c5ef42e5fc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1753 1 0 \"73777071_2fd2_42b0_a7545c6a6a372194\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1754 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1755 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1756 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1757 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1758 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1759 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1760 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1761 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1762 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1763 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1764 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1765 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1766 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1767 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1768 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1769 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1770 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1771 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1772 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1773 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1774 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1775 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1776 1 0 \"ecd6d069_96d7_4a72_9ffc0df77e7a1512\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"b05c868f_c25f_47a9_b533b13ab05fc962\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1778 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1779 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1780 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1781 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1782 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1783 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1784 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1785 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1786 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1787 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1788 1 0 \"c99aa2b7_d8a6_4cee_a1fa1d731ef77d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1789 1 0 \"f2861b4d_28d2_4ee3_8b7c7763312067ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1790 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1791 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1792 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1793 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1794 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1795 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1796 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1797 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1798 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1799 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1800 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1801 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1802 1 0 \"a650efc1_423b_4f75_9f0da083ee44ae9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{{ 1803 1 0 \"e1ef0806_8a47_46c1_972c9ed9e299eaad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1804 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1805 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1806 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1807 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1808 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1809 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1810 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1811 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1812 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1813 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1814 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1815 1 0 \"b417b8ce_5117_450e_93a9a6243c6011d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{{ 1816 1 0 \"ed43cecb_7012_4fb9_a89d129de09bdadb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1817 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1818 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1819 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1820 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1821 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1822 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1823 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1824 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1825 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1826 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1827 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1828 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1829 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1830 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1831 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1832 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1833 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1834 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1835 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1836 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1837 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1838 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1839 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1840 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1841 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1842 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1843 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1844 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1845 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1846 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1847 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1848 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1849 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1850 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1851 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1852 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1853 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1854 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1855 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1856 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1857 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1858 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1859 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1860 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1861 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1862 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1863 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1864 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1865 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1866 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1867 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1868 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1869 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1870 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1871 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1872 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1873 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1874 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1875 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1876 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1877 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1878 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1879 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1880 1 0 \"73be1c30_4bfe_4a0f_aa560c8df5b091fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1881 1 0 \"39ac643d_0305_4ec6_87fc196efe3d76f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1882 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1883 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1884 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1885 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1886 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1887 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1888 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1889 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1890 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1891 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1892 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1893 1 0 \"272104de_2e64_4a32_a88407b030437361\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1894 1 0 \"1362f66b_0efd_4eb5_935e84586a427637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1895 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1896 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1897 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1898 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1899 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1900 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1901 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1902 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1903 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1904 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1905 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1906 1 0 \"cf1b40c4_5e9a_48bf_9390f6eab212315f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1907 1 0 \"2e7a5304_5ce9_4afb_93a4a8276dc86d74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1908 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1909 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1910 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1911 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1912 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1913 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1914 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1915 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1916 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1917 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1918 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1919 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1920 1 0 \"4b29337f_c67c_4ecf_a205f4b70e60271a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1921 1 0 \"40aad8b7_f42e_4ad1_b0f0c033ec666548\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1922 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1923 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1924 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1925 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1926 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1927 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1928 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1929 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1930 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1931 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1932 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1933 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1934 1 0 \"dfb61f9c_103b_4c42_83e0779ea05cb180\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{{ 1935 1 0 \"e4829da3_d8b6_453f_a2be82213303e9f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1936 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1937 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1938 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1939 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1940 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1941 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1942 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1943 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1944 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1945 1 0 \"ee3103a2_d7f3_488f_b7a95e2f2b56770a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{{ 1946 1 0 \"a782313c_e15b_4340_bdda314f926e24cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1947 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1948 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1949 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1950 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1951 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1952 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1953 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1954 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1955 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1956 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1957 1 0 \"b5ecca33_fef4_4c14_9cf702c924839607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1958 1 0 \"49e72e72_8e49_49fd_8d212a6ccff1d2fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1959 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1960 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1961 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1962 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1963 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1964 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1965 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1966 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1967 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1968 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1969 1 0 \"d186dde8_c684_4550_a023d9023ff021d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1970 1 0 \"af12e4a9_cc0f_4a82_b9593d2b489756a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1971 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1972 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1973 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1974 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1975 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1976 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1977 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1978 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1979 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1980 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1981 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1982 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1983 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1984 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1985 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1986 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1987 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1988 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1989 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1990 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1991 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1992 1 0 \"3b2abeec_38f4_46a6_a30b0d0126280ebc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1993 1 0 \"c4e94e42_8405_438b_921cfe4ba73e9976\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1994 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1995 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1996 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1997 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1998 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1999 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2000 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2001 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2002 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2003 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2004 1 0 \"5aa60a5a_db92_42e0_b3277a41cacb5336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2005 1 0 \"49cd8e9e_91bd_468c_aec57e3af40280fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2006 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2007 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2008 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2009 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2010 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2011 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2012 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2013 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2014 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2015 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 2016 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 2017 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 2018 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 2019 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 2020 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 2021 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2022 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2023 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 2024 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2025 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 2026 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2027 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2029 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2030 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2031 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2032 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2033 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2034 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2035 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2036 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2037 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2038 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2039 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2040 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2023-05-20 10:53$$checksum=d2401008$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx5FF.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2205 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2165 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2166 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2167 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2169 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2170 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2186 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2187 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2188 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2189 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2190 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2191 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2192 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2193 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2194 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2195 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2196 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2197 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2198 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2199 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2200 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2201 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2202 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2203 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2136 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2137 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2138 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2139 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2141 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2142 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2143 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2144 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2145 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2146 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2078 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2079 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2080 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2081 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2082 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2083 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2084 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2085 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2086 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2087 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2088 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2089 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2090 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2180 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2181 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2182 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2183 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2052 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2053 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2054 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2055 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2056 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2057 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2058 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2059 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2061 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2062 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2063 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2064 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2065 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2066 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2067 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2068 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2069 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2070 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2071 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2072 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2073 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2074 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2075 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2076 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2042 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2043 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2044 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2045 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2046 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2047 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2048 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2049 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2050 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2098 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2099 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2101 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2102 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2104 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2106 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2107 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2108 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2110 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2111 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2112 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2113 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2114 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2115 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2116 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2117 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2118 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2119 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2120 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2121 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2122 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2123 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2124 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2125 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2126 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2127 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2129 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2130 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2131 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2132 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2134 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2148 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2149 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2150 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2151 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2153 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2154 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2155 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2156 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2157 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2159 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2160 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2161 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2162 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2172 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2173 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2174 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2175 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2176 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2177 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2178 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"Begin\"\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable {\r\n// }} \"\"\r\n// {{ 5 \"ConvertHSSErrCode\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2092 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (hssErrCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2093 1 0 \"9f0ce7fc_13c6_4496_9d762a07174e50f1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (1);\r\n// }} \"\"\r\n// {{ 2094 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2095 1 0 \"4c347e8c_4bce_4fd2_9771e3402c6f946d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-05-20 10:53$$checksum=cadaa497$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx5FF.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx68E5.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module Controller.hs_\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"HSL_LiquidClassLib.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\nvariable DefaultTemperature;\r\nvariable MeasureTime;\r\nvariable MeasureHeight;\r\nvariable CalibrationValue1;\r\nvariable TempSoln1;\r\nvariable TempSoln2;\r\nvariable CalibrationValue2;\r\nvariable blnCalibrateDynamically;\r\nvariable CalibrationValueRef;\r\nvariable TempSolnRef;\r\nvariable Module;\r\nvariable Reference;\r\nvariable Calibration1;\r\nvariable Calibration2;\r\nsequence seqModule;\r\nsequence seqCalibration1;\r\nsequence seqCalibration2;\r\nsequence seqReference;\r\nvariable CalibrationTime;\r\nvariable arrCalibrationSlopeRatios[];\r\nvariable arrpHValuesReferenceSolution[];\r\nvariable CalibrationSlopeRatios;\r\nvariable pHValuesReferenceSolution;\r\nvariable BluetoothPort;\r\nvariable NumDryCycles;\r\nvariable NumWashCycles;\r\nvariable DryTime;\r\nvariable Gripper;\r\nsequence seqGripper;\r\nvariable WashPosition;\r\nsequence seqWashPosition;\r\nvariable DryPosition;\r\nsequence seqDryPosition;\r\nvariable DryCycles;\r\nvariable TransportChannel;\r\nvariable WashCycles;\r\nvariable arrpHValues[];\r\nvariable flt_pHValues;\r\nvariable seqMeasure;\r\nvariable ProbePattern;\r\nvariable seqMeasurement;\r\nvariable MeasurePositions;\r\nvariable hssErrCode;\r\nvariable LiqClassParameterName;\r\nvariable LiqClassParameterValue;\r\nvariable LiquidClassName;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"04505c20_428c_4440_8169ddcbaade8bbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 0);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 29 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 30 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 31 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 34 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 35 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 39 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 41 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 42 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 43 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 44 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 45 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 47 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 48 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 49 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 51 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 52 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 53 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 64 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 66 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 77 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 78 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 79 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 81 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 83 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 84 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 86 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 88 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 89 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 96 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 99 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 100 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 123 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 124 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 125 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 126 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 127 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 128 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 129 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 130 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 132 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 134 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 135 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 141 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 142 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 143 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 145 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 146 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 150 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{{ 151 1 0 \"f12cebf8_f377_4e29_9178b685b8637482\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 152 1 0 \"53842548_1bc1_4cff_b1c7b9254000a8bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"40577bba_0459_4794_a91070bf46ef5b5f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 154 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 155 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 156 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 157 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 158 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 160 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 161 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 162 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 163 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 164 1 0 \"33f8a21f_6ff1_4901_9c57a2c3bfc58f55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 165 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{ 166 1 0 \"2e847c00_28a1_4b09_9ed5515ce7746892\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 167 1 0 \"f40baab8_ec2e_4552_91ddf539ae8bfda9\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 168 1 0 \"2e65ae8a_e63b_4697_a998e72591e5c0c5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 169 1 0 \"7672ebc2_4687_4107_a4fd6c56c422373e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 172 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 173 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 174 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 175 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 176 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 177 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 178 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 179 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 182 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 183 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 184 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 185 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 186 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 187 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 188 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 191 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 192 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 193 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 194 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 195 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 196 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 201 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 202 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 203 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 207 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 210 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 211 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 212 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 214 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 215 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 216 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 217 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 219 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 221 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 225 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 226 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 227 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 228 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 229 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 230 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 238 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 239 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 244 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 246 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 247 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 248 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 250 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 251 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 252 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 253 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 254 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 255 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 256 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 261 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 262 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 263 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 264 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 266 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 268 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 270 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 271 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 273 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 274 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 275 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 276 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 277 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 278 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 279 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 283 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 284 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 285 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 288 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 289 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 294 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 298 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 299 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 302 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 303 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 304 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 305 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 306 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 307 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 308 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 312 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 313 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 316 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 317 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 318 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 319 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 321 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 322 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 329 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 330 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 331 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 332 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 333 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 334 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 335 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 336 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 337 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 338 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 339 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 343 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 344 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 346 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 347 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 348 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 352 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 353 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 354 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 355 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 356 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 357 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 358 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 359 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 360 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 361 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 362 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 365 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 366 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 367 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 368 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 369 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 370 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 374 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 375 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 376 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 377 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 378 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 379 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 380 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 382 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 383 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 384 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 385 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 386 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 387 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 388 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 389 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 390 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 391 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 392 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 393 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 394 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 395 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 396 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 397 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 398 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 399 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 400 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 401 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 402 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 403 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 404 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 405 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 406 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 407 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 408 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 409 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 411 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 412 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 413 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 414 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 415 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 416 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 417 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 418 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 426 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 427 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 428 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 429 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 430 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 431 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 432 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 433 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 434 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 435 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 436 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 437 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 438 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 439 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 440 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 441 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 442 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 443 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 444 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 445 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 446 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 447 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 448 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 449 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 450 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 451 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 452 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 454 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 455 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 456 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 457 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 458 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 459 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 460 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 461 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 462 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 463 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 464 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 465 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 466 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 467 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 468 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 469 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 470 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 471 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 472 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 475 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 476 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 477 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 478 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 479 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 480 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 481 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 482 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 483 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 484 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 485 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 486 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 487 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 488 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 490 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 491 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 492 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 493 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 494 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 495 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 496 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 497 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 498 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 499 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 500 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 501 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 502 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 503 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 505 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 506 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 507 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 508 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 510 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 511 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 512 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 514 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 515 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 516 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 517 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 518 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 519 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 520 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 521 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 522 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 523 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 524 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 526 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 527 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 528 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 529 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 530 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 531 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 532 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 533 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 534 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 535 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 536 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 537 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 538 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 539 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 540 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 541 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 542 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 544 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 545 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 546 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 547 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 548 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 549 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setAspirateParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 550 1 0 \"d741f062_6b73_4365_ad9c8646a016138d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 551 1 0 \"86836193_1dcb_460e_8db2dda6b775abd9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 552 1 0 \"d94798d1_53c6_40de_b72c239404c94352\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 553 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 554 1 0 \"3f31be32_d184_4c20_a5127e5057f15149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 555 1 0 \"b75ad951_95b1_4114_864093345ffb2cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 556 1 0 \"a39ebf7f_8e12_47a6_aad54fd2890ba779\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 557 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E1EAD148F3254941A251DC272F774AB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 558 1 0 \"a14cc465_549a_4722_b3fb08ce2532a405\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 559 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 560 1 0 \"ec08039a_3b70_4854_894d57c13ffdc877\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 561 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setDispenseParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 563 1 0 \"4aa7b9ce_fd73_4a55_9a3c704bfb4c443d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 564 1 0 \"27e93e41_ad5f_4b74_a1844bb15c0dfdfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 565 1 0 \"10da81a6_cef8_4c18_9416f561b557ad45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 566 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 567 1 0 \"b471ff31_4fdd_4a9f_87431e5741a9b969\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"8f401b71_156d_43b5_892982e8478456f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 569 1 0 \"28e95405_685a_4032_b361461ff897189f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 570 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3A18CA152B674dd3A42B81C4D45F719E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 571 1 0 \"c7174915_16fd_40d8_b94eac8999f4eab7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 572 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 573 1 0 \"d805e811_a796_44e9_93839b02b6d05f1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"da31069e_a165_4c2e_b95619cb57c4ae8a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 575 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 576 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 577 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 578 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 579 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 580 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 581 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 583 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 588 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 589 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 590 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 591 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 592 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 594 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 595 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 599 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 600 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 602 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 603 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 607 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 608 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 609 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 610 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 611 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 613 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 617 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 618 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 619 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 620 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 621 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 622 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 625 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 626 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 627 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 628 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 629 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 633 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 634 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 635 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 637 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 641 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 645 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 646 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 647 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 648 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 649 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 650 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 657 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 658 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 659 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 660 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 661 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 662 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 663 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 664 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 665 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 666 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 669 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 670 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 671 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 672 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 673 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 674 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 675 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 678 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 679 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 680 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 681 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 682 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 683 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 684 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 685 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 686 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 687 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 691 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 692 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 693 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 694 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 695 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 696 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 697 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 701 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 702 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 703 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 706 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 709 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 710 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 711 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 712 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 713 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 715 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 716 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 720 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 721 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 722 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 723 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 724 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 725 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 732 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 733 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 734 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 736 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 737 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 744 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 745 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 746 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 747 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 748 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 755 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 759 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 760 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 761 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 762 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 763 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 764 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 768 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 771 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 772 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 773 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 774 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 775 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 778 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 779 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 780 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 781 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 782 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 783 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 784 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 785 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 798 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 799 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 800 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 801 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 802 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 803 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 804 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 805 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 809 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 810 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 811 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 812 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 813 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 817 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 818 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 819 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 820 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 821 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 830 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 831 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 835 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 836 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 837 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 838 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 839 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 840 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 841 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 842 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 845 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 846 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 847 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 848 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 849 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 850 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 851 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 852 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 857 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 858 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 859 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 860 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 861 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 867 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 868 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 869 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 870 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 871 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 873 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 875 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 879 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 880 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 882 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 883 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 886 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 891 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 894 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 895 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 896 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 897 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 898 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 899 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 900 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 905 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 906 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 907 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 908 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 909 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 910 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 911 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 913 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 916 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 917 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 918 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 919 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 920 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 922 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 924 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 925 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 926 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 927 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 928 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 929 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 930 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 931 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 932 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 933 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 936 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 937 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 938 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 939 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 944 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 945 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 946 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 947 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 948 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 949 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 950 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 951 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 952 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 953 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 955 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 956 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 957 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 958 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 959 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 960 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 961 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 962 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 964 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 965 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 966 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 967 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 968 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 969 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 971 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 972 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 973 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 974 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 975 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 976 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 977 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 979 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 980 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 981 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 982 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 985 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 986 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 987 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 988 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 989 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 990 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 991 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 994 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 995 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 996 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 997 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 998 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 1005 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 1009 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1010 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1011 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1012 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1013 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1014 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1022 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1024 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1030 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1031 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1032 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1033 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1037 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1038 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1040 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1045 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1046 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1047 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1048 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1058 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1059 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1060 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1061 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1066 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1067 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1068 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1069 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1070 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1072 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1075 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1076 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1077 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1078 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1081 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1086 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1087 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1088 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1089 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1099 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1100 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1107 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1108 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1109 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1110 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1111 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1112 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1113 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1119 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1120 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1121 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1122 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1127 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1129 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1137 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1138 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1139 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1140 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1143 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1144 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1145 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1150 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1151 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1152 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1153 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1157 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1158 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1162 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1165 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1166 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1167 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1174 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1175 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1176 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1177 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1181 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1183 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1186 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1187 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1188 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1189 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1191 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1195 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1196 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1198 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1199 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1200 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1201 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1203 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1204 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1205 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1206 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1207 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1211 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1212 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1213 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1214 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1216 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1217 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1218 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1221 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1222 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1223 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1224 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1227 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1233 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1234 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1235 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1236 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1242 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1243 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1244 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1246 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1251 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1252 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1253 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1255 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1260 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1261 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1262 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1263 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1264 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1265 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1269 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1270 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1271 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1272 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1273 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1274 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1277 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1281 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1282 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1283 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1284 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1285 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1286 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1290 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1291 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1292 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1293 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1294 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1295 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1296 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1300 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1301 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1302 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1303 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1304 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1305 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1309 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1310 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1311 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1312 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1313 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1314 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1315 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1316 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1320 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1321 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1322 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1323 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1324 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1325 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1329 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1331 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1332 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1333 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1334 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1335 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1336 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1340 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1341 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1342 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1343 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1349 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1350 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1351 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1352 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1353 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1354 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1358 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1359 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1360 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1361 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1362 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1363 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"32d149fa_c238_4e8c_9c9bfe8ca03b39ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{ 1365 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"05f6e40b_f62a_4382_9b25ca234839aeb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID);\r\n// }} \"\"\r\n// {{ 1367 1 0 \"b8eff0c4_8a87_4d69_8b1fc22443527e58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1368 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_43ECC15F92874e8a8FCA2A90F3412255 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1369 1 0 \"a6315690_dcdc_4faf_9764f4edcccee401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1370 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"b152d230_641d_44fd_82876d10beb25ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"2178bb5d_1389_4bb3_92e038bed00ad7d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"0e8fa514_886c_42d7_a0fec5c2e0a40820\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1374 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1375 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1376 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1377 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_MeasureCycle\")\r\n{\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"e78c25fc_f856_4c7d_bb7f6056d2ae0e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"4c0064bb_0c23_4648_b57e5599878d63f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqMeasurement\"), seqMeasurement);\r\n// }} \"\"\r\n// {{ 1380 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (seqMeasurement == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"a11073f7_18e2_4097_baf006ed44e74081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MeasurePositions\"), MeasurePositions);\r\n// }} \"\"\r\n// {{{ 1382 1 0 \"47d49bd0_0457_440d_b1d654c85ac3c5db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(MeasurePositions, seq);\r\n// }} \"\"\r\n// {{ 1383 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"bbddeeab_2dc4_4931_900a5ec07aafe0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, seqMeasure, seq);\r\n// }} \"\"\r\n// {{ 1385 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"6b06d7c5_bf98_48d9_906ae705e4ce149b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1387 1 0 \"25fe4c02_a4e2_40cd_91289dc1c5c638b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProbePattern\"), ProbePattern);\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"02a9e02a_0596_4158_ac021180b0b5985c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1389 1 0 \"f8080019_d032_4f0c_9ef8429bde9ee7df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"83142ee1_d831_4ff1_a6734844fe789421\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues);\r\n// }} \"\"\r\n// {{{ 1391 1 0 \"d4d4974a_23a2_43a2_851b478f0e7d24be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValues, flt_pHValues);\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"bde9c162_a4cf_40fa_a663c6b78e029610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1393 1 0 \"0a5c18e9_775d_4644_bdfcc536000642cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Measure Cycle\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1394 1 0 \"c1502c7b_2bd0_480c_a0ce6887e02484bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1395 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1396 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1397 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1398 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"d9d7f7cb_394b_40ea_a037e16efc8e063c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"0e65e09c_0178_403b_9eca768c440a479f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"fedae8c3_0c9d_426f_a30e8fdfa1d2b056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"ad8456a9_07be_4852_b2bab182e7e17dae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration1\"), Calibration1);\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"8b591ca2_adf8_4248_b5ac1fb2a84c21aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"0f28a5e9_278c_4290_aa9ee416f829755a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration2\"), Calibration2);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"b57e28d3_0011_4657_bbceba83ca97b89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2);\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"101798f0_c18a_411a_b29295d972cc9a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqReference\"), Reference);\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"1c415c8d_660d_41fe_a81fcfd6d8836038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Reference, seqReference);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"20510ceb_5840_48de_842a1b657fa7706d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationTime\"), CalibrationTime);\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"ecd67637_3e8e_4d22_89b67b39e05342fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1410 1 0 \"148b5d07_b84d_4786_b1d0f9d5e5837491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"938c1584_a353_4f03_ba14c9f33cc2c6a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue1\"), CalibrationValue1);\r\n// }} \"\"\r\n// {{{ 1412 1 0 \"cda9048b_fe59_4db2_a1d08550795038f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue2\"), CalibrationValue2);\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"5d669238_eb69_4080_8b789139b291be94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValueRef\"), CalibrationValueRef);\r\n// }} \"\"\r\n// {{{ 1414 1 0 \"4c7c9992_c2e0_445a_bee9cd7dd086e585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln1\"), TempSoln1);\r\n// }} \"\"\r\n// {{{ 1415 1 0 \"9574a12d_456e_4fd6_9b51714dd88b4a1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln2\"), TempSoln2);\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"211f81c7_5561_45ce_8cf247e76fb0f65e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSolnRef\"), TempSolnRef);\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"f812ea75_ed49_4a04_b4ab3dd67f1206ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrateDynamically\"), blnCalibrateDynamically);\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"178d95b8_13db_4493_a08cdaec1348c0e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"d4d33c2d_2aee_4a51_ad36cb953d687c83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{ 1420 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F882CD31309846e3BD30959B418AB982 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 1422 1 0 \"18724129_2443_4271_a6316a42ef334c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1423 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F882CD31309846e3BD30959B418AB982 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1424 1 0 \"d6c65e91_f6e8_47d9_aaf1810ffab1ffac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1425 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"7375b9e4_01c3_49a1_810fb42149ed0eea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios);\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"31ba6e89_258d_4deb_97352544c3b5c45c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution);\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"924064ec_85ac_4b42_a5ff3eb8a6a5342f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"65bd0fe0_0efb_4335_b118b89e61b948ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1430 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1431 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1432 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1433 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Dry\")\r\n{\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"0f0bf03e_4950_40e7_b2899f9cabb79cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1435 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1436 1 0 \"1885a8d9_8082_44ab_bfd7a217170187db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1437 1 0 \"33dddcad_4489_4f31_8b4fea145ebbe77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1438 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D19CA5AD1071407b84599779A41B51EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1439 1 0 \"d8f5d052_f205_4e22_8998e2d0d12790ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1440 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"5521c0c7_c64b_4b49_9036f9bf6a7a83d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1442 1 0 \"9e7864cd_a0bd_4ec6_8f733a2e7ab773bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1443 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1444 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1445 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1446 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"39b0590c_dc8d_4eb3_b8bfcab65235f494\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1448 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1449 1 0 \"beaffdda_e52a_4f79_95659f907946752f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1450 1 0 \"58aab21a_307b_403b_980186d201a7c6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1451 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1452 1 0 \"4cd2a753_2761_4d3c_9cd93c15fa19a47b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1453 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"0af219f8_e5bc_4b14_a95fd7e3f2ccb712\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"7b44ca9e_e6d7_4793_8f937fc518ecc41c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1456 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1457 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1458 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1459 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SetParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"7e5e111c_21f5_4c0b_9dd06d15aee64431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqGripper\"), Gripper);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"8417ab78_f4b8_40aa_890f3b14e4204667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Gripper, seqGripper);\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"f43d4896_c19a_4cc9_ad3c75f925788b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqWashPosition\"), WashPosition);\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"ffcc2479_6c91_4038_bab179b027d4b03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"b731d1c6_30bc_4003_ba19e062e82293db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqDryPosition\"), DryPosition);\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"a68ddb6b_780a_46ed_bcaa350f92f649fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition);\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"020f31e6_e3ef_48f4_af0e175e60e00159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TransportChannel\"), TransportChannel);\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"1561e8c8_acaa_438f_9c7c57a5c196556f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WashCycles\"), WashCycles);\r\n// }} \"\"\r\n// {{{ 1468 1 0 \"7e0a9629_dce6_4ed9_81b854f636408ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryCycles\"), DryCycles);\r\n// }} \"\"\r\n// {{{ 1469 1 0 \"dacc3c17_6358_44f0_8ac4ad1fa0ae08b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"f86b35ff_9db7_4845_a3cfb7d04c520c3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime);\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"ce0a2f35_ae58_4695_85513126a4acb791\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"da69f49c_299d_435d_9d95dc10f7303ce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"bd10bc62_2ace_436a_a68acec8c1f9287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1474 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1475 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1476 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1477 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Park\")\r\n{\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"90471824_8967_4383_a722d29bfaf60113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"f6bbc2b1_c86d_4f64_abc12d3b740b1d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"9341ffae_9e0c_43f9_b3ccedcfbadb07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"9e0a230a_fdb5_4eec_9cf3127779adb1d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"8aacb0d9_a918_426b_9717bd2febc1f74a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"15592ad5_5751_4636_8a513ee3f27c7f11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"6222366b_a5bf_4c73_8685a3cdebb4ff4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1485 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1486 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1487 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1488 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Pickup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1489 1 0 \"347e06d8_9db7_4279_bf224e9ecf4299e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1490 1 0 \"2b0761dc_e201_46b3_a590b52421cd8ee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1491 1 0 \"76631bc5_230e_4e20_87bf493887cddd0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1492 1 0 \"2d3aba8b_cc4b_4be1_a83c30695fcf6dbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1493 1 0 \"7879f9b5_2eea_4059_8e4bef3213e8decd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"cb1582a1_3f8c_44fd_910a5f08dbe32b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"a15fc9df_322f_4ce1_83228c63669e6b16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1496 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1497 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1498 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1499 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_ExtendedLog\")\r\n{\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"d101eee8_9402_428a_aa576d531ed959c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 1501 1 0 \"bc849548_9009_43ec_bb1b6c81c32132f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1502 1 0 \"0a496202_0f55_4f40_8b391260caa236ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1503 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1504 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1505 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1506 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_LoadLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{ 1507 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B416552A06404ef48774D74059C2B182 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"154ec087_ea2e_4381_bb2e261ffad534f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1509 1 0 \"79340e9d_69d5_4911_b4601ae4754a16c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1510 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B416552A06404ef48774D74059C2B182 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1511 1 0 \"46420553_d90f_4dfa_b42c9d86856c288a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1512 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1513 1 0 \"54b468e0_3ea0_4e83_9ffae95722c5cb9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBluetoothPort = StrIStr(BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1514 1 0 \"7bde202f_1c1b_4911_9f600ac6e1a5b57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumWashCycles = StrIStr(NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1515 1 0 \"c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumDryCycles = StrIStr(NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"027378a7_4549_4d3f_b8d33aa4980be4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDryTime = StrIStr(DryTime);\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"fbda7cdb_3ed9_4a5c_907ce60556e0129b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1518 1 0 \"e454face_7eee_4c6e_a61e221c0e5d7fb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1519 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1520 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1521 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1522 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SaveLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{{ 1523 1 0 \"aca4c717_812e_46f9_8eb5989a720adb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BluetoothPort\"), BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"1198edc8_1ec9_479d_a4e7fd71ed50cf8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumWashCycles\"), NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"be958699_818e_43db_a757a67b7b54572a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumDryCycles\"), NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"8751a2c3_e6ee_43bf_b21f5458aebf179a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{ 1527 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4973F03471994119A9F699CE6459CBFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1528 1 0 \"1480ff51_54ea_4c38_befa457e23966aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1529 1 0 \"0e101f68_bc36_42fe_882a3951ef193f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1530 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4973F03471994119A9F699CE6459CBFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1531 1 0 \"2e180d98_e746_4b84_b623b4d0e8e198fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1532 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"cb24f9db_18c1_41af_b6f16900826be7be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"87c5e5f6_77ee_4519_879fdceaf21c1d7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1535 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1536 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1537 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1538 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1539 1 0 \"bdbbc648_a9fa_468f_b5d4d390115575eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1540 1 0 \"1a74d7ad_0c35_454c_b161ede32468b2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1541 1 0 \"c67afa78_dd60_451b_b2e31a2e6540f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1542 1 0 \"2424dca1_971a_40f8_97b763c253560a2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"8def2ba5_b51c_4e0c_b6ebfdd346a5beec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"684d328d_214e_4955_bfe9ff0627b7f8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"e6ec0fc8_d42c_4413_b2c2719c3cd18dc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"6f2273c4_1e1e_46f3_9ea6544d76383266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1547 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1548 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1549 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1550 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1551 1 0 \"b43cf782_b210_48c8_933f4cdfae78d050\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1552 1 0 \"efbfd98d_c15d_4ac9_b94250ab4361a8b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID);\r\n// }} \"\"\r\n// {{{ 1553 1 0 \"c918ad91_e33e_4f2f_9c6577fd8c93aaf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"2021a914_67dd_495e_9a9e4cf4438df298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1555 1 0 \"8d8842cd_e3b4_4397_92ad69593e9f7796\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1556 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1557 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1558 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1559 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1560 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1561 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1563 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1564 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1565 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1566 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1567 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1571 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1572 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1573 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1574 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1576 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1577 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1579 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1580 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1581 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1582 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1584 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1585 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1586 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1587 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1588 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1589 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1591 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1593 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1594 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1595 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1596 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1597 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1600 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1601 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1602 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1603 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1604 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1608 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1609 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1610 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1611 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1612 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1616 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1617 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1618 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1619 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1620 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1621 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1622 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1623 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1624 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1625 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1629 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1630 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1631 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1632 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1638 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1639 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1640 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1642 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1646 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1647 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1648 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1649 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1650 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1652 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1653 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1654 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1655 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1656 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1660 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1661 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1662 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1663 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1664 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1665 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1666 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1667 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1669 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1670 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1673 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1674 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1675 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1676 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1677 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1678 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1679 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1680 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1681 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1682 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1683 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1684 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1685 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1686 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1687 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1688 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1689 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1690 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1691 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1692 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1693 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1694 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1696 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1697 1 0 \"6957e247_4f64_4971_8d90658c99adbb87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{{ 1698 1 0 \"34cc8f4a_c310_4eb7_b936c63f8401c523\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1699 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1700 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1701 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1702 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1705 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1706 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1707 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1708 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1709 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1710 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1711 1 0 \"dd7d7b00_1e95_4e45_97a425f03a18ab04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{{ 1712 1 0 \"0021495f_472e_4321_9d1e81e8fbd43f0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1713 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1714 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1715 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1716 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1717 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1718 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1719 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1720 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1721 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1722 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1723 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1724 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1725 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1726 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1727 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1728 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1729 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1730 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1731 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1732 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1733 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1734 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1735 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1736 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1737 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1738 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1739 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1740 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1741 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1742 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1743 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1744 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1745 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1746 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1747 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1748 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1749 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1750 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1751 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1752 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1753 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1754 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1755 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1756 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1757 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1758 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1759 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1760 1 0 \"c0166b97_c0ae_417b_85c90c5ef42e5fc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1761 1 0 \"73777071_2fd2_42b0_a7545c6a6a372194\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1762 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1763 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1764 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1765 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1766 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1767 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1768 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1769 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1770 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1771 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1772 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1773 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1774 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1775 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1776 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1778 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1779 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1780 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1781 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1782 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1783 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1784 1 0 \"ecd6d069_96d7_4a72_9ffc0df77e7a1512\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1785 1 0 \"b05c868f_c25f_47a9_b533b13ab05fc962\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1786 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1787 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1788 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1789 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1790 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1791 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1792 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1793 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1794 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1795 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1796 1 0 \"c99aa2b7_d8a6_4cee_a1fa1d731ef77d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1797 1 0 \"f2861b4d_28d2_4ee3_8b7c7763312067ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1798 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1799 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1800 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1801 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1802 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1803 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1804 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1805 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1806 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1807 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1808 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1809 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1810 1 0 \"a650efc1_423b_4f75_9f0da083ee44ae9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{{ 1811 1 0 \"e1ef0806_8a47_46c1_972c9ed9e299eaad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1812 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1813 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1814 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1815 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1816 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1817 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1818 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1819 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1820 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1821 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1822 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1823 1 0 \"b417b8ce_5117_450e_93a9a6243c6011d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{{ 1824 1 0 \"ed43cecb_7012_4fb9_a89d129de09bdadb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1825 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1826 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1827 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1828 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1829 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1830 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1831 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1832 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1833 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1834 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1835 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1836 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1837 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1838 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1839 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1840 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1841 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1842 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1843 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1844 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1845 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1846 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1847 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1848 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1849 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1850 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1851 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1852 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1853 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1854 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1855 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1856 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1857 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1858 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1859 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1860 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1861 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1862 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1863 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1864 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1865 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1866 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1867 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1868 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1869 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1870 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1871 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1872 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1873 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1874 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1875 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1876 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1877 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1878 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1879 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1880 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1881 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1882 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1883 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1884 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1885 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1886 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1887 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1888 1 0 \"73be1c30_4bfe_4a0f_aa560c8df5b091fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1889 1 0 \"39ac643d_0305_4ec6_87fc196efe3d76f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1890 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1891 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1892 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1893 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1894 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1895 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1896 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1897 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1898 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1899 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1900 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1901 1 0 \"272104de_2e64_4a32_a88407b030437361\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1902 1 0 \"1362f66b_0efd_4eb5_935e84586a427637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1903 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1904 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1905 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1906 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1907 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1908 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1909 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1910 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1911 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1912 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1913 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1914 1 0 \"cf1b40c4_5e9a_48bf_9390f6eab212315f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1915 1 0 \"2e7a5304_5ce9_4afb_93a4a8276dc86d74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1916 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1917 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1918 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1919 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1920 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1921 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1922 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1923 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1924 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1925 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1926 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1927 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1928 1 0 \"4b29337f_c67c_4ecf_a205f4b70e60271a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1929 1 0 \"40aad8b7_f42e_4ad1_b0f0c033ec666548\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1930 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1931 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1932 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1933 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1934 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1935 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1936 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1937 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1938 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1939 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1940 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1941 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1942 1 0 \"dfb61f9c_103b_4c42_83e0779ea05cb180\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{{ 1943 1 0 \"e4829da3_d8b6_453f_a2be82213303e9f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1944 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1945 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1946 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1947 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1948 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1949 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1950 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1951 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1952 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1953 1 0 \"ee3103a2_d7f3_488f_b7a95e2f2b56770a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{{ 1954 1 0 \"a782313c_e15b_4340_bdda314f926e24cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1955 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1956 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1957 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1958 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1959 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1960 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1961 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1962 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1963 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1964 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1965 1 0 \"b5ecca33_fef4_4c14_9cf702c924839607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1966 1 0 \"49e72e72_8e49_49fd_8d212a6ccff1d2fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1967 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1968 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1969 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1970 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1971 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1972 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1973 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1974 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1975 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1976 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1977 1 0 \"d186dde8_c684_4550_a023d9023ff021d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1978 1 0 \"af12e4a9_cc0f_4a82_b9593d2b489756a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1979 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1980 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1981 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1982 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1983 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1984 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1985 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1986 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1987 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1988 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1989 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1990 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1991 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1992 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1993 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1994 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1995 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1996 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1997 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1998 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1999 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2000 1 0 \"3b2abeec_38f4_46a6_a30b0d0126280ebc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2001 1 0 \"c4e94e42_8405_438b_921cfe4ba73e9976\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2002 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2003 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2004 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2005 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2006 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2007 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2008 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2009 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2010 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2011 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2012 1 0 \"5aa60a5a_db92_42e0_b3277a41cacb5336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2013 1 0 \"49cd8e9e_91bd_468c_aec57e3af40280fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2014 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2015 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2016 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2017 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2018 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2019 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2020 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2021 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2022 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2023 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 2024 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 2025 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 2026 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 2027 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 2029 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2030 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2031 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 2032 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2033 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 2034 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2035 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 2036 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2037 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2038 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2039 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2040 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2041 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2042 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2043 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2044 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2045 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2046 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2047 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2048 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Hamilton$$valid=0$$time=2024-09-06 15:33$$checksum=6be64d0a$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx68E5.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2213 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2173 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2174 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2175 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2176 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2177 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2178 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2194 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2195 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2196 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2197 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2198 1 0 \"73659ac2_f808_47cc_89196cc3adc8efbf\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\ntimer1.SetTimerViewName(\"\");\r\nif( 0 == timer1.SetTimer(0.05) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2199 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2200 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2201 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2202 1 0 \"9be29cc7_ad35_4b87_9e95d31796325e12\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2203 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2204 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2205 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2206 1 0 \"2a039f02_4c13_4f72_9ba40a3121b31262\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2207 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2208 1 0 \"d221d799_ee85_4f6d_a40a06cc0a69a3de\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\ntimer1.SetTimerViewName(\"\");\r\nif( 0 == timer1.SetTimer(0.05) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2209 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2210 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2211 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2144 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2145 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2146 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2147 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2148 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2149 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2150 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2151 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2153 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2154 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2086 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2087 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2088 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2089 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2090 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2091 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2092 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2093 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2094 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2095 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2096 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2097 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2098 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2188 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2189 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2190 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2191 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2060 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2061 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2062 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2063 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2064 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2065 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2066 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2067 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2069 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2070 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2071 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2072 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2073 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2074 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2075 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2076 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2077 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2078 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2079 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2080 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2081 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2082 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2083 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2084 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2050 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2051 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2052 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2053 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2054 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2055 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2056 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2057 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2058 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2106 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2107 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2109 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2110 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2112 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2114 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2115 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2116 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2118 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2119 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2120 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2121 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2122 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2123 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2124 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2125 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2126 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2127 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2129 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2130 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2131 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2132 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2134 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2135 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2136 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2137 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2138 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2139 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2141 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2142 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2156 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2157 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2159 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2160 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2161 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2162 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2164 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2165 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2166 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2167 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2169 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2170 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2171 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2180 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2181 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2182 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2183 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2184 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2185 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2186 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"Begin\"\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable {\r\n// }} \"\"\r\n// {{ 5 \"ConvertHSSErrCode\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2100 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (hssErrCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2101 1 0 \"9f0ce7fc_13c6_4496_9d762a07174e50f1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (1);\r\n// }} \"\"\r\n// {{ 2102 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2103 1 0 \"4c347e8c_4bce_4fd2_9771e3402c6f946d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2024-09-06 15:33$$checksum=400be611$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx68E5.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx7218.hsl",
    "content": "// ======================================================================\r\n// This is a part of the HSLHamHeaterShaker Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//   \r\n//\t2008-09-11  tbenz >  V1.0 first creation\r\n//\r\n// 2008-12-03  tbenz >  V1.1 check of input parameter removed\r\n//\r\n// 2009-08-13  tbenz >  V1.2 Initialize routine enlarget with close ond open plate lock\r\n//                      changed in function InitializeNode()\r\n//\r\n// 2013-03-06  tbenz >  V4.4 No change in the library.\r\n//\t\t\t\t\t\tUSB driver changed from UsbIoComm.dll to HxUsbComm.dll\r\n//\t\t\t\t\t\tthis driver is trace into the same UsbCom.trc file than the phoenix software.\r\n//\t\t\t\t\t\tVersion is new dependet of the software version.\r\n//\r\n// >>>>> if you change the version update HamHeaterShakerVersion too <<<<\r\n//\r\n//\t**********************************************************************\r\n// This library version supports following hardware:\r\n//\t\t- Hamilton Heater Shaker PN 186280/02\r\n//\t**********************************************************************\r\n\r\n\r\n#ifndef __HSLHeaterShakerLibImpl_hsl__\r\n#define __HSLHeaterShakerLibImpl_hsl__\t1\r\n\r\n\r\nstatic const variable HamHeaterShakerVersion(\"Version: V4.4\");\r\n\r\n// ----------------------------------------------------------------------------------------------------\r\n// Includes\r\n// ----------------------------------------------------------------------------------------------------\r\n\r\n#ifndef __HSLStrLib_hsl__\r\n\t#include \"HSLStrLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLSynLib_hsl__\r\n\t#include \"HSLSynLib.hsl\"\r\n#endif\r\n\r\n#ifndef __HSLMthLib_hsl__\r\n\t#include \"HSLMthLib.hsl\"\r\n#endif\r\n\r\n\r\n// ----------------------------------------------------------------------------------------------------\r\n// Device (for development only! Comment out for release version.)\r\n// ----------------------------------------------------------------------------------------------------\r\n//device ML_STAR;\r\n\r\n// --------------------------------------------------------------------------------------\r\n// Implementation of Hamilton Heater Shaker library \r\n// --------------------------------------------------------------------------------------\r\nnamespace HSLHamHeaterShaker\r\n{\r\n\t#ifndef __HSLStringTableLib_hsl__\r\n\t#include \"HSLStringTableLib.hs_\"\r\n\t#endif\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Debugging and Developing (for development only! Comment out for release version.)\r\n\t// --------------------------------------------------------------------------------------\r\n\t//#define _DEBUG\t\t1\t\t// specifies the debug version of the HSLHamHeaterShaker library\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Tracing\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace TraceStatus\r\n   {\r\n\t\tstatic const variable cmd_start(1);\t\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_complete(2);\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_error(3);\t\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_progress(4);\t\t\t\t// action status for formated trace and step return\r\n\t\tstatic const variable cmd_errComplete(5);\t\t\t// action status for formated trace and step return\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Parameter definitions\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace ShakingParam\r\n   {\r\n      static const variable directionLeft(0);         // Shaking direction\r\n      static const variable directionRight(1);        // Shaking direction\r\n      static const variable directionDefault(0);      // Shaking direction\r\n      static const variable speedParamLenght(4);      // Length of firmware parameter string\r\n      static const variable accelParamLenght(5);      // Length of firmware parameter string\r\n      static const variable timeParamLenght(5);       // Length of firmware parameter string\r\n      static const variable rampMin(630);             // Accelerator ramp min\r\n      static const variable rampMax(12500);           // Accelerator ramp max\r\n      static const variable rampDefault(1250);        // Accelerator ramp default\r\n      static const variable rpmMin(30);               // min revolutions per minutes RPM (steps per second (48 steps == 1 revolution)\r\n      static const variable rpmMax(2500);             // max revolutions per minutes RPM\r\n      static const variable rpmDefault(1000);         // Revolutions per minutes RPM\r\n\t\tstatic const variable rmpStepFactor(1.25);\t\t// Factor to calculate RPM to steps (Steps = RPM / rmpStepFactor)\r\n      static const variable shakingTimeMin(0);        // min shaking time\r\n      static const variable shakingTimeMax(30000);    // max shaking time\r\n      static const variable shakeTolMin(0);    \t\t\t// min shaking tolerance\r\n      static const variable shakeTolMax(100);    \t\t// max shaking tolerance\r\n\t\t\r\n   }\r\n\r\n   namespace TemperateParam\r\n   {\r\n      static const variable startTimeOutDefault(1800);// Time before temperature will be checked\r\n      static const variable startTimeOutMin(1);       // Time before temperature will be checked\r\n      static const variable startTimeOutMax(3600);    // Time before temperature will be checked\r\n      static const variable paramLength(4);           // Length of all temperature step parameter\r\n      static const variable tempStateOk(0);           // Temperature was allways in temperature range\r\n      static const variable tempStateOutOfRange(1);   // Temperature was out of temperature range\r\n      static const variable tempStateOutOfSecurity(2);// Temperature was out of security range\r\n      static const variable tempStateTimeOut(3);\t\t// Temperature timeout\r\n      static const variable tempMin(0.0);             // min temperature\r\n      static const variable tempMax(105.0);           // max temperature\r\n      static const variable tempToleranceDefault(2.0);// Tolerance of incubation time\r\n      static const variable tempToleranceMin(0.0);    // Tolerance of incubation time\r\n      static const variable tempToleranceMax(100.0);  // Tolerance of incubation time\r\n      static const variable tempSecurityDefault(6.0); // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempSecurityMin(0.0);     // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempSecurityMax(100.0);   // Security range of incubation temperature (switch off heater if reached)\r\n      static const variable tempTempRequestLength(13);// Length of temperature response string\r\n      static const variable tempStateRequestLength(4);// Length of temperature state response string\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Monitoring\r\n\t// --------------------------------------------------------------------------------------\r\n   namespace MonitorStatus\r\n   {\r\n\t\tstatic const variable monitorOK(0);\t\t\t\t\t\t\t// no error\r\n\t\tstatic const variable monitorErrHeating(1);\t\t\t\t// heating out of range\r\n\t\tstatic const variable monitorErrShaking(2);\t\t\t\t// shaking out of range\r\n\t\tstatic const variable monitorErrHeatingAndShaking(3);\t// heating and shaking out of range\r\n   }\r\n\r\n   namespace MonitorAction\r\n   {\r\n\t\tstatic const variable monitorActionMin(0);\t\t\t\t// min value\r\n\t\tstatic const variable monitorActionCont(0);\t\t\t\t// Continue\r\n\t\tstatic const variable monitorActionStop(1);\t\t\t\t// Stop Heating, shaking and monitoring\r\n\t\tstatic const variable monitorActionAbort(2);\t\t\t\t// Abort run\r\n\t\tstatic const variable monitorActionMax(2);\t\t\t\t// max value\r\n   }\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module local constants/variables\r\n\t// --------------------------------------------------------------------------------------\r\n   static const variable m_maxHHS(10);                      // node 0..9\r\n   static const variable m_firstStarNode(1);                // node 1 and 2 for ML_Star\r\n   static const variable m_lastStarNode(2);                 // node 1 and 2 for ML_Star\r\n   static const variable m_firstUsbNode(1);                 // node 1 to 8 for USB (0..7)\r\n   static const variable m_lastUsbNode(8);                  // node 1 to 8 for USB (0..7)\r\n   static const variable m_firstDeviceNumber(1);            // generated deviceNumber range\r\n   static const variable m_lastDeviceNumber(m_maxHHS);      // generated deviceNumber range\r\n\r\n   static const variable m_usbMsgTimeout(240);              // timeout for comand which are send to USB\r\n   static const variable m_usbInitTimeout(15);              // timeout for init comands which are send to USB\r\n   static const variable m_OFF(0);\r\n   static const variable m_ON(1);\r\n   static const variable m_firmwareCmdLength(2);            // length of firmware command without node (Tx)\r\n   static const variable m_waitTimeOutSecurity(60);         // Security time which will be added oto wait timeout of function waitShaker()\r\n\tstatic const variable m_starSimulateModeKey(18);\t\t\t// key for read simulate flag of STAR with GetCfgValueWithKey()\r\n\tstatic const variable m_shakingPropertyHeatAndShake(0);\t// HHS is usable for heating and shaking\r\n\tstatic const variable m_shakingPropertyOnlyHeat(1);\t\t// HHS is usable for heating only\r\n\tstatic const variable m_shakingPropertyOnlyShake(2);\t\t// HHS is usable for shaking only\r\n\tstatic const variable m_shakingPropertyNothing(3);\t\t\t// HHS is defined wrong, no shaking and no heating ????\r\n\r\n   // special error definition for direct check in step result string\r\n   static const variable m_fwNoError(\"er00\");               // no error\r\n   static const variable m_fwCanError(\"er10\");              // can error\r\n   static const variable m_fwShNotInitError(\"er51\");        // Shaker not initialized\r\n   static const variable m_fwShStepLostError(\"er52\");       // Shaker step lost\r\n   static const variable m_fwPlNotInitError(\"er56\");        // Plate lock not initialized\r\n   static const variable m_fwPlStepLostError(\"er57\");       // Plate lock step lost\r\n   static const variable m_fwTimeoutError(\"er98\");          // Time out during send of a command\r\n   static const variable m_fwIsInitialized(\"qw1\");          // QW answere, initialize = flag == 1\r\n   static const variable m_noStarConnectionError(\"er03\");   // No connection to star\r\n\r\n\t// definition for USB component\r\n   static variable   m_hhsUsbObjectName(\"HamHeaterShakerUSB.USB\");   // name of USB component\r\n   // \"{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}\", bufferSize(4090), vendorId(2223), productId(32770), serialNumber(00));\r\n   static variable   m_hhsUsbProductNum(32770);             // productId and serialNumber as string\r\n   static variable   m_hhsUsbSerieNum(\"00\");             \t// productId and serialNumber as string\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module globale constants/variables\r\n\t// --------------------------------------------------------------------------------------\r\n\tstatic global variable  m_hhsCriticalSection(0);   // critical section object for library synchronization \r\n   static global object    m_usbComObject;            // USB device object\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Module local constants/variables which must be locked during set / get\r\n\t// --------------------------------------------------------------------------------------\r\n   static variable m_isStringTableInitialized(hslFalse);   \t\t\t// flag for init string table\r\n\tstatic global variable m_initializedLib(hslFalse);\t\t\t\t   // initialization state of the HSL HamHeaterShaker library\r\n\tstatic global variable m_isSimulate(hslFalse);                 // flag for simulate mode of heater shaker\r\n   static global variable m_usbTrace(hslTrue);\t\t\t\t\t\t\t// flag vor trace the send and receive from USB device\r\n\tstatic global variable m_initializedHeater[](m_maxHHS);        // initialization state of the used device\r\n   static global variable m_shakingDirection[](m_maxHHS);         // Shaking direction left/right (0/1)\r\n   static global variable m_shakingAccRamp[](m_maxHHS);           // Acceleration ramp (rpm)\r\n   static global variable m_shakingTimeOut[](m_maxHHS);           // Time out for waiting function after StartTimed 0 = not started\r\n   static global variable m_tempStartTimeOut[](m_maxHHS);         // Time to elapse until the time controlling is satrt\r\n   static global variable m_tempToleranceRange[](m_maxHHS);       // Tolerance of incubation temperature\r\n   static global variable m_tempSecurityRange[](m_maxHHS);        // Security tolerance before the heater is automatic switched off\r\n   static global variable m_userShakingSpeed[](m_maxHHS);         // The given speed from start function\r\n   static global variable m_userTemperature[](m_maxHHS);         \t// The given temperature from start function\r\n\r\n\t// device management\r\n\t// note: the assigned deviceNumber correspond with the array index (deviceNumber-1 == arrayIndex)\r\n\tstatic global variable m_deviceName[](m_maxHHS);\t\t\t\t\t// Name of ML_STAR or \"USB\" on USB\r\n\tstatic global variable m_nodeNumber[](m_maxHHS);\t\t\t\t\t// can node number 1 based\r\n\tstatic global object   m_starDeviceObj[](m_maxHHS);\t\t\t\t// object of ML_STAR device, for USB use m_usbComObject\r\n\tstatic global variable m_isStarSimulate[](m_maxHHS);\t\t\t\t// ML_STAR is in simulate mode\r\n\tstatic global variable m_hhsSetting[](m_maxHHS);\t\t\t\t\t// 0..2, 0=both, 1=onlyHeat, 2=onlyShake\r\n\r\n\tstatic function saveAndCreateDeviceNumber(variable funcId, variable deviceName,\r\n\t\t\tobject& starObject, variable isStarSimulate,\tvariable usedNode);\r\n   // m_initializedHeater value with data access lock\r\n   static function isUsbConnected(variable funcId);\r\n \tstatic function isSimulate(variable funcId, variable deviceNumber, variable makeTrace );\r\n   // uses node from 0 to 9\r\n   static function isHeaterInitialized(variable deviceNumber);\r\n   // uses node from 0 to 9\r\n   static function setHeaterInitialized(variable deviceNumber);\r\n   static function isUsbTrace();\r\n\r\n\t// definitions for Monitoring function\r\n   static const variable m_minSampleInterval(5);\r\n   static const variable m_maxSampleInterval(300);\r\n\r\n   // Prepare the globals for the hsl thread.\r\n   static global event\t  m_monitorStartEvent;\r\n   static global variable m_monitorDeviceNumber;\r\n   static global variable m_monitorShakerMin;\r\n   static global variable m_monitorShakerMax;\r\n\tstatic global variable m_monitorHeaterMin;\r\n\tstatic global variable m_monitorHeaterMax;\r\n   static global variable m_monitorSampleInterval;\r\n   static global variable m_monitorAction;\r\n   static global event\t  m_monitorEvent[](m_maxHHS);\r\n   static global variable m_monitorResult[](m_maxHHS);\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Firmware Error Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDE\r\n\t{\r\n\t\tstatic const variable first(0);\t\t\t\t\t\t            // guard\r\n\t\tstatic const variable noError(first);\t\t\t\t\t\t\t\t// No error\r\n      static const variable retErr(first + 1);\t\t\t\t\t\t\t// fatalError\r\n      static const variable retNotInitErr(first + 2);\t\t\t\t\t// node not initialized\r\n      static const variable retNotConnectErr(first + 3);\t\t\t\t// device not connected\r\n\t\tstatic const variable canError(first + 4);\t\t\t\t\t   // No communication to CAN node\r\n\t\tstatic const variable eepromError(first + 5);\t\t\t\t   // No communication to EEPROM\r\n\t\tstatic const variable syntaxCmdError(first + 6);\t\t\t   // Unknown command\r\n\t\tstatic const variable syntaxParUnkError(first + 7);\t\t\t// Unknown parameter.\r\n\t\tstatic const variable syntaxParRangeError(first + 8);\t\t\t// Parameter out of range.\r\n\t\tstatic const variable generalVoltError(first + 9);\t\t\t   // Voltage outside permitted range\r\n\t\tstatic const variable generalStopError(first + 10);\t\t\t// Stop received\r\n\t\tstatic const variable generalAddrError(first + 11);\t\t\t// Wrong system address\r\n\t\tstatic const variable parallelError(first + 12);\t\t\t\t// Parallel commands are nor allowed\r\n\t\tstatic const variable shakerInitError(first + 13);          // Shaker initialization failt\r\n\t\tstatic const variable shakerNotInitError(first + 14);\t\t\t// Shaker not initialized\r\n\t\tstatic const variable shakerStepLossError(first + 15);\t\t// Shaker step loss\r\n\t\tstatic const variable shakerStartModeError(first + 16);     // Shaker is not started with timeout\r\n\t\tstatic const variable plateLockInitError(first + 17);\t\t\t// Plate lock initialization failt\r\n\t\tstatic const variable plateLockNotInitError(first + 18);\t\t// Plate lock not initialized\r\n\t\tstatic const variable plateLockStepLossError(first + 19);\t// Plate lock step loss\r\n\t\tstatic const variable tempNotStartError(first + 20);\t\t   // Temperature controlling not started\r\n\t\tstatic const variable tempTimeoutError(first + 21);\t      // Timeout of temperature supervision\r\n\t\tstatic const variable tempSuperRangeError(first + 22);\t\t// Temperature out of supervision range\r\n\t\tstatic const variable tempSecurRangeError(first + 23);\t   // Temperature out of security range\r\n\t\tstatic const variable tempSensorError(first + 24);\t         // Temperature out of security range\r\n\t\tstatic const variable commandSendTimeout(first + 25);\t      // Time out occured on command ='%s'\r\n\t\tstatic const variable unknowFwError(first + 26);\t         // Unknow firmware error = '%s'\r\n      // none firmware errors\r\n\t\tstatic const variable noStringValue(first + 27);\t         // Wrong type of parameter; '%s1(%s2)' must be a sting..\r\n\t\tstatic const variable noIntegerValue(first + 28);\t         // Wrong type of parameter; '%s1(%s2)' must be a whole number.\r\n\t\tstatic const variable noDoubleValue(first + 29);\t         // Wrong type of parameter; '%s1(%s2)' must be a whole or decimal number.\r\n      static const variable neededNodeNotAvailable(first + 30);\t// Node '%s1' not found, please set it to 0 on parameter '%s2' at position '%s3'.\r\n      static const variable unknownResultFormat(first + 31);      // Unknown format of firmware result string.\\r\\nExpected: '%s1'.\\r\\nReceived: '%s2'.\r\n      static const variable wrongParameterLength(first + 32);     // Wrong length of input parameter.\\r\\nParameter = '%s1' length (%s2).\\r\\nExpected lenght (%s3).\r\n\r\n\t\tstatic const variable last(first + 32);\t\t\t\t\t\t\t// guard\r\n\t}\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// String Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDS\r\n\t{\r\n\t\tstatic const variable first(IDE::last + 1);\t\t\t\t\t   // guard\r\n\t\tstatic const variable traceSource(first);\t\t\t\t\t\t   // Text: \"SYSTEM\", source for formated trace\r\n\t\tstatic const variable helpFileName(first + 1);\t\t         // Text: \"HSLHAMHEATERSHAKERLIB%s.CHM\", language independend language name\r\n\t\tstatic const variable sendMessageTitle(first + 2);\t\t\t\t// Text: \"Send message = \"\r\n\t\tstatic const variable receiveMessageTitle(first + 3);\t\t   // Text: \"Received answere = \"\r\n\t\tstatic const variable setSimulate(first + 4);\t\t\t\t\t// Text: \"Set simulate mode = \"\r\n\t\tstatic const variable starNode(first + 5);\t\t\t\t\t   // Text: \"ML_Star node\"\r\n\t\tstatic const variable usbNode(first + 6);\t\t\t\t\t      // Text: \"USB node\"\r\n\t\tstatic const variable noUsbConnection(first + 7);\t         // Text: \"No connection to USB device.\"\r\n\t\tstatic const variable parameterOutOfRange(first + 8);\t      // Text: \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n      static const variable neededNodeNotInitialized(first + 9);\t// Text: \"Node '%s1' not initialized'.\"\r\n      static const variable setTrace(first + 10);\t\t\t\t\t\t// Text:\t\"Set USB trace mode = \"\r\n\t\tstatic const variable firmwareVersion(first + 11);\t\t\t\t// Text: \"%s1 '%s2' firmware version = \"\r\n\t\tstatic const variable cannotCreateUsbPort(first + 12);\t   // Text: \"USB communication cannot be created.\"\r\n      static const variable timeoutDuringWaitShaker(first + 13);  // Text: \"Time out during wait for end shaking. Shaking will be stop.\"\r\n      static const variable progressSendTo(first + 14);           // Text: \"Send command to %s1 ( %s2 ).\"\r\n      static const variable startTimeout(first + 15);             // Text: \"Start time out = \"\r\n      static const variable toleranceRange(first + 16);           // Text: \"Temperature range = \"\r\n      static const variable securityRange(first + 17);            // Text: \"Security range = \"\r\n      static const variable shakingDirection(first + 18);         // Text: \"Shaking direction = \"\r\n      static const variable shakingSpeed(first + 19);             // Text: \"Shaking speed = \"\r\n      static const variable shakingAccRamp(first + 20);           // Text: \"Shaking acceleration ramp = \"\r\n      static const variable sendToStar(first + 21);               // Text: \"HSLHamHeaterShakerLib::SendToStar\"\r\n      static const variable sendToUsb(first + 22);                // Text: \"HSLHamHeaterShakerLib::SendToUsb\"\r\n      static const variable invalidStarDevice(first + 23);      \t// Text: \"Parameter 'starDevice' contains an invalid object.\"\r\n      static const variable invalidDeviceNumber(first + 24);      // Text: \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n      static const variable maxHHSReached(first + 25);      \t\t// Text: \"Cannot create the deviceNumber; Maximum count of usable HHS is reached.\"\r\n      static const variable shakingNotActivated(first + 26);      // Text: \"Current HHS module on %s1 '%s2' cannot used as shaker.\");\r\n      static const variable heatingNotActivated(first + 27);      // Text: \"Current HHS module on %s1 '%s2' cannot used as heater.\");\r\n      static const variable monitoringShakingTitle(first + 28);   // Text: \"Current speed (RPM) = \");\r\n      static const variable monitoringTempTitle(first + 29);      // Text: \"Current temperature = \");\r\n      static const variable monitoringTempHeatUpTitle(first + 30);// Text:\t\"Current temperature (heating up mode) = \");\r\n      static const variable monitoringStateTitle(first + 31);\t\t// Text:\t\"Current monitored state = \");\r\n      static const variable monitoringWarning(first + 32);\t\t\t// Text:\t\"Warning: \");\r\n      static const variable monitoringShNotStart(first + 33);\t\t// Text:\t\"Shaking not started, check of speed limit will be disabled!\");\r\n      static const variable monitoringHeNotStart(first + 34);\t\t// Text:\t\"Heating up not started, check of temperature limit will be disabled!\");\r\n      static const variable monitoringAbort(first + 35);\t\t\t\t// Text:\t\"Heating or shaking is out of range; Method will be abort!\");\r\n\r\n\t\tstatic const variable last(first + 35);\t\t\t\t\t\t   // guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Function Ids\r\n\t// --------------------------------------------------------------------------------------\r\n\tnamespace IDF\r\n\t{\r\n      // do not change the sort of this list of function and his IDs\r\n\t\tstatic const variable first(IDS::last + 1);\t\t\t\t\t   // guard\r\n\t\tstatic const variable CreateStarDevice(first);\t\t         // Text: \"HSLHamHeaterShakerLib - CreateStarDevice\"\r\n\t\tstatic const variable CreateUsbDevice(first+1);\t\t         // Text: \"HSLHamHeaterShakerLib - CreateUsbDevice\"\r\n\t\tstatic const variable Terminate(first + 2);\t\t\t\t      // Text: \"HSLHamHeaterShakerLib - Terminate\"\r\n\r\n\t\tstatic const variable StartShaker(first + 3);\t\t\t\t   // Text: \"HSLHamHeaterShakerLib - StartShaker\"\r\n\t\tstatic const variable StopShaker(first + 4);\t\t            // Text: \"HSLHamHeaterShakerLib - StopShaker\"\r\n\t\tstatic const variable StartShakerTimed(first + 5);\t\t      // Text: \"HSLHamHeaterShakerLib - StartShakerTimed\"\r\n\t\tstatic const variable WaitForShaker(first + 6);\t\t         // Text: \"HSLHamHeaterShakerLib - WaitForShaker\"\r\n\t\tstatic const variable StartAllShaker(first + 7);\t\t      // Text: \"HSLHamHeaterShakerLib - StartAllShaker\"\r\n\t\tstatic const variable StartAllShakerTimed(first + 8);\t\t   // Text: \"HSLHamHeaterShakerLib - StartAllShakerTimed\"\r\n\t\tstatic const variable StopAllShaker(first + 9);\t\t         // Text: \"HSLHamHeaterShakerLib - StopAllShaker\"\r\n\t\tstatic const variable SetShakerParameter(first + 10);\t\t   // Text: \"HSLHamHeaterShakerLib - SetShakerParameter\"\r\n\t\tstatic const variable GetShakerParameter(first + 11);\t\t   // Text: \"HSLHamHeaterShakerLib - GetShakerParameter\"\r\n\t\tstatic const variable GetShakerSpeed(first + 12);\t   \t\t// Text: \"HSLHamHeaterShakerLib - GetShakerSpeed\"\r\n\r\n\t\tstatic const variable StartTempCtrl(first + 13);\t\t      // Text: \"HSLHamHeaterShakerLib - StartTempCtrl\"\r\n\t\tstatic const variable StopTempCtrl(first + 14);\t\t         // Text: \"HSLHamHeaterShakerLib - StopTempCtrl\"\r\n\t\tstatic const variable WaitForTempCtrl(first + 15);\t\t      // Text: \"HSLHamHeaterShakerLib - WaitForTempCtrl\"\r\n\t\tstatic const variable GetTemperature(first + 16);\t\t      // Text: \"HSLHamHeaterShakerLib - GetTemperature\"\r\n\t\tstatic const variable GetTemperatureState(first + 17);\t\t// Text: \"HSLHamHeaterShakerLib - GetTemperatureState\"\r\n\t\tstatic const variable SetTempParameter(first + 18);\t      // Text: \"HSLHamHeaterShakerLib - SetTempParameter\"\r\n\t\tstatic const variable GetTempParameter(first + 19);\t      // Text: \"HSLHamHeaterShakerLib - GetTempParameter\"\r\n\r\n\t\tstatic const variable SetPlateLock(first + 20);\t\t         // Text: \"HSLHamHeaterShakerLib - SetPlateLock\"\r\n\t\tstatic const variable GetFirmwareVersion(first + 21);\t      // Text: \"HSLHamHeaterShakerLib - GetFirmwareVersion\"\r\n\t\tstatic const variable GetSerialNumber(first + 22);\t\t      // Text: \"HSLHamHeaterShakerLib - GetSerialNumber\"\r\n\t\tstatic const variable BeginMonitoring(first + 23);\t\t      // Text: \"HSLHamHeaterShakerLib - BeginMonitoring\"\r\n\t\tstatic const variable EndMonitoring(first + 24);\t\t      // Text: \"HSLHamHeaterShakerLib - EndMonitoring\"\r\n\r\n\t\tstatic const variable SendFirmwareCommand(first + 25);\t   // Text: \"HSLHamHeaterShakerLib - SendFirmwareCommand\"\r\n\t\tstatic const variable SetSimulation(first + 26);\t\t      // Text: \"HSLHamHeaterShakerLib - SetSimulation\"\r\n\t\tstatic const variable SetUSBTrace(first + 27);\t\t\t\t\t// Text: \"HSLHamHeaterShakerLib - SetUSBTrace\"\r\n\r\n\r\n\t\tstatic const variable Monitoring(first + 28);\t\t\t\t\t// Text: \"HSLHamHeaterShakerLib - Monitoring\"\r\n\r\n\t\tstatic const variable last(first + 28);\t\t\t\t\t\t   // guard\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Exception handling\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\tnamespace Error\r\n\t{\r\n\t\tstatic function Raise(\t\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t// i: error id, one of IDE\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t// i: file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t// i: function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t// i: line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\t\t\tstring hlpFileName;\r\n\r\n\t\t\t// set error description\r\n\t\t\tif (\"\" == funcName)\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + StringTable::Load(errorId);\r\n\t\t\telse\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + funcName + \"()\\n\" + StringTable::Load(errorId);\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\thlpFileName = StringTable::Load(IDS::helpFileName);\r\n\t\t\tStrReplace(hlpFileName, \"%s\", GetLanguage());\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), hlpFileName);\r\n\t\t}\r\n\r\n\t\tstatic function RaiseEx(\t\t\t\t\t\t\t\t\t\t\t// raises a runtime error\r\n\t\t\tvariable errorId,\t\t\t\t\t\t\t\t\t\t\t\t\t// i: error id, one of IDE\r\n\t\t\tvariable errorDesc,\t\t\t\t\t\t\t\t\t\t\t\t// i: error description\r\n\t\t\tvariable& fileName,\t\t\t\t\t\t\t\t\t\t\t\t// i: file name\r\n\t\t\tvariable& funcName,\t\t\t\t\t\t\t\t\t\t\t\t// i: function name\r\n\t\t\tvariable& lineNumber)\t\t\t\t\t\t\t\t\t\t\t// i: line number\r\n\t\t{\r\n\t\t\tvariable description(\"\");\r\n\t\t\tstring hlpFileName;\r\n\r\n\t\t\t// set error description\r\n\t\t\tif (\"\" == funcName)\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + errorDesc;\r\n\t\t\telse\r\n\t\t\t\tdescription = fileName + \"(\" + lineNumber + \") : \" + funcName + \"()\\n\" + errorDesc;\r\n\t\t\terr.SetDescription(description);\r\n\r\n\t\t\thlpFileName = StringTable::Load(IDS::helpFileName);\r\n\t\t\tStrReplace(hlpFileName, \"%s\", GetLanguage());\r\n\t\t\t// raise error\r\n\t\t\terr.Raise(errorId, err.GetDescription(), hlpFileName);\r\n\t\t}\r\n\r\n\t\tstatic function RaiseLast()\t\t\t\t\t\t\t\t\t\t// re-throws the last runtime error\r\n\t\t{\r\n\t\t\t// re-raise error\r\n\t\t\terr.Raise();\r\n\t\t}\r\n\t}\r\n\r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Internal helper function declaration\r\n\t*\r\n\t****************************************************************************************/\r\n\tstatic function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker);\r\n   static function checkStringInput(variable funcId, variable parameterName, variable input);\r\n   static function checkIntegerInput(variable funcId, variable parameterName, variable input);\r\n   static function checkIntegerInputRange(variable funcId, variable parameterName, variable input, variable min, variable max);\r\n   static function checkDoubleInput(variable funcId, variable parameterName, variable input);\r\n   static function checkDoubleInputRange(variable funcId, variable parameterName, variable input, variable min, variable max);\r\n\tstatic function isStarDevice(variable deviceNumber);\r\n\tstatic function getNodeFromDeviceNumber(variable deviceNumber);\r\n\tstatic function checkDeviceNumber(variable funcId, variable deviceNumber);\r\n\tstatic function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting);\r\n\tstatic function hasHeater(variable funcId, variable deviceNumber, variable throw);\r\n\tstatic function hasShaker(variable funcId, variable deviceNumber, variable throw);\r\n   static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace);\r\n   static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut);\r\n   static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace);\r\n   static function startTrace(variable funcName) void;\r\n   static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void;\r\n   static function errorTrace(variable funcName, variable errMsg) void;\r\n   static function errorCompleteTrace(variable funcName, variable errMsg) void;\r\n   static function endTrace(variable funcName) void;\r\n   static function getSendState(variable funcId, variable deviceNumber, variable isShaker);\r\n   static function isFirmwError(variable funcId, string cmdResult, variable makeTrace);\r\n   static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock);\r\n   static function startShakingCmd(variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart);\r\n   synchronized function monitorHeaterShaker();\r\n\tstatic function wait(variable waitTime);\r\n\tstatic function getCurrentShakerRPM(variable deviceNumber, variable makeTrace);\r\n\tstatic function getCurrentTemp(variable deviceNumber, variable makeTrace);\r\n\tstatic function pollingForRunningShaker(variable deviceNumber, variable maxPollingTime);\r\n\tstatic function pollingForRunningHeater(variable deviceNumber, variable maxPollingTime);\r\n\tstatic function OnAbortHHSLibrary();\r\n\r\n   static function versionTrace() void;\r\n\t// this function is used in InitializeLibrary() and uses index 0..10\r\n\tstatic function traceFirmwareVersion(variable funcId, variable deviceNumber);\r\n   static function sendToProgressTrace(variable funcName, variable deviceNumber) void;\r\n\r\n   // get the given parameter with filled 0 before value\r\n\tstatic function formatParam(variable param, variable strWidth);\r\n   // returns the given parameter normalized (*10) for firmware command as string\r\n\tstatic function normalizeParam(variable param, variable strWidth);\r\n\r\n      \r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Interface functions\r\n\t*\r\n\t****************************************************************************************/\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function CreateStarDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Initialize shaker/heater module on ML_Star device.\r\n   //  Only NOT initialized nodes will be initialize, the function will\r\n   //  check first the initialization state before.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : starDevice   : Used STAR device for node T1 and T2 of STAR\r\n   //  in : usedNode     : Node which must be create and initialized. (1 or 2)\r\n\t//\t out: deviceNumber : generated device number which must be used in all other functions\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction CreateStarDevice(\r\n\t\tdevice& starDevice,\t\t\t\t\t\t// in:  ML_STAR device\r\n\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1 or 2)\r\n\t\tvariable& deviceNumber)\t\t\t\t\t// out: generated deviceNumber\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::CreateStarDevice);\r\n\t\tvariable deviceName;\r\n\t\tvariable isSimulate(m_ON);\r\n\t\tvariable isStarSimulate(hslFalse);\r\n\t\tvariable shakingProperty(0);\r\n\t\tobject\tstarObject;\r\n\r\n      versionTrace();\r\n      startTrace(funcId);\r\n\r\n\t\t// check input parameter\r\n\t\tcheckIntegerInputRange(funcId, \"usedNode\", usedNode, m_firstStarNode, m_lastStarNode);\r\n\r\n\t\tonerror goto DeviceError;\r\n\t\tdeviceName = starDevice.GetInstrumentName();\r\n\t\tisSimulate = starDevice.GetCfgValueWithKey(m_starSimulateModeKey);\r\n\t\tstarObject = starDevice.GetCommandObject();\r\n\t\tonerror goto 0;\r\n\r\n\t\tif(starObject.IsNull())\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::invalidStarDevice);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      if(GetType(isSimulate) == \"i\")\r\n      {\r\n         if(isSimulate != m_OFF)\r\n            isStarSimulate = hslTrue;\r\n      }\r\n\r\n\t\t// initialize the library variables\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tdeviceNumber = saveAndCreateDeviceNumber(funcId, deviceName, starObject, isStarSimulate, usedNode);\r\n\r\n\t\t// initialize the shaker\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t\tDeviceError:\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::invalidStarDevice);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\t}\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function CreateUsbDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Initialize shaker/heater module on USB device.\r\n   //  Only NOT initialized nodes will be initialize, the function will\r\n   //  check first the initialization state before.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : usedNode     : Node which must be create and initialized. (1 or 2)\r\n\t//\t out: deviceNumber : generated device number which must be used in all other functions\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction CreateUsbDevice(\r\n\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1..8)\r\n\t\tvariable& deviceNumber)\t\t\t\t\t// out: generated deviceNumber\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::CreateUsbDevice);\r\n\t\tvariable isStarSimulate(hslFalse);\r\n\t\tvariable shakingProperty(0);\r\n\t\tobject\tstarObject;\r\n\r\n      versionTrace();\r\n      startTrace(funcId);\r\n\r\n\t\t// check input parameter\r\n\t\tcheckIntegerInputRange(funcId, \"usedNode\", usedNode, m_firstUsbNode, m_lastUsbNode);\r\n\r\n\t\t// initialize the library variables\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tdeviceNumber = saveAndCreateDeviceNumber(funcId, m_hhsUsbObjectName, starObject, isStarSimulate, usedNode);\r\n\r\n\t\t// initialize the shaker\r\n\t\tfuncRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t}\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function Terminate()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Terminate the USB device connection.\r\n   //....................................................................\r\n   // Parameters:\r\n   //    none\r\n   // ...................................................................\r\n   // return value:\r\n   //    none\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n\tfunction Terminate() void\r\n   {\r\n      variable funcId(IDF::Terminate);\r\n      variable nodeIndex(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++)\r\n      {\r\n         m_initializedHeater[nodeIndex] = hslFalse;\r\n\t\t\tm_deviceName[nodeIndex] = \"\";\r\n\t\t\tm_nodeNumber[nodeIndex] = 0;\r\n\t\t\tm_hhsSetting[nodeIndex] = 0;\r\n      }\r\n\r\n      if(!m_usbComObject.IsNull())\r\n      {\r\n         // release the usb object \r\n         // run is crash in cae of multi thread and a call of ReleaseObject() while commands are send / receive\r\n        // m_usbComObject.ReleaseObject();\r\n      }\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartShaker(variable deviceNumber, variable shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartShaker);\r\n      variable node;\r\n      variable command(\"SB\");\r\n      string   parameter(\"st%s1sv%s2sr%s3\");\r\n      string   cmdResult;\r\n      variable shakingDirection;\r\n      variable shakingAccRamp;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingSpeed\", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax);\r\n      checkIntegerInput(funcId, \"shakingSpeed\", shakingSpeed);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n \t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n\t\tm_userShakingSpeed[deviceNumber-1] = shakingSpeed;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n\t\t// change RPM to steps\r\n\t\tshakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0));\r\n\t\tshakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0));\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // add saved parameter\r\n      StrReplace(parameter, \"%s1\", IStr(shakingDirection));\r\n      StrReplace(parameter, \"%s2\", formatParam(shakingSpeed, ShakingParam::speedParamLenght));\r\n      StrReplace(parameter, \"%s3\", formatParam(shakingAccRamp, ShakingParam::accelParamLenght));\r\n\r\n      // lock plate\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      // start shaker\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Stop shaking and unlock plate.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopShaker(variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StopShaker);\r\n      variable command(\"SC\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n  \t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // stop shaking\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslFalse);\r\n\r\n      // open plate lock\r\n      startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userShakingSpeed[deviceNumber-1] = 0;\r\n\t\tm_shakingTimeOut[deviceNumber-1] = m_OFF;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // check error of stop shaker after open plate lock\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartShakerTimed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   //  shakingTime\t:  Shaking time in seconds\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartShakerTimed(\r\n         variable deviceNumber,\r\n\t\t\tvariable shakingSpeed,\r\n         variable shakingTime)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartShakerTimed);\r\n      variable command(\"ST\");\r\n      string   parameter(\"sd%s1st%s2sv%s3sr%s4\");\r\n      string   cmdResult;\r\n      variable shakingDirection;\r\n      variable shakingAccRamp;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingSpeed\", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax);\r\n      checkIntegerInput(funcId, \"shakingSpeed\", shakingSpeed);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingTime\", shakingTime, ShakingParam::shakingTimeMin, ShakingParam::shakingTimeMax);\r\n      checkIntegerInput(funcId, \"shakingTime\", shakingTime);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n      m_shakingTimeOut[deviceNumber-1] = shakingTime;\r\n\t\tm_userShakingSpeed[deviceNumber-1] = shakingSpeed;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// change RPM to steps\r\n\t\tshakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0));\r\n\t\tshakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0));\r\n\r\n\r\n      // add saved parameter\r\n      StrReplace(parameter, \"%s1\", formatParam(shakingTime, ShakingParam::timeParamLenght));\r\n      StrReplace(parameter, \"%s2\", IStr(shakingDirection));\r\n      StrReplace(parameter, \"%s3\", formatParam(shakingSpeed, ShakingParam::speedParamLenght));\r\n      StrReplace(parameter, \"%s4\", formatParam(shakingAccRamp, ShakingParam::accelParamLenght));\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // lock plate\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      // start shaker timed\r\n      cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n      if(0 < funcRc)\r\n      {\r\n         // be sure that the plate lock is open\r\n         startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n         isFirmwError(funcId, cmdResult, hslTrue);\r\n         return (funcRc);\r\n      }\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function WaitForShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Waits until a timed shaking has end.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function WaitForShaker(variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::WaitForShaker);\r\n      variable shakingTime(ShakingParam::shakingTimeMax);\r\n      variable command(\"SW\");\r\n      string   parameter(\"\");\r\n      string   cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\t\t\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (funcRc);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingTime = m_shakingTimeOut.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // add 60 seconds to the started shaking time (secure that the shaking time out is reached before the wait time out)\r\n      shakingTime = shakingTime + m_waitTimeOutSecurity;\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(shakingTime));\r\n      #endif\r\n\r\n\t\t// pollen \r\n\t\tpollingForRunningShaker(deviceNumber, shakingTime - m_waitTimeOutSecurity);\r\n\r\n      // start wait for shaker\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, shakingTime, hslTrue);\r\n\r\n      // shaker was started with StartShaker or StartAllShaker\r\n      if(cmdResult.Find(m_fwNoError) < 0)\r\n      {\r\n         // stop shaker\r\n         sendMsg(deviceNumber, \"SC\", \"\", m_usbMsgTimeout, hslTrue);\r\n      }\r\n\r\n      // open plate lock\r\n      startPlateLockCmd(funcId, deviceNumber, m_OFF);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userShakingSpeed[deviceNumber-1] = m_OFF;\r\n\t\tm_shakingTimeOut[deviceNumber-1] = m_OFF;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartAllShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking for all initialized shaker.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartAllShaker(variable shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StartAllShaker);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// parameter are checked in StartShaker() function\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n            funcRc = StartShaker(deviceNumber, shakingSpeed);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartAllShakerTimed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration for all initialized shaker.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   //  shakingTime\t:  Shaking time in seconds\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartAllShakerTimed(variable shakingSpeed, variable shakingTime)\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StartAllShakerTimed);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\t// parameter are checked in StartShakerTimed() function\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n            funcRc = StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopAllShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Stop shaking and unlock plate for all initialized shaker.\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  none\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopAllShaker()\r\n   {\r\n      variable funcRc(IDE::retNotInitErr);\r\n      variable funcId(IDF::StopAllShaker);\r\n      variable deviceNumber(0);\r\n\r\n      startTrace(funcId);\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StopShaker with 1 base node\r\n            funcRc = StopShaker(deviceNumber);\r\n\t\t\t\tif(0 < funcRc)\r\n\t\t\t\t{\r\n\t\t\t\t\terrorCompleteTrace(funcId, \"\");\r\n\t\t\t\t\treturn (funcRc);\r\n\t\t\t\t}\r\n            funcRc = IDE::noError;\r\n         }\r\n      }\r\n\t\tif(0 < funcRc)\r\n\t\t{\r\n\t\t\terrorCompleteTrace(funcId, IDE::retNotInitErr);\r\n\t\t\treturn (funcRc);\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetShakerParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  shakingDirection :  Shaking direction left/right (0/1)\r\n   //  shakingAccRamp   :  Acceleration ramp (1..4)\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetShakerParameter(\r\n      variable deviceNumber,\r\n      variable shakingDirection,\r\n      variable shakingAccRamp) void\r\n   {\r\n      variable funcId(IDF::SetShakerParameter);\r\n\t\tvariable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"shakingDirection\", shakingDirection, m_OFF, m_ON);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"shakingAccRamp\", shakingAccRamp, ShakingParam::rampMin, ShakingParam::rampMax);\r\n      checkIntegerInput(funcId, \"shakingAccRamp\", shakingAccRamp);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection));\r\n      progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp));\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_shakingDirection[deviceNumber-1] = shakingDirection;\r\n      m_shakingAccRamp[deviceNumber-1] = shakingAccRamp;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetShakerParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the parameter for plate shaking\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  shakingDirection :  Shaking direction left/right (0/1)\r\n   //  shakingAccRamp   :  Acceleration ramp (1..4)\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetShakerParameter(\r\n      variable deviceNumber,\r\n      variable& shakingDirection,\r\n      variable& shakingAccRamp) void\r\n   {\r\n      variable funcId(IDF::GetShakerParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      shakingDirection = ShakingParam::directionDefault;\r\n      shakingAccRamp = ShakingParam::rampDefault;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      shakingDirection = m_shakingDirection.GetAt(deviceNumber-1);\r\n      shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection));\r\n      progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp));\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetShakerSpeed()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock plate and start shaking with timed duration.\r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  out: shakingSpeed\t:\tShaking speed in RPM round per minutes\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetShakerSpeed(\r\n         variable deviceNumber,\r\n\t\t\tvariable& shakingSpeed)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetShakerSpeed);\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\t\tshakingSpeed = 0;\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\tshakingSpeed = getCurrentShakerRPM(deviceNumber, hslTrue);\r\n\r\n\t   endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StartTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set incubation temperature and wait (if set) until temperature is reached\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperature         :  Incubation temperature\r\n   //  waitForTempReached  :  Flag for waiting until temperature is reached\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StartTempCtrl(\r\n      variable deviceNumber,\r\n      variable temperature,\r\n      variable waitForTempReached)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StartTempCtrl);\r\n      variable tempStartTimeOut;\r\n      variable tempToleranceRange;\r\n      variable tempSecurityRange;\r\n      variable command(\"TA\");\r\n      variable parameter(\"ta%s1tb%s2tc%s3td%s4\");\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"temperature\", temperature, TemperateParam::tempMin, TemperateParam::tempMax);\r\n      checkDoubleInput(funcId, \"temperature\", temperature);\r\n      checkIntegerInputRange(funcId, \"waitForTempReached\", waitForTempReached, m_OFF, m_ON);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      tempToleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n      tempSecurityRange = m_tempSecurityRange.GetAt(deviceNumber-1);\r\n\t\tm_userTemperature[deviceNumber-1] = temperature;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      StrReplace(parameter, \"%s1\", normalizeParam(temperature, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s2\", formatParam(tempStartTimeOut, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s3\", normalizeParam(tempToleranceRange, TemperateParam::paramLength));\r\n      StrReplace(parameter, \"%s4\", normalizeParam(tempSecurityRange, TemperateParam::paramLength));\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out)\r\n      tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity;\r\n      if(tempStartTimeOut < m_usbMsgTimeout)\r\n         tempStartTimeOut = m_usbMsgTimeout;\r\n\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(tempStartTimeOut));\r\n      #endif\r\n\r\n      // set temperature\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslFalse);\r\n\r\n\t\t// command waits until temperature is in controlling mode\r\n      if(waitForTempReached == m_ON && funcRc == IDE::noError)\r\n\t\t{\r\n\t\t\tpollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity);\r\n\r\n\t      // wait for temperature\r\n\t      cmdResult = sendMsg(deviceNumber, \"TW\", \"\", m_usbMsgTimeout, hslTrue);\r\n\t\t}\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function StopTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set incubation temperature control off\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function StopTempCtrl(\r\n      variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::StopTempCtrl);\r\n      variable command(\"TO\");\r\n      variable parameter(\"\");\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // set temperature\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tm_userTemperature[deviceNumber-1] = 0;\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function WaitForTempCtrl()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Waits until the on StartTempCtrl() given temperature is reached\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function WaitForTempCtrl(\r\n      variable deviceNumber)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::WaitForTempCtrl);\r\n      variable tempStartTimeOut;\r\n      variable command(\"TW\");\r\n      variable parameter(\"\");\r\n      variable cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out)\r\n      tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity;\r\n      if(tempStartTimeOut < m_usbMsgTimeout)\r\n         tempStartTimeOut = m_usbMsgTimeout;\r\n\r\n\r\n      #ifdef _DEBUG\r\n      progressTrace(funcId, \"Function timeout = \", IStr(tempStartTimeOut));\r\n      #endif\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// make a polling until temperature controlling is in controlling mode\r\n\t\tpollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity);\r\n\r\n      // wait for temperature is reached (get heating up errors)\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTemperature()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the current temperatur\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperature         :  Actual carrier temperature \r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTemperature(\r\n      variable deviceNumber,\r\n      variable& temperature)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetTemperature);\r\n\r\n      startTrace(funcId);\r\n\r\n      temperature = 0;\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\ttemperature = getCurrentTemp(deviceNumber, hslTrue);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTemperatureState()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the state of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  temperatureState    :  State of temperature supervision 0 = OK, 1 = out of range, 2 = out of security\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTemperatureState(\r\n      variable deviceNumber,\r\n      variable& temperatureState)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetTemperatureState);\r\n      variable command(\"QE\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n      variable startPos;\r\n\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      temperatureState = TemperateParam::tempStateOk;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslFalse);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // format: qe##\r\n      startPos = cmdResult.Find(\"qe\");\r\n\r\n      if((cmdResult.GetLength() < TemperateParam::tempStateRequestLength) || (startPos < 0))\r\n      {\r\n         variable errMsg;\r\n         // \"Unknown format of firmware result string.\\r\\nExpected: '%s1'.\\r\\nReceived: '%s2'.\"\r\n         errMsg = StringTable::Load(IDE::unknownResultFormat);\r\n\r\n         StrReplace(errMsg, \"%s1\", \"qe##\");\r\n         StrReplace(errMsg, \"%s2\", cmdResult);\r\n\r\n         errorCompleteTrace(funcId, errMsg);\r\n         return (IDE::unknownResultFormat);\r\n      }\r\n\r\n      // read both temperature and calculate the average \r\n      // format: qe## ( 00, 62 or 63 )\r\n      if(cmdResult.Find(\"qe62\") >= 0)\r\n         temperatureState = TemperateParam::tempStateOutOfRange;\r\n      else\r\n      if(cmdResult.Find(\"qe63\") >= 0)\r\n         temperatureState = TemperateParam::tempStateOutOfSecurity;\r\n      else\r\n      if(cmdResult.Find(\"qe00\") < 0)\r\n         temperatureState = TemperateParam::tempStateTimeOut;\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetTempParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  startTimeout        :  Time which must elapse before temperature will be controlled\r\n   //  toleranceRange      :  Range of temperature tolerance\r\n   //  securityRange       :  Range of temperature security, on leave heater will be switched off\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetTempParameter(\r\n      variable deviceNumber,\r\n      variable startTimeout, variable toleranceRange, variable securityRange) void\r\n   {\r\n      variable funcId(IDF::SetTempParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      //tb 2008-12-03 checkIntegerInputRange(funcId, \"startTimeout\", startTimeout, TemperateParam::startTimeOutMin, TemperateParam::startTimeOutMax);\r\n      checkIntegerInput(funcId, \"startTimeout\", startTimeout);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"toleranceRange\", toleranceRange, TemperateParam::tempToleranceMin, TemperateParam::tempToleranceMax);\r\n      checkDoubleInput(funcId, \"toleranceRange\", toleranceRange);\r\n      //tb 2008-12-03 checkDoubleInputRange(funcId, \"securityRange\", securityRange, TemperateParam::tempSecurityMin, TemperateParam::tempSecurityMax);\r\n      checkDoubleInput(funcId, \"securityRange\", securityRange);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::startTimeout, IStr(startTimeout));\r\n      progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue));\r\n      progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue));\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n \r\n \t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_tempStartTimeOut[deviceNumber-1] = startTimeout;\r\n      m_tempToleranceRange[deviceNumber-1] = toleranceRange;\r\n      m_tempSecurityRange[deviceNumber-1] = securityRange;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetTempParameter()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get the parameter of temperatur supervision\r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  startTimeout        :  Time which must elapse before temperature will be controlled\r\n   //  toleranceRange      :  Range of temperature tolerance\r\n   //  securityRange       :  Range of temperature security, on leave heater will be switched off\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetTempParameter(\r\n      variable deviceNumber,\r\n      variable& startTimeout, variable& toleranceRange, variable& securityRange) void\r\n   {\r\n      variable funcId(IDF::GetTempParameter);\r\n      variable node;\r\n      string   nodeType;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      // init output parameter\r\n      startTimeout = TemperateParam::startTimeOutDefault;\r\n      toleranceRange = TemperateParam::tempToleranceDefault;\r\n      securityRange = TemperateParam::tempSecurityDefault;\r\n\r\n      initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n\r\n\t\thasHeater(funcId, deviceNumber, 1);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      // set output parameter\r\n      startTimeout = m_tempStartTimeOut.GetAt(deviceNumber-1);\r\n      toleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n      securityRange = m_tempSecurityRange.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      progressTrace(funcId, nodeType, IStr(node));\r\n      progressTrace(funcId, IDS::startTimeout, IStr(startTimeout));\r\n      progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue));\r\n      progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue));\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetPlateLock()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  plateLock        :  Lock / unlock flag\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetPlateLock(\r\n            variable deviceNumber,\r\n            variable plateLock)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::SetPlateLock);\r\n      variable cmdResult;\r\n         \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"plateLock\", plateLock, m_OFF, m_ON);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n\t\thasShaker(funcId, deviceNumber, 1);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      // start lock command\r\n      cmdResult = startPlateLockCmd(funcId, deviceNumber, plateLock);\r\n      funcRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetFirmwareVersion()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get firmware version of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  out: firmwareVersion   :  firmware version format: \"1.0P 1999-03-10\"\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetFirmwareVersion(\r\n\t\t\tvariable deviceNumber,\r\n\t\t\tvariable& firmwareVersion)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetFirmwareVersion);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n      \r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      firmwareVersion = \"0.0S 2008-01-01\";\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"RF\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\tstartPos = answString.Find(\"rf\");\r\n\t\tif(startPos >= 0)\r\n\t\t{\r\n\t\t\tfirmwareVersion = answString.Right(answString.GetLength()-(startPos+2));\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function GetSerialNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t\t:  device number which was generated on CreateXXDevice() \r\n   //  out: firmwareVersion   :  firmware serial number format: \"####\"\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function GetSerialNumber(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable& serialNumber)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::GetSerialNumber);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      serialNumber = \"0000\";\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"QT\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\t// format: qt######/##/#### part number, revision, serial number\r\n\t\tstartPos = answString.Find(\"qt\");\r\n\t\tif(startPos >= 0 && answString.GetLength() > startPos+12)\r\n\t\t{\r\n\t\t\tserialNumber = answString.Mid((startPos+2+10), 4);\r\n\t\t}\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function BeginMonitoring()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  in : shakerMin   \t:  Minimum RPM\r\n   //  in : shakerMax   \t:  Maximum RPM\r\n   //  in : sampleInterval :  Interval in sec. for check RPM and temperature\r\n   //  in : action   \t\t:  Continue / Abort (0 / 1)\r\n\t// \t\t\t\t\t\t\t\tNote: Abort will only called on an error after temperature controlling is activated ()\r\n\t//\t\t\t\t\t\t\t\t\t\t\tAn abort will end only the current heater/shaker.\r\n\t// \t\t\t\t\t\t\t\tNote:\theaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter()\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function BeginMonitoring(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable shakingToleranceRange,\r\n\t\t\t\tvariable sampleInterval,\r\n\t\t\t\tvariable action)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::BeginMonitoring);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos;\r\n\t\tevent\t\tstartEvent;\r\n\t\tvariable sSpeed;\r\n\t\tvariable hTemp;\r\n\t\tvariable shakerMin(m_OFF);\r\n\t\tvariable shakerMax(ShakingParam::rpmMax);\r\n\t\tvariable heaterTempTol(m_OFF);\r\n\t\tvariable heaterMin(TemperateParam::tempMin);\r\n\t\tvariable heaterMax(TemperateParam::tempMax);\r\n\t\tvariable node;\r\n      variable nodeType;\r\n\t\tvariable funcName;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkIntegerInputRange(funcId, \"shakingToleranceRange\", shakingToleranceRange, ShakingParam::shakeTolMin, ShakingParam::shakeTolMax);\r\n   \tcheckIntegerInputRange(funcId, \"sampleInterval\", sampleInterval, m_minSampleInterval, m_maxSampleInterval);\r\n      checkIntegerInputRange(funcId, \"action\", action, MonitorAction::monitorActionMin, MonitorAction::monitorActionMax);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n   \tsSpeed = m_userShakingSpeed.GetAt(deviceNumber-1);\r\n   \thTemp = m_userTemperature.GetAt(deviceNumber-1);\r\n\t\theaterTempTol = m_tempToleranceRange.GetAt(deviceNumber-1);\r\n\t\tm_monitorResult.SetAt(deviceNumber-1, -1);\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\t\tonerror goto 0;\r\n\r\n      if(isStarDevice(deviceNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\t// if no shaker is initialized, set the maximum range\r\n\t\tif(hasShaker(funcId, deviceNumber, 0) && sSpeed > m_OFF)\r\n\t\t{\r\n\t\t\tshakerMin = sSpeed-shakingToleranceRange;\r\n\t\t\tif(shakerMin < 0)\r\n\t\t\t\tshakerMin = 0;\r\n\t\t\tshakerMax = sSpeed+shakingToleranceRange;\r\n\t\t}\r\n\t\telse if(sSpeed == m_OFF)\r\n\t\t{\r\n\t\t\tstring moniText;\r\n\t\t\tmoniText = StringTable::Load(IDS::monitoringShNotStart);\r\n         StrReplace(moniText, \"%s1\", nodeType);\r\n         StrReplace(moniText, \"%s2\", IStr(node));\r\n\r\n\t\t\t// Shaking on %s1 ( %s2 ) not started, check of speed limit will be disabled!\r\n\t\t\tprogressTrace(funcId, IDS::monitoringWarning, moniText);\r\n\t\t}\r\n\r\n\t\tif(hasHeater(funcId, deviceNumber, 0) && hTemp > m_OFF)\r\n\t\t{\r\n\t\t\theaterMin = hTemp - heaterTempTol;\r\n\t\t\tif(heaterMin < m_OFF)\r\n\t\t\t\theaterMin = m_OFF;\r\n\t\t\theaterMax = hTemp + heaterTempTol;\r\n\t\t}\r\n\t\telse if(hTemp == m_OFF)\r\n\t\t{\r\n\t\t\tvariable moniText;\r\n\t\t\tmoniText = StringTable::Load(IDS::monitoringHeNotStart);\r\n         StrReplace(moniText, \"%s1\", nodeType);\r\n         StrReplace(moniText, \"%s2\", IStr(node));\r\n\r\n\t\t\t// Heating up on %s1 ( %s2 ) not started, check of temperature limit will be disabled!\r\n\t\t\tprogressTrace(funcId, IDS::monitoringWarning, moniText);\r\n\t\t}\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      // Prepare the globals for the hsl thread.\r\n\t   m_monitorDeviceNumber\t\t\t\t= deviceNumber;\r\n\t   m_monitorShakerMin\t\t\t\t\t= shakerMin;\r\n\t   m_monitorShakerMax\t\t\t\t\t= shakerMax;\r\n\t   m_monitorSampleInterval\t\t\t\t= sampleInterval;\r\n\t   m_monitorAction\t\t\t\t\t\t= action;\r\n\t   m_monitorResult[deviceNumber-1] \t= -1;\r\n\t\tm_monitorHeaterMin\t\t\t\t\t= heaterMin;\r\n\t\tm_monitorHeaterMax\t\t\t\t\t= heaterMax;\r\n\r\n\r\n      Fork( \"monitorHeaterShaker\" );\r\n\r\n\t\t// wait until thread has received the global data (maximum 10 seconds)\r\n\t\tm_monitorStartEvent.WaitEvent(10);\r\n\r\n\t\tSynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function EndMonitoring()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Get serial number of current HHS\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  in : deviceNumber \t:  device number which was generated on CreateXXDevice() \r\n   //  out: monitorResult  :  -1 = monitoring has not started or is not initialized\r\n\t// \t\t\t\t\t\t\t\t0 = heating and shaking values were within specification\r\n\t// \t\t\t\t\t\t\t\t1 = heating out of range\r\n\t// \t\t\t\t\t\t\t\t2 = shaking out of range\r\n\t// \t\t\t\t\t\t\t\t3 = heating and shaking out of range\r\n   // ...................................................................\r\n   // return value:\r\n   //  noError(0)          :  all nodes are initialized successfull.\r\n   //  retErr(1)           :  initialisation failed \r\n   //  retNotInitErr(2)    :  needed node not initalized\r\n   //  retNotConnectErr(3) :  device not connected\r\n   //  Raise               :  An exception is throw on wrong parameter or time out \r\n   //  FirmErr             :  Firmware command error\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function EndMonitoring(\r\n\t\t\t\tvariable deviceNumber,\r\n\t\t\t\tvariable& monitorResult)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::EndMonitoring);\r\n\t\tevent\t\tintervalEvent;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tintervalEvent = m_monitorEvent.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      intervalEvent.SetEvent();\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tmonitorResult = m_monitorResult.GetAt(deviceNumber-1);\r\n\t\tm_monitorResult.SetAt(deviceNumber-1, -1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n\t\treturn (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetSimulation()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the internal flag m_isSimulate.\r\n   //  If this flag is set, only parameter checks are made on all exported function\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  simulate   :  Flag for set the simulate mode, must be a number 0/1\r\n   //\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise      :  Wrong parameter \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n \tfunction SetSimulation(variable simulate) void\r\n\t{\r\n      variable funcId(IDF::SetSimulation);\r\n\r\n      startTrace(funcId);\r\n\r\n      checkIntegerInputRange(funcId, \"simulate\", simulate, m_OFF, m_ON);\r\n\r\n  \t\tprogressTrace(funcId, IDS::setSimulate, IStr(simulate));\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_isSimulate = hslFalse;\r\n      if(simulate == m_ON)\r\n\t\t   m_isSimulate = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SendFirmwareCommand()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Send a command to the device\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  deviceNumber :  device number which was generated on CreateXXDevice() \r\n   //  command\t\t\t\t:  Firmware command without node name ( 2 letter )\r\n   //  parameter\t\t\t:  Parameter dependent of the used command\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise            :  An exception is throw on wrong parameter or time out \r\n   //  string           :  Firmware command result data string\r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SendFirmwareCommand(\r\n      variable deviceNumber,\r\n      variable command, variable parameter)\r\n   {\r\n      variable funcRc(IDE::noError);\r\n      variable funcId(IDF::SendFirmwareCommand);\r\n      string   cmd;\r\n      string   cmdResult;\r\n\r\n      startTrace(funcId);\r\n\r\n\t\tcheckDeviceNumber(funcId, deviceNumber);\r\n      checkStringInput(funcId, \"command\", command);\r\n      checkStringInput(funcId, \"parameter\", parameter);\r\n\r\n      // check for two character as command\r\n      cmd = command;\r\n      if(cmd.GetLength() != m_firmwareCmdLength)\r\n      {\r\n         variable funcName;\r\n         string errMsg;\r\n\r\n         // \"Wrong length of input parameter.\\r\\nParameter = '%s1' length (%s2).\\r\\nExpected lenght (%s3).\"\r\n         errMsg = StringTable::Load(IDE::wrongParameterLength);\r\n         StrReplace(errMsg, \"%s1\", \"command\");\r\n         StrReplace(errMsg, \"%s2\", IStr(cmd.GetLength()));\r\n         StrReplace(errMsg, \"%s3\", IStr(m_firmwareCmdLength));\r\n\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         Error::RaiseEx(IDE::wrongParameterLength, errMsg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n\r\n      funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n      sendToProgressTrace(funcId, deviceNumber);\r\n\r\n      if(isSimulate(funcId, deviceNumber, hslTrue))\r\n         return (IDE::noError);\r\n\r\n      // check for initialized and connect\r\n      funcRc = getSendState(funcId, deviceNumber, hslTrue);\r\n      if(0 < funcRc)\r\n         return (funcRc);\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      endTrace(funcId);\r\n      return (cmdResult);\r\n   }\r\n\r\n   //====================================================================\r\n\t//\r\n\t// Application function SetUSBTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Set the parameter for plate shaking\r\n   //  \r\n   //....................................................................\r\n   // Parameters:\r\n   //  trace\t\t\t\t:  Trace on / off. 0 = off, 1 = on\r\n   // ...................................................................\r\n   // return value:\r\n   //  Raise            :  An exception is throw on wrong parameter or time out \r\n   //....................................................................\r\n   // Remarks:\r\n   //   \r\n\t//====================================================================\r\n   function SetUSBTrace(variable trace) void\r\n   {\r\n      variable funcId(IDF::SetUSBTrace);\r\n\r\n      startTrace(funcId);\r\n\r\n      checkIntegerInputRange(funcId, \"trace\", trace, m_OFF, m_ON);\r\n\r\n  \t\tprogressTrace(funcId, IDS::setTrace, IStr(trace));\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tm_usbTrace = hslFalse;\r\n      // set trace flag\r\n      if(trace == 1)\r\n\t\t\tm_usbTrace = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      endTrace(funcId);\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\r\n\t/****************************************************************************************\r\n\t*\t\r\n\t* Internal helper function declaration\r\n\t*\r\n\t****************************************************************************************/\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Library Initialization and data access functions\r\n\t// --------------------------------------------------------------------------------------\r\n   static function initStringTable() void\r\n   {\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\tif(0 == m_hhsCriticalSection)\r\n\t\t\tm_hhsCriticalSection = SynInitializeCriticalSection();\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      if(!m_isStringTableInitialized)\r\n      {\r\n\t\t\tStringTable::Init(\"HSLHamHeaterShakerStringTable\");\r\n         m_isStringTableInitialized = hslTrue;\r\n      }\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n\tstatic function InitializeNode(variable funcId, variable deviceNumber)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n\t\tvariable node;\r\n      variable nodeNameId(IDS::starNode);\r\n\r\n      // check if the library set to simulate\r\n      if(isSimulate(funcId, deviceNumber, hslFalse))\r\n         return(funcRc);\r\n\r\n      // init node if needed      \r\n      if(!isHeaterInitialized(deviceNumber))\r\n      {  \r\n         string answString;\r\n\t\t\tvariable hhsSettings(-1);\r\n\r\n\t\t\t// on usb check connection\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t{\r\n            if(!isUsbConnected(funcId))\r\n               return (IDE::retNotConnectErr);\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\t\t\t}\r\n\r\n\t\t\t// ask for settings\r\n         setHHSSetting(funcId, deviceNumber, hhsSettings);\r\n         if(0 < funcRc)\r\n             return (funcRc);\r\n\r\n\t\t\t// check if shaking activated\r\n\t\t\tif((hhsSettings != m_shakingPropertyHeatAndShake) && (hhsSettings != m_shakingPropertyOnlyShake))\r\n            return (funcRc);\r\n\r\n         // init HHS on nodes if needed\r\n\t\t\tanswString = sendMsg(deviceNumber, \"QW\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\t\tif(isStarDevice(deviceNumber))\r\n\t\t\t{\r\n\r\n            funcRc = isFirmwError(funcId, answString, hslTrue);\r\n            if(0 < funcRc)\r\n                return (funcRc);\r\n\t\t\t}\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n     \r\n         // check for timeout, if timeout, only node 0 is installed without any other CAN nodes\r\n         // if CAN error, this node is not available\r\n         if((answString.Find(m_fwTimeoutError) >= 0) || (answString.Find(m_fwCanError) >= 0))\r\n         {\r\n            // \"%s1 '%s2' not available.\"\r\n            string msg;\r\n            string nodeName;\r\n            variable funcName;\r\n            msg = StringTable::Load(IDE::neededNodeNotAvailable);\r\n            nodeName = StringTable::Load(nodeNameId);\r\n            funcName = StringTable::Load(funcId);\r\n\r\n\r\n            StrReplace(msg, \"%s1\", nodeName);\r\n            StrReplace(msg, \"%s2\", IStr(node));\r\n            errorCompleteTrace(funcId, msg);\r\n\r\n            if(answString.Find(m_fwTimeoutError) >= 0)\r\n               Error::RaiseEx(IDE::neededNodeNotAvailable, msg, GetFileName(), funcName, GetLineNumber());\r\n            else\r\n               Error::RaiseEx(IDE::canError, msg, GetFileName(), funcName, GetLineNumber());\r\n         }\r\n\r\n\t\t\ttraceFirmwareVersion(funcId, deviceNumber);\r\n\t\t\t\r\n         if(answString.Find(m_fwIsInitialized) >= 0)\r\n            setHeaterInitialized(deviceNumber);\r\n         else\r\n         {\r\n// change of 2009/08/13\r\n//            answString = sendMsg(deviceNumber, \"SI\", \"\", m_usbInitTimeout, hslTrue);\r\n//            if(answString.Find(m_fwNoError) >= 0)\r\n//            {\r\n//\t            answString = sendMsg(deviceNumber, \"LI\", \"\", m_usbInitTimeout, hslTrue);\r\n//               if(answString.Find(m_fwNoError) >= 0)\r\n//                  setHeaterInitialized(deviceNumber);\r\n//            }\r\n            answString = sendMsg(deviceNumber, \"LI\", \"\", m_usbInitTimeout, hslTrue);\r\n            sendMsg(deviceNumber, \"LP\", \"lp1\", m_usbInitTimeout, hslTrue);\r\n\r\n            if(answString.Find(m_fwNoError) >= 0)\r\n            {\r\n\t            answString = sendMsg(deviceNumber, \"SI\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n               if(answString.Find(m_fwNoError) >= 0)\r\n                  setHeaterInitialized(deviceNumber);\r\n\r\n               sendMsg(deviceNumber, \"LP\", \"lp0\", m_usbInitTimeout, hslTrue);\r\n            }\r\n// end change of 2009/08/13\r\n\r\n            funcRc = isFirmwError(funcId, answString, hslTrue);\r\n            if(0 < funcRc)\r\n               return (funcRc);\r\n         }\r\n      }\r\n\r\n      return (funcRc);\r\n   }\r\n\r\n\r\n\tstatic function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker)\r\n\t{\r\n      variable funcRc(IDE::noError);\r\n      initStringTable();\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!m_initializedLib)\r\n      {\r\n         variable nodeIndex(0);\r\n\r\n\t\t\tRegisterAbortHandler(\"HSLHamHeaterShaker::OnAbortHHSLibrary\");\r\n\r\n\t\t   m_monitorDeviceNumber\t= m_OFF;\r\n\t\t   m_monitorShakerMin\t\t= m_OFF;\r\n\t\t   m_monitorShakerMax\t\t= m_OFF;\r\n\t\t   m_monitorSampleInterval\t= m_OFF;\r\n\t\t   m_monitorAction\t\t\t= m_OFF;\r\n\r\n         for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++)\r\n         {\r\n            m_initializedHeater[nodeIndex] = hslFalse;\r\n            m_shakingDirection[nodeIndex] = ShakingParam::directionDefault;\r\n            m_shakingAccRamp[nodeIndex] = ShakingParam::rampDefault;\r\n            m_shakingTimeOut[nodeIndex] = m_OFF;\r\n            m_tempStartTimeOut[nodeIndex] = TemperateParam::startTimeOutDefault;\r\n            m_tempToleranceRange[nodeIndex] = TemperateParam::tempToleranceDefault;\r\n            m_tempSecurityRange[nodeIndex] = TemperateParam::tempSecurityDefault;\r\n\t\t\t\tm_userShakingSpeed[nodeIndex] = m_OFF;\r\n\t\t\t\tm_userTemperature[nodeIndex] = m_OFF;\r\n\r\n\t\t\t\tm_deviceName[nodeIndex] = \"\";\r\n\t\t\t\tm_isStarSimulate[nodeIndex] = hslFalse;\r\n\t\t\t\tm_nodeNumber[nodeIndex] = m_OFF;\r\n\t\t\t\tm_hhsSetting[nodeIndex] = m_OFF;\r\n\r\n\t\t\t\tm_monitorResult[nodeIndex] = -1;\r\n         }\r\n\r\n         m_initializedLib = hslTrue;\r\n\r\n\t\t}\r\n\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // check for node initialize, this call must be outside of CriticalSection\r\n      if(initShaker > m_OFF)\r\n         funcRc = InitializeNode(funcId, deviceNumber);\r\n\r\n      return (funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n   static function isUsbConnected(variable funcId)\r\n   {\r\n      variable rc (hslFalse);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!m_usbComObject.IsNull())\r\n      {\r\n         if(m_usbComObject.Connected)\r\n            rc = hslTrue;\r\n      }\r\n\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      if(!rc)\r\n      {\r\n         variable msg;\r\n         msg = StringTable::Load(IDS::noUsbConnection);\r\n         errorCompleteTrace(funcId, msg);\r\n      }\r\n\r\n      return (rc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n   }\r\n\r\n \tstatic function isSimulate(variable funcId, variable deviceNumber, variable makeTrace)\r\n\t{\r\n      variable retVal(hslFalse);\r\n      variable starSimState(hslFalse);\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tretVal = m_isSimulate;\r\n      starSimState = m_isStarSimulate[deviceNumber-1];\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      // if m_isSimulate is set, both devices are simulate\r\n      // if m_isSimulate is not set, check if useMlStar and m_isStarSimulate is set\r\n\r\n      if(retVal)\r\n      {\r\n         // if simulate, trace the function end\r\n         if(makeTrace)\r\n     \t\t   endTrace(funcId);\r\n         return (retVal);\r\n      }\r\n\r\n      if(starSimState)\r\n      {\r\n         // if simulate, trace the function end\r\n         if(makeTrace)\r\n        \t\tendTrace(funcId);\r\n         return (hslTrue);\r\n      }\r\n\r\n      // simulation is not set\r\n      return (retVal);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n\t}\r\n\r\n   // uses node from 1 to 10\r\n   static function isHeaterInitialized(variable deviceNumber)\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      retVal = m_initializedHeater.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n   // uses node from 1 to 10\r\n   static function setHeaterInitialized(variable deviceNumber)\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      m_initializedHeater[deviceNumber-1] = hslTrue;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n   static function isUsbTrace()\r\n   {\r\n      variable retVal(hslFalse);\r\n\r\n   \t// activate error handler\r\n   \tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n      retVal = m_usbTrace;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return (retVal);\r\n\r\n   \tUnexpected:\r\n   \t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n         return (retVal);\r\n      }\r\n   }\r\n\r\n\r\n \t// --------------------------------------------------------------------------------------\r\n\t// Communication functions\r\n\t// --------------------------------------------------------------------------------------\r\n \r\n \t//====================================================================\r\n\t//\r\n\t// Internal function getSendState()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Check the connect and initialize state.\r\n   //  Must be call from each interface function which will send a command to the shaker\r\n\t//====================================================================\r\n   static function getSendState(variable funcId, variable deviceNumber, variable isShaker)\r\n   {\r\n      variable node;\r\n      variable nodeTxt;\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n      nodeTxt = StringTable::Load(IDS::starNode);\r\n\r\n\r\n      if(!isStarDevice(deviceNumber))\r\n      {\r\n         if(!isUsbConnected(funcId))\r\n            return (IDE::retNotConnectErr);\r\n         nodeTxt = StringTable::Load(IDS::usbNode);\r\n      }\r\n\r\n      if(!isHeaterInitialized(deviceNumber) && isShaker)\r\n      {\r\n         // \"%s1 '%s2' not initialized'.\"\r\n         variable msg;\r\n         msg = StringTable::Load(IDS::neededNodeNotInitialized);\r\n         StrReplace(msg, \"%s1\", nodeTxt);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n         return (IDE::retNotInitErr);\r\n      }\r\n\r\n      return (IDE::noError);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendMsg()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command dependent of device to a star or to the usb.\r\n\t//====================================================================\r\n   static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace)\r\n\t{\r\n      variable receMsg;\r\n\t\t\r\n\t\tif(isStarDevice(deviceNumber))\r\n\t\t{\r\n\t\t\treceMsg = sendToStar(deviceNumber, command, parameter, makeTrace);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treceMsg = sendToUsb(deviceNumber, command, parameter, timeOut);\r\n\t\t}\r\n\r\n\t\treturn (receMsg);\r\n\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToUsb()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command to the corresponding device node via USB.\r\n\t//====================================================================\r\n   static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut)\r\n   {\r\n\t\tvariable node;\r\n      variable sendMsg(\"T\");\r\n      variable receMsg;\r\n      string cmd(command);\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n      sendMsg = sendMsg + IStr(node-1); // USB has an 0 bsed adderss node 0..7\r\n      sendMsg = sendMsg + command;\r\n      sendMsg = sendMsg + parameter;\r\n\r\n      if(isUsbTrace())\r\n  \t\t\tprogressTrace(IDS::sendToUsb, IDS::sendMessageTitle, sendMsg);\r\n\r\n      receMsg = m_usbComObject.Request(sendMsg, timeOut); \r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (cmd.Find(\"RF\") < 0))\r\n\t  \t\tprogressTrace(IDS::sendToUsb, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToStar()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Sends a command to the corresponding device node via ML_STAR component.\r\n\t//====================================================================\r\n   static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace)\r\n   {\r\n\t\tvariable stepShowNameKey(-534118376);\r\n\t\tvariable globalKey(-534183935);\r\n\t\tvariable orderKey(-534183816);\r\n\t\tvariable parameterKey(-534183815);\r\n\t\tvariable resultDataKey(-534118396);\r\n\t\tvariable resultDataPos(4);\r\n\t\tvariable node;\r\n\t\tobject\tstarObject;\r\n\t   object \tparsIn;\r\n   \tobject \tparsOut;\r\n      variable command(\"T\");\r\n      variable parameter(param);\r\n\t\tvariable result4;\r\n      variable receMsg;\r\n      string   tempMsg;\r\n      string   tempCmd(cmd);\r\n      variable errPos;\r\n\r\n      // device node must be 1 or 2 -->> node must not be updated\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\tonerror goto objectError;\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tstarObject = m_starDeviceObj.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\t\tonerror goto 0;\r\n\r\n      command = command + IStr(node);\r\n      command = command + cmd;\r\n\r\n      if(isUsbTrace() && makeTrace)\r\n      {\r\n         string   sendMsg(command);\r\n         sendMsg = sendMsg + param;\r\n  \t\t\tprogressTrace(IDS::sendToStar, IDS::sendMessageTitle, sendMsg);\r\n      }\r\n\r\n      // set the command at first of the receMsg\r\n      receMsg = command;\r\n\r\n\t\t// activate error handler\r\n\t\tonerror goto Unexpected;\r\n\r\n\t\t// create data pars for the firmwareCommand\r\n\t   parsIn.CreateObject(\"HXPARAMSLib.HxPars\", hslFalse);\r\n\t   parsOut.CreateObject(\"HXPARAMSLib.HxPars\", hslFalse);\r\n\r\n\t   parsIn.Add(2, \"ParsCommandVersion\");\r\n\t   parsIn.Add(\"FirmwareCommand\", \"StepName\");\r\n\t   parsIn.Add(457, stepShowNameKey);\r\n\t   parsIn.Add(0, \"NbrOfErrors\");\r\n\t   parsIn.Add(command, globalKey, orderKey);\r\n\t   parsIn.Add(parameter, globalKey, parameterKey);\r\n\r\n\r\n\t\t// send command\r\n\t\tstarObject.FirmwareCommand(parsIn, parsOut);\r\n\r\n\t   result4 = parsOut.Item(resultDataKey, resultDataPos);\r\n\r\n\t\tparsIn.ReleaseObject();\r\n\t\tparsOut.ReleaseObject();\r\n\r\n      receMsg = receMsg + result4;\r\n      tempMsg = receMsg;\r\n\r\n      // remove the master error erXX/XX so that the result string is the same than on USB command erXX\r\n      errPos = tempMsg.Find(\"er\");\r\n      if(errPos >= 0)\r\n      {\r\n         if(tempMsg.GetLength() > errPos + 4)\r\n         {\r\n            if(tempMsg.Mid(errPos+4, 1) == \"/\")\r\n            {\r\n               // the simulator returns er01/00 on a unknown command,\r\n               // in this case, remove the slave error not the master error\r\n               if(tempMsg.GetLength() >= errPos + 7)\r\n               {\r\n                  // check slave error\r\n                  if(tempMsg.Mid(errPos+5, 2) == \"00\")\r\n                  {\r\n                     // use the master error, so that the return is not null\r\n                     receMsg = tempMsg.Left(errPos+4);\r\n                     receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+7));\r\n                  }\r\n                  else\r\n                  {\r\n                     // use the slave error\r\n                     receMsg = tempMsg.Left(errPos+2);\r\n                     receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+5));\r\n                  }\r\n               }\r\n            }\r\n         }\r\n      }\r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (tempCmd.Find(\"RF\") < 0) && makeTrace)\r\n\t  \t\tprogressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         variable errId( err.GetId( ) );\r\n\r\n\t\t\tparsIn.ReleaseObject();\r\n\t\t\tparsOut.ReleaseObject();\r\n\r\n         // no connection\r\n         if(errId == -1591212031 || errId == -1574764487)\r\n         {\r\n            receMsg = receMsg + \"er0\";\r\n            receMsg = receMsg + IStr(IDE::retNotConnectErr);\r\n         }\r\n         else\r\n            Error::RaiseLast();\r\n      }\r\n\r\n      // on request of firmware version do not trace the answere.\r\n      // Answere is traced as firmware version in function traceFirmwareVersion()\r\n      if(isUsbTrace() && (tempCmd.Find(\"RF\") < 0))\r\n\t  \t\tprogressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg);\r\n\r\n      return (receMsg);\r\n\r\n\t\tobjectError:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n      return (receMsg);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startPlateLockCmd()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Lock / Unlock the plate\r\n   //  Will make a short error handling on not init and step loss error\r\n\t//====================================================================\r\n   static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock)\r\n   {\r\n\t\tvariable node;\r\n      variable command(\"LP\");\r\n      variable parameter(\"lp\");\r\n      string   cmdResult;\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n      parameter = parameter + IStr(plateLock);\r\n\r\n      // lock / unlock plate\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      // check for init or staep lost error\r\n      // On step lost, this drive is lost the init state and must be initialized again\r\n      // The library internal initialization flag is set allready and must nod set again\r\n      if((cmdResult.Find(m_fwPlNotInitError) >= 0) || (cmdResult.Find(m_fwPlStepLostError) >= 0))\r\n      {\r\n         string cmdResult2;\r\n\r\n         // init drive again\r\n\t\t\tcmdResult2 = sendMsg(deviceNumber, \"LI\", \"\", m_usbMsgTimeout, hslTrue);\r\n\r\n         // init has end success\r\n         if(cmdResult2.Find(m_fwNoError) >= 0)\r\n         {\r\n            // lock / unlock plate\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n         }\r\n      }\r\n      return (cmdResult);\r\n   } \r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startShakingCmd()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //  Start / Stop plate shaking\r\n   //  Will make a short error handling on not init and step loss error\r\n\t//====================================================================\r\n   static function startShakingCmd(\r\n      variable funcId, variable deviceNumber,\r\n      variable command, variable parameter, variable isStart)\r\n   {\r\n      string   cmdResult;\r\n\r\n\t\t// send command\r\n\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n\r\n      // check for init or step lost error\r\n      // On step lost, this drive is lost the init state and must be initialized again\r\n      // The library internal initialization flag is set allready and must nod set again\r\n      if((cmdResult.Find(m_fwShNotInitError) >= 0) || (cmdResult.Find(m_fwShStepLostError) >= 0))\r\n      {\r\n         string cmdResult2;\r\n\r\n         // init drive again\r\n         cmdResult2 = sendMsg(deviceNumber, \"SI\", \"\", m_usbMsgTimeout, hslTrue);\r\n\r\n         // if not start, do not repeat the main command and return the really returned error\r\n         if(isStart)\r\n         {\r\n            // init has end success\r\n            if(cmdResult2.Find(m_fwNoError) >= 0)\r\n            {\r\n\t\t\t\t\tcmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue);\r\n            }\r\n         }\r\n      }\r\n      return (cmdResult);\r\n   } \r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function setHHSSetting()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check the given deviceNumber from a interface function\r\n\t//====================================================================\r\n\tstatic function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting)\r\n\t{\r\n      string   cmdResult;\r\n      variable funcRc(IDE::noError);\r\n\r\n\t\thhsSetting = 0;\r\n      if(!isSimulate(0, deviceNumber, hslFalse))\r\n\t\t{\r\n\t\t\tvariable startPos(-1);\r\n\r\n\t\t\t// read the HHS settings\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"QU\", \"\", m_usbMsgTimeout, hslTrue);\r\n\t\t\tfuncRc = isFirmwError(funcId, cmdResult, hslTrue);\r\n         if(0 < funcRc)\r\n            return (funcRc);\r\n\r\n      \tstartPos = cmdResult.Find(\"au\");\r\n\t      if(startPos >= 0 && cmdResult.GetLength() >= 25)\r\n\t      {\r\n\t\t\t\tvariable shaker;\r\n\t\t\t\tvariable heater;\r\n\t\t\t\t// cmdResult auswerten\r\n\t\t\t\t// format \"TxQUau0 0 0 0 0 0 0 0 0 0\"\r\n\t\t\t\tshaker = cmdResult.Mid(startPos+2, 1);\r\n\t\t\t\theater = cmdResult.Mid(startPos+4, 1);\r\n\t\t\t\tif(shaker == \"1\" && heater == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyNothing;\r\n\t\t\t\telse\r\n\t\t\t\tif(shaker == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyOnlyHeat;\r\n\t\t\t\telse\r\n\t\t\t\tif(heater == \"1\")\r\n\t\t\t\t\thhsSetting = m_shakingPropertyOnlyShake;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tm_hhsSetting[deviceNumber-1] = hhsSetting;\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function hasHeater()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the heater is activated on current HHS\r\n\t//====================================================================\r\n\tstatic function hasHeater(variable funcId, variable deviceNumber, variable throw)\r\n\t{\r\n\t\tvariable hhsSettings(-1);\r\n      variable funcRc(hslFalse);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\thhsSettings = m_hhsSetting.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyHeat))\r\n\t\t\tfuncRc = hslTrue;\r\n\r\n\t\tif(funcRc == hslFalse && throw == 1)\r\n\t\t{\r\n\t\t\t// \"Current HHS module on %s1 '%s2' cannot used as heater\"\r\n\t      variable nodeNameId(IDS::starNode);\r\n\t      variable node;\r\n         string \tmsg;\r\n         string \tnodeName;\r\n         variable funcName;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n         msg = StringTable::Load(IDS::heatingNotActivated);\r\n         nodeName = StringTable::Load(nodeNameId);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", nodeName);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n         errorCompleteTrace(funcId, msg);\r\n\r\n         Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function hasShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the heater is activated on current HHS\r\n\t//====================================================================\r\n\tstatic function hasShaker(variable funcId, variable deviceNumber, variable throw)\r\n\t{\r\n\t\tvariable hhsSettings(-1);\r\n      variable funcRc(hslFalse);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\thhsSettings = m_hhsSetting.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyShake))\r\n\t\t\tfuncRc = hslTrue;\r\n\r\n\t\tif(funcRc == hslFalse && throw)\r\n\t\t{\r\n\t\t\t// \"Current HHS module on %s1 '%s2' cannot used as shaker.\"\r\n\t      variable nodeNameId(IDS::starNode);\r\n\t      variable node;\r\n         string \tmsg;\r\n         string \tnodeName;\r\n         variable funcName;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\t\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n         msg = StringTable::Load(IDS::shakingNotActivated);\r\n         nodeName = StringTable::Load(nodeNameId);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", nodeName);\r\n         StrReplace(msg, \"%s2\", IStr(node));\r\n         errorCompleteTrace(funcId, msg);\r\n\r\n         Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\r\n\t\treturn (funcRc);\r\n\t}\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Library traces\r\n\t// --------------------------------------------------------------------------------------\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function versionTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the start of a exported function\r\n\t//====================================================================\r\n   static function versionTrace() void\r\n   {\r\n\t\tvariable traceSource;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      FormatTrace(traceSource, \"HSLHamHeaterShakerLib\", TraceStatus::cmd_progress, HamHeaterShakerVersion);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function startTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the start of a exported function\r\n\t//====================================================================\r\n   static function startTrace(variable funcName) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_start);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function progressTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces a msg during a exported function is working\r\n\t//====================================================================\r\n   static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable progressTitle;\r\n      variable progressMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(progMsgTitle) == \"i\")\r\n         progressTitle = StringTable::Load(progMsgTitle);\r\n      else\r\n         progressTitle = progMsgTitle;\r\n\r\n      if(GetType(progMsg) == \"i\")\r\n         progressMsg = StringTable::Load(progMsg);\r\n      else\r\n         progressMsg = progMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressTitle, progressMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function errorTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces an error msg during a exported function is working\r\n\t//====================================================================\r\n   static function errorTrace(variable funcName, variable errMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable errorMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(errMsg) == \"i\")\r\n         errorMsg = StringTable::Load(errMsg);\r\n      else\r\n         errorMsg = errMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_error, errorMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function errorCompleteTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces an error msg on end of an exported function\r\n\t//====================================================================\r\n   static function errorCompleteTrace(variable funcName, variable errMsg) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable errorMsg;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      if(GetType(errMsg) == \"i\")\r\n         errorMsg = StringTable::Load(errMsg);\r\n      else\r\n         errorMsg = errMsg;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_errComplete, errorMsg);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function endTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the end of an exported function\r\n\t//====================================================================\r\n   static function endTrace(variable funcName) void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n\r\n      initStringTable();\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_complete);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function traceFirmwareVersion()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces the firmware version of an used heater shaker\r\n\t//====================================================================\r\n\t// this function is used in InitializeLibrary() and uses index 0..10\t\r\n\tstatic function traceFirmwareVersion(variable funcId, variable deviceNumber)\r\n\t{\r\n      variable nodeNameId(IDS::starNode);\r\n\t\tstring \tanswString;\r\n\t\tvariable startPos(0);\r\n\t\t\r\n\t\t// read the firmware version of current node\r\n\t\tanswString = sendMsg(deviceNumber, \"RF\", \"\", m_usbInitTimeout, hslTrue);\r\n\r\n\t\tif(!isStarDevice(deviceNumber))\r\n\t\t\tnodeNameId = IDS::usbNode;\r\n\r\n\t\tstartPos = answString.Find(\"rf\");\r\n\t\tif(startPos >= 0)\r\n\t\t{\r\n\t\t\tstring fwVers;\r\n\t\t\tstring title;\r\n\t\t\tstring nodeName;\r\n\t\t\tvariable node;\r\n\r\n\t\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\t\tfwVers = answString.Right(answString.GetLength()-(startPos+2));\r\n\t\t\t// Text: \"%s1 '%s2' firmware version = \"\r\n\t\t\ttitle = StringTable::Load(IDS::firmwareVersion);\r\n\t\t\tnodeName = StringTable::Load(nodeNameId);\r\n\t\t\t\r\n\t\t\tStrReplace(title, \"%s1\", nodeName);\r\n\t\t\tStrReplace(title, \"%s2\", IStr(node));\r\n\r\n\r\n\t\t\tprogressTrace(funcId, title, fwVers);\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function sendToProgressTrace()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Traces a msg during a exported function is working\r\n\t//====================================================================\r\n   static function sendToProgressTrace(\r\n      variable funcName,\r\n      variable deviceNumber)\r\n      void\r\n   {\r\n\t\tvariable traceSource;\r\n      variable functionName;\r\n      variable nodeNameId(IDS::starNode);\r\n\t\tstring   nodeName;\r\n      variable progressMsg;\r\n      variable node;\r\n\r\n      initStringTable();\r\n\r\n\t\tnode = getNodeFromDeviceNumber(deviceNumber);\r\n\r\n\t\tif(!isStarDevice(deviceNumber))\r\n         nodeNameId = IDS::usbNode;\r\n\r\n      nodeName = StringTable::Load(nodeNameId);\r\n\r\n      traceSource = StringTable::Load(IDS::traceSource);\t// source for formated trace\r\n      if(GetType(funcName) == \"i\")\r\n         functionName = StringTable::Load(funcName);\r\n      else\r\n         functionName = funcName;\r\n\r\n      // Text: \"Start command to %s1(%s2).\"\r\n      progressMsg = StringTable::Load(IDS::progressSendTo);\r\n\r\n\r\n      StrReplace(progressMsg, \"%s1\", nodeName);\r\n      StrReplace(progressMsg, \"%s2\", IStr(node));\r\n\r\n\r\n      FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressMsg);\r\n   }\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Input parameter check function\r\n\t// --------------------------------------------------------------------------------------\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkStringInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a string\r\n\t//====================================================================\r\n   static function checkStringInput(variable funcId, variable parameterName, variable input)\r\n   {\r\n      if(GetType(input) != \"s\")\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a string.\r\n         string msg;\r\n         string param;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noStringValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"i\")\r\n            param = IStr(input);\r\n         if(GetType(input) == \"f\")\r\n            param = FStr(input, hslTrue);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noStringValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDoubleInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a double\r\n\t//====================================================================\r\n   static function checkDoubleInput(\r\n      variable funcId, variable parameterName, variable input)\r\n   {\r\n      if((GetType(input) != \"f\") && (GetType(input) != \"i\"))\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a number.\r\n         string msg;\r\n         string param(\"'%s'\");\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noDoubleValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"s\")\r\n            StrReplace(param, \"%s\", input);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noDoubleValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDoubleInputRange()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a double in a defined range\r\n\t//====================================================================\r\n   static function checkDoubleInputRange(\r\n      variable funcId, variable parameterName, variable input, variable min, variable max)\r\n   {\r\n      checkDoubleInput(funcId, parameterName, input);\r\n\r\n      if((input < min) || (input > max))\r\n      {\r\n         // \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n         string msg;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDS::parameterOutOfRange);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", FStr(input, hslTrue));\r\n         StrReplace(msg, \"%s3\", FStr(min, hslTrue));\r\n         StrReplace(msg, \"%s4\", FStr(max, hslTrue));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkIntegerInput()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a integer\r\n\t//====================================================================\r\n   static function checkIntegerInput(\r\n      variable funcId, variable parameterName, variable input)\r\n   {\r\n      if(GetType(input) != \"i\")\r\n      {\r\n         // Wrong type of parameter; '%s1(%s2)' must be a number.\r\n         string msg;\r\n         string param;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDE::noIntegerValue);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         if(GetType(input) == \"s\")\r\n         {\r\n            param = \"'\";\r\n            param = param + input;\r\n            param = param + \"'\";\r\n         }\r\n         if(GetType(input) == \"f\")\r\n            param = FStr(input, hslTrue);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", param);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::noIntegerValue, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkIntegerInputRange()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check an input parameter which must be a integer in a defined range\r\n\t//====================================================================\r\n   static function checkIntegerInputRange(\r\n      variable funcId, variable parameterName, variable input, variable min, variable max)\r\n   {\r\n      checkIntegerInput(funcId, parameterName, input);\r\n\r\n      if((input < min) || (input > max))\r\n      {\r\n         // \"Parameter out of range; '%s1(%s2)' must be between [%s3..%s4].\"\r\n         string msg;\r\n         variable funcName;\r\n         msg = StringTable::Load(IDS::parameterOutOfRange);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         StrReplace(msg, \"%s1\", parameterName);\r\n         StrReplace(msg, \"%s2\", IStr(input));\r\n         StrReplace(msg, \"%s3\", IStr(min));\r\n         StrReplace(msg, \"%s4\", IStr(max));\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber());\r\n      }\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function isStarDevice()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check if the used deviceNumber from a ML_STAR\r\n\t//====================================================================\r\n\tstatic function isStarDevice(variable deviceNumber)\r\n\t{\r\n\t\tvariable funcRc(hslFalse);\r\n\t\tvariable devName;\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tdevName = m_deviceName.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// check for usb name\r\n\t\tif(devName != m_hhsUsbObjectName)\r\n\t\t{\r\n\t\t\tfuncRc = hslTrue;\r\n\t\t}\r\n\r\n      return(funcRc);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getNodeFromDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Retunrs the saved node ID dependent of the deviceNumber\r\n\t//====================================================================\r\n\tstatic function getNodeFromDeviceNumber(variable deviceNumber)\r\n\t{\r\n\t\tvariable usedNode;\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tusedNode = m_nodeNumber.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n      return(usedNode);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function checkDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Check the given deviceNumber from a interface function\r\n\t//====================================================================\r\n\tstatic function checkDeviceNumber(variable funcId, variable deviceNumber)\r\n\t{\r\n\t\tvariable devName, nodeNr;\r\n\r\n\t\tif((deviceNumber < m_firstDeviceNumber) || (deviceNumber > m_lastDeviceNumber))\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n         msg = StringTable::Load(IDS::invalidDeviceNumber);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\tdevName = \tm_deviceName.GetAt(deviceNumber-1);\r\n\t\tnodeNr = \tm_nodeNumber.GetAt(deviceNumber-1);\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// check for usb name\r\n\t\tif((devName == \"\") || (nodeNr == 0))\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'deviceNumber' contains an invalid value! \\r\\nMust be created with function CreateStarDevice() or CreateUsbDevice()\"\r\n         msg = StringTable::Load(IDS::invalidDeviceNumber);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\t\treturn;\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function formatParam()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Formats an numeric input to a string with leading 0 to lenth of strWidth\r\n\t//====================================================================\r\n\tstatic function formatParam(\r\n\t\t\tvariable param,\t\t\t\t\t\t\t\t\t\t\t// i: the paramter to normalize (integer)\r\n\t\t\tvariable strWidth)\t\t\t\t\t\t\t\t\t\t// i: the width to be filled (integer)\r\n\t{\r\n\t\tstring sParam; \r\n\t\tsParam = IStr(param);\r\n\t\tStrFillLeft(sParam, \"0\", strWidth);\r\n\t\treturn (sParam);\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function normalizeParam()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   // Formats an numeric (double)input to 1/10 values and format it\r\n   //\tto a string with leading 0 to lenth of strWidth\r\n\t//====================================================================\r\n\tstatic function normalizeParam(\t\t\t\t\t\t\t\t// returns the given parameter normalized for firmware command as string\r\n\t\t\tvariable param,\t\t\t\t\t\t\t\t\t\t\t// i: the paramter to normalize as float or integer\r\n\t\t\tvariable strWidth)\t\t\t\t\t\t\t\t\t\t// i: the width to be filled (integer)\r\n\t{\r\n\t\tstring sParam; \r\n\t\tsParam = IStr(Floor(MthRound(param*10, 0)));\r\n\t\tStrFillLeft(sParam, \"0\", strWidth);\r\n\t\treturn (sParam);\r\n\t}\r\n\r\n\r\n\r\n\t// --------------------------------------------------------------------------------------\r\n\t// Firmware error check function\r\n\t// --------------------------------------------------------------------------------------\r\n\t\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getFirmwErrorId()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tReads the firmware error number from cmdResult string and convert it to a number\r\n\t//====================================================================\r\n   static function getFirmwErrorId(string cmdResult)\r\n   {\r\n      variable errNr(0);\r\n      variable startPos(0);\r\n      startPos = cmdResult.Find(\"er\");\r\n\r\n      if((startPos >= 0) && ((startPos+4) <= cmdResult.GetLength()))\r\n      {\r\n         variable errNo;\r\n         errNo = cmdResult.Mid((startPos+2), 2);\r\n         errNr = IVal(errNo);\r\n      }\r\n      return (errNr);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getErrIdFromFirmwareError()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tConverts the firmware error number to function return error number\r\n\t//====================================================================\r\n   static function getErrIdFromFirmwareError(string cmdResult)\r\n   {\r\n      variable firmwErrId(getFirmwErrorId(cmdResult));\r\n      \r\n      if(0 == firmwErrId)\r\n         return (IDE::noError);\r\n      else if(1 == firmwErrId)\r\n         return (IDE::retErr);\r\n      else if(2 == firmwErrId)\r\n         return (IDE::retNotInitErr);\r\n      else if(3 == firmwErrId)\r\n         return (IDE::retNotConnectErr);\r\n      else if (10 == firmwErrId)\r\n         return (IDE::canError);\r\n      else if (20 == firmwErrId)\r\n         return (IDE::eepromError);\r\n      else if (30 == firmwErrId)\r\n         return (IDE::syntaxCmdError);\r\n      else if (31 == firmwErrId)\r\n         return (IDE::syntaxParUnkError);\r\n      else if (32 == firmwErrId)\r\n         return (IDE::syntaxParRangeError);\r\n      else if (35 == firmwErrId)\r\n         return (IDE::generalVoltError);\r\n      else if (36 == firmwErrId)\r\n         return (IDE::generalStopError);\r\n      else if (37 == firmwErrId)\r\n         return (IDE::generalAddrError);\r\n      else if (40 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (41 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (42 == firmwErrId)\r\n         return (IDE::parallelError);\r\n      else if (50 == firmwErrId)\r\n         return (IDE::shakerInitError);\r\n      else if (51 == firmwErrId)\r\n         return (IDE::shakerNotInitError);\r\n      else if (52 == firmwErrId)\r\n         return (IDE::shakerStepLossError);\r\n      else if (53 == firmwErrId)\r\n         return (IDE::shakerStartModeError);\r\n      else if (55 == firmwErrId)\r\n         return (IDE::plateLockInitError);\r\n      else if (56 == firmwErrId)\r\n         return (IDE::plateLockNotInitError);\r\n      else if (57 == firmwErrId)\r\n         return (IDE::plateLockStepLossError);\r\n      else if (60 == firmwErrId)\r\n         return (IDE::tempNotStartError);\r\n      else if (61 == firmwErrId)\r\n         return (IDE::tempTimeoutError);\r\n      else if (62 == firmwErrId)\r\n         return (IDE::tempSuperRangeError);\r\n      else if (63 == firmwErrId)\r\n         return (IDE::tempSecurRangeError);\r\n      else if (64 == firmwErrId)\r\n         return (IDE::tempSensorError);\r\n      else if (98 == firmwErrId)\r\n         return (IDE::commandSendTimeout);\r\n      else\r\n         return (IDE::unknowFwError);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function isFirmwError()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tCheck if an error is set in cmdResult string\r\n\t//====================================================================\r\n   static function isFirmwError(variable funcId, string cmdResult, variable makeTrace)\r\n   {\r\n      variable rc(IDE::noError);\r\n\r\n      if(cmdResult.Find(m_fwNoError) == -1)\r\n      {\r\n         variable errId;\r\n         variable errText;\r\n         errId = getErrIdFromFirmwareError(cmdResult);\r\n         // string erXX was not found (answere command)\r\n         if(errId != IDE::noError)\r\n\t\t\t{\r\n\t\t\t\trc = errId;\r\n\r\n\t\t\t\terrText = StringTable::Load(errId);\r\n\r\n\t\t\t\t// make an exception handling for errors which contains a %s part\r\n\t\t\t\tif(errId == IDE::unknowFwError)\r\n\t\t\t\t\tStrReplace(errText, \"%s\", IStr(getFirmwErrorId(cmdResult)));\r\n\t\t\t\tif(errId == IDE::commandSendTimeout)\r\n\t\t\t\t\tStrReplace(errText, \"%s\", cmdResult.Left(4));\r\n\r\n\t\t\t\tif(makeTrace)\r\n  \t\t\t\t\terrorCompleteTrace(funcId, errText);\r\n  \t\t\t}\r\n      }\r\n\r\n      return (rc);\r\n   }\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function saveAndCreateDeviceNumber()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tsave the device parameter and create the deviceNumber which must \r\n\t// be used for each interface function\r\n\t//====================================================================\r\n\tstatic function saveAndCreateDeviceNumber(\r\n\t\tvariable funcId,\r\n\t\tvariable deviceName,\r\n\t\tobject& \tstarObject,\r\n\t\tvariable isStarSimulate,\r\n\t\tvariable usedNode)\r\n\t{\r\n\t\tvariable deviceNumber(0);\r\n\t\tvariable index(0);\r\n\r\n\t\tonerror goto Unexpected;\r\n\r\n      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t// USB set always the starObject parameter with a null object\r\n\t   if(starObject.IsNull() && m_usbComObject.IsNull())\r\n\t   {\r\n\t      // create the usb object without event \r\n\t      m_usbComObject.ReleaseObject();\r\n\t      m_usbComObject.CreateObject(m_hhsUsbObjectName, hslFalse);\r\n\r\n\r\n\t      if(!m_usbComObject.IsNull())\r\n\t      {\r\n\t         // \"{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}\", bufferSize(4090), vendorId(2223), productId, mainSerialNumber);\r\n\t         m_usbComObject.InitObject (m_hhsUsbProductNum, m_hhsUsbSerieNum);\r\n\r\n\t      }\r\n\t      else\r\n\t      {\r\n\t         string msg;\r\n\t         variable funcName;\r\n\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n\t         msg = StringTable::Load(IDS::cannotCreateUsbPort);\r\n\t         funcName = StringTable::Load(funcId);\r\n\r\n\t         errorCompleteTrace(funcId, msg);\r\n\r\n\t\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t      }\r\n\t   }\r\n\r\n\t\t// check if this node allready used\r\n      for( index = 0; index < m_maxHHS; index++)\r\n      {\r\n\t\t\tvariable devN, nodeNum;\r\n\t\t\tdevN = m_deviceName.GetAt(index);\r\n\t\t\tnodeNum = m_nodeNumber.GetAt(index);\r\n\r\n\t\t\t// if equal, node already exist\r\n\t\t\tif((devN == deviceName) && (nodeNum == usedNode))\r\n\t\t\t\tdeviceNumber = index+1;\r\n\t\t}\r\n\r\n\t\tif(deviceNumber == 0)\r\n\t\t{\r\n\t\t\t// node is not used, set it on the first free position\r\n\t      for( index = 0; index < m_maxHHS; index++)\r\n\t      {\r\n\t\t\t\tvariable devN;\r\n\t\t\t\tdevN = m_deviceName.GetAt(index);\r\n\t\t\t\t// if empty\r\n\t\t\t\tif(devN == \"\")\r\n\t\t\t\t{\r\n\t\t\t\t\tm_deviceName[index] = deviceName;\r\n\t\t\t\t\tm_starDeviceObj[index] = starObject;\r\n\t\t\t\t\tm_isStarSimulate[index] = isStarSimulate;\r\n\t\t\t\t\tm_nodeNumber[index] = usedNode;\r\n\t\t\t\t\tdeviceNumber = index+1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t      }\r\n\t\t}\r\n\t\t\r\n      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\tif(deviceNumber == 0)\r\n\t\t{\r\n         string msg;\r\n         variable funcName;\r\n\t\t\t// \"Parameter 'starDevice' contains an invalid object.\"\r\n         msg = StringTable::Load(IDS::maxHHSReached);\r\n         funcName = StringTable::Load(funcId);\r\n\r\n         errorCompleteTrace(funcId, msg);\r\n\t\t\tError::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber());\r\n\t\t}\r\n\r\n\r\n      return(deviceNumber);\r\n\r\n\t\tUnexpected:\r\n\t\t{\r\n         SynLeaveCriticalSection(m_hhsCriticalSection);\r\n   \t\tError::RaiseLast();\r\n      }\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function Wait()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tWait the given time\r\n\t//====================================================================\r\n\tstatic function wait(variable waitTime)\r\n\t{\r\n\t\ttimer t;\r\n\t\t\r\n      // Wait waitTime seconds\r\n      t.SetTimer( waitTime );\r\n      t.WaitTimer( hslFalse, hslFalse );\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getCurrentShakerRPM()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tRead the shaking speed of current HHS\r\n\t//====================================================================\r\n\tstatic function getCurrentShakerRPM(variable deviceNumber, variable makeTrace)\r\n\t{\r\n\t\tvariable shakingSpeed(0);\r\n      variable command(\"RR\");\r\n      string   parameter(\"\");\r\n      string   cmdResult;\r\n\t\tvariable startPos(0);\r\n\r\n     \t// start request\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace);\r\n      // format: rr####\r\n      startPos = cmdResult.Find(\"rr\");\r\n      if(startPos >= 0)\r\n      {\r\n\t\t\tshakingSpeed = IVal(cmdResult.Mid((startPos+2), 4));\r\n      }\r\n\t\treturn (shakingSpeed);\r\n\t}\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function getCurrentTemp()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tRead the shaking speed of current HHS\r\n\t//====================================================================\r\n\tstatic function getCurrentTemp(variable deviceNumber, variable makeTrace)\r\n\t{\r\n\t\tvariable temperature(0);\r\n      variable command(\"RT\");\r\n      variable parameter(\"\");\r\n      string   cmdResult;\r\n      variable startPos;\r\n      variable firstVal;\r\n      variable secVal;\r\n      variable averageVal;\r\n\r\n     \t// wait for temperature is reached\r\n      cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace);\r\n\r\n      // format: rt#### ####\r\n      startPos = cmdResult.Find(\"rt\");\r\n      if((startPos >= 0) && ((cmdResult.GetLength()-startPos) >= TemperateParam::tempTempRequestLength))\r\n      {\r\n\t      // read both temperature and calculate the average \r\n\t      // format: rt#### ####\r\n\t      firstVal = FVal(cmdResult.Mid((startPos+2), 5));\r\n\t      secVal   = FVal(cmdResult.Mid((startPos+8), 5));\r\n\r\n\t      // calculate the average in 1/10 degrees\r\n\t      averageVal = ((firstVal + secVal) / 2) /10;\r\n\t      temperature = MthRound(averageVal, 1);\r\n      }\r\n\t\treturn (temperature);\r\n\t}\r\n\r\n\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function MonitorHeaterShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tMonitors temperature and speed of a HHS module\r\n\t//====================================================================\r\n   synchronized function monitorHeaterShaker()\r\n   {\r\n      variable monitorComplete( 0 );\r\n\t\tevent\t\tintervalEvent;\r\n      variable currentStatus(-1);\r\n\t\tvariable funcName;\r\n\t\tvariable sTitle;\r\n\t\tvariable hTitle;\r\n\t\tvariable stateTitle;\r\n\t\tvariable heatingUp(hslTrue);\r\n      variable result;\r\n      variable oldResult;\r\n\t\tvariable notStopped(hslTrue); // action Stop not used\r\n\r\n      // set the locals...\r\n      variable devNumber(m_monitorDeviceNumber);\r\n      variable hMin(m_monitorHeaterMin);\r\n      variable hMax(m_monitorHeaterMax);\r\n      variable sMin(m_monitorShakerMin);\r\n      variable sMax(m_monitorShakerMax);\r\n      variable interval(m_monitorSampleInterval);\r\n      variable action(m_monitorAction);\r\n      variable curRpm(sMin);\t\t// if not available, the speed must be OK\r\n      variable curTemp(hMin);\t\t// if not available, the temperature must be OK\r\n\t\tvariable node;\r\n      variable nodeType;\r\n\r\n\t  \t// reset globals\r\n\t   m_monitorDeviceNumber\t\t\t= 0;\r\n\t   m_monitorShakerMin\t\t\t\t= 0;\r\n\t   m_monitorShakerMax\t\t\t\t= 0;\r\n\t   m_monitorSampleInterval\t\t\t= 0;\r\n\t   m_monitorAction\t\t\t\t\t= 0;\r\n\t\tm_monitorHeaterMin\t\t\t\t= 0;\r\n\t\tm_monitorHeaterMax\t\t\t\t= 0;\r\n\t   m_monitorResult[devNumber-1] \t= -1;\r\n\r\n\t\t// set min max temperature dependend of current heater settings\r\n\t\t// critical section is set in StartMonotoring() function\r\n\t\tintervalEvent = m_monitorEvent.GetAt(devNumber-1);\r\n\r\n\t\t// free start semaphore\r\n\t\tm_monitorStartEvent.SetEvent();\r\n\r\n\t\tinitStringTable();\r\n\r\n      if(isStarDevice(devNumber))\r\n         nodeType = StringTable::Load(IDS::starNode);\r\n      else\r\n         nodeType = StringTable::Load(IDS::usbNode);\r\n\t\tnodeType = nodeType + \" (\";\r\n\t\tnode = getNodeFromDeviceNumber(devNumber);\r\n\t\tnodeType = nodeType + IStr(node);\r\n\t\tnodeType = nodeType + \" )\";\r\n\r\n\r\n\t\tfuncName = StringTable::Load(IDF::Monitoring);\r\n\t\tfuncName = funcName + \" \";\r\n\t\tfuncName = funcName + nodeType;\r\n\t\tsTitle = StringTable::Load(IDS::monitoringShakingTitle);\r\n\t\thTitle = StringTable::Load(IDS::monitoringTempTitle);\r\n\t\tstateTitle = StringTable::Load(IDS::monitoringStateTitle);\r\n\r\n\r\n      while (monitorComplete == 0)\r\n      {\r\n         // WaitEvent returns 0 if still waiting or non-zero\r\n         // if the event was triggered.\r\n         monitorComplete = intervalEvent.WaitEvent( interval );\r\n\r\n\t\t\tif( monitorComplete == 0 && notStopped)\r\n\t\t\t{\r\n\t\t\t\tif(hasShaker(0, devNumber, 0))\r\n\t\t\t\t{\r\n\t\t\t\t\tvariable title(sTitle);\r\n\r\n\t\t\t\t\t// read currect RPM\r\n\t\t\t\t\tcurRpm = getCurrentShakerRPM(devNumber, hslFalse);\r\n\r\n\t\t\t\t\tprogressTrace(funcName, title, IStr(curRpm));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(hasHeater(0, devNumber, 0))\r\n\t\t\t\t{\r\n\t\t\t\t\tvariable title(hTitle);\r\n\r\n\t\t\t\t\tif(heatingUp)\r\n\t\t\t\t\t{\r\n\t\t\t\t      string   cmdResult;\r\n\t\t\t\t\t\tvariable partResult(\"qd1\");\r\n\r\n\t\t\t\t      // ask if heater in state heating up\r\n\t\t\t\t\t\tcmdResult = sendMsg(devNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t\t\t\tif(cmdResult.Find(partResult) < 0)\r\n\t\t\t\t\t\t\theatingUp = hslFalse;\r\n\t\t\t\t\t\tif(heatingUp)\r\n\t\t\t\t\t\t\ttitle = StringTable::Load(IDS::monitoringTempHeatUpTitle);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// read current temperature\r\n\t\t\t\t\tcurTemp = getCurrentTemp(devNumber, hslFalse);\r\n\r\n\t\t\t\t\tprogressTrace(funcName, title, FStr(curTemp, hslTrue));\r\n\t\t\t\t}\r\n\r\n\t\t      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\t\t\tresult = m_monitorResult.GetAt(devNumber-1);\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t         oldResult = result;\r\n\r\n\t         // Calculate the current state of the heater/shaker\r\n\t         if( (((curTemp < hMin) || (curTemp > hMax)) && !heatingUp) && ((curRpm < sMin) || (curRpm > sMax)))\r\n\t         {\r\n\t         \tcurrentStatus = MonitorStatus::monitorErrHeatingAndShaking;\r\n\t         }\r\n\t         else if ( ((curTemp < hMin) || (curTemp > hMax)) && !heatingUp )\r\n\t         {\r\n\t            currentStatus = MonitorStatus::monitorErrHeating;\r\n\t         }\r\n\t         else if ( (curRpm < sMin) || (curRpm > sMax) )\r\n\t         {\r\n\t            currentStatus = MonitorStatus::monitorErrShaking;\r\n\t         }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tcurrentStatus = MonitorStatus::monitorOK;\r\n\t\t\t\t}\r\n\r\n\t         // If the monitor status has previously not been set, set it.\r\n\t         // Otherwise, use bitwise OR to merge the current result with the previous result\r\n\t         if (result == -1)\r\n\t            result = currentStatus;\r\n\t         else\r\n\t            result = currentStatus | result;\r\n         \r\n\t\t      SynEnterCriticalSection(m_hhsCriticalSection);\r\n\t\t\t\tm_monitorResult[devNumber-1] = result;\r\n\t\t      SynLeaveCriticalSection(m_hhsCriticalSection);\r\n\r\n\t\t\t\tprogressTrace(funcName, stateTitle, IStr(result));\r\n\r\n\t         if ( result != MonitorStatus::monitorOK )\r\n\t         {\r\n\t            if ( action == MonitorAction::monitorActionStop )\r\n\t            {\r\n\t\t\t\t\t\t// stop shaking and heating\r\n\t\t\t\t\t\tif(hasShaker(0, devNumber, 0))\r\n\t\t\t\t\t\t\tStopShaker(devNumber);\r\n\r\n\t\t\t\t\t\tif(hasHeater(0, devNumber, 0))\r\n\t\t\t\t\t\t\tStopTempCtrl(devNumber);\r\n\r\n\t\t\t\t\t\t// end monitoring but leave in the loop for a correct end of the automatic semapore intervalEvent\r\n\t\t\t\t\t\tnotStopped = hslFalse;\r\n\t            }\r\n\t\t\t\t\tif(action == MonitorAction::monitorActionAbort)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\terrorTrace(funcName, IDS::monitoringAbort);\r\n\t\t\t\t\t\tabort;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t   }  // end while\r\n\r\n      return(0);\r\n   }\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function pollingForRunningShaker()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tPolling until shaker has end shaked or time is elapsed\r\n\t//\tPolling is neccessary that during a long wait time an Abort()\r\n\t// command can be execute.\r\n\t//====================================================================\r\n\tstatic function pollingForRunningShaker(\r\n\t\tvariable deviceNumber, variable maxPollingTime)\r\n\t{\r\n      string   cmdResult;\r\n\t\tvariable maxPTime(maxPollingTime);\r\n\t\tvariable intervalTime(5);\r\n\t\tvariable partResult(\"rd1\");\r\n\r\n\t\tif(maxPollingTime > 10)\r\n\t\t{\r\n\t      // ask if shaker is running\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"RD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\r\n\t\t\twhile(cmdResult.Find(partResult) > 0 && maxPTime > 0)\r\n\t\t\t{\r\n\t\t\t\tmaxPTime = maxPTime - intervalTime;\r\n\t\t\t\twait(intervalTime);\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, \"RD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function pollingForRunningHeater()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tPolling until heater is in temperature controlling mode\r\n\t//\tPolling is neccessary that during a long wait time an Abort()\r\n\t// command can be execute.\r\n\t//====================================================================\r\n\tstatic function pollingForRunningHeater(\r\n\t\tvariable deviceNumber, variable maxPollingTime)\r\n\t{\r\n      string   cmdResult;\r\n\t\tvariable maxPTime(maxPollingTime);\r\n\t\tvariable intervalTime(10);\r\n\t\tvariable partResult(\"qd1\");\r\n\r\n\t\tif(maxPollingTime > 10)\r\n\t\t{\r\n\t      // ask if heater in state heating up\r\n\t\t\tcmdResult = sendMsg(deviceNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\r\n\t\t\twhile(cmdResult.Find(partResult) > 0 && maxPTime > 0)\r\n\t\t\t{\r\n\t\t\t\tmaxPTime = maxPTime - intervalTime;\r\n\t\t\t\twait(intervalTime);\r\n\t\t\t\tcmdResult = sendMsg(deviceNumber, \"QD\", \"\", m_usbMsgTimeout, hslFalse);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//====================================================================\r\n\t//\r\n\t// Internal function OnAbortHHSLibrary()\r\n\t//\r\n   //--------------------------------------------------------------------\r\n   // Description:\r\n   //\tStop heating and shaking for all HHS module\r\n\t//====================================================================\r\n\tstatic function OnAbortHHSLibrary()\r\n\t{\r\n\t\tvariable deviceNumber;\r\n\r\n      for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++)\r\n      {\r\n         if(isHeaterInitialized(deviceNumber))\r\n         {\r\n            // call StartShaker with 1 base node\r\n\t\t\t\tStopShaker(deviceNumber);\r\n            StopTempCtrl(deviceNumber);\r\n         }\r\n      }\r\n\r\n\t\tTerminate();\r\n\t\treturn;\r\n\t}\r\n\r\n\r\n}\r\n\r\n#endif\r\n// $$author=Stefan.Golas$$valid=0$$time=2025-07-28 14:14$$checksum=eb0b5352$$length=089$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx7218.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx7406.hsl",
    "content": "#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HSLUtilLib2.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable volumes;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable a;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{ 21 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 22 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 24 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 25 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"be56d266_8e7d_4b8b_b443f7b61332a54d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 28 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 29 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 30 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 32 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 33 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 34 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 36 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 37 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 39 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 42 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 43 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 44 1 0 \"fbfd11e8_7f54_4736_806fea7c08b567e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 45 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 46 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 47 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 48 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 49 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 50 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 51 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 52 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 63 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 64 1 0 \"6a68b521_e5e2_484d_8284e842b4d424e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 65 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 69 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 70 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 71 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 73 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 74 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 75 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 76 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 77 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 78 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 81 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 82 1 0 \"1c8af708_7edd_4eb3_9937086c884c6d76\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 83 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 84 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 85 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 86 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 87 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 88 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 96 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 97 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 98 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 100 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 107 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 108 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 109 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 111 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 112 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 113 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 114 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"8baf783d_525d_4aad_afac7c239555bd7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"));\r\n// }} \"\"\r\n// {{ 121 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 122 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 124 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 125 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 126 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 127 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 128 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 129 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 130 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 131 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 132 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 133 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 134 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 135 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 136 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 137 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 138 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 139 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 140 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 141 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 142 1 0 \"baf7739b_dfda_4021_93b4602803cbab1b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 143 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 144 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 145 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 146 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 147 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 150 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 151 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 157 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 158 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 159 1 0 \"61d36812_0e65_463e_bc060393e68b7aed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 160 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 161 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 162 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 163 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 164 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 165 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 166 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 167 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 168 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 169 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 174 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 177 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 178 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 179 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 180 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 181 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 183 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 184 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 185 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 186 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 187 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"4741e85b_a1ab_4e3c_bafd5edd36cbdfab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 194 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 195 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 196 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 197 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 198 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 199 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 201 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 202 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 203 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 207 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 215 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 216 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 217 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 219 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 220 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 221 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 222 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"ef732313_1467_44c4_97d1454e77c299d7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 230 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 231 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 232 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 233 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 234 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 238 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 239 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 240 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 242 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 243 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 244 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 245 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 246 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 247 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 248 1 0 \"0c0a33aa_e94b_4075_b12f1b79506556c8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, ML_STAR.Waste16, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"adb53477_1dfa_442f_8514fb0c884f8262\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 252 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 261 1 0 \"fce93d5d_dca0_4361_a7b125aba3b04775\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 262 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 263 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 264 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 265 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 266 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 268 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 269 1 0 \"7464e28e_0f62_4f1a_ab58a61200e9dc3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 270 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 271 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 272 1 0 \"57281871_de37_4dc5_8a242d2e17f9730f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 273 1 0 \"409e7ce0_0aad_4f80_bbe430965985f3e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 274 1 0 \"ee09031c_f38e_44ee_bcd7ae8bdfccda16\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 275 1 0 \"2c9b6fb3_2939_4cbc_b0eb7236b2fb9521\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 276 1 0 \"fefd397f_9a56_49bf_a645b849c3780311\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 277 1 0 \"ed22046c_f3e5_4329_84777fe1af41257f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 278 1 0 \"6038dec0_6387_4401_9b17cbf45e847cbe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 279 1 0 \"60a965ef_5e34_4bef_9a267ee9ae674927\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"0ea5db04_45e2_417a_a8c0ca587d73927c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"879476f3_fd1c_4b43_8647c68123890513\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"cc898d09_149e_4608_a2085a01f3336d69\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"2f4d8baa_eca0_46d4_a38c19d41faba09a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"9d91537c_4195_48ca_81314d0041e33681\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"9f35278d_5f2d_45bf_9ed6ac6923682f9c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 286 1 0 \"aec34e23_612f_40ae_bfd822cd9bd0f85f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 287 1 0 \"bf9562d7_0e71_4418_8c6bf1febe080021\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 288 1 0 \"ee09031c_f38e_44ee_bcd7ae8bdfccda16\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 289 1 0 \"e9fca580_cb46_4a01_9cad15ef7c2340ba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 290 1 0 \"5892fa28_2e31_4f31_b540275b16f074f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 291 1 0 \"2744dbe2_45cc_4d13_8b76c1a82c6bb670\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 292 1 0 \"275afe3f_da15_4cbb_b63993457424ed92\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 293 1 0 \"2744dbe2_45cc_4d13_8b76c1a82c6bb670\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"e9fca580_cb46_4a01_9cad15ef7c2340ba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 295 1 0 \"3d65acfb_dc19_464f_96f3aa346a37e3c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 296 1 0 \"e9fca580_cb46_4a01_9cad15ef7c2340ba\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 297 1 0 \"466da4ca_b859_40b1_8d91376b0ac59e16\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 298 1 0 \"2d6e0115_e558_42b2_b3d3b47e190a7694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 299 1 0 \"f6733221_c766_4133_a1f1718fb020df03\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"a7f16dca_3c17_4de4_b0b6817a35d2f9d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 301 1 0 \"f6733221_c766_4133_a1f1718fb020df03\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 302 1 0 \"466da4ca_b859_40b1_8d91376b0ac59e16\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 303 1 0 \"3b4ffa2c_32cf_4016_a59e571515c1ce34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 304 1 0 \"466da4ca_b859_40b1_8d91376b0ac59e16\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 305 1 0 \"5cb9b04b_0fcb_4960_acc4513d8bd0cb39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"89ab4762_28fe_43c4_b2a87c41979fdcd0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"33a868b1_d1ff_4627_bf407f9cdbb6de32\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"5ef35354_f7df_49b1_95d532451fc05e3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 309 1 0 \"409e7ce0_0aad_4f80_bbe430965985f3e9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 310 1 0 \"57281871_de37_4dc5_8a242d2e17f9730f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 311 1 0 \"757c0a0e_a7f4_4bf2_bfa057d37148fcbf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 312 1 0 \"771dd1d9_5708_4380_a64b3e5dffefe906\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 313 1 0 \"2ff61540_ae7a_4a40_b0920fc355e27a63\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 314 1 0 \"97406b97_084c_4dca_aeee48f85abf483f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"2eb2f637_c7ae_491a_addc4ce6449f4583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 316 1 0 \"2ff61540_ae7a_4a40_b0920fc355e27a63\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 317 1 0 \"30c5f1d8_2511_4a60_bd7be17365f56a15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 318 1 0 \"7a668b09_be20_467f_a4931033d1f8cbcc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 319 1 0 \"0d4a3b95_7cab_4ccd_92e8eb3507974f21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 320 1 0 \"91e151a6_deca_4691_aac01e77d0c0704f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"0d4a3b95_7cab_4ccd_92e8eb3507974f21\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"30c5f1d8_2511_4a60_bd7be17365f56a15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"d3cf2afd_1786_4055_9d46bc90b7550e85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 324 1 0 \"30c5f1d8_2511_4a60_bd7be17365f56a15\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 325 1 0 \"b49dd283_8820_4835_a265d752fc7ee2a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 326 1 0 \"8fbbc230_a017_45db_b5fdd1e55e00cdb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 327 1 0 \"4d6ab56b_3d50_457a_a40e5844a644c947\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 328 1 0 \"771dd1d9_5708_4380_a64b3e5dffefe906\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 329 1 0 \"757c0a0e_a7f4_4bf2_bfa057d37148fcbf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 330 1 0 \"5815db3f_6a89_404d_b22e14f743371465\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 331 1 0 \"f69aeeef_2a97_48f7_8096519045fcc774\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 332 1 0 \"c9d99c57_02bc_4139_8efcecd63e319b33\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 333 1 0 \"3d356852_2190_4deb_9415504e8df9fc65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"1bfedc1e_3f57_4e54_92a63b9c8ca65a10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 335 1 0 \"98746c5d_9bef_46ba_93a3ae3a1a3f6157\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 336 1 0 \"245b1813_f287_4ca2_9a107f4f8f484ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 337 1 0 \"9067af6f_9eef_4d52_8de9f8a4789dbb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 338 1 0 \"fbe7ad33_2d6a_4b61_a590dd4b5e77bbd0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 339 1 0 \"d618fdab_5852_429e_97104de37e53cf26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"5d97f340_bd59_48af_9e409f04a9962e8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"8c28ed9e_469c_4de7_ad8633a827f32991\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"c82ac906_05ad_4864_a1850ea6ad8c3d13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"15515fc3_56fa_4505_a3cde7095a50cad8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 344 1 0 \"c9d99c57_02bc_4139_8efcecd63e319b33\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"69109499_3a32_450c_ad0bf352d592d016\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 346 1 0 \"f5d54bbc_8877_4be8_93759a807b5e9434\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 347 1 0 \"f85638ee_7cec_408d_b00db1e2fe8a6dbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 348 1 0 \"92ce9741_73af_4736_bfb7e20febb3074f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 349 1 0 \"f85638ee_7cec_408d_b00db1e2fe8a6dbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 350 1 0 \"69109499_3a32_450c_ad0bf352d592d016\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 351 1 0 \"baffacfe_5135_4e9b_8b160709a9b21616\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 352 1 0 \"69109499_3a32_450c_ad0bf352d592d016\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 353 1 0 \"2ed419f6_869e_448d_af06833996a5acc2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 354 1 0 \"1c1debf0_74cf_4d44_8d89d588bab0ed0f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 355 1 0 \"b96c667a_5df0_423f_a6fdcf96cf193ef0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 356 1 0 \"45e706ef_3cb4_452e_b81387f8b210f9d4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 357 1 0 \"b96c667a_5df0_423f_a6fdcf96cf193ef0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 358 1 0 \"2ed419f6_869e_448d_af06833996a5acc2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 359 1 0 \"f164ada1_e03e_4452_92bba7c858f95f53\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 360 1 0 \"2ed419f6_869e_448d_af06833996a5acc2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 361 1 0 \"09a0bb45_db48_49e8_b3f8a7dc44972286\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 362 1 0 \"a461d8ee_5432_4df0_a915616fb0659a1a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"b2bde5b8_d387_43ef_8ab2e9f512dfedd1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"4dd87c60_e18e_41b5_b7411c2066b93b94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 365 1 0 \"f69aeeef_2a97_48f7_8096519045fcc774\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 366 1 0 \"5815db3f_6a89_404d_b22e14f743371465\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 367 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 368 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 370 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 371 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 372 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 373 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 375 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Cuevas_A$$valid=0$$time=2017-05-01 15:57$$checksum=34e38916$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx7406.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4 ) void ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 486 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 456 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 457 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 458 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 459 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 460 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 461 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 469 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 470 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 471 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 472 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 473 1 0 \"c4dace2b_a8f4_4fc9_9e50c0b239d7ce04\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 474 1 0 \"89c37599_83e8_4af6_bee17da851eff56a\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 475 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 476 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 477 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 478 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 479 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 480 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 481 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 482 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 483 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 484 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4 ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 445 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"573e16a7_c660_495b_a8079940be604ff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 447 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 448 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 449 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 450 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 451 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 452 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 454 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 422 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 424 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 425 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 426 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 427 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 428 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 429 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 430 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 431 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 432 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 433 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 434 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 463 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 464 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 465 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 466 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable loopCounter2;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable intType;\r\nprivate variable val;\r\nprivate variable strKeyName;\r\nprivate variable retVal;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 387 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 388 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 389 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\nTrace(\"ARRAY SIZE=\", arrSize);\r\n// {{ 391 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 392 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 393 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 394 1 0 \"77e4b501_92f2_4f0c_a6d4190a62e46da7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetElementType(objJSONFromServer, strKeyName, loopCounter3, intType);\r\n// }} \"\"\r\nTrace(\"position=\", loopCounter3, \"   type=\", intType);\r\n// {{ 396 1 0 \"445e00ec_c7d7_4544_8e9461646bd8dd61\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intType == 7)\r\n{\r\n// }} \"\"\r\n// {{{ 397 1 0 \"940108aa_cd62_4d73_ac67398dc647e8e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\nTrace(\"Get float return:\", retVal, \"  value=\",v);\r\n// {{ 399 1 0 \"445e00ec_c7d7_4544_8e9461646bd8dd61\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 400 1 0 \"789ca750_57e1_442d_85be868bb10a3d24\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (intType == 6)\r\n{\r\n// }} \"\"\r\n// {{{ 401 1 0 \"e714eec1_403f_4efd_b2f2b16627e5d25c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 402 1 0 \"789ca750_57e1_442d_85be868bb10a3d24\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 403 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 404 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 405 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 406 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 407 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 408 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 409 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 410 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 411 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 412 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 413 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 414 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 415 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 416 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 417 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 418 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 419 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 420 1 0 \"b6925417_2401_4996_9e43c2f83275a1d1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nUtil2::Debug::TraceArray(Translate(\"volumes\"), o_arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 377 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 378 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 379 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 380 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 382 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 384 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 385 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable o_intType;\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{{ 436 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 437 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\n// {{ 438 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 439 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 440 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\n// {{ 441 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 442 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 443 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Cuevas_A$$valid=0$$time=2017-05-01 15:57$$checksum=33321b70$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx7A41.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"HSL_LiquidClassLib.hsl\"\r\n#include \"HslHamHeaterShakerLib.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction 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 ;\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ;\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ;\r\nfunction 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 ;\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ;\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable height;\r\nprivate variable calculatedVolume;\r\n// {{ 5 \"Channels_1ml_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 90 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 91 1 0 \"8fa2cdd5_d117_4559_be8f242119801835\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"8fa2cdd5_d117_4559_be8f242119801835\"); // Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 92 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BE09000023754133A7DFF78508E9EC3D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 93 1 0 \"3dd2c518_6d0a_4d7b_a227743c1263caad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 94 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 95 1 0 \"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 96 1 0 \"a37ce602_144b_4a72_98dbfe0c85169266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 97 1 0 \"36e6f2a2_6d83_40ba_a0c6ff5caefcef66\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 98 1 0 \"ce4eba9f_c8e1_4c33_a9c369da4ce7c312\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 99 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 100 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"81636f39_7511_441a_8ab707955e5f2035\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 102 1 0 \"6b53ca04_1112_466f_89a23ed352e36004\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 103 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 104 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 105 1 0 \"9c1dd6a5_9b06_43fd_9fd194129c2f2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"e6930a03_b2a0_4569_bb51b2088cac413c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 107 1 0 \"06eeeac2_52c3_47cb_b78dde137d763a9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 108 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 109 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 110 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 111 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 113 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_15E4EC7C03B0458dA8B196D2861D63BC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 114 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 115 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 116 1 0 \"450b7dae_efb3_416b_a62ef5c611c84cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 117 1 0 \"ca4e0527_c377_4a7f_99b7deddb85bdfaf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 118 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 119 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 120 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"Begin\"\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 84 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 85 1 0 \"72075d54_9924_47c4_a0154d7e90bb1065\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"72075d54_9924_47c4_a0154d7e90bb1065\"); // TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 86 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_55CAD51E8CEB46d5827DF7367C49B35D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 87 1 0 \"7acd54b9_9bda_465f_9b10e23e8987fa26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 88 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable calculatedVolume;\r\nprivate variable height;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\nprivate variable loopCounter1;\r\nprivate variable numberOfPositions;\r\n// {{ 5 \"Channels_1mL_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 45 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 46 1 0 \"ce9beee3_e67e_43c3_bfc64805ab990e08\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"ce9beee3_e67e_43c3_bfc64805ab990e08\"); // Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 47 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 48 1 0 \"493334e8_4548_4149_82f058a4b51df641\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 49 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 50 1 0 \"dd677141_96b6_4ccc_a1764ec36dc76b56\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"dd677141_96b6_4ccc_a1764ec36dc76b56\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 51 1 0 \"4fd5463f_c617_4e2b_aa27d0a820bfe2c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 52 1 0 \"6cafca26_5df8_46c0_98d5a4e2a957163a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 53 1 0 \"418d84ad_0fba_4ca8_8479b9c6dde94985\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 54 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 55 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 56 1 0 \"c8304522_b160_47ca_9780bfcfd85cf56a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 57 1 0 \"5c09e3e1_cd42_4687_940231f4491e28e1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 58 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 59 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 60 1 0 \"11b5458b_6926_471d_8cb7dde489f8a444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"51ffe893_b0e5_4383_ac38b9be481a9bee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 62 1 0 \"b02dd957_c3d3_445f_b0e36cc6cab274af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 63 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 64 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 65 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 66 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 68 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 69 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 70 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 71 1 0 \"36cc23a5_3886_4312_adc5faa6d481a26c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 72 1 0 \"9f017e3d_a3f3_4f02_914d74e549a5f3be\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 73 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 74 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 75 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"Begin\"\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 78 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 79 1 0 \"1a33c622_0a9b_473c_a857db709fcadb47\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"1a33c622_0a9b_473c_a857db709fcadb47\"); // TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 80 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D52469807F754a359D17B8D31042C6A6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"5284933d_2b98_4255_81ee24c4ca6624c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 82 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable positionBC;\r\n// {{ 5 \"Carrier_Load\" \"InitLocals\"\r\no_stepReturn_CarrierBC = 0;\r\no_stepReturn_PositionsBCs = 0;\r\no_stepReturn_PositionsBCMasks = 0;\r\no_stepReturn_PositionsIDs = 0;\r\no_CarrierBC = 0;\r\no_PositionsBCs.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2 1 0 \"b445eca9_c441_45d7_b53f08a23b7b4b80\" \"ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2(\"b445eca9_c441_45d7_b53f08a23b7b4b80\"); // LoadCarrier\r\n\to_stepReturn_CarrierBC = arrRetValues[2];\r\n\to_stepReturn_PositionsBCs = arrRetValues[3];\r\n\to_stepReturn_PositionsBCMasks = arrRetValues[4];\r\n\to_stepReturn_PositionsIDs = arrRetValues[5];\r\n}\r\n// }} \"\"\r\n// {{ 3 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"6919be45_bdb7_46b6_a2ad892454bef1c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_CarrierBC = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 5 1 0 \"d814f66e_6beb_47a8_a390d3b5ea839ba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{{ 6 1 0 \"018a7d4d_f55c_435f_bfce516fc40cd0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCMasks = ErrGetDataAt(5);\r\n// }} \"\"\r\n// {{{ 7 1 0 \"28252b10_bd1a_480c_8d84ce9739ca69ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsIDs = ErrGetDataAt(6);\r\n// }} \"\"\r\n// {{ 8 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 9 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 10 1 0 \"91e50e7b_5626_4ab9_ad652563a737dba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC);\r\n// }} \"\"\r\n// {{ 11 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 12 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 13 1 0 \"6135f8c7_3486_4898_88c6e7154326c4df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 14 1 0 \"4cec9992_cb23_4182_894ee448e99b8d48\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_PositionsBCs.SetSize(0);\r\n// }} \"\"\r\n// {{ 15 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 16 1 0 \"fe82471b_5e85_4598_90b8f672ef3cf690\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 17 1 0 \"f0a92a30_0f95_4eb4_bdcf7e21db350ecb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_PositionsBCs.AddAsLast(positionBC);\r\n// }} \"\"\r\n// {{ 18 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 19 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"Begin\"\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Carrier_Unload\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 21 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 22 1 0 \"38494363_9fef_41a3_8cb17f349c9fe693\" \"ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2(\"38494363_9fef_41a3_8cb17f349c9fe693\"); // UnloadCarrier\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 23 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 24 1 0 \"9aa00b86_389e_473d_bd928bce39259e60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 25 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 27 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 28 1 0 \"f1e43893_ada0_4b74_9035cad36fab5d4b\" \"ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F(\"f1e43893_ada0_4b74_9035cad36fab5d4b\"); // ZSwapGetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 29 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90BF8C56374E469c817DB7B52FEE5D91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 30 1 0 \"5300695f_5b47_4f16_8312711c7c77441e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 31 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 39 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8675588E513E44cd8097542899F1DE5C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 40 1 0 \"3460f3d9_9fdb_4437_9cfa36d33b14f837\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"3460f3d9_9fdb_4437_9cfa36d33b14f837\"); // ZSwapPlacePlate\r\n}\r\n// }} \"\"\r\n// {{ 41 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8675588E513E44cd8097542899F1DE5C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"1c1fcfa6_73ab_434d_965f40a7cb5827ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 43 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"Begin\"\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 33 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 34 1 0 \"2ed0456d_387e_49b4_a5a8105447123f04\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"2ed0456d_387e_49b4_a5a8105447123f04\"); // ZSwapMovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 35 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 36 1 0 \"b5f59ed6_6bf0_47b3_b8c295016cfa86e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 37 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 207 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 208 1 0 \"285b84de_748a_400d_a828988b60f4c175\" \"ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E(\"285b84de_748a_400d_a828988b60f4c175\"); // GetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 209 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ABA9DAA34A59470495CBB56841D2D81D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 210 1 0 \"298cdb09_c92e_4bb7_a2ecabeafcf27813\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 211 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 225 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 226 1 0 \"bcedff0a_3cba_458a_bedb1a743e5dd0bd\" \"ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55(\"bcedff0a_3cba_458a_bedb1a743e5dd0bd\"); // PutPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 227 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_22A12BE8BB2146fbB8824DF66137BF6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 228 1 0 \"8aeb393a_337d_4788_b25408ee6915eb1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 229 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"Begin\"\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 213 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 214 1 0 \"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\" \"ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E(\"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\"); // MovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 215 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E8A019BC968240cbB4C8B7397BB2F043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 216 1 0 \"b69dc448_e2ef_4c62_b6dd3535487928f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 217 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"Begin\"\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Park\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 219 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 220 1 0 \"ef5a4036_5d2f_4aae_86e669ef0581597f\" \"ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7(\"ef5a4036_5d2f_4aae_86e669ef0581597f\"); // ParkISwap\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 221 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_47ED933D92B34914984C5D98423B4C94 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 222 1 0 \"974d3165_8b4f_469b_99a59625d159b561\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 223 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"Begin\"\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 180 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 181 1 0 \"b3913cc3_f1bb_4e9f_b3100faec37b186d\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"b3913cc3_f1bb_4e9f_b3100faec37b186d\"); // Head96TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 182 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6640FC09A88C48daB6CB9FB2349BE364 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 183 1 0 \"1df2d158_801c_4c9f_a8014869fa07863d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 184 1 0 \"315f1e4b_8d32_430c_89413b8e4b5b135a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 185 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 129 1 0 \"0fc30c09_ddb7_4665_8739dbd8f0102fdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(aspirateSequence);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"14c1eb4e_ced0_45f2_a343bc0f3c668407\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(aspirateSequence);\r\n// }} \"\"\r\n// {{ 131 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 132 1 0 \"8d6fdce5_327c_491b_aebee60a715b6c6e\" \"ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A(\"8d6fdce5_327c_491b_aebee60a715b6c6e\"); // Head96Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 133 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_00A0A59BF99B42a686A202BE72502D6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 134 1 0 \"6c23fd1d_be57_4011_8fea4ea6459aeecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"ee52ace2_98fe_454f_841ae740168bebcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 136 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 137 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 138 1 0 \"8bf3cb1f_0b71_493d_bf300c05413fc543\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 139 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 140 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 141 1 0 \"091a5303_35ee_4d82_a0b32d9ede26439d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 142 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 145 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_06FF5C7D72E044ac924A0658E57AC92A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 146 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 147 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 148 1 0 \"0b5e4cdb_1c92_4d18_a0bed95d854a0d94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 149 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"Begin\"\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_SubmergeDepthCORE;\r\nprivate variable str_FW_Digits;\r\nprivate variable flt_TipLength;\r\nprivate variable int_LLDheight;\r\nprivate variable flt_TipLength_corrected;\r\nprivate variable int_FW_Digits;\r\nprivate variable flt_StepSize;\r\nprivate variable int_Steps_mm;\r\nprivate variable str_ReturnValueH0RH;\r\nprivate variable flt_angle;\r\nprivate variable tipType;\r\nprivate variable dummy;\r\n// {{ 5 \"MPH_GetLastLLD_Level\" \"InitLocals\"\r\no_flt_LastLiquidLevel = 0;\r\n// }} \"\"\r\n// {{ 187 1 0 \"f7c5b642_e642_4bd2_b342e8a2202f94b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SubmergeDepthCORE = 8.0;\r\n// }} \"\"\r\n// {{ 188 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 189 1 0 \"de2e1cfc_3be8_4752_b20a1221fc802c26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"bf16ce46_b00c_46c3_93046a4e730e9868\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(i_liquidClass);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"7d094f81_a8b9_4eb1_90a841201d1a4cca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"05a5dc8c_726f_477e_97f2839edafa8bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::getTipTypeData(tipType, dummy, dummy, dummy, flt_TipLength);\r\n// }} \"\"\r\n// {{ 193 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 194 1 0 \"a97af8ec_9af3_46fa_a150d41888290f6f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE;\r\n// }} \"\"\r\n// {{{ 195 1 0 \"8fc17eb7_3fbb_4a8e_b537d43144e8598c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle);\r\n// }} \"\"\r\n// {{ 196 1 0 \"31649b83_68f7_49a0_974f7efa6232c07d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnValueH0RH = Translate(\"\");\r\n// }} \"\"\r\n// {{ 197 1 0 \"72f92b7c_2537_40be_bc5fe85726a39b19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StepSize = 0.005;\r\n// }} \"\"\r\n// {{ 198 1 0 \"b5a3458f_9eea_4501_a6aa86c0556ad194\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b5a3458f_9eea_4501_a6aa86c0556ad194\"); // FirmwareCommand\r\n\tstr_ReturnValueH0RH = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 199 1 0 \"73c2ff19_ed4c_4c45_a9c5b56a6e84b044\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"str_ReturnValueH0RH: \"), str_ReturnValueH0RH);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 200 1 0 \"f6fe1f5f_39ae_4b71_83f733a5cf490b66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FW_Digits = StrRight(str_ReturnValueH0RH, 6);\r\n// }} \"\"\r\n// {{{ 201 1 0 \"9883fcc4_3dcd_4199_816696b3668f733f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_FW_Digits = StrIVal(str_FW_Digits);\r\n// }} \"\"\r\n// {{ 202 1 0 \"b427e920_22bd_492e_8c900ff3a99a649c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Steps_mm = int_FW_Digits * flt_StepSize;\r\n// }} \"\"\r\n// {{ 203 1 0 \"bbe179b4_5c85_4ece_ba3738d8817cdfc5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLDheight = int_Steps_mm - flt_Z_Coord;\r\n// }} \"\"\r\n// {{ 204 1 0 \"502175ce_b71d_406e_b155fea6f39d0fd0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 205 1 0 \"3bcc328b_1906_4590_94e64b4e80f03d3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"o_flt_LastLiquidLevel: \"), o_flt_LastLiquidLevel);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 151 1 0 \"031805d0_c2b0_4435_9b8f6fbb101dc62d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(dispenseSequence);\r\n// }} \"\"\r\n// {{{ 152 1 0 \"c249d641_ef0f_4423_bc2d48f01c114665\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(dispenseSequence);\r\n// }} \"\"\r\n// {{ 153 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 154 1 0 \"438b3cb3_7f3e_4d38_b993becaf0c2d66b\" \"ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB(\"438b3cb3_7f3e_4d38_b993becaf0c2d66b\"); // Head96Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 155 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 156 1 0 \"714a2035_eb8c_4e86_85aca8d69086952e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 157 1 0 \"bc1347df_5f38_41ae_be3c240228e5944c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 158 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 159 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 160 1 0 \"911c2699_0e84_425f_9e9384c7b6c75351\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 161 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 162 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 163 1 0 \"17abaeba_05ec_4e18_a3843b54b3bdf6f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 164 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 167 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 168 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 169 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 170 1 0 \"c826eb96_3570_4883_a8298bc890043c3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 171 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"Begin\"\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 173 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 174 1 0 \"a8f4b6bb_e103_433a_b1360393d37e32b3\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"a8f4b6bb_e103_433a_b1360393d37e32b3\"); // Head96TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 175 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C33A74C211664afd9B08BCD3DD5339FC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 176 1 0 \"71d45982_a084_4aaa_a34c6558755061d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 177 1 0 \"9e9d44f5_b614_4fb4_b6d39860c83d879d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 178 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"Begin\"\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 123 1 0 \"9967a99d_7b6f_4194_8ba1f49c05de08c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED69C1C4A5D948beA7B65C38D8B5B80A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 124 1 0 \"dc7838fc_172e_45b4_89099f664d6d452e\" \"ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2(\"dc7838fc_172e_45b4_89099f664d6d452e\"); // Initialize\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 125 1 0 \"9967a99d_7b6f_4194_8ba1f49c05de08c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED69C1C4A5D948beA7B65C38D8B5B80A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 126 1 0 \"6bd66132_cab8_473c_8437aa033b84ff48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 127 1 0 \"9967a99d_7b6f_4194_8ba1f49c05de08c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=cuevas_a$$valid=0$$time=2017-04-25 13:44$$checksum=1a243e1c$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx8511.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 341 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 342 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 343 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 344 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 345 1 0 \"27439ab7_df5a_4e1b_99b64e6c9fd0d9f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 348 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 349 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e2da0756_7cea_44e7_963442343f3c0732\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 352 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 353 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 354 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 356 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 357 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 358 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 359 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 360 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 361 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 362 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 363 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 366 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 367 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 368 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 370 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 373 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 375 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 376 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 377 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 378 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 379 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 380 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 381 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 382 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 390 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 392 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 394 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 396 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 397 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 399 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 400 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 401 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 402 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 403 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 404 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 405 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 406 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 407 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 408 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 409 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 418 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 419 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 420 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 421 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 422 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 423 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 424 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 425 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 426 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 427 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 435 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 437 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 438 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 439 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 440 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 441 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 442 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 443 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 446 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 447 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 448 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 449 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 450 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 451 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 452 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 453 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 454 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 455 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 456 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 457 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 458 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 459 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 460 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 461 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 462 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 463 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 466 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 467 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 468 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 469 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 470 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 471 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 473 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 475 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 476 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 477 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 478 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 479 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 480 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 481 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 490 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 491 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 492 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 493 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 494 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 495 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 496 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 497 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 498 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 499 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 500 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 502 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 503 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 506 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 507 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 508 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 509 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 510 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 511 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 512 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 513 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 514 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 518 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 519 1 0 \"e1385a03_1302_4ae1_9faaea69422d67f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 520 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 521 1 0 \"5af0317c_390a_4121_92fc6695bd45edd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 522 1 0 \"8c9a281c_debc_4f33_9bd2cef6eedde57e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"3d50574c_65df_46db_976821037648878c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"642f5973_af08_450b_878d55fa1dc15b1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 525 1 0 \"c1b028b1_70dd_4627_a467661067398a2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 526 1 0 \"f0c6a22f_59e2_41c2_954cb5b06a43aa42\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 527 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 528 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 529 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 530 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 531 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 532 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 533 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 534 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 535 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 536 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 537 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 538 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 539 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 540 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 541 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 542 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 543 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 548 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 549 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 551 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 552 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 553 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 554 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 555 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 556 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 559 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 560 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 561 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 562 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 563 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 564 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 565 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 568 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 569 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 570 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 571 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 572 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 573 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 576 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 577 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 578 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 579 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 580 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 581 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 583 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 585 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 586 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 588 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 589 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 590 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 591 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 592 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 594 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 595 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 598 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 599 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 600 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 602 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 603 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 609 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 610 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 611 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 613 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 614 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 615 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 616 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 617 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 618 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 619 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 620 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 621 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 622 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 633 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 634 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 635 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 637 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 638 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 641 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 649 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 650 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 651 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 652 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 653 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 657 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 659 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 661 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 662 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 663 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 664 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 666 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 670 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 671 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 672 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 673 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 674 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 675 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 679 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 680 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 681 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 682 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 683 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 684 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 685 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 686 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 687 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 690 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 691 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 692 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 693 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 694 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 695 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 696 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 697 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 702 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 703 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 704 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 705 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 706 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 711 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 712 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 713 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 714 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 715 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 716 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 723 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 724 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 725 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 726 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 727 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 734 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 735 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 736 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 737 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 741 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 742 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 743 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 744 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 745 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 746 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 747 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 754 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 755 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 756 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 757 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 758 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 760 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 761 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 763 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 764 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 768 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 769 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 770 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 771 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 772 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 773 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 774 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 775 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 778 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 779 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 782 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 783 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 801 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 802 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 803 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 805 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 806 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 809 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 810 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 811 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 813 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 815 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 816 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 817 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 818 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 819 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 820 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 821 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 830 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 831 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 837 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 838 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 841 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 842 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 846 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 847 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 848 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 849 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 850 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 851 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 852 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 855 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 856 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 857 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 858 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 859 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 860 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 861 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 864 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 865 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 866 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 867 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 868 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 869 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 870 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 871 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 873 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 874 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 875 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 876 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 877 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 880 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 881 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 882 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 885 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 886 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 887 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 888 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 889 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 890 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 891 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 894 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 895 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 896 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 897 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 898 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 899 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 900 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 904 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 905 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 906 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 907 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 908 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 909 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 910 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 911 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 913 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 914 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 915 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 916 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 917 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 918 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 919 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 920 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 922 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 925 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 926 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 927 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 928 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 929 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 930 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 931 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 935 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 936 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 938 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 939 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 944 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 945 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 946 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 947 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 948 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 949 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 950 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 951 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 952 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 953 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 954 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 955 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 956 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 957 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 958 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 959 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 960 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 961 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 962 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 963 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 964 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 965 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 966 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 967 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 968 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 969 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 971 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 972 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 973 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 974 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 975 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 976 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 977 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 978 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 979 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 980 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 981 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 982 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 985 1 0 \"4e026721_fd49_4127_87fda5791fa13eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 986 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 987 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 988 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 989 1 0 \"7066bb37_8c48_474d_8f467cf1f1e06a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 990 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 991 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 993 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 994 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 995 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 996 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 997 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 998 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 999 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1000 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1001 1 0 \"7f473860_0be7_4dc2_87423136869dd829\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1002 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1006 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1007 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1008 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1009 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1010 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1011 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1013 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1014 1 0 \"53df6909_1d0e_4001_ac674452fec957bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1015 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"85d76321_871e_4d0e_bb460b7513742e62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1019 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1020 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1021 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1022 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1024 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 1026 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1027 1 0 \"6ba4b834_521a_46da_9ceb8ced08da95f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1028 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1031 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1032 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1033 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1034 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1036 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1037 1 0 \"20e2b3e5_8664_4809_9bcf626c89196333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1038 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1039 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1040 1 0 \"38e3e61d_a654_46f5_87f53cf7dfc09446\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1041 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1043 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1044 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1045 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1046 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1048 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1049 1 0 \"d92781d1_27c2_48fb_acfd9cb32428e910\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1050 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1051 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1052 1 0 \"19daab0c_59b0_4af8_a070bee39acf20c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1053 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1055 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1056 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1057 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1058 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1060 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1061 1 0 \"df61bf49_7625_493f_ad06bbdbb36b494a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1063 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1064 1 0 \"accda6cd_138b_411c_bf3af9b152e986c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1065 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1067 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1068 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1069 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1070 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1072 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1073 1 0 \"8d513473_33ad_47dc_a8c3ed9799195b58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1075 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1076 1 0 \"ee004b75_f488_428e_99b02212bd478984\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1077 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1079 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1080 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1081 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1082 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1084 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1085 1 0 \"4f9610c2_a783_4586_b1725e8904e476cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"eea3f2ce_93c1_4efd_be90b89d775a6867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1087 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1088 1 0 \"ad6b8668_d455_40f9_9e64eac973c2db0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1089 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"81e3038e_a3ea_4252_a09b14cd3de477a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1091 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1092 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1093 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1094 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1096 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1097 1 0 \"a54c8c75_1172_46d3_a61e71fe7fea812d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1099 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1100 1 0 \"e9f473e4_b341_4e28_8c5c444235409181\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1101 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1102 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1103 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1104 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1105 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1106 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1108 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1109 1 0 \"19a32be3_7476_425d_a82433aead4637cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1112 1 0 \"81e1a27f_16e2_44ed_b7cd3b11ac866a97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1113 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1115 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1116 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1117 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1118 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1122 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1123 1 0 \"84b0a5f3_5e82_4770_81998131d1071a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 1125 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1126 1 0 \"f46c286b_9141_4717_ac23994f8defc186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1127 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1129 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1130 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1131 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1132 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1135 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1136 1 0 \"a9029174_cbad_4f9c_9ca65c3b9497d605\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1137 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 1138 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1139 1 0 \"bb948751_9e18_4aa8_b86a3dd67208967f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1140 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1142 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1143 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1144 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1145 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1149 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1150 1 0 \"d7ecab6c_533b_4d98_97e3fd144551f6d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1152 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1153 1 0 \"96075a25_a9b4_48ec_b53a90612b9d42a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1154 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1156 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1157 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1158 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1159 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1161 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1162 1 0 \"c8de89fe_7a53_4c03_bbe8ba85302b57ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1165 1 0 \"b9ad26f0_da3e_44e9_a29e1fa4b10f92f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1166 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1168 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1169 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1170 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1171 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1174 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1176 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1177 1 0 \"aecc8a3f_302a_4fd4_85780994769765dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1179 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1180 1 0 \"8a17da2c_6b74_4513_a05e482acef68552\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1181 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1183 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1184 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1185 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1186 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1188 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1189 1 0 \"96a3924c_7b8c_441f_b05115a7adf0396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1191 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1192 1 0 \"29acd4b5_13fb_40fe_bc6d971aa6f115a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1193 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1195 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1196 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1197 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1198 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1200 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1201 1 0 \"18981818_de5f_4fd3_b704a074fd37c9d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 1203 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1204 1 0 \"6fa8ea83_c7bd_4b3e_81768063f8126364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1205 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1206 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1207 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1208 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1209 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1210 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1214 1 0 \"84efe41c_f9b0_4304_896c8b308bb07e76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1216 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1217 1 0 \"367927ae_ba00_4d5a_b9d8f5f9b3d208c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1218 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1220 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1221 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1222 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1223 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1226 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1227 1 0 \"7e6d8299_fab6_4435_8adf36d59ca04c7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"5fe75151_d308_441e_a049e85f45ca3966\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n// }} \"\"\r\n// {{ 1229 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1230 1 0 \"64e95a28_a6b6_4e1b_825867f05118aebc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1231 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1233 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1234 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1235 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1236 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1240 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1241 1 0 \"08abdac2_e330_47c9_9b80d99dd0338c3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1244 1 0 \"a26bca7d_b38c_4413_b61d3da3fdfb077b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1245 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1246 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1247 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1248 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1249 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1250 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1252 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1253 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1254 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1255 1 0 \"0e03f515_b847_4dfd_8aa52f8b5f1135cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 1257 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1258 1 0 \"e7b29c37_b63e_40fe_a3663d4eb8c7dc93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1259 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1261 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1262 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1263 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1264 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1265 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1266 1 0 \"7ca275a0_4aed_4b67_9535646b2074ebaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1268 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1269 1 0 \"e87b7e6f_2610_44dd_b7d0262ac681e308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1270 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1271 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1272 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1273 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1274 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1275 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1277 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1278 1 0 \"d02dc65a_05f9_4938_90df6cee1381d4dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"75688e3b_5ed1_45d1_a4d8344ca19c3fd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1280 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1281 1 0 \"b5ede424_b7f1_4369_8610d54e626df620\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1282 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1283 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1284 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1285 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1286 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1287 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1289 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1290 1 0 \"e22c8ca0_6e3f_454b_8628dd4417a6fd78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1293 1 0 \"c8c0c20e_b866_451e_9ecd69fdb0b0ed14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1294 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1295 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1296 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1297 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1298 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1299 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1300 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1301 1 0 \"e2f732a1_e433_4ab6_b3bdac9a4ca5bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1302 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1303 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1304 1 0 \"44edbcbd_1012_457f_848d11750abdfeb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1305 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1307 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1308 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1309 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1310 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1312 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1313 1 0 \"d5b14e5b_7d51_414e_af4dfb664c89e0c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1314 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1315 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1316 1 0 \"d60c31db_3b59_4498_8c47e4d2612443a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1317 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1319 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1320 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1321 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1322 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1323 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1324 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1325 1 0 \"ffa29d3e_8248_4266_80661c264964da5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1327 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1328 1 0 \"8a92c1f7_b614_4c09_b5ada70145cb0a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1329 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1331 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1332 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1333 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1334 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1335 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1336 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1342 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1343 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1344 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1345 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1346 1 0 \"ab84bcc8_3da0_446b_84689087cc7a392f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1347 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1349 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1350 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1351 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1352 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 1353 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1354 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 1356 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1357 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1358 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1359 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1360 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2022-10-28 20:34$$checksum=79280978$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx8511.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1512 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1493 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1496 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1497 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1498 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1499 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1500 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1501 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1502 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1503 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1504 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1505 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1506 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1507 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1508 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1509 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1510 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1459 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 1398 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 1400 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 1402 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1403 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1404 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 1406 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 1407 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 1409 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1410 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1487 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1488 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1489 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1490 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1372 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 1373 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1376 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1377 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 1379 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 1381 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1382 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1383 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 1385 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1386 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1387 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 1389 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1390 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 1391 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 1392 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 1393 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1394 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1395 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1396 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 1362 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 1363 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1364 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1365 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1366 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 1367 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 1368 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 1369 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1370 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 1413 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 1414 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 1416 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 1419 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 1421 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 1422 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1423 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 1428 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 1429 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 1430 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 1431 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 1432 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 1433 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1436 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 1437 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1438 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1439 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1441 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1442 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1444 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1445 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1448 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1449 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1468 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1469 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 1474 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1477 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-10-28 20:34$$checksum=a4132343$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx8511.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx8AF.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_ODTC.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_HiG.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n namespace _Method { #include \"Inheco ODTC\\\\Inheco ODTC.hsl\" } \r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"BioNex HiG\\\\HSLHiGCentrifugeLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable LockID;\r\nvariable SiLAMessage;\r\nvariable SiLAReturnValue;\r\nvariable DeviceIP;\r\nvariable LocalIP;\r\nvariable Message;\r\nvariable DevicePort;\r\nvariable ProtocolFile;\r\nvariable ErrorMessage;\r\nvariable MethodName;\r\nvariable Priority;\r\nvariable Duration;\r\nvariable RequestID;\r\nvariable Time;\r\nvariable ActualTemperatures[];\r\nvariable ActualTemperatureNames[];\r\nvariable str_ActualTemperatureNames;\r\nvariable str_ActualTemperatures;\r\nvariable strDeviceID;\r\nvariable TimeToWait;\r\nvariable PMSID;\r\nvariable PMS_ID;\r\nvariable Current_Time;\r\nvariable Locked;\r\nvariable State;\r\nvariable Result;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable FirmwareVersion;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable DecelPercent;\r\nvariable RotationalGs;\r\nvariable AccelPercent;\r\nvariable TimeSeconds;\r\nvariable o_IsSpinning;\r\nvariable BucketIndex;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_ODTC::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_HIG::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 344 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 345 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 346 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 347 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 348 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 351 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 352 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 353 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 354 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 356 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 357 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 358 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 359 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 360 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 361 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 362 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 365 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 366 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 367 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 368 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 370 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 371 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 374 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 381 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 382 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 390 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 391 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 392 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 393 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 394 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 396 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 397 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 398 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 399 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 402 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 403 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 404 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 405 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 407 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 408 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 409 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 418 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 426 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 427 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 435 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 437 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 438 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 439 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 440 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 441 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 442 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 443 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 446 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 447 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 448 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 450 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 451 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 452 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 455 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 456 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 457 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 459 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 461 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 462 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 463 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 466 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 467 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 468 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 470 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 471 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 481 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 482 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 490 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 491 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 492 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 493 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 494 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 495 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 496 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 497 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 498 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 499 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 501 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 502 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 503 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 504 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 505 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 506 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 507 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 508 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 509 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 511 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 512 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 513 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 515 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 517 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 518 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 519 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 520 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 521 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 522 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 523 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 524 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 526 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 527 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 528 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 529 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 530 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 531 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 532 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 535 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 536 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 537 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 541 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 542 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 548 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 549 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 550 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 551 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 552 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 553 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 554 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 555 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 559 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 560 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 561 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 563 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 564 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 565 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 568 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 569 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 570 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 571 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 572 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 573 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 579 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 580 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 581 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 582 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 583 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 587 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 588 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 589 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 590 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 591 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 592 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 594 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 595 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 596 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 597 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 598 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 599 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 600 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 601 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 602 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 603 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 607 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 608 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 609 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 610 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 611 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 613 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 617 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 618 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 619 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 620 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 621 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 622 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 623 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 631 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 632 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 633 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 634 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 635 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 636 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 637 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 640 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 641 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 642 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 643 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 644 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 649 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 650 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 651 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 653 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 654 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 655 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 656 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 657 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 659 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 661 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 662 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 663 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 664 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 666 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 667 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 670 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 671 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 672 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 673 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 674 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 675 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 682 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 683 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 684 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 685 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 686 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 687 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 693 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 694 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 695 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 696 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 697 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 698 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 702 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 703 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 704 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 705 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 706 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 707 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 708 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 709 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 710 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 713 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 715 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 716 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 721 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 722 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 723 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 724 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 725 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 733 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 734 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 736 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 737 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 743 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 744 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 745 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 746 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 747 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 752 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 753 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 754 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 755 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 756 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 760 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 761 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 762 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 763 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 764 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 766 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 767 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 768 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 771 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 772 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 773 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 774 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 775 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 777 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 778 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 779 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 780 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 782 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 783 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 787 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 788 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 789 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 790 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 791 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 792 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 794 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 797 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 798 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 799 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 800 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 801 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 802 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 803 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 804 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 805 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 807 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 808 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 809 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 810 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 811 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 812 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 813 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 817 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 819 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 820 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 821 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 822 1 0 \"6f58ba5c_3565_4ac3_8325c7d865499fef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 823 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 825 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 827 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 828 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 829 1 0 \"6f58ba5c_3565_4ac3_8325c7d865499fef\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 830 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 831 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 832 1 0 \"9c5d9740_c35c_46a4_bf36695ba9a70bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 833 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 838 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 839 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 840 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 841 1 0 \"9c5d9740_c35c_46a4_bf36695ba9a70bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 842 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 843 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 844 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 845 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 848 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 849 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 850 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 852 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 853 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 857 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 858 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 859 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 860 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 861 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 867 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 868 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 869 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 870 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 871 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 873 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 874 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 875 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 878 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 879 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 880 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 882 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 883 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 886 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 887 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 888 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 891 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 892 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 894 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 895 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 897 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 898 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 899 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 900 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 901 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 906 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 907 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 908 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 909 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 910 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 911 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 912 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 913 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 914 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 917 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 918 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 919 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 920 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 921 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 922 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 923 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 925 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 926 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 927 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 928 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 929 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 930 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 931 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 934 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 935 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 936 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 938 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 939 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 940 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 943 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 944 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 945 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 947 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 948 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 949 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 950 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 951 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 952 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 953 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 956 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 957 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 958 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 959 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 960 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 961 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 962 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 964 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 965 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 966 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 967 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 968 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 969 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 971 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 972 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 973 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 974 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 975 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 976 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 977 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 979 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 980 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 982 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 983 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 985 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 986 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 987 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 988 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 989 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 992 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 993 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 994 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 995 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 996 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 998 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1007 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1008 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1009 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1010 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1020 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1021 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1022 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1023 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1024 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1025 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1028 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1029 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1030 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1031 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1037 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1038 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1039 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1040 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1046 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1048 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1049 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1050 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1051 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1052 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1053 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1058 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1060 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1061 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1067 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1069 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1070 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1071 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1072 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1078 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1079 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1082 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1083 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1084 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1099 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1100 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1101 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1102 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1111 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1112 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1113 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1114 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1115 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1126 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1127 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1128 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1129 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1130 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1131 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1132 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1136 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1137 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1138 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1139 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1142 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1143 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1144 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1145 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1148 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1149 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1150 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1151 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1156 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1157 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1158 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1159 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1160 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1161 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1162 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1163 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1164 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1166 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1168 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1169 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1173 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1174 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1175 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1176 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1177 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1178 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1180 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1181 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1183 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1184 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1185 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1186 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1189 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1190 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1191 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1193 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1195 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1196 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1197 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1198 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1200 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1203 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1204 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1205 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1206 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1207 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1214 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1215 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1216 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1217 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1218 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1221 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1222 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1223 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1224 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1225 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1227 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1228 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1231 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1232 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1233 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1234 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1235 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1236 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1237 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1244 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1246 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1252 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1253 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1255 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1261 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1263 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1264 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1265 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1269 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1271 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1272 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1273 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1274 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1276 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1277 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1282 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1283 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1284 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1285 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1286 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1290 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1292 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1293 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1294 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1296 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1300 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1301 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1302 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1303 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1304 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1305 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1309 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1311 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1312 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1313 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1314 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1315 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1316 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1320 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1321 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1322 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1323 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1324 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1325 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1326 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1329 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1331 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1332 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1333 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1334 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1335 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1336 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1337 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1338 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1342 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1343 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1344 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1350 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1351 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1352 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1353 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1354 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1355 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1357 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1358 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1359 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1360 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1361 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1362 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1363 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1365 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1366 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1367 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1368 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1369 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1370 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1373 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1374 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1375 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1376 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1377 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1380 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1381 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1382 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1383 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1384 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1385 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1387 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1388 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1389 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1391 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1393 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1394 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1395 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1396 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1397 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1402 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1403 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1404 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1405 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1410 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1411 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1412 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1413 1 0 \"f0819b26_37c8_4272_adc20885b67d19f4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1414 1 0 \"8c699a2a_ba36_47e1_8e1d4d9f79fb66ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1415 1 0 \"78b97522_ee07_4e83_9e8981b99bffae43\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_Connect\")\r\n{\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"3e403126_5865_459f_aab3d343bb797ce3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1417 1 0 \"e3e01fa7_2e75_44a7_993a16db598d726e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"d364c0e5_cd5f_4136_bd9976320c553bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"915e037a_7cf0_4dc9_8aabadf1e1b7e01e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_Connect(DeviceID, AdapterDeviceID, SimulationMode, FirmwareVersion, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1420 1 0 \"ea008c2c_78ca_4d16_9513e73ad591f12d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Connect\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"41236718_c4e4_4d62_96dd8a64a35ab570\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFirmwareVersion = StrIStr(FirmwareVersion);\r\n// }} \"\"\r\n// {{{ 1422 1 0 \"023e32ef_f355_4ea3_a54b74177c5d5ff1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, FirmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1423 1 0 \"78b97522_ee07_4e83_9e8981b99bffae43\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1424 1 0 \"8c699a2a_ba36_47e1_8e1d4d9f79fb66ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1425 1 0 \"4ab7db7f_8ef6_4de5_bf8b599232079927\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1426 1 0 \"631770f3_791e_4420_b1f28c26a241c509\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_Home\")\r\n{\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"cc4c5bd9_e71c_4562_b79dcdfc4938fddd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_Home(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"13cb46df_3e3c_423c_a30e28d838b1bc45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"0b7bcade_cd23_4459_acd333edd059ca5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1430 1 0 \"631770f3_791e_4420_b1f28c26a241c509\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1431 1 0 \"4ab7db7f_8ef6_4de5_bf8b599232079927\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1432 1 0 \"28ac0329_5bd7_47eb_94ee71e581914162\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1433 1 0 \"bf0548b0_d891_44c0_a0607d6384b0a8f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_Spin\")\r\n{\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"99683715_25ed_4e99_bf295bc7bf50b4f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"RotationalGs\"), RotationalGs);\r\n// }} \"\"\r\n// {{{ 1435 1 0 \"73b09b0a_e71e_4e5b_b05d9161de6fa7a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"AccelPercent\"), AccelPercent);\r\n// }} \"\"\r\n// {{{ 1436 1 0 \"7bb08d70_f1f7_4ccf_ae575ed4b8001c84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"DecelPercent\"), DecelPercent);\r\n// }} \"\"\r\n// {{{ 1437 1 0 \"d439b2ef_580c_4d7f_b416b8fe957cf40c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TimeSeconds\"), TimeSeconds);\r\n// }} \"\"\r\n// {{{ 1438 1 0 \"350b3060_9b0f_40b6_ad5324c9b95b78b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_Spin(RotationalGs, AccelPercent, DecelPercent, TimeSeconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"b065d73d_f243_4e85_b3f7333212683c63\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HiG Spin\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"a41526e6_62d0_48a2_95ecacb38143977f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1441 1 0 \"bf0548b0_d891_44c0_a0607d6384b0a8f5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1442 1 0 \"28ac0329_5bd7_47eb_94ee71e581914162\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1443 1 0 \"12ffb344_17df_42a8_82c61f501eea6183\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1444 1 0 \"707f3f2d_315f_4979_8c97d591a00e69e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_SpinAndWait\")\r\n{\r\n// }} \"\"\r\n// {{{ 1445 1 0 \"1d0d0f97_f341_4884_80db566bcfd7858c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"RotationalGs\"), RotationalGs);\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"31d4b2d6_0c4b_47a0_b5d3e911f1623f77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"AccelPercent\"), AccelPercent);\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"a0b13822_a19e_44c9_810b5fd1451e9fb7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"DecelPercent\"), DecelPercent);\r\n// }} \"\"\r\n// {{{ 1448 1 0 \"60c4cce6_eed0_40b3_9e44920049afeefb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TimeSeconds\"), TimeSeconds);\r\n// }} \"\"\r\n// {{{ 1449 1 0 \"79e53eba_cc35_4c57_8f89fed0bf79d490\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_SpinAndWait(RotationalGs, AccelPercent, DecelPercent, TimeSeconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1450 1 0 \"05134711_3b04_4455_97df6854f01341e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HiG Spin\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1451 1 0 \"3dcc89d7_2b78_4171_a1527a0036c22458\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1452 1 0 \"707f3f2d_315f_4979_8c97d591a00e69e0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1453 1 0 \"12ffb344_17df_42a8_82c61f501eea6183\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1454 1 0 \"c102d90f_756f_4d36_a670ba82a0963574\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1455 1 0 \"5c039766_70fd_4d04_80bea03cbdb4ff79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_IsSpinning\")\r\n{\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"89ad86ff_b44b_440a_8b31c9349b96d3a0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_IsSpinning(o_IsSpinning, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"767fe65d_bf27_4ce5_9d14bcb205b640c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HiG Is Spinning\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"5f7be8cd_4689_422b_81136fa12317cd7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_IsSpinning, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1459 1 0 \"5c039766_70fd_4d04_80bea03cbdb4ff79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1460 1 0 \"c102d90f_756f_4d36_a670ba82a0963574\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1461 1 0 \"1ee8f7eb_651b_4d25_bbb01a8fb30bda66\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1462 1 0 \"186e906e_fe94_45f0_91cbdafff04a9add\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_OpenShield\")\r\n{\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"90fabacb_7e94_43bb_b59554850290d94e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BucketIndex\"), BucketIndex);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"0d4de14d_3cd2_4ec4_875cec5d9c100fb7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_OpenShield(BucketIndex, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"36c5807c_4131_4526_954592c7a24b0fa7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"258cfa1c_d897_4535_994ede97c1cee6f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1467 1 0 \"186e906e_fe94_45f0_91cbdafff04a9add\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1468 1 0 \"1ee8f7eb_651b_4d25_bbb01a8fb30bda66\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1469 1 0 \"720371aa_0fca_4ae1_bc8cca868144f53f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1470 1 0 \"dd5980c5_b402_492a_ad521b3420295da4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_CloseShield\")\r\n{\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"055aa059_fd6f_4eef_a30269944435bbbc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_CloseShield(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"ec8faa0c_716d_4438_9b100d86a0b9f489\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"d452c591_f839_407d_ab5ad04db2f24328\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1474 1 0 \"dd5980c5_b402_492a_ad521b3420295da4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1475 1 0 \"720371aa_0fca_4ae1_bc8cca868144f53f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1476 1 0 \"a4c38e06_7dc4_4775_aa674b47a5f1af2f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1477 1 0 \"fda42252_f993_47a9_b115a1751631b7f0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_AbortSpin\")\r\n{\r\n// }} \"\"\r\n// {{{ 1478 1 0 \"94576ab0_00f4_479f_a998811e46f2915e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_AbortSpin(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1479 1 0 \"bbafbbc0_a169_4562_ad505d1a87d4ee1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HiG Abort Spin\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1480 1 0 \"7c2186bd_57f6_4a6e_a0a2cf488638d194\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1481 1 0 \"fda42252_f993_47a9_b115a1751631b7f0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1482 1 0 \"a4c38e06_7dc4_4775_aa674b47a5f1af2f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1483 1 0 \"18c6de65_4a43_4900_a79ba178892285aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1484 1 0 \"d280ff99_6bcc_4502_ba411a65ad53ab3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HiG_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"fc624540_25c3_4319_ac445438961694c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_HIG::HiG_Disconnect(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"8e6519d9_6723_4a7b_98e28fdee690cb5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HiG Disconnect\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"bb7de73b_989f_4ada_8891ac45593b4599\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1488 1 0 \"d280ff99_6bcc_4502_ba411a65ad53ab3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1489 1 0 \"18c6de65_4a43_4900_a79ba178892285aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1490 1 0 \"f0819b26_37c8_4272_adc20885b67d19f4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1491 1 0 \"c254f141_56e5_4dd6_867413cd84657042\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1492 1 0 \"a5a0a6fa_f020_4f0c_892b14922a8a43d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1493 1 0 \"87bcb443_ba4e_4831_b6d85d5676ceae1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Abort\")\r\n{\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"32d200eb_0ae6_409a_a27f1bd9e350adc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1495 1 0 \"60937dfd_fa84_49e4_a6330092ff42006c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1496 1 0 \"83aa31af_13e9_48fa_86a3688beb3a1be8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Abort(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1497 1 0 \"7094499b_8677_4e4c_acf20a22a53d4c8e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Abort\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1498 1 0 \"37a6eb15_6c8d_473f_b9dffab95f789ac5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 1499 1 0 \"ed56f986_bb0e_4e3d_b4d7300a7eeb0b58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"e98e447d_05f0_430c_afd0ba887aca6b76\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1501 1 0 \"87bcb443_ba4e_4831_b6d85d5676ceae1f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1502 1 0 \"a5a0a6fa_f020_4f0c_892b14922a8a43d0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1503 1 0 \"ced572f9_f877_4613_993ac898da106542\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1504 1 0 \"03a935ee_2760_4356_bd8073e8de6b173b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_CloseDoor\")\r\n{\r\n// }} \"\"\r\n// {{{ 1505 1 0 \"6a66458b_03aa_4556_a7119c29debe4db5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"8835ccf5_7cde_492a_9d03a87f66212529\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"52be61c1_07d8_46d7_971799c333aa010a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::CloseDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"6051ed5f_5327_408e_ab4e4006ce62d8ba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Close Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1509 1 0 \"e77e745c_0fd9_4817_9c991dc6c147e97c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1510 1 0 \"6a920b48_4355_48b6_9fee746e310180ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1511 1 0 \"f607e257_0faa_41ba_953a4eff67bb8a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1512 1 0 \"03a935ee_2760_4356_bd8073e8de6b173b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1513 1 0 \"ced572f9_f877_4613_993ac898da106542\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1514 1 0 \"5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1515 1 0 \"83d25d49_d146_4249_9f0335e6f838ddb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Connect\")\r\n{\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"ea96e218_a676_4c43_8187dccb61fdcfad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LocalIP\"), LocalIP);\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"9f39afff_baf8_4c02_90919e91b050d9b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceIP\"), DeviceIP);\r\n// }} \"\"\r\n// {{{ 1518 1 0 \"ac76b36c_ea11_4135_b099c4da1dd83d48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DevicePort\"), DevicePort);\r\n// }} \"\"\r\n// {{{ 1519 1 0 \"217e9a1b_a533_42fd_909df59d5d25c92a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1520 1 0 \"47c48ac4_65f4_4ac5_9c5d4ff87e80792d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Connect(LocalIP, DeviceIP, DevicePort, SimulationMode, DeviceID, Message, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1521 1 0 \"44b7be8c_cda6_44d7_9a3512b3014b5aaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Connect\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1522 1 0 \"988ae1b5_28c3_4982_a500bf7ceebf13f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Connect\"), Message);\r\n// }} \"\"\r\n// {{{ 1523 1 0 \"4806a116_031e_444f_bcf99da98fc2aa03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 1524 1 0 \"ecb51768_e47b_48e1_a68b612754c89d2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"1045876f_9227_42d4_8f284b4615f7bd52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Message, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1526 1 0 \"83d25d49_d146_4249_9f0335e6f838ddb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1527 1 0 \"5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1528 1 0 \"170cad08_e039_423f_89bd02bf1417c189\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1529 1 0 \"f37a1dca_bc87_4a1a_b736b41bf3acacbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_DownloadProtocol\")\r\n{\r\n// }} \"\"\r\n// {{{ 1530 1 0 \"40cbc2ca_86a5_4676_8bcc39a2f6f075f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1531 1 0 \"ca78a1d6_10a8_4411_8b063849d86a765f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1532 1 0 \"2a2898df_3962_48ea_872e3cb37c538f1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProtocolFile\"), ProtocolFile);\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"61926133_1a9a_4ae7_919d1c60533131c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::DownloadProtocol(DeviceID, LockID, ProtocolFile, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"63ab11b5_28c5_4f1d_a7a32d8e3ec48cb1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Download Protocol\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1535 1 0 \"8ec284ea_82fb_4835_a7371e261781305c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1536 1 0 \"fd4faeae_7ccf_4aa6_a8abbca7275971c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"8656e596_fb43_4c25_81f91e4348204c13\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1538 1 0 \"f37a1dca_bc87_4a1a_b736b41bf3acacbb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1539 1 0 \"170cad08_e039_423f_89bd02bf1417c189\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1540 1 0 \"95be4335_330f_498d_9cbb97fc242dae19\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1541 1 0 \"f8b53e0a_3303_4063_8c4b05c22b482521\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_EvaluateError\")\r\n{\r\n// }} \"\"\r\n// {{{ 1542 1 0 \"e360752c_31f7_4bfc_85305c84dc5f7546\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ErrorCode\"), ErrorCode);\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"0b3b8a56_af82_4264_b0c16517d839ebe4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::EvaluateError(ErrorCode, ErrorMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"639398d5_46e9_473e_b535a1b1e05aaf2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Evaluate Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"53eec77c_8020_45cb_a87b12aa6861c3ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"7e52272f_d6bd_42c0_aaec9e3104211d0b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ErrorMessage, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1547 1 0 \"f8b53e0a_3303_4063_8c4b05c22b482521\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1548 1 0 \"95be4335_330f_498d_9cbb97fc242dae19\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1549 1 0 \"7df278e6_a78b_42de_82fff06047d78c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1550 1 0 \"7072fce7_707a_4f05_873c2b04e45efaa5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_ExecuteMethod\")\r\n{\r\n// }} \"\"\r\n// {{{ 1551 1 0 \"8747e547_373a_456a_b7c45f3fe0fa4962\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1552 1 0 \"6ed86f44_9a40_4aec_a24da2c3e14c5cfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1553 1 0 \"c95214ca_8dc7_4e36_b861cd3cb7e88fce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MethodName\"), MethodName);\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"6354dcdf_bc96_4f43_8e24d16a07ef73a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Priority\"), Priority);\r\n// }} \"\"\r\n// {{{ 1555 1 0 \"f9e2fc96_8719_4db6_961a737c70234591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::ExecuteMethod(DeviceID, LockID, MethodName, Priority, Duration, RequestID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1556 1 0 \"8eedb12b_8149_4adb_b4a36b25cb56997c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Download Protocol\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1557 1 0 \"2f5e22f5_6e53_4423_b3c5dcff878744ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRequestID = StrIStr(RequestID);\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"af3ce5c4_f396_4686_af8c35c3b1896cbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDuration = StrIStr(Duration);\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"56cb4cd9_4ad1_4fe3_938eb0863af7c9cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"42f6ed5e_78f5_47a7_80c65ef13fa2e465\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"27d4d016_fe70_40d9_af54cd49911a2e7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, Duration, RequestID, id);\r\n// }} \"\"\r\n// {{ 1562 1 0 \"7072fce7_707a_4f05_873c2b04e45efaa5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1563 1 0 \"7df278e6_a78b_42de_82fff06047d78c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1564 1 0 \"fe8ceaf6_1a4c_4c99_810b07e636105fa8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1565 1 0 \"f8f85888_8577_4a10_b97ab15879e1b18f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_OpenDoor\")\r\n{\r\n// }} \"\"\r\n// {{{ 1566 1 0 \"3f5cc39f_b933_4665_a725e5d720270a1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1567 1 0 \"32818a09_3083_4b68_be177e73ea51bf2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"ca47ad1d_7179_4e19_86fd05211f0416ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::OpenDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"721b0fe9_6b70_412e_b6184c3698366299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"b0647e1f_7f95_4f56_832807c0437add1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1571 1 0 \"071ab0f7_cca9_424c_a4c8b816b1e1a01d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1572 1 0 \"8d79ee78_725d_4b1c_8da948ede755b62e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1573 1 0 \"f8f85888_8577_4a10_b97ab15879e1b18f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1574 1 0 \"fe8ceaf6_1a4c_4c99_810b07e636105fa8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1575 1 0 \"3c16909b_f92f_4869_be09f5ef2fb55e11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1576 1 0 \"3c157612_f55a_40ee_b823fe12e24332f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1577 1 0 \"a152ec6a_17c0_4ab7_9d87710d8577b2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"1a35d7ba_f083_47be_92136e57f9ed3912\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1579 1 0 \"3e352ec2_6234_4391_90eb2accc24b087c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Initialize(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1580 1 0 \"42735754_1a4d_4010_a30f4c85204e159a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1581 1 0 \"5f865b77_d620_4d27_b1b98c39e384ad41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1582 1 0 \"67cb5e45_ee7c_4838_b49f2f3f1f1757c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"a9ef6ddb_28b3_420e_a501b6911c3a2769\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1584 1 0 \"3c157612_f55a_40ee_b823fe12e24332f4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1585 1 0 \"3c16909b_f92f_4869_be09f5ef2fb55e11\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1586 1 0 \"2918af2a_a130_45ea_b188aa281e864ea8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1587 1 0 \"bf6ddca4_4a60_4455_8397f87f4d24b725\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_ReadActualTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1588 1 0 \"e6bea63f_c17b_410d_9822608c8267f985\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1589 1 0 \"edacec9c_28b9_474f_b1558fa726ec2132\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"7fd71047_b3fb_46f5_b5c9f44caec9dd8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::ReadActualTemperature(DeviceID, LockID, SiLAReturnValue, SiLAMessage, ActualTemperatures, ActualTemperatureNames, Time, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1591 1 0 \"2c27785b_ea35_4934_b654a42db98c118e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Read Temperature\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"4875b702_70e3_4f15_a162e186bb3e9c6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1593 1 0 \"2d1e6390_eb2e_42e2_848902a0a274a03f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(ActualTemperatures, str_ActualTemperatures);\r\n// }} \"\"\r\n// {{{ 1594 1 0 \"120c6294_947e_4b65_b7dd22db08edad17\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(ActualTemperatureNames, str_ActualTemperatureNames);\r\n// }} \"\"\r\n// {{{ 1595 1 0 \"7ba7e642_228e_4c42_91a540016b1ecb80\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1596 1 0 \"89ab9aa6_c667_4fb4_9331cfc5de16392a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, str_ActualTemperatures, str_ActualTemperatureNames, SiLAReturnValue, id);\r\n// }} \"\"\r\n// {{ 1597 1 0 \"bf6ddca4_4a60_4455_8397f87f4d24b725\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1598 1 0 \"2918af2a_a130_45ea_b188aa281e864ea8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1599 1 0 \"32f8d0ae_5127_4186_8dbecc8f7061190f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1600 1 0 \"25b084db_1bed_428b_81ed9dbd2e6b4b60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Reset\")\r\n{\r\n// }} \"\"\r\n// {{{ 1601 1 0 \"54770d0a_c4d8_4bf5_923ea37b0a7bb99a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1602 1 0 \"055ec305_2f32_4ed5_931e842d3f3dc35b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1603 1 0 \"c8ec64df_4c79_4d3c_a7ebf0843fb669dd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TimeToWait\"), TimeToWait);\r\n// }} \"\"\r\n// {{{ 1604 1 0 \"7de11167_b4a1_4c1d_b459187603f47406\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LockID\"), LockID);\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"c5acc94b_7623_41cc_8be567f94d4ef391\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"strDeviceID\"), strDeviceID);\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"270c90b6_e23e_41ab_89787ba6b70e15e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"PMSID\"), PMSID);\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"ce22a8c7_2622_4d15_a255b99991b3a19f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Reset(DeviceID, LockID, SiLAReturnValue, SiLAMessage, SimulationMode, TimeToWait, strDeviceID, PMSID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1608 1 0 \"5f5f4ac1_af5a_4f5a_83d0452099476350\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Reset\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1609 1 0 \"91142402_f680_4164_b2867f68a77f19f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSiLAReturnValue = StrIStr(SiLAReturnValue);\r\n// }} \"\"\r\n// {{{ 1610 1 0 \"65a340a5_cfe4_49e4_ae15c8fa6f9ca3a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMessage = StrIStr(Message);\r\n// }} \"\"\r\n// {{{ 1611 1 0 \"85ff8a84_cc36_4e57_ace1facda0037584\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1612 1 0 \"7f85d4fa_6d5f_4c6c_9c6a0c94995fdfa4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1613 1 0 \"25b084db_1bed_428b_81ed9dbd2e6b4b60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1614 1 0 \"32f8d0ae_5127_4186_8dbecc8f7061190f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1615 1 0 \"51f7ba64_eb3d_4919_840a54f9d890fae8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1616 1 0 \"9eceba50_29ae_4c59_a6858f927aa63220\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1617 1 0 \"17e9eb5a_0890_4852_aa7203ed60c2e6fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"af491f4d_08dd_4266_988323b19ab4ae21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::GetStatus(DeviceID, strDeviceID, State, Locked, PMS_ID, Current_Time, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"eb379091_0ce2_4b58_b2de3803b8b7e4a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"f1d81878_8b71_4ddb_bd170dbc47b258ab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), strDeviceID);\r\n// }} \"\"\r\n// {{{ 1621 1 0 \"1ed775c8_e152_473f_afb053901f12f27e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), Current_Time);\r\n// }} \"\"\r\n// {{{ 1622 1 0 \"b6854df9_0048_4379_a45d9c10b1a2e081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1623 1 0 \"7af5f5b4_66aa_4f36_9a95228efbc14b6c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1624 1 0 \"a387c327_bc68_4b7e_b755032527737c0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1625 1 0 \"316cbd48_dd20_4cbb_83337a0d9debd8a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"b8697a57_1081_4c31_a98e091e392113f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"12f1a9d8_74ca_410c_9253620d011e9bf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, strDeviceID, State, Locked, PMS_ID, Current_Time, SiLAReturnValue, SiLAMessage, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1628 1 0 \"9eceba50_29ae_4c59_a6858f927aa63220\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1629 1 0 \"51f7ba64_eb3d_4919_840a54f9d890fae8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1630 1 0 \"45adfa7a_43f6_4879_94eecbbc7cd6241e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1631 1 0 \"c7a1be4c_8922_45fe_a8d03b329ad39a3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1632 1 0 \"5679fc2a_b149_4156_afe65b4260835f63\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1633 1 0 \"492d5009_7311_49b9_88d37e5272f71a3a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::Terminate(DeviceID, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"cde37514_c4cf_4ee2_94144ec6f2d8a602\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"7437d0c9_d030_4bc3_9892e6e67143d3a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"56d42bd9_d271_4178_b988201f9be09dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1637 1 0 \"c7a1be4c_8922_45fe_a8d03b329ad39a3d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1638 1 0 \"45adfa7a_43f6_4879_94eecbbc7cd6241e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1639 1 0 \"b0f57e64_345a_446f_b484b3f98342b5b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1640 1 0 \"d2d87d10_3538_4cfe_b99e9ea2160e3e76\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"ODTC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1641 1 0 \"b69581df_cb8d_4fe3_b91fbd7c6912cd84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 1642 1 0 \"6ae4f976_589c_4784_b354c7814e6dcde1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_ODTC::GetLastData(DeviceID, LockID, Result, SiLAReturnValue, SiLAMessage, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"8be17100_32fe_4ad7_9002b94bcf924f42\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"ODTC Open Door\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"69fe485b_5659_4f59_b5fdb0f4567a92a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"b8d08077_08c9_4f6d_bcc7f858d26788e4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1646 1 0 \"d2d87d10_3538_4cfe_b99e9ea2160e3e76\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1647 1 0 \"b0f57e64_345a_446f_b484b3f98342b5b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1648 1 0 \"c254f141_56e5_4dd6_867413cd84657042\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1649 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1650 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1652 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1653 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1654 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1655 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1656 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1660 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1661 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1662 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1663 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1664 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1665 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1666 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1667 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1669 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1670 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1671 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1672 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1673 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1674 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1675 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1676 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1677 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1678 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1679 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1680 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1681 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1682 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1683 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1684 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1685 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1686 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1687 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1688 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1689 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1690 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1691 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1692 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1693 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1694 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1696 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1697 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1698 1 0 \"1823653c_5e02_428a_badd7ca34d3aabf1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1699 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1700 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1701 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1702 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1705 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1706 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1707 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1708 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1709 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1710 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1711 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 1712 1 0 \"9d9a3dcb_ddc9_47c5_a860665377ee3e86\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1713 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1714 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1715 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1716 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1717 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1718 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1719 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1720 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1721 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1722 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1723 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1724 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1725 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1726 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1727 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1728 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1729 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1730 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1731 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1732 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1733 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1734 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1735 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1736 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1737 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1738 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1739 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1740 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1741 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1742 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1743 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1744 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1745 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1746 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1747 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1748 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1749 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1750 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1751 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1752 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1753 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1754 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1755 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1756 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1757 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1758 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1759 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1760 1 0 \"949c257a_0d44_4a50_bb10d9b59e6a02c2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1761 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1762 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1763 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1764 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1765 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1766 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1767 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1768 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1769 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1770 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1771 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1772 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1773 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1774 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1775 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1776 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1778 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1779 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1780 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1781 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1782 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1783 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1784 1 0 \"0bd6e3be_da2c_4500_973c9d6eae8e7ae6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1785 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1786 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1787 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1788 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1789 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1790 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1791 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1792 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1793 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1794 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1795 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1796 1 0 \"5b647db8_f1d6_4deb_9b859eb1dfda063d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1797 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1798 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1799 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1800 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1801 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1802 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1803 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1804 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1805 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1806 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1807 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1808 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1809 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1810 1 0 \"ad365bf1_c5e9_4c85_b1b623b20be98474\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1811 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 1812 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1813 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1814 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1815 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1816 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1817 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1818 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1819 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1820 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1821 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1822 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1823 1 0 \"f307f49e_48c2_428e_80c1d57693f85156\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1824 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 1825 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1826 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1827 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1828 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1829 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1830 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1831 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1832 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1833 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1834 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1835 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1836 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1837 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1838 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1839 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1840 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1841 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1842 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1843 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1844 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1845 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1846 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1847 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1848 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1849 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1850 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1851 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1852 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1853 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1854 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1855 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1856 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1857 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1858 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1859 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1860 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1861 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1862 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1863 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1864 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1865 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1866 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1867 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1868 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1869 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1870 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1871 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1872 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1873 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1874 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1875 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1876 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1877 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1878 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1879 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1880 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1881 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1882 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1883 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1884 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1885 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1886 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1887 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1888 1 0 \"dab3ac84_179e_4fd8_9b00ad14f3ef613e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1889 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 1890 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1891 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1892 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1893 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1894 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1895 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1896 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1897 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1898 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1899 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1900 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1901 1 0 \"523b190e_f70f_4a28_b16582e7161b390a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1902 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1903 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1904 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1905 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1906 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1907 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1908 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1909 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1910 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1911 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1912 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1913 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1914 1 0 \"e043b61a_b8c5_46d4_9bf331f7566a8911\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1915 1 0 \"a302e74e_d752_4ae6_b492a17f601bef41\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{ 1916 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1917 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1918 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1919 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1920 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1921 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1922 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1923 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1924 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1925 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1926 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1927 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1928 1 0 \"10af5b65_9ddd_4a4b_b040d8f5b6e642cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1929 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1930 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1931 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1932 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1933 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1934 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1935 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1936 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1937 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1938 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1939 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1940 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1941 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1942 1 0 \"497404d1_5fea_46f0_9598d8e1c1cb11ed\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1943 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 1944 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1945 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1946 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1947 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1948 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1949 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1950 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1951 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1952 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1953 1 0 \"d8b2a327_d63a_46f2_8c273b2eedb8cb34\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1954 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1955 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1956 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1957 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1958 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1959 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1960 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1961 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1962 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1963 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1964 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1965 1 0 \"9d792f4f_4c49_4998_b21fd7f7d6a58fce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1966 1 0 \"b811fcbc_7d95_47c6_9c33e18415810e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1967 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1968 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1969 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1970 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1971 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1972 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1973 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1974 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1975 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1976 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1977 1 0 \"384c69b8_0ce8_4a27_af0a4060e6f1a01d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1978 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1979 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1980 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1981 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1982 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1983 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1984 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1985 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1986 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1987 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1988 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1989 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1990 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1991 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1992 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1993 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1994 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1995 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1996 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1997 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1998 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1999 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2000 1 0 \"6c68258f_f870_4c46_b358dc4391ced463\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2001 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 2002 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2003 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2004 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2005 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2006 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2007 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2008 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2009 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2010 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2011 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2012 1 0 \"f5db2a6b_8286_4195_844af45f48c61d3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2013 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 2014 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2015 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2016 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2017 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2018 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2019 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2020 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2021 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2022 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2023 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 2024 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 2025 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 2026 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 2027 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 2029 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2030 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2031 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 2032 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2033 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 2034 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2035 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 2036 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2037 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2038 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2039 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2040 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2041 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2042 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2043 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2044 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2045 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2046 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2047 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2048 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_ODTC::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_HIG::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2023-02-12 22:27$$checksum=4194333a$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx8AF.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2208 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2169 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2170 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2171 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2172 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2173 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2189 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2190 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2191 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2192 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2193 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2194 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2195 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2196 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2197 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2198 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2199 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2200 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2201 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2202 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2203 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2204 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2205 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2206 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2139 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2141 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2142 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2143 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2144 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2145 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2146 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2147 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2148 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2149 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2086 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2087 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2088 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2089 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2090 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2091 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2092 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2093 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2094 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2095 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2096 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2097 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2098 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2183 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2184 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2185 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2186 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2060 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2061 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2062 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2063 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2064 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2065 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2066 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2067 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2069 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2070 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2071 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2072 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2073 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2074 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2075 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2076 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2077 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2078 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2079 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2080 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2081 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2082 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2083 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2084 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2050 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2051 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2052 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2053 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2054 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2055 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2056 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2057 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2058 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2101 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2102 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2104 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2105 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2107 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2109 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2110 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2111 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2113 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2114 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2115 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2116 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2117 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2118 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2119 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2120 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2121 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2122 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2123 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2124 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2125 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2126 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2127 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2129 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2130 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2131 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2132 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2133 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2134 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2135 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2136 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2137 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2151 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2153 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2154 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2155 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2156 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2157 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2159 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2160 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2161 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2162 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2164 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2165 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2166 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2175 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2176 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2177 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2178 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2179 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2180 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2181 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2023-02-12 22:27$$checksum=4fbd94da$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~Hx8AF.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxAB5D.hsl",
    "content": "global device ML_STAR (\"test1.lay\", \"ML_STAR\", hslTrue);\r\n#include \"~ReAB0E.res\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nglobal device ml_star (\"test1.lay\", \"ml_star\", hslTrue);\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLPTLLib.hsl\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{ 1 1 0 \"857f3247_23ca_470f_a617bd1c365236ac\" \"{930D6C31-8EFB-11d4-A3BA-002035848439}\"\r\nabort;\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n// $$author=user$$valid=0$$time=2018-04-30 21:22$$checksum=a111acd9$$length=083$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxAB5D.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=user$$valid=0$$time=2017-11-07 13:27$$checksum=68125ac7$$length=083$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxB3C9.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\nglobal device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable fanSpeed;\r\nvariable persistant;\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 73 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 74 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 75 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 79 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 80 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 81 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 82 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 83 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 86 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 87 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 88 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 89 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 90 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 91 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 92 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 96 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 97 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 98 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 99 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 100 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 111 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 112 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 113 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 115 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 116 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 117 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 118 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 124 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 125 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 126 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 127 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 128 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 129 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 132 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 133 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 134 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 135 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 136 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 138 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 139 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 140 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 141 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 142 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 143 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 144 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 145 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 147 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 148 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 149 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 150 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 151 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 152 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 155 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 156 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 157 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 159 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 160 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 161 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 162 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 163 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 164 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 165 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 166 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 169 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 170 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 171 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 174 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 177 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 178 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 179 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 183 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 184 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 185 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 186 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 187 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 189 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 190 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 191 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 192 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 200 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 201 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 203 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 204 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 205 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 206 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 207 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 216 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 217 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 218 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 219 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 220 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 221 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 222 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 223 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 225 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 226 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 227 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 228 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 236 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 237 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 239 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 240 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 242 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 244 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 245 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 246 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 248 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 249 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 250 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 251 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 252 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 253 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 254 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 255 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 256 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 258 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 259 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 260 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 261 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 262 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 265 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 266 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 267 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 268 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 269 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 270 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 271 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 272 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 273 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 274 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 275 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 276 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 277 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 278 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 279 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 280 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 281 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 282 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 283 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 286 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 287 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 288 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 289 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 294 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 295 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 296 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 298 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 299 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 301 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 302 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 303 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 304 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 305 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 306 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 307 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 308 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 309 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 310 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 311 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 312 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 313 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 314 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 315 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 316 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 317 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 319 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 320 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 321 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 322 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 323 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 324 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 325 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 326 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 327 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"27439ab7_df5a_4e1b_99b64e6c9fd0d9f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 330 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 331 1 0 \"e2da0756_7cea_44e7_963442343f3c0732\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 332 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 333 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 335 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 336 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 337 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 338 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 339 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 340 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 341 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 344 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 345 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 348 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 349 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 351 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 352 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 353 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 354 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 355 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 356 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 357 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 358 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 359 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 360 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 361 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 362 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 363 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 364 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 365 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 366 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 367 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 368 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 370 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 372 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 373 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 375 1 0 \"e411727d_3702_4640_8cb2d7ab8b58a300\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 376 1 0 \"ed119e90_c1cf_47e9_882c9179c7675524\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 377 1 0 \"006e4737_2b28_4b29_88cabf15c00d0b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 378 1 0 \"7424658f_9b27_4ef0_96837fa8add4c1ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 379 1 0 \"18dba370_9751_4c10_938c0dcc1f09476a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"ba1314c5_bdbb_4947_b8ee11ecc5c9306e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"2de0b12d_07d0_4e02_aeb0adc84a286d4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 382 1 0 \"62251128_9c16_4b76_a74221e3e5485ec4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 383 1 0 \"991ef31e_cf56_46cb_a1b5023d16177201\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 384 1 0 \"a7e77649_9eb2_4bbe_8d4df91d28ca2833\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 385 1 0 \"bce9279a_be9d_4a51_b382d782fe953b4f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 386 1 0 \"cae1eeb4_415a_4ca2_9cbdc8fbd7bcb5ca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 387 1 0 \"47122b9f_c6d0_4a2d_aab3313da595b6db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 388 1 0 \"b3579536_edb4_4221_babfa43071cf483f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 389 1 0 \"4a408dec_c225_49ad_bf9a34fc001001a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 390 1 0 \"254c5a0f_44da_4098_b535a89623fde4e9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"ce8d1267_fa97_4dc5_a35fdb48eed4af6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 392 1 0 \"267e45b6_811f_46eb_a5cf5dcb26fa4ab0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"40e3aef8_bb0d_49d2_be4badbbed382613\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 394 1 0 \"83550ea0_852b_4084_b34f7fcfd03b6bdf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 395 1 0 \"48212cee_a3fa_4708_951f45d7135865bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 396 1 0 \"7424658f_9b27_4ef0_96837fa8add4c1ac\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 397 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 398 1 0 \"fbc3301f_ce0a_48d5_ad28d0de566e8968\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 399 1 0 \"a6a66731_2fea_4358_8cc6545cbb29217a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 400 1 0 \"ff2e3d36_c066_4d66_b6acbb2d01d07322\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 401 1 0 \"a6a66731_2fea_4358_8cc6545cbb29217a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 402 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 403 1 0 \"40ff9454_596f_42b1_a566d8ee6f7e392c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 404 1 0 \"75be1853_53c2_40d4_968a231c3ec4efae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 405 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 406 1 0 \"905809a6_70ea_4397_b8baecc2ca9a1bd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 407 1 0 \"a70a035b_d0bc_4cc3_917340dffbf2ee6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 408 1 0 \"3f92b115_b29a_4772_955189aa840c37db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 409 1 0 \"a70a035b_d0bc_4cc3_917340dffbf2ee6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 410 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 411 1 0 \"ca37a475_a69e_4367_aae015a113535d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 412 1 0 \"18e4b92e_69c6_4fb1_a5032c3224f92e52\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 413 1 0 \"6767b91d_ea7b_4619_b57b512927b0cb6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"034d46bd_e017_4e49_bda2a918b966a9ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"2167695b_833d_4537_b1ca621cd9cb254f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 416 1 0 \"006e4737_2b28_4b29_88cabf15c00d0b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 417 1 0 \"ed119e90_c1cf_47e9_882c9179c7675524\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 418 1 0 \"2d45fcde_698f_4b1e_85c2b355d05ece3f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 419 1 0 \"664c8ad8_1978_406c_ba006c21ee6cdc2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 420 1 0 \"8dc2ff24_58d0_4fb9_b4476261c7ec9f73\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 421 1 0 \"4b09b616_7ad2_4d2f_a3f51c49956f7d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"784d4df8_3b6e_41d3_ac01d0b30128d63d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"ce22c98b_cefd_44e1_a21f17817fa26757\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 424 1 0 \"8dc2ff24_58d0_4fb9_b4476261c7ec9f73\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 425 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 426 1 0 \"19bdcb09_5067_4650_a51d59790ea58358\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 427 1 0 \"6bb5085c_63ec_4166_b16d4b088bf17a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"bbcdaabe_ca2a_4ec9_9c13e083f812412a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 429 1 0 \"6bb5085c_63ec_4166_b16d4b088bf17a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 430 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 431 1 0 \"69b92e0b_ba29_42dc_a6d5ea83701df138\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 432 1 0 \"192114b0_07b3_4dd4_b8580bbd0300657b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 433 1 0 \"4f9e972e_7acd_45bc_9ed8d7ec3835b42b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 434 1 0 \"57844fa2_0bdc_4ba5_aea223c87eb45a0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 435 1 0 \"cf9a830f_2fb4_44b1_8226f2041b55c305\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 436 1 0 \"664c8ad8_1978_406c_ba006c21ee6cdc2e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 437 1 0 \"2d45fcde_698f_4b1e_85c2b355d05ece3f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 438 1 0 \"9d132be9_3327_43f0_861eab191b312efe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 439 1 0 \"f6cc8299_2f28_46a6_9bb97037e5dc466a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 440 1 0 \"ea361219_5a73_449b_9e9f28937269d164\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 441 1 0 \"9271e4c5_3af5_416a_b4ff109847510419\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 442 1 0 \"56a04f09_338f_4736_aca6e9c2d81e2c66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 443 1 0 \"1e90c36e_9422_4cbb_8894ee0ca1ecb7a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"2fb72d08_217e_46b5_974400449189f377\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"83dd7d6c_87dd_4660_8113302408cde86f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"3619d2e6_ca56_4e64_93bc2c4e763b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 447 1 0 \"60a67018_c240_43a5_9f44311bc1e98746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 448 1 0 \"c33ebbef_42a4_46fd_9a8469f9e411c897\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 449 1 0 \"20603c7b_d59a_4c57_96ee9752927ff64f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 450 1 0 \"1e3f75b9_3592_485c_8b2d352f72a3c437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 451 1 0 \"ea361219_5a73_449b_9e9f28937269d164\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 452 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 453 1 0 \"768ae6ad_e584_4b00_8ded5be49db3ac78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 454 1 0 \"e9be51d0_8991_4d2b_8f1e4353bb247c8c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 455 1 0 \"2bdfa4de_1f49_4935_801ba5f52847fdc3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 456 1 0 \"e9be51d0_8991_4d2b_8f1e4353bb247c8c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 457 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 458 1 0 \"8ad7936f_b4fc_4d56_b2a69c2117a3e2c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 459 1 0 \"060f69c1_3a66_464e_8b4353f8f562116a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 460 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 461 1 0 \"ae513bfa_0e69_4286_982d555c61b04bea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 462 1 0 \"d58b1c9a_619d_4564_b7013ae9300a62c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 463 1 0 \"c6f18361_c2d4_497e_b3568731fe7f72c5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 464 1 0 \"d58b1c9a_619d_4564_b7013ae9300a62c5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 465 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 466 1 0 \"a1ed641c_3701_495f_ab89e05bf92c5b2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 467 1 0 \"1b9c4a3a_ce6f_4f69_bb890e9ead027750\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 468 1 0 \"f6d60a86_5450_40d3_be3b7f2c660e2fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 469 1 0 \"4805700b_6f6f_426a_9bcbf4176c6fb71f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 470 1 0 \"74998056_c8c5_4618_88757b8da6932071\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 471 1 0 \"f6cc8299_2f28_46a6_9bb97037e5dc466a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 472 1 0 \"9d132be9_3327_43f0_861eab191b312efe\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 473 1 0 \"3625fde9_51e1_4bb2_84181491a737c26b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"82f46916_6725_423b_bde46572a3389992\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 475 1 0 \"bfcf1a15_a297_4990_80d9119c099d7671\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 476 1 0 \"c7a26fdd_6c33_4ae6_a90ef3acfdc7f489\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 477 1 0 \"bfcf1a15_a297_4990_80d9119c099d7671\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 478 1 0 \"34a065e0_018c_461b_87990a6c61147520\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"3c7ef19d_c34c_4a13_86e9e970b61a69e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"cb13151a_7bef_4779_99b9954f02aea276\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 481 1 0 \"82f46916_6725_423b_bde46572a3389992\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"3625fde9_51e1_4bb2_84181491a737c26b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"e411727d_3702_4640_8cb2d7ab8b58a300\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 484 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 485 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 486 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 487 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 488 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 489 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 490 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 491 1 0 \"4e026721_fd49_4127_87fda5791fa13eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 492 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 493 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 494 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 495 1 0 \"7066bb37_8c48_474d_8f467cf1f1e06a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 496 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 497 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 498 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 499 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 500 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 501 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 502 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 503 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 504 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 505 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 506 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 507 1 0 \"7f473860_0be7_4dc2_87423136869dd829\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 508 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 509 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 511 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 512 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 513 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 516 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 517 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 518 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 519 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 520 1 0 \"53df6909_1d0e_4001_ac674452fec957bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 521 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 522 1 0 \"85d76321_871e_4d0e_bb460b7513742e62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 525 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 526 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 527 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 528 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 529 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 530 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 531 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 532 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 533 1 0 \"6ba4b834_521a_46da_9ceb8ced08da95f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 534 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 535 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 536 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 537 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 538 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 539 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 541 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 542 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 543 1 0 \"20e2b3e5_8664_4809_9bcf626c89196333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 544 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 545 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 546 1 0 \"38e3e61d_a654_46f5_87f53cf7dfc09446\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 547 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 548 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 549 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 551 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 552 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 553 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 554 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 555 1 0 \"d92781d1_27c2_48fb_acfd9cb32428e910\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 556 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 557 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 558 1 0 \"19daab0c_59b0_4af8_a070bee39acf20c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 559 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 560 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 561 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 562 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 563 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 564 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 565 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 566 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 567 1 0 \"df61bf49_7625_493f_ad06bbdbb36b494a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 568 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 569 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 570 1 0 \"accda6cd_138b_411c_bf3af9b152e986c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 571 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 572 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 573 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 574 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 575 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 576 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 577 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 578 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 579 1 0 \"8d513473_33ad_47dc_a8c3ed9799195b58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 580 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 581 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 582 1 0 \"ee004b75_f488_428e_99b02212bd478984\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 583 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 584 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 585 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 586 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 587 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 588 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 589 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 590 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 591 1 0 \"4f9610c2_a783_4586_b1725e8904e476cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 592 1 0 \"eea3f2ce_93c1_4efd_be90b89d775a6867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 593 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 594 1 0 \"ad6b8668_d455_40f9_9e64eac973c2db0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 595 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 596 1 0 \"81e3038e_a3ea_4252_a09b14cd3de477a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 597 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 598 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 599 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 600 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 601 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 602 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 603 1 0 \"a54c8c75_1172_46d3_a61e71fe7fea812d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 604 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 605 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 606 1 0 \"e9f473e4_b341_4e28_8c5c444235409181\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 607 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 608 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 609 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 610 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 611 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 612 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 613 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 614 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 615 1 0 \"19a32be3_7476_425d_a82433aead4637cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 616 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 617 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 618 1 0 \"81e1a27f_16e2_44ed_b7cd3b11ac866a97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 619 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 620 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 621 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 622 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 623 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 624 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 625 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 628 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 629 1 0 \"84b0a5f3_5e82_4770_81998131d1071a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 630 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 631 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 632 1 0 \"f46c286b_9141_4717_ac23994f8defc186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 633 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 634 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 635 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 636 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 637 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 638 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 639 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 641 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 642 1 0 \"a9029174_cbad_4f9c_9ca65c3b9497d605\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 643 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 644 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 645 1 0 \"bb948751_9e18_4aa8_b86a3dd67208967f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 646 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 647 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 648 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 649 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 650 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 651 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 652 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 655 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 656 1 0 \"d7ecab6c_533b_4d98_97e3fd144551f6d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 657 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 658 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 659 1 0 \"96075a25_a9b4_48ec_b53a90612b9d42a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 660 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 661 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 662 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 663 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 664 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 665 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 666 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 667 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 668 1 0 \"c8de89fe_7a53_4c03_bbe8ba85302b57ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 669 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 670 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 671 1 0 \"b9ad26f0_da3e_44e9_a29e1fa4b10f92f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 672 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 673 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 674 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 675 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 676 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 677 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 678 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 682 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 683 1 0 \"aecc8a3f_302a_4fd4_85780994769765dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 684 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 685 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 686 1 0 \"8a17da2c_6b74_4513_a05e482acef68552\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 687 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 688 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 689 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 690 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 691 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 692 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 693 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 694 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 695 1 0 \"96a3924c_7b8c_441f_b05115a7adf0396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 696 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 697 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 698 1 0 \"29acd4b5_13fb_40fe_bc6d971aa6f115a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 699 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 700 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 701 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 702 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 703 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 706 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 707 1 0 \"18981818_de5f_4fd3_b704a074fd37c9d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 708 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 709 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 710 1 0 \"6fa8ea83_c7bd_4b3e_81768063f8126364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 711 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 712 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 713 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 714 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 716 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 717 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 719 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 720 1 0 \"84efe41c_f9b0_4304_896c8b308bb07e76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 721 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 722 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 723 1 0 \"367927ae_ba00_4d5a_b9d8f5f9b3d208c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 724 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 725 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 726 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 727 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 728 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 729 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 730 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 732 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 733 1 0 \"7e6d8299_fab6_4435_8adf36d59ca04c7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 734 1 0 \"5fe75151_d308_441e_a049e85f45ca3966\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n// }} \"\"\r\n// {{ 735 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 736 1 0 \"64e95a28_a6b6_4e1b_825867f05118aebc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 737 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 738 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 739 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 740 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 741 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 742 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 743 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 746 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 747 1 0 \"08abdac2_e330_47c9_9b80d99dd0338c3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 748 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 749 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 750 1 0 \"a26bca7d_b38c_4413_b61d3da3fdfb077b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 751 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 752 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 753 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 754 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 755 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 756 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 757 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 760 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 761 1 0 \"0e03f515_b847_4dfd_8aa52f8b5f1135cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 762 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 763 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 764 1 0 \"e7b29c37_b63e_40fe_a3663d4eb8c7dc93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 765 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 766 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 767 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 768 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 769 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 770 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 771 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 772 1 0 \"7ca275a0_4aed_4b67_9535646b2074ebaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 773 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 774 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 775 1 0 \"e87b7e6f_2610_44dd_b7d0262ac681e308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 776 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 777 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 778 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 779 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 781 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 782 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 783 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 784 1 0 \"d02dc65a_05f9_4938_90df6cee1381d4dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 785 1 0 \"75688e3b_5ed1_45d1_a4d8344ca19c3fd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 786 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 787 1 0 \"b5ede424_b7f1_4369_8610d54e626df620\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 788 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 789 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 795 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 796 1 0 \"e22c8ca0_6e3f_454b_8628dd4417a6fd78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 797 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 798 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 799 1 0 \"c8c0c20e_b866_451e_9ecd69fdb0b0ed14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 800 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 801 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 802 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 803 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 805 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 806 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 807 1 0 \"e2f732a1_e433_4ab6_b3bdac9a4ca5bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 808 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 809 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 810 1 0 \"44edbcbd_1012_457f_848d11750abdfeb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 811 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 812 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 813 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 814 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 815 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 816 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 817 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 818 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 819 1 0 \"d5b14e5b_7d51_414e_af4dfb664c89e0c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 820 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 821 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 822 1 0 \"d60c31db_3b59_4498_8c47e4d2612443a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 823 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 824 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 825 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 826 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 827 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 828 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 829 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 830 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 831 1 0 \"ffa29d3e_8248_4266_80661c264964da5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 832 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 833 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 834 1 0 \"8a92c1f7_b614_4c09_b5ada70145cb0a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 835 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 836 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 837 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 838 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"67dcb608_2751_40ce_8b7e4a0603faf2dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"0f4bf0f0_7250_4df4_ad0fed77d22c4e31\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 842 1 0 \"8c27106a_1679_43a9_bf5395da0b449aab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HxFanSet\")\r\n{\r\n// }} \"\"\r\n// {{{ 843 1 0 \"b4ddaff1_bbb9_4494_8b1bbd7274a5f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"4c112600_c077_4cd1_97f013ebd6ba3dda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"persistant\"), persistant);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"3e95190c_440f_432c_aaa7fd3a2fb355a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"1e8f47c7_db5a_4fa4_aee7981e3b80ca64\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"fanSpeed\"), fanSpeed);\r\n// }} \"\"\r\n// {{ 847 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 848 1 0 \"126ff61c_704e_4f65_956d45a1882c292c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 849 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (simulate == 0)\r\n{\r\n// }} \"\"\r\n// {{ 850 1 0 \"13409ed4_ce79_4ef9_89deb34df8b6dd6a\" \"HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}\"\r\n{\r\n\tHxFan.Simulate(\"13409ed4_ce79_4ef9_89deb34df8b6dd6a\"); // Simulate\r\n}\r\n// }} \"\"\r\n// {{ 851 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 852 1 0 \"be3ae73e_7395_494a_9aed80ff221436dc\" \"HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}\"\r\n{\r\n\tHxFan.Simulate(\"be3ae73e_7395_494a_9aed80ff221436dc\"); // Simulate\r\n}\r\n// }} \"\"\r\n// {{ 853 1 0 \"10161df1_6a13_4efe_8e94e9efb47fea5a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 854 1 0 \"ffdf7428_8946_4751_8ec8a7e00f208208\" \"HxFan:{419861B2-AD5B-4F2E-8025-46B0E593A024}\"\r\n{\r\n\tHxFan.SetComPort(\"ffdf7428_8946_4751_8ec8a7e00f208208\"); // SetComPort\r\n}\r\n// }} \"\"\r\n// {{ 855 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (persistant == 0)\r\n{\r\n// }} \"\"\r\n// {{ 856 1 0 \"d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39\" \"HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}\"\r\n{\r\n\tHxFan.SetContinuousMode(\"d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39\"); // SetContinuousMode\r\n}\r\n// }} \"\"\r\n// {{ 857 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 858 1 0 \"4914f72b_ecb0_4ab4_b458a744727e1642\" \"HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}\"\r\n{\r\n\tHxFan.SetContinuousMode(\"4914f72b_ecb0_4ab4_b458a744727e1642\"); // SetContinuousMode\r\n}\r\n// }} \"\"\r\n// {{ 859 1 0 \"1506decc_f2bf_47a0_a90687ef59450828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 860 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (fanSpeed == 0)\r\n{\r\n// }} \"\"\r\n// {{ 861 1 0 \"cef636fc_366e_46f7_9a8e1e25f716fa31\" \"HxFan:{1581574C-5388-4E48-BC78-FEE50E8DCE05}\"\r\n{\r\n\tHxFan.SetFanOff(\"cef636fc_366e_46f7_9a8e1e25f716fa31\"); // SetFanOff\r\n}\r\n// }} \"\"\r\n// {{ 862 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 863 1 0 \"f2bbd127_49ad_44c1_aa03eba6244b4cfc\" \"HxFan:{C3B1A3F9-BD5A-4660-842E-35830B4E80CA}\"\r\n{\r\n\tHxFan.SetFanSpeed(\"f2bbd127_49ad_44c1_aa03eba6244b4cfc\"); // SetFanSpeed\r\n}\r\n// }} \"\"\r\n// {{ 864 1 0 \"203cb0c4_cb6f_42c2_a34aa62a646c29cc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 865 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AA4197CCBE624255B3C96A32C1894C99 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 866 1 0 \"8f5e46a2_b896_4dbc_a8eb3d63e6ee3d3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 867 1 0 \"6e4ff03e_f972_4901_8442f6e992f211a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 868 1 0 \"0c83267c_5eb8_4165_96bd827e6dad924b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 869 1 0 \"8c27106a_1679_43a9_bf5395da0b449aab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 870 1 0 \"0f4bf0f0_7250_4df4_ad0fed77d22c4e31\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 871 1 0 \"67dcb608_2751_40ce_8b7e4a0603faf2dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 872 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 873 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 874 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 875 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 880 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 881 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 882 1 0 \"f4a1383e_67d1_4f19_92f3a5518acddda4\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"f4a1383e_67d1_4f19_92f3a5518acddda4\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 883 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 884 1 0 \"ab84bcc8_3da0_446b_84689087cc7a392f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 885 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 886 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 890 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 891 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 892 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 893 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 894 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 895 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 896 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 897 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 898 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Hamilton$$valid=0$$time=2018-05-24 16:50$$checksum=685e0d06$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxB3C9.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1004 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1005 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1006 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1015 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1018 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1019 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1020 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1022 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1023 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1024 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1025 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1026 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1027 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1028 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1029 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1030 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1031 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 990 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 992 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 997 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 998 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 937 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 938 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 939 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 940 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 941 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 942 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 943 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 944 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 945 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 946 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 947 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 948 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 949 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1009 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1010 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1011 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1012 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 911 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 912 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 913 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 914 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 915 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 916 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 917 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 918 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 920 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 921 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 922 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 923 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 924 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 925 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 926 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 927 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 928 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 929 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 930 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 931 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 932 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 933 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 934 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 935 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 901 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 902 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 903 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 904 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 906 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 907 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 908 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 909 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 952 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 953 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 955 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 956 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 958 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 960 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 961 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 962 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 964 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 965 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 966 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 967 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 968 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 969 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 970 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 971 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 972 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 973 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 974 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 975 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 976 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 977 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 978 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 979 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 980 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 981 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 982 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 983 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 984 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 985 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 986 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 987 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 988 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=user$$valid=0$$time=2018-08-14 10:55$$checksum=9c64b9ac$$length=083$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxB54F.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"HSL_LiquidClassLib.hsl\"\r\n#include \"HSLInhecoTEC\\\\HSLInhecoTECLib.hsl\"\r\n#include \"HSLDaisyChainedTiltModule.hsl\"\r\n#include \"HSLBarcodeReader.hsl\"\r\n#include \"HslHamHeaterShakerLib.hsl\"\r\n#include \"HSLDaisyChainedMediaLine.hsl\"\r\n#include \"HSLDaisyChainCommunication.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void ;\r\nfunction BarcodeReader_Read( variable & barcode ) void ;\r\nfunction 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 ;\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ;\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void ;\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ;\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ;\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void ;\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ;\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable height;\r\nprivate variable calculatedVolume;\r\n// {{ 5 \"Channels_1ml_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 107 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 108 1 0 \"61c2af00_d7f3_4b2d_90f54ffba06126b4\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"61c2af00_d7f3_4b2d_90f54ffba06126b4\"); // Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 109 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BE09000023754133A7DFF78508E9EC3D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 110 1 0 \"3dd2c518_6d0a_4d7b_a227743c1263caad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 111 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 112 1 0 \"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 113 1 0 \"a37ce602_144b_4a72_98dbfe0c85169266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 114 1 0 \"36e6f2a2_6d83_40ba_a0c6ff5caefcef66\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 115 1 0 \"ce4eba9f_c8e1_4c33_a9c369da4ce7c312\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 116 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 117 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 118 1 0 \"81636f39_7511_441a_8ab707955e5f2035\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 119 1 0 \"6b53ca04_1112_466f_89a23ed352e36004\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 120 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 122 1 0 \"9c1dd6a5_9b06_43fd_9fd194129c2f2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"e6930a03_b2a0_4569_bb51b2088cac413c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 124 1 0 \"06eeeac2_52c3_47cb_b78dde137d763a9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 125 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 126 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 127 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 128 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 130 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_15E4EC7C03B0458dA8B196D2861D63BC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 131 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 132 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 133 1 0 \"450b7dae_efb3_416b_a62ef5c611c84cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 134 1 0 \"ca4e0527_c377_4a7f_99b7deddb85bdfaf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 135 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 136 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 137 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 138 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"Begin\"\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 101 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 102 1 0 \"72075d54_9924_47c4_a0154d7e90bb1065\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"72075d54_9924_47c4_a0154d7e90bb1065\"); // TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 103 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_55CAD51E8CEB46d5827DF7367C49B35D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 104 1 0 \"7acd54b9_9bda_465f_9b10e23e8987fa26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 105 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable calculatedVolume;\r\nprivate variable height;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\nprivate variable loopCounter1;\r\nprivate variable numberOfPositions;\r\n// {{ 5 \"Channels_1mL_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 62 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 63 1 0 \"ce9beee3_e67e_43c3_bfc64805ab990e08\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"ce9beee3_e67e_43c3_bfc64805ab990e08\"); // Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 64 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 65 1 0 \"493334e8_4548_4149_82f058a4b51df641\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 66 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 67 1 0 \"dd677141_96b6_4ccc_a1764ec36dc76b56\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"dd677141_96b6_4ccc_a1764ec36dc76b56\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 68 1 0 \"4fd5463f_c617_4e2b_aa27d0a820bfe2c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 69 1 0 \"6cafca26_5df8_46c0_98d5a4e2a957163a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 70 1 0 \"418d84ad_0fba_4ca8_8479b9c6dde94985\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 71 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 72 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 73 1 0 \"c8304522_b160_47ca_9780bfcfd85cf56a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 74 1 0 \"5c09e3e1_cd42_4687_940231f4491e28e1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 75 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 77 1 0 \"11b5458b_6926_471d_8cb7dde489f8a444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 78 1 0 \"51ffe893_b0e5_4383_ac38b9be481a9bee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 79 1 0 \"b02dd957_c3d3_445f_b0e36cc6cab274af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 80 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 81 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 82 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 83 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 85 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 86 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 87 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 88 1 0 \"36cc23a5_3886_4312_adc5faa6d481a26c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 89 1 0 \"9f017e3d_a3f3_4f02_914d74e549a5f3be\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 90 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 91 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 92 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 93 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"Begin\"\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 95 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 96 1 0 \"1a33c622_0a9b_473c_a857db709fcadb47\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"1a33c622_0a9b_473c_a857db709fcadb47\"); // TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D52469807F754a359D17B8D31042C6A6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 98 1 0 \"5284933d_2b98_4255_81ee24c4ca6624c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 99 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable positionBC;\r\n// {{ 5 \"Carrier_Load\" \"InitLocals\"\r\no_stepReturn_CarrierBC = 0;\r\no_stepReturn_PositionsBCs = 0;\r\no_stepReturn_PositionsBCMasks = 0;\r\no_stepReturn_PositionsIDs = 0;\r\no_CarrierBC = 0;\r\no_PositionsBCs.SetSize( 0);\r\n// }} \"\"\r\n// {{ 18 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 19 1 0 \"b445eca9_c441_45d7_b53f08a23b7b4b80\" \"ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2(\"b445eca9_c441_45d7_b53f08a23b7b4b80\"); // LoadCarrier\r\n\to_stepReturn_CarrierBC = arrRetValues[2];\r\n\to_stepReturn_PositionsBCs = arrRetValues[3];\r\n\to_stepReturn_PositionsBCMasks = arrRetValues[4];\r\n\to_stepReturn_PositionsIDs = arrRetValues[5];\r\n}\r\n// }} \"\"\r\n// {{ 20 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 21 1 0 \"6919be45_bdb7_46b6_a2ad892454bef1c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_CarrierBC = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 22 1 0 \"d814f66e_6beb_47a8_a390d3b5ea839ba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{{ 23 1 0 \"018a7d4d_f55c_435f_bfce516fc40cd0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCMasks = ErrGetDataAt(5);\r\n// }} \"\"\r\n// {{{ 24 1 0 \"28252b10_bd1a_480c_8d84ce9739ca69ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsIDs = ErrGetDataAt(6);\r\n// }} \"\"\r\n// {{ 25 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 26 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 27 1 0 \"91e50e7b_5626_4ab9_ad652563a737dba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC);\r\n// }} \"\"\r\n// {{ 28 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 29 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 30 1 0 \"6135f8c7_3486_4898_88c6e7154326c4df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 31 1 0 \"4cec9992_cb23_4182_894ee448e99b8d48\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_PositionsBCs.SetSize(0);\r\n// }} \"\"\r\n// {{ 32 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 33 1 0 \"fe82471b_5e85_4598_90b8f672ef3cf690\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 34 1 0 \"f0a92a30_0f95_4eb4_bdcf7e21db350ecb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_PositionsBCs.AddAsLast(positionBC);\r\n// }} \"\"\r\n// {{ 35 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 36 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"Begin\"\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Carrier_Unload\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 38 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 39 1 0 \"38494363_9fef_41a3_8cb17f349c9fe693\" \"ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2(\"38494363_9fef_41a3_8cb17f349c9fe693\"); // UnloadCarrier\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 40 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 41 1 0 \"9aa00b86_389e_473d_bd928bce39259e60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 42 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 44 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 45 1 0 \"f1e43893_ada0_4b74_9035cad36fab5d4b\" \"ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F(\"f1e43893_ada0_4b74_9035cad36fab5d4b\"); // ZSwapGetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 46 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90BF8C56374E469c817DB7B52FEE5D91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 47 1 0 \"5300695f_5b47_4f16_8312711c7c77441e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 48 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 56 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8675588E513E44cd8097542899F1DE5C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 57 1 0 \"3460f3d9_9fdb_4437_9cfa36d33b14f837\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"3460f3d9_9fdb_4437_9cfa36d33b14f837\"); // ZSwapPlacePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 58 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8675588E513E44cd8097542899F1DE5C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 59 1 0 \"1c1fcfa6_73ab_434d_965f40a7cb5827ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 60 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"Begin\"\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 50 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 51 1 0 \"2ed0456d_387e_49b4_a5a8105447123f04\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"2ed0456d_387e_49b4_a5a8105447123f04\"); // ZSwapMovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 52 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 53 1 0 \"b5f59ed6_6bf0_47b3_b8c295016cfa86e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 54 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 285 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 286 1 0 \"285b84de_748a_400d_a828988b60f4c175\" \"ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E(\"285b84de_748a_400d_a828988b60f4c175\"); // GetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 287 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ABA9DAA34A59470495CBB56841D2D81D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 288 1 0 \"298cdb09_c92e_4bb7_a2ecabeafcf27813\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 289 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 303 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 304 1 0 \"bcedff0a_3cba_458a_bedb1a743e5dd0bd\" \"ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55(\"bcedff0a_3cba_458a_bedb1a743e5dd0bd\"); // PutPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 305 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_22A12BE8BB2146fbB8824DF66137BF6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 306 1 0 \"8aeb393a_337d_4788_b25408ee6915eb1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 307 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"Begin\"\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 291 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 292 1 0 \"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\" \"ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E(\"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\"); // MovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 293 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E8A019BC968240cbB4C8B7397BB2F043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 294 1 0 \"b69dc448_e2ef_4c62_b6dd3535487928f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 295 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"Begin\"\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Park\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 297 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 298 1 0 \"ef5a4036_5d2f_4aae_86e669ef0581597f\" \"ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7(\"ef5a4036_5d2f_4aae_86e669ef0581597f\"); // ParkISwap\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 299 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_47ED933D92B34914984C5D98423B4C94 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 300 1 0 \"974d3165_8b4f_469b_99a59625d159b561\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 301 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"Begin\"\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 236 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 237 1 0 \"b3913cc3_f1bb_4e9f_b3100faec37b186d\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"b3913cc3_f1bb_4e9f_b3100faec37b186d\"); // Head96TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 238 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6640FC09A88C48daB6CB9FB2349BE364 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"1df2d158_801c_4c9f_a8014869fa07863d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"315f1e4b_8d32_430c_89413b8e4b5b135a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 241 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 185 1 0 \"0fc30c09_ddb7_4665_8739dbd8f0102fdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(aspirateSequence);\r\n// }} \"\"\r\n// {{{ 186 1 0 \"14c1eb4e_ced0_45f2_a343bc0f3c668407\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(aspirateSequence);\r\n// }} \"\"\r\n// {{ 187 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 188 1 0 \"8d6fdce5_327c_491b_aebee60a715b6c6e\" \"ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A(\"8d6fdce5_327c_491b_aebee60a715b6c6e\"); // Head96Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 189 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_00A0A59BF99B42a686A202BE72502D6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 190 1 0 \"6c23fd1d_be57_4011_8fea4ea6459aeecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"ee52ace2_98fe_454f_841ae740168bebcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 192 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 193 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 194 1 0 \"8bf3cb1f_0b71_493d_bf300c05413fc543\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 195 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 196 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 197 1 0 \"091a5303_35ee_4d82_a0b32d9ede26439d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 198 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 199 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 201 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_06FF5C7D72E044ac924A0658E57AC92A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 202 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 203 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 204 1 0 \"0b5e4cdb_1c92_4d18_a0bed95d854a0d94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 205 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"Begin\"\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_SubmergeDepthCORE;\r\nprivate variable str_FW_Digits;\r\nprivate variable flt_TipLength;\r\nprivate variable int_LLDheight;\r\nprivate variable flt_TipLength_corrected;\r\nprivate variable int_FW_Digits;\r\nprivate variable flt_StepSize;\r\nprivate variable int_Steps_mm;\r\nprivate variable str_ReturnValueH0RH;\r\nprivate variable flt_angle;\r\nprivate variable tipType;\r\n// {{ 5 \"MPH_GetLastLLD_Level\" \"InitLocals\"\r\no_flt_LastLiquidLevel = 0;\r\n// }} \"\"\r\n// {{ 243 1 0 \"f7c5b642_e642_4bd2_b342e8a2202f94b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SubmergeDepthCORE = 8.0;\r\n// }} \"\"\r\n// {{ 244 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 245 1 0 \"de2e1cfc_3be8_4752_b20a1221fc802c26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"bf16ce46_b00c_46c3_93046a4e730e9868\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(i_liquidClass);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"7d094f81_a8b9_4eb1_90a841201d1a4cca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType);\r\n// }} \"\"\r\n// {{ 248 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 249 1 0 \"a97af8ec_9af3_46fa_a150d41888290f6f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE;\r\n// }} \"\"\r\n// {{{ 250 1 0 \"8fc17eb7_3fbb_4a8e_b537d43144e8598c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle);\r\n// }} \"\"\r\n// {{ 251 1 0 \"31649b83_68f7_49a0_974f7efa6232c07d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnValueH0RH = Translate(\"\");\r\n// }} \"\"\r\n// {{ 252 1 0 \"72f92b7c_2537_40be_bc5fe85726a39b19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StepSize = 0.005;\r\n// }} \"\"\r\n// {{ 253 1 0 \"b5a3458f_9eea_4501_a6aa86c0556ad194\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b5a3458f_9eea_4501_a6aa86c0556ad194\"); // FirmwareCommand\r\n\tstr_ReturnValueH0RH = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 254 1 0 \"73c2ff19_ed4c_4c45_a9c5b56a6e84b044\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"str_ReturnValueH0RH: \"), str_ReturnValueH0RH);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 255 1 0 \"f6fe1f5f_39ae_4b71_83f733a5cf490b66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FW_Digits = StrRight(str_ReturnValueH0RH, 6);\r\n// }} \"\"\r\n// {{{ 256 1 0 \"9883fcc4_3dcd_4199_816696b3668f733f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_FW_Digits = StrIVal(str_FW_Digits);\r\n// }} \"\"\r\n// {{ 257 1 0 \"b427e920_22bd_492e_8c900ff3a99a649c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Steps_mm = int_FW_Digits * flt_StepSize;\r\n// }} \"\"\r\n// {{ 258 1 0 \"bbe179b4_5c85_4ece_ba3738d8817cdfc5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLDheight = int_Steps_mm - flt_Z_Coord;\r\n// }} \"\"\r\n// {{ 259 1 0 \"502175ce_b71d_406e_b155fea6f39d0fd0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 260 1 0 \"3bcc328b_1906_4590_94e64b4e80f03d3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"o_flt_LastLiquidLevel: \"), o_flt_LastLiquidLevel);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 207 1 0 \"031805d0_c2b0_4435_9b8f6fbb101dc62d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(dispenseSequence);\r\n// }} \"\"\r\n// {{{ 208 1 0 \"c249d641_ef0f_4423_bc2d48f01c114665\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(dispenseSequence);\r\n// }} \"\"\r\n// {{ 209 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 210 1 0 \"30023c25_d03e_4d52_86f122728a5fc04f\" \"ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB(\"30023c25_d03e_4d52_86f122728a5fc04f\"); // Head96Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 211 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 212 1 0 \"714a2035_eb8c_4e86_85aca8d69086952e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"bc1347df_5f38_41ae_be3c240228e5944c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 214 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 215 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 216 1 0 \"911c2699_0e84_425f_9e9384c7b6c75351\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 217 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"17abaeba_05ec_4e18_a3843b54b3bdf6f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 220 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 221 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 223 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 224 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 225 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 226 1 0 \"c826eb96_3570_4883_a8298bc890043c3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 227 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"Begin\"\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 229 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 230 1 0 \"a8f4b6bb_e103_433a_b1360393d37e32b3\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"a8f4b6bb_e103_433a_b1360393d37e32b3\"); // Head96TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 231 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C33A74C211664afd9B08BCD3DD5339FC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 232 1 0 \"71d45982_a084_4aaa_a34c6558755061d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"9e9d44f5_b614_4fb4_b6d39860c83d879d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 234 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"Begin\"\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 179 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7F7620635658430dB82A7401CB5C158F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 180 1 0 \"dc7838fc_172e_45b4_89099f664d6d452e\" \"ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2(\"dc7838fc_172e_45b4_89099f664d6d452e\"); // Initialize\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 181 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7F7620635658430dB82A7401CB5C158F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 182 1 0 \"6bd66132_cab8_473c_8437aa033b84ff48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 183 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"Begin\"\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"SendFirmwareCommand\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 262 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 263 1 0 \"c616f5ea_baed_4075_a75531e82e045e2b\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c616f5ea_baed_4075_a75531e82e045e2b\"); // FirmwareCommand\r\n\to_stepReturn = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 264 1 0 \"0f7ff03f_40eb_4e9b_a2ff42a6b9e6d59a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_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,\");\r\n// }} \"\"\r\n// {{ 265 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 266 1 0 \"305af0e7_7bac_4678_a0d1c7c3dd9900d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 267 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"Begin\"\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 269 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 270 1 0 \"8f639116_952a_4b73_b3471e6a53e3906f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate);\r\n// }} \"\"\r\n// {{ 271 1 0 \"3393edd2_b35c_4d28_9a34abe9b5cba597\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 272 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F7A233121EBD413184BEE5D2CD3510CA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 273 1 0 \"60a9b619_1ae2_496a_89ca468bc3f8e964\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 274 1 0 \"8e89b190_d2d8_4a7e_8d65313a1104b64f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 275 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"Begin\"\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_MoveToPosition\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 277 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_089FA9D7B12A47b0BAD415A10EC82051 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 278 1 0 \"2eb8fec9_f55f_4bdb_9e8f2458aae0ad13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLDaisyChainedTiltModule::MoveToPosition(Module, Position);\r\n// }} \"\"\r\n// {{ 279 1 0 \"b1a780d0_ecf5_4978_85fb85d1c7090261\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 280 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_089FA9D7B12A47b0BAD415A10EC82051 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 281 1 0 \"ce3475b4_ca3b_48ad_b9c7f3c1f1c2d5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 282 1 0 \"a8c3cab3_9bde_404e_b7d673e4d7906771\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 283 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"Begin\"\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 140 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 141 1 0 \"e3c035a6_0376_4030_a0e519c3f0401e3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode);\r\n// }} \"\"\r\n// {{ 142 1 0 \"ff3d60d9_7d86_4591_b213ab2e2ec6b54f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 143 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 144 1 0 \"f54e5f54_9845_4b71_959134357b62b308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 145 1 0 \"ad00a616_20b6_4fd1_b1b82f15bd592d39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 146 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_StartTemperatureControl\" \"InitLocals\"\r\nErrorCode = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 156 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 157 1 0 \"dbb9a46a_b798_4546_8857499b498c024a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 158 1 0 \"9962ba81_d090_4144_ad45cfdfb0a81848\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 159 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EF764FBDA7474071A7B517987B9B2FC2 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 160 1 0 \"1bea095e_8a1c_4a68_846e9362f2c251d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 161 1 0 \"94a7bec1_57e9_49ab_a6d3e430f8e69316\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 162 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"Begin\"\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_SetTarget\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 148 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 149 1 0 \"aef982a0_8382_45fd_aec06a11e9859c17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{ 150 1 0 \"469d7ad2_b7d8_4e9c_ac57ffe25631b189\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 151 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_56BA970A477C47bf90C6C3373DEB98B0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 152 1 0 \"666252c3_d904_4d59_af97abc58a445648\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 153 1 0 \"360d64cc_734f_4a97_8c61eb77bf58c2c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 154 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_StopTemperatureControl\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 164 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 165 1 0 \"53a1b499_97d8_49ce_85f583fb81241149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 166 1 0 \"6663219d_f732_4334_ac9149ef5e378f41\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 167 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E3152496BDA74f1681473505DC2B3A3E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 168 1 0 \"bf506361_d06d_402a_bce18579529327a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 169 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"Begin\"\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 171 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 172 1 0 \"3239a113_7650_4023_a9fad336d668211f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::Terminate(StopAllDevices);\r\n// }} \"\"\r\n// {{ 173 1 0 \"3b263a00_9a60_41fc_9972731eef692e35\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 174 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 175 1 0 \"06500de7_b6f0_46c9_83aa39385bd390ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"1d548ec4_592f_4c53_bd10fcebbc4e29a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"step return in toolkit\"), o_stepReturn);\r\n// }} \"\"\r\n// {{ 177 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Initialize\" \"Begin\"\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"BarcodeReader_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A3B61CE3E767468e8D1B59076F3D78E4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"e0cfef2c_84b3_468a_a20006a3728a8260\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Trace\"), COMPORT);\r\n// }} \"\"\r\n// {{{ 3 1 0 \"e040e6e1_8d46_47ab_87603b90eec83a04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLBarcodeReader::SetComPort(COMPORT);\r\n// }} \"\"\r\n// {{{ 4 1 0 \"97b56e2c_0824_4073_9e58f7230250d255\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLBarcodeReader::DelComBuffer();\r\n// }} \"\"\r\n// {{ 5 1 0 \"d56061ff_1640_4b1a_88dc262e7863d251\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_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,\");\r\n// }} \"\"\r\n// {{ 6 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A3B61CE3E767468e8D1B59076F3D78E4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 7 1 0 \"02ecb8f2_684e_4ec1_a9840192e80e0f56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 8 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Read\" \"Begin\"\r\nfunction BarcodeReader_Read( variable & barcode ) void {\r\n// }} \"\"\r\n// {{ 5 \"BarcodeReader_Read\" \"InitLocals\"\r\nbarcode = 0;\r\n// }} \"\"\r\n// {{ 10 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 11 1 0 \"f3cc7ab5_8df1_49cb_aaf121c9e2cc2d4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"attempting to read barcode \"), Translate(\"attempting to read barcode\"));\r\n// }} \"\"\r\n// {{{ 12 1 0 \"7efa47d3_0206_455e_9c6a05f9f0aebc1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbarcode = HSLBarcodeReader::Read();\r\n// }} \"\"\r\n// {{{ 13 1 0 \"dd9a5270_3e4b_4b95_898bbad8823e8ea2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(barcode, Translate(\"this is the barcode\"));\r\n// }} \"\"\r\n// {{ 14 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F17E80F5B0F14da6AD3DC48FC7190CFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 15 1 0 \"1bcebdcc_4eed_4f44_b21a8924c1f94855\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbarcode = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 16 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Read\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 309 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_485A52AE45C346adA048E7F329D0C390 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 310 1 0 \"70294f1d_735f_43b0_bfff139b2e168d5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4);\r\n// }} \"\"\r\n// {{ 311 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_485A52AE45C346adA048E7F329D0C390 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 312 1 0 \"b81f548d_2601_402a_9a291d45b6b50706\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 313 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2024-07-10 19:18$$checksum=97f73db2$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxB54F.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxC302.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable moduleTemperature;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable AcutalCharge;\r\nvariable CycleNumber;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 341 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 342 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 343 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 344 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 345 1 0 \"27439ab7_df5a_4e1b_99b64e6c9fd0d9f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 348 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 349 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e2da0756_7cea_44e7_963442343f3c0732\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 352 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 353 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 354 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 356 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 357 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 358 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 359 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 360 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 361 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 362 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 363 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 366 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 367 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 368 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 370 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 373 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 375 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 376 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 377 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 378 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 379 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 380 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 381 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 382 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 390 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 392 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 394 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 396 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 397 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 399 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 400 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 401 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 402 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 403 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 404 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 405 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 406 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 407 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 408 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 409 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 418 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 419 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 420 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 421 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 422 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 423 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 424 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 425 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 426 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 427 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 435 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 437 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 438 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 439 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 440 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 441 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 442 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 443 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 446 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 447 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 448 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 449 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 450 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 451 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 452 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 453 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 454 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 455 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 456 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 457 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 458 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 459 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 460 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 461 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 462 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 463 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 466 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 467 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 468 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 469 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 470 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 471 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 473 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 475 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 476 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 477 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 478 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 479 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 480 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 481 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 490 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 491 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 492 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 493 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 494 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 495 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 496 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 497 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 498 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 499 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 500 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 502 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 503 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 506 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 507 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 508 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 509 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 510 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 511 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 512 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 513 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 514 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 518 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 519 1 0 \"e1385a03_1302_4ae1_9faaea69422d67f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 520 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 521 1 0 \"5af0317c_390a_4121_92fc6695bd45edd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 522 1 0 \"8c9a281c_debc_4f33_9bd2cef6eedde57e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"3d50574c_65df_46db_976821037648878c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"642f5973_af08_450b_878d55fa1dc15b1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 525 1 0 \"c1b028b1_70dd_4627_a467661067398a2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 526 1 0 \"f0c6a22f_59e2_41c2_954cb5b06a43aa42\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 527 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 528 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 529 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 530 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 531 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 532 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 533 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 534 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 535 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 536 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 537 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 538 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 539 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 540 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 541 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 542 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 543 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 548 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 549 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 551 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 552 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 553 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 554 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 555 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 556 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 559 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 560 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 561 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 562 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 563 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 564 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 565 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 568 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 569 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 570 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 571 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 572 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 573 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 576 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 577 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 578 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 579 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 580 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 581 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 583 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 585 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 586 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 588 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 589 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 590 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 591 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 592 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 594 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 595 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 598 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 599 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 600 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 602 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 603 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 609 1 0 \"da3c8baf_9c08_4b10_ae4bfca19c718fb7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 610 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 611 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 613 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 614 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 615 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 616 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 617 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 618 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 619 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 620 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 621 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 622 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"14b52404_fede_461d_aca1373dce5499bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, id);\r\n// }} \"\"\r\n// {{ 633 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 634 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 635 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 637 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 641 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"3eeade94_ed13_40da_8e5da59febd67068\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 647 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 648 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 649 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 650 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 651 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 657 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"84efa5b5_d72d_4cd9_9851f31ca8d9d88e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 659 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 660 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 661 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 662 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 663 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 664 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 665 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 666 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 667 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 668 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 669 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 670 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 671 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 672 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 673 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 674 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 675 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 676 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 677 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 678 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"5ccf6713_621f_45ec_9520383da6a8fafd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 683 1 0 \"316d7012_97a3_4f96_8d21cc026931e7ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 684 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 685 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 686 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 687 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 688 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 693 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 694 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 695 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 696 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 697 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 702 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 703 1 0 \"bedcab57_6a72_4e21_a8115e7ec01a9df0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, id);\r\n// }} \"\"\r\n// {{ 704 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 705 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 706 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 707 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 708 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 713 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"cfc277c3_f282_4547_a247af47bcdff866\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, id);\r\n// }} \"\"\r\n// {{ 715 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 716 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 717 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 718 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 719 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"07a16a85_b9f0_4bb3_9dd6a0a173520841\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 724 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 725 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"e72f9070_8ad1_4595_90dd12ff353c8844\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"755fd068_89d1_41be_8a861b77bf48bee7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 732 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 733 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 734 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 736 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 737 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"fc396f90_794c_409c_b3cef94fbe3b4b58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"5a8f2425_ea73_4af6_af3bcc0704a09580\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 744 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 745 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 746 1 0 \"40161885_d698_43c9_8cc9cd56bb857ff9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 747 1 0 \"2bc26a98_827e_4307_956dafca27975034\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 748 1 0 \"80ad2e8b_36d3_46c9_85a74315da0f3d3b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"d69d96cc_5006_4861_9b5df282d0e70356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"183707cd_97f3_47cd_a418a4b3bc62a7b7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"70fb4e68_a544_4fb1_a7b963065e96b41d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"871b97c1_1a10_4ec7_a3479aa36d2472ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"e397b76a_ee64_4feb_8dbf7529cba8c69a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"6367ec8e_9407_45ee_926605bcc96a7a77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 755 1 0 \"5e0ae32b_77e1_4555_8c559e0f432e9ffc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"7368c8af_2328_46a9_9d796baee70a830c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 757 1 0 \"2bc26a98_827e_4307_956dafca27975034\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 758 1 0 \"40161885_d698_43c9_8cc9cd56bb857ff9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 759 1 0 \"ad5ab69c_d074_40ea_8e4ea9bbdc677e5e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 760 1 0 \"dae546ec_beec_4075_a0263e9394fcaeec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 761 1 0 \"49df468c_ad0e_4f84_a154324f995dc753\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"d066dae7_0a33_45ab_a933d05573578b9f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 763 1 0 \"7101b0a9_c89f_4abe_874b61044ad59b47\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 764 1 0 \"35988df5_226b_4bef_834065f2e2b1f248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"defac783_2b38_45c8_8edc1df176077ea8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 766 1 0 \"dae546ec_beec_4075_a0263e9394fcaeec\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 767 1 0 \"ad5ab69c_d074_40ea_8e4ea9bbdc677e5e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 768 1 0 \"733af878_82cb_4b93_9d668871995a8b6e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 769 1 0 \"db796a4a_5d49_4d35_9a61dbb09030bc18\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 770 1 0 \"abf23a6a_b1ff_4d8d_9bc66321c92203d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 771 1 0 \"8dcd1276_67e0_4312_adb1892334b6cfb1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 772 1 0 \"78966525_c5eb_49f9_9ffdc8f5b059430d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 773 1 0 \"e5def203_584f_46fd_828a181b55ae59fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 774 1 0 \"5004839e_e1ef_488a_8a47e199be762db8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 775 1 0 \"dc3a0036_1edf_4146_9813c388a14a1162\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"528fbaaa_7615_4dd1_9a1a264f9332734a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 777 1 0 \"db796a4a_5d49_4d35_9a61dbb09030bc18\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 778 1 0 \"733af878_82cb_4b93_9d668871995a8b6e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 779 1 0 \"bb1a9496_24e4_4601_b49507dcd72c3b1d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"2f57a5f0_d272_476b_a3fa97c3a0220133\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 781 1 0 \"82db2371_6073_4231_adcde39f84795624\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 782 1 0 \"49edff97_a09a_48fd_b8c3fab4232e491d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 783 1 0 \"65d300c3_4961_4f63_97a62bac894a90e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"76b3c334_d458_4da8_a432c32029631998\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"570dddd0_236c_442b_8ebbd48935503e87\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"ed530638_0048_4017_a130efd1b6a8732b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"692a789f_c205_4b55_b5abab1c994238c8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 788 1 0 \"2f57a5f0_d272_476b_a3fa97c3a0220133\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 789 1 0 \"bb1a9496_24e4_4601_b49507dcd72c3b1d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 790 1 0 \"9d1fd94d_72b7_4a5c_859572976c111c0c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 791 1 0 \"e9d7d2b6_9471_4bb7_b6e319491b6cd184\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 792 1 0 \"9c28dab6_3ab5_4bba_b8f58b7b860bec78\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"981d3887_9dbb_473a_8ade704319d2da18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 794 1 0 \"d24ad986_034d_4773_8375887de6b2b0bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"f24f1240_d298_4791_b14bad530f12ec9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"e6c10382_115d_4df4_be6c8eee1fc28ed2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"e8951db1_1c34_48f4_92f9b18d61e5f86c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"a4c0db56_3032_4735_a1d57d9394d9f6b7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"d8fca300_c4c8_4a63_bec8288de7221d29\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 800 1 0 \"e9d7d2b6_9471_4bb7_b6e319491b6cd184\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 801 1 0 \"9d1fd94d_72b7_4a5c_859572976c111c0c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 802 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 803 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 804 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 805 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 809 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 810 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 811 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 812 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 813 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 817 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 819 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 820 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 821 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 822 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 823 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 824 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 825 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 827 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 828 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 829 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 830 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 831 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 832 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 833 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 834 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"bd1fe536_3228_4133_88a586b0ebeb97b4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 838 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 839 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 842 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 846 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 847 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 848 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 849 1 0 \"239b0af4_4a15_42ca_9e5f0f4dbacbf1ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wake_Up\")\r\n{\r\n// }} \"\"\r\n// {{{ 850 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 851 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 852 1 0 \"271fe899_154a_49a3_9f697b7c6ecf1607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"04450a29_1e44_43cd_8e66a98ecb19c114\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 854 1 0 \"239b0af4_4a15_42ca_9e5f0f4dbacbf1ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 855 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 856 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 857 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 858 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 859 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 860 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 861 1 0 \"04e9eb0f_3060_49dd_b7fc371a1cac07cc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"2cd42ac0_35a7_4810_b97f172b80b5b376\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"a5b3f17c_5d6a_4171_809dfbebc6cc6bdf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 865 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 866 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 867 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 868 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 869 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 870 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 871 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 873 1 0 \"85e3b008_ec25_4841_b8dc50757dea3859\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 874 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 875 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 876 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 877 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 878 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 880 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 881 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 882 1 0 \"cfdcbcac_ded9_4df9_81cb52d64cf9948f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 883 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 884 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 885 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 886 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 887 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 888 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 889 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 890 1 0 \"93997110_b2fd_4307_beefb0793aafd07d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 891 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 892 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 893 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 894 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 895 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 897 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 898 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 899 1 0 \"1ea3ff21_cc55_4ffe_a63d63f51d6c682a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 900 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"4e3aa360_b8a0_4554_895d08f5c1bad940\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 902 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 903 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 904 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 905 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 906 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 908 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 909 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 910 1 0 \"07352f99_d436_47e1_b5be6eb50ad91849\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 911 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 912 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 913 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 914 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 915 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 917 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 918 1 0 \"8d32125d_836b_4511_bd5cc18e32c9c93a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 919 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 920 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 921 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 922 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 923 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 925 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 926 1 0 \"8a572b45_5f79_44aa_8e7b2cf52c55c499\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 927 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 928 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 929 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 930 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 931 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"abbeea15_02e5_4ceb_905c389a634e03bf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 935 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 936 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 938 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 939 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 940 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 944 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 945 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 946 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 947 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 948 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 949 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 950 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 951 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 952 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 953 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 954 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 956 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 957 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 958 1 0 \"4e026721_fd49_4127_87fda5791fa13eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 959 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 960 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 961 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 962 1 0 \"7066bb37_8c48_474d_8f467cf1f1e06a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 963 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 964 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 965 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 966 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 967 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 968 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 969 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 970 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 971 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 972 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 973 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 974 1 0 \"7f473860_0be7_4dc2_87423136869dd829\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 975 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 976 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 977 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 979 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 980 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 981 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 982 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 983 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 984 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 985 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 986 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 987 1 0 \"53df6909_1d0e_4001_ac674452fec957bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 988 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 989 1 0 \"85d76321_871e_4d0e_bb460b7513742e62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 992 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 993 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 994 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 995 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 996 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 997 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 998 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 999 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1000 1 0 \"6ba4b834_521a_46da_9ceb8ced08da95f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1001 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1004 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1005 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1006 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1007 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1009 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1010 1 0 \"20e2b3e5_8664_4809_9bcf626c89196333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1012 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1013 1 0 \"38e3e61d_a654_46f5_87f53cf7dfc09446\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1014 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1016 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1017 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1018 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1019 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1021 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1022 1 0 \"d92781d1_27c2_48fb_acfd9cb32428e910\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1024 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1025 1 0 \"19daab0c_59b0_4af8_a070bee39acf20c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1026 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1028 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1029 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1030 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1031 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1033 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1034 1 0 \"df61bf49_7625_493f_ad06bbdbb36b494a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1036 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1037 1 0 \"accda6cd_138b_411c_bf3af9b152e986c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1038 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1040 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1041 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1042 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1043 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1045 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1046 1 0 \"8d513473_33ad_47dc_a8c3ed9799195b58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1048 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1049 1 0 \"ee004b75_f488_428e_99b02212bd478984\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1050 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1052 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1053 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1054 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1055 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1057 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1058 1 0 \"4f9610c2_a783_4586_b1725e8904e476cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"eea3f2ce_93c1_4efd_be90b89d775a6867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1060 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1061 1 0 \"ad6b8668_d455_40f9_9e64eac973c2db0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1062 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"81e3038e_a3ea_4252_a09b14cd3de477a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1064 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1065 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1066 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1067 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1069 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1070 1 0 \"a54c8c75_1172_46d3_a61e71fe7fea812d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1072 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1073 1 0 \"e9f473e4_b341_4e28_8c5c444235409181\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1074 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1076 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1077 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1078 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1079 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1082 1 0 \"19a32be3_7476_425d_a82433aead4637cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1084 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1085 1 0 \"81e1a27f_16e2_44ed_b7cd3b11ac866a97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1086 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1088 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1089 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1090 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1091 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1095 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1096 1 0 \"84b0a5f3_5e82_4770_81998131d1071a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 1098 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1099 1 0 \"f46c286b_9141_4717_ac23994f8defc186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1100 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1102 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1103 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1104 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1105 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1108 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1109 1 0 \"a9029174_cbad_4f9c_9ca65c3b9497d605\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1112 1 0 \"bb948751_9e18_4aa8_b86a3dd67208967f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1113 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1115 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1116 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1117 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1118 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1122 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1123 1 0 \"d7ecab6c_533b_4d98_97e3fd144551f6d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1125 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1126 1 0 \"96075a25_a9b4_48ec_b53a90612b9d42a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1127 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1129 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1130 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1131 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1132 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1134 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1135 1 0 \"c8de89fe_7a53_4c03_bbe8ba85302b57ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1137 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1138 1 0 \"b9ad26f0_da3e_44e9_a29e1fa4b10f92f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1139 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1141 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1142 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1143 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1144 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1145 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1149 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1150 1 0 \"aecc8a3f_302a_4fd4_85780994769765dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1152 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1153 1 0 \"8a17da2c_6b74_4513_a05e482acef68552\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1154 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1156 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1157 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1158 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1159 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1161 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1162 1 0 \"96a3924c_7b8c_441f_b05115a7adf0396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1165 1 0 \"29acd4b5_13fb_40fe_bc6d971aa6f115a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1166 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1168 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1169 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1170 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1171 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1173 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1174 1 0 \"18981818_de5f_4fd3_b704a074fd37c9d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 1176 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1177 1 0 \"6fa8ea83_c7bd_4b3e_81768063f8126364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1178 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1180 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1181 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1182 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1183 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1186 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1187 1 0 \"84efe41c_f9b0_4304_896c8b308bb07e76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1189 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1190 1 0 \"367927ae_ba00_4d5a_b9d8f5f9b3d208c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1191 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1193 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1194 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1195 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1196 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1199 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1200 1 0 \"7e6d8299_fab6_4435_8adf36d59ca04c7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"5fe75151_d308_441e_a049e85f45ca3966\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n// }} \"\"\r\n// {{ 1202 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1203 1 0 \"64e95a28_a6b6_4e1b_825867f05118aebc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1204 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1205 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1206 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1207 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1208 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1209 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1214 1 0 \"08abdac2_e330_47c9_9b80d99dd0338c3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1216 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1217 1 0 \"a26bca7d_b38c_4413_b61d3da3fdfb077b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1218 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1220 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1221 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1222 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1223 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1227 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1228 1 0 \"0e03f515_b847_4dfd_8aa52f8b5f1135cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 1230 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1231 1 0 \"e7b29c37_b63e_40fe_a3663d4eb8c7dc93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1232 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1233 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1234 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1235 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1236 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1237 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1238 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1239 1 0 \"7ca275a0_4aed_4b67_9535646b2074ebaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1241 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1242 1 0 \"e87b7e6f_2610_44dd_b7d0262ac681e308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1243 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1244 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1245 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1246 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1247 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1248 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1250 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1251 1 0 \"d02dc65a_05f9_4938_90df6cee1381d4dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1252 1 0 \"75688e3b_5ed1_45d1_a4d8344ca19c3fd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1253 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1254 1 0 \"b5ede424_b7f1_4369_8610d54e626df620\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1255 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1257 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1258 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1259 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1260 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1261 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1263 1 0 \"e22c8ca0_6e3f_454b_8628dd4417a6fd78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1264 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1265 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1266 1 0 \"c8c0c20e_b866_451e_9ecd69fdb0b0ed14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1267 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1269 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1270 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1271 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1272 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1273 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1274 1 0 \"e2f732a1_e433_4ab6_b3bdac9a4ca5bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1276 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1277 1 0 \"44edbcbd_1012_457f_848d11750abdfeb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1278 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1280 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1281 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1282 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1283 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1284 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1285 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1286 1 0 \"d5b14e5b_7d51_414e_af4dfb664c89e0c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1288 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1289 1 0 \"d60c31db_3b59_4498_8c47e4d2612443a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1290 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1293 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1294 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1296 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1297 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1298 1 0 \"ffa29d3e_8248_4266_80661c264964da5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1300 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1301 1 0 \"8a92c1f7_b614_4c09_b5ada70145cb0a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1302 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1303 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1304 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1305 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1306 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1307 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1308 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1309 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1312 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1313 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1314 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1315 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1316 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1317 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1318 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1319 1 0 \"ab84bcc8_3da0_446b_84689087cc7a392f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1320 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1321 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1322 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1323 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1324 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1325 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 1326 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1327 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 1329 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1330 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1331 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1332 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1333 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2022-10-03 21:59$$checksum=ca1df178$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxC302.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepId ) void ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1465 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1468 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1469 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1470 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1472 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1473 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1474 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1475 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1476 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1477 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1478 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1479 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1480 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1481 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1424 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1430 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1431 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1432 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 1371 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 1373 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1376 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1377 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 1379 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 1380 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 1382 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1383 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1459 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1460 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1461 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1462 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1345 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 1346 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 1348 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1349 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1350 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 1351 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 1352 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 1354 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1355 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1356 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 1358 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1359 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1360 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 1361 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 1362 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1363 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 1364 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 1365 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 1366 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1367 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1368 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1369 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 1335 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 1336 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1337 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1338 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 1340 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 1342 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1343 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 1386 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 1387 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 1389 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 1392 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 1394 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 1395 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1396 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 1401 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 1402 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 1403 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 1404 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 1405 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 1406 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1409 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 1410 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1411 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1412 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1414 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1415 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1417 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1418 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1420 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1422 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1436 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1437 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1438 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1442 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 1444 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 1445 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1448 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1449 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1450 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-10-03 21:59$$checksum=c35797b0$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxC302.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxCAAD.hsl",
    "content": "// ======================================================================\r\n// This is a part of the HSLHamHeaterShaker Library.\r\n// Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz.\r\n// All rights reserved.\r\n// ======================================================================\r\n//\r\n// Modification History\r\n//\r\n//\t2008-09-10\t\ttbenz > first creation\r\n//\r\n//\t**********************************************************************\r\n// This library version supports following hardware:\r\n//\t\t- HAM Heater Shaker (HHS) ML_STAR interface\r\n//\t\t- HAM Heater Shaker (HHS) USB interface\r\n//\t**********************************************************************\r\n\r\n\r\n#ifndef __HSLHeaterShakerLib_hsl__\r\n#define __HSLHeaterShakerLib_hsl__\t1\r\n\r\n// Interface to HSLHamHeaterShaker library\r\n#ifndef HSL_RUNTIME\r\n\r\n\r\nnamespace HSLHamHeaterShaker\r\n{\r\n\tfunction CreateStarDevice(\t\t\tdevice& starDevice,\t\t\t\t\t\t// in:  ML_STAR device\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1 or 2)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& deviceNumber) {}\t\t\t\t// out: generated deviceNumber\r\n\r\n\tfunction CreateUsbDevice( \t\t\tvariable usedNode,\t\t\t\t\t\t// in:  node ID (1..8)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& deviceNumber) {}\t\t\t\t// out: generated deviceNumber\r\n\r\n\tfunction Terminate()             void {}\t\t\t\t\t\t\t\t\t\t// Close the communication\r\n\r\n   function StartShaker(            variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingSpeed) {}\t\t\t\t// in:  RPM (30..2500)\r\n\r\n   function StopShaker(             variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function StartShakerTimed(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingSpeed,\t\t\t\t\t// in   RPM (30..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingTime) {}\t\t\t\t// in:  time in seconds (1.. 30000)\r\n\r\n   function WaitForShaker(          variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function StartAllShaker(         variable shakingSpeed) {}\t\t\t\t// in   RPM (30..2500)\r\n\r\n   function StartAllShakerTimed(    variable shakingSpeed,\t\t\t\t\t// in:  RPM (30..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingTime) {}\t\t\t\t// in:  time in seconds (1.. 30000)\r\n\r\n   function StopAllShaker(          ) {}\r\n\r\n   function SetShakerParameter(     variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingDirection,\t\t\t\t// in:  shaking dirction left / right (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingAccRamp) void {}\t\t// in:  Defines the acceleration ramp (rpm) (integer).\r\n\r\n   function GetShakerParameter(     variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingDirection,\t\t\t// out: shaking dirction left / right (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingAccRamp) void {}\t// out: Defines the acceleration ramp (rpm) (integer).\r\n\r\n\tfunction GetShakerSpeed(     \t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& shakingSpeed) {}\t\t\t\t// out: current RPM\r\n\r\n\r\n   function StartTempCtrl(          variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable temperature,\t\t\t\t\t// in:  Temperature in 1/10C. Range 0.0 .. 100.0 (not lower than ambient)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable waitForTempReached) {}\t\t// in:  no wait / wait (0 / 1)\r\n\r\n   function StopTempCtrl(           variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function WaitForTempCtrl(        variable deviceNumber) {}\t\t\t\t// in:  assigned deviceNumber\r\n\r\n   function GetTemperature(         variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& temperature) {}\t\t\t\t// out: current temperature in 1/10C\r\n\r\n   function GetTemperatureState(    variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& temperatureState) {}\t\t// out: temperature state 0..3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t0 = No error, temperature was always in the defined range.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t1 = Temperature was or is out of temperature range.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t2 = Temperature was out of security range. Temperature controlling is switched off now.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t3 = Temperature time out during start of temperature controlling\r\n\r\n\r\n   function SetTempParameter(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable startTimeout,\t\t\t\t\t// in:  Time before start temperature controlling (1..2500)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable toleranceRange,\t\t\t\t// in:  Temperature tolerance in 1/10C. (0.0 .. 100.0), def: 2.0\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable securityRange) void {}\t\t// in:  Temperature security in 1/10C. (0.0 .. 100.0), def: 6.0\r\n\r\n   function GetTempParameter(       variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n                                    variable& startTimeout,\t\t\t\t\t// out: Time before start temperature controlling.\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& toleranceRange,\t\t\t\t// out: Temperature tolerance in 1/10C.\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& securityRange) void {}\t\t// out: Temperature security in 1/10C.\r\n\r\n\r\n   function SetPlateLock(           variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable plateLock) {}\t\t\t\t\t// in:  unlock / lock (0 / 1)\r\n\r\n   function GetFirmwareVersion(\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& firmwareVersion) void {}\t// out: Firmware version format: \"1.0P 1999-03-10\"\r\n\r\n   function GetSerialNumber(\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& serialNumber) void {}\t\t// out: Serial number format: \"####\" 4 digit number\r\n\r\n   function BeginMonitoring(\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable shakingToleranceRange,\t\t// in:  shaking tolerance\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable sampleInterval,\t\t\t\t// in:  Interval in sec. for check RPM and temperature\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable action) void {}\t\t\t\t// in:  Continue / Abort (0 / 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Note: Abort will only called on an error after temperature controlling is activated ()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\t\t\tAn abort will end only the current heater/shaker.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Note:\theaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter()\r\n\r\n   function EndMonitoring(\t\t\t\tvariable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable& monitorResult) {}\t\t\t// out: Monitored result\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//-1 = monitoring has not started or is not initialized\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 0 = all heating and shaking values were within specification\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 1 = heating out of range\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 2 = shaking out of range\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// 3 = heating and shaking out of range\r\n\r\n\r\n\r\n   function SendFirmwareCommand(    variable deviceNumber,\t\t\t\t\t// in:  assigned deviceNumber\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable command,\t\t\t\t\t\t\t// in:  Firmware command e.g. \"T1RF\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvariable parameter) {}\t\t\t\t\t// in:  Firmware parameter dependent of command\r\n\r\n   function SetSimulation(          variable simulate) void {}\t\t\t\t// in:  Run / Simulate (0 / 1)\r\n\r\n   function SetUSBTrace(\t\t\t\tvariable trace) void {}\t\t\t\t\t// in:  No trace / trace (0 / 1) Set communication tracing for send and receive message from USB\r\n\r\n\r\n} // end of namespace HSLHamHeaterShaker\r\n\r\n#endif\r\n\r\n// ==========================================================================\r\n// Implementation of HSLHamHeaterShaker Library \r\n// ==========================================================================\r\n#ifdef HSL_RUNTIME\r\n#include \"HSLHamHeaterShakerLib.hs_\"\r\n#endif\r\n\r\n#endif /* end of #ifndef __HSLHamHeaterShakerLib_hsl__ */\r\n\r\n// $$author=Stefan.Golas$$valid=0$$time=2025-07-28 14:13$$checksum=e7e9eb00$$length=089$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxCAAD.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxE052.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n#include \"HSLPTLLib.hsl\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT_PH {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Enable_Extended_Log( variable & o_stepReturn ) void ;\r\nfunction pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void ;\r\nfunction pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void ;\r\nfunction pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void ;\r\nfunction pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Template( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ;\r\nfunction pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nPTL::SetWashingStateDefault(\"RinseTime1\", 5);\r\nPTL::SetWashingStateDefault(\"SoakTime1\", 5);\r\nPTL::SetWashingStateDefault(\"FlowRate1\", 11);\r\nPTL::SetWashingStateDefault(\"RinseTime2\", 0);\r\nPTL::SetWashingStateDefault(\"SoakTime2\", 0);\r\nPTL::SetWashingStateDefault(\"FlowRate2\", 11);\r\nPTL::SetWashingStateDefault(\"DrainingTime\", 10);\r\nPTL::SetWashingStateDefault(\"StartWashLiquid\", 0);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionContinue\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionExclude\", hslTrue);\r\nPTL::SetLoadingStateDefault(\"RecoveryOptionDefault\", 0);\r\nPTL::SetLoadingStateDefault(\"KitLotCheckEnabled\", hslFalse);\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"pH_Measure\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 61 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2E2474F7607B4feb8948B25BBE3B49F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 62 1 0 \"2394bca1_88c0_4399_ab04a338af9f5010\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4);\r\n// }} \"\"\r\n// {{ 63 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2E2474F7607B4feb8948B25BBE3B49F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 64 1 0 \"d771a760_6814_4866_a12a03881c971346\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 65 1 0 \"80d90406_e318_4f91_9ef3b6f12b798351\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate\" \"Begin\"\r\nfunction pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Calibrate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ADDE389AF4C7414193E7475BFBC151C7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"9742609f_32c7_419d_8ec016c662c584c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Calibrate(i_intModuleID, i_intCalibrationLevel, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern);\r\n// }} \"\"\r\n// {{ 3 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ADDE389AF4C7414193E7475BFBC151C7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 4 1 0 \"8904566e_857b_47da_868f8d8e8444f2bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 5 1 0 \"03c80eb0_3f18_420c_96086b655439183a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Template\" \"Begin\"\r\nfunction pH_Template( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Template\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 145 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EBDA9B022DA24dd7955D30E2549FDE5B ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 146 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EBDA9B022DA24dd7955D30E2549FDE5B : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 147 1 0 \"a89bc761_6592_4106_a0acdd14e73bc5d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 148 1 0 \"dc3e048a_9bb1_4fcc_99ff096bd8ece583\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Template\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate_Dynamically\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Calibrate_Dynamically\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 7 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_94CD08297F814239B0B11419D328505E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 8 1 0 \"5f0f28e4_2d10_486d_a5f025fe43a57dfd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::CalibrateDynamically(i_intModuleID, i_intCalibrationLevel, i_intVariance, i_intTimeout, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern);\r\n// }} \"\"\r\n// {{ 9 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_94CD08297F814239B0B11419D328505E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 10 1 0 \"276c7958_53d6_44c9_bdc01f6b0631af18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 11 1 0 \"1464aeb3_96b1_4ec4_ab8008b4ad8e5c58\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Calibrate_Dynamically\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Enable_Extended_Log\" \"Begin\"\r\nfunction pH_Enable_Extended_Log( variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Enable_Extended_Log\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 43 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6213D20124C149648FFCCD6E66E53566 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 44 1 0 \"cfadb79c_ec52_4a4c_8c613ef78f0d979e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::EnableExtendedLog();\r\n// }} \"\"\r\n// {{ 45 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6213D20124C149648FFCCD6E66E53566 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 46 1 0 \"352e0c88_c061_4d35_a4aeefb9fd441f38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 47 1 0 \"f3a44791_8d5d_43fd_90d52cf307b0d397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Enable_Extended_Log\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Get_Last_Error\" \"Begin\"\r\nfunction pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Get_Last_Error\" \"InitLocals\"\r\no_strLastError = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 49 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 50 1 0 \"1bbf5668_7da2_4593_a954eb5c20baf705\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::GetLastError(i_intModuleID, o_strLastError);\r\n// }} \"\"\r\n// {{ 51 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 52 1 0 \"1340b7b5_ecea_4308_8a8ee7d11c70edc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 53 1 0 \"49163b05_332f_4bd8_b1a0875b42af9888\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Get_Last_Error\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Initialize\" \"Begin\"\r\nfunction pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Initialize\" \"InitLocals\"\r\no_intModuleID = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 55 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_970E55A20F9F4e42B517C5847AEB8E38 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 56 1 0 \"297fb019_93d9_4b46_a56c3a32731a402d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Initialize(i_intComport, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 57 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_970E55A20F9F4e42B517C5847AEB8E38 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 58 1 0 \"911745ea_61cd_4f58_b8e0704906ebf222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 59 1 0 \"b8217b02_6fd3_4298_892d2568d77c74e0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure_Dynamically\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure_Dynamically\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 67 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AA203E903AF848e0B0529507465A94E1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 68 1 0 \"b4fb2269_5bd3_4f6c_8660501f53441522\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 69 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AA203E903AF848e0B0529507465A94E1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 70 1 0 \"b05cdfa7_6391_4ff4_81ed18ac5f6a52e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 71 1 0 \"1fc3b06c_8e97_43c2_8dfc804da44c34e7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure_Dynamically\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Battery_Data\" \"Begin\"\r\nfunction pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Battery_Data\" \"InitLocals\"\r\no_strReplacementDate = 0;\r\no_intChargeCounter = 0;\r\no_intBatteryCondition = 0;\r\no_intActualCharge = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 73 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_996D8DE608A04eacBD637370A8B07B64 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 74 1 0 \"da6aa4ae_3fb0_4dcb_a2a72e6dbb23e4e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, o_intBatteryCondition, o_intActualCharge);\r\n// }} \"\"\r\n// {{ 75 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_996D8DE608A04eacBD637370A8B07B64 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 76 1 0 \"374fab67_3d2c_479b_824c5098139051de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 77 1 0 \"847b4f5f_d886_41dc_9c81ac903c97a162\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Battery_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Calibration_Values\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Calibration_Values\" \"InitLocals\"\r\no_fltpHLowValue = 0;\r\no_fltpHLowVoltage = 0;\r\no_fltpHHighValue = 0;\r\no_fltpHHighVoltage = 0;\r\no_fltCalibrationTemperature = 0;\r\no_fltCalibrationOffset = 0;\r\no_fltCalibrationSlope = 0;\r\no_intCalibrationSlopeRation = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 79 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A458A465FAAE4354AE920AE0DDDD5DCA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 80 1 0 \"be826faa_b99a_4b0d_8bcfd9b9e6f58c1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 81 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A458A465FAAE4354AE920AE0DDDD5DCA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"3beb4db8_474e_4c8b_8c2a3a46b738bdbe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 83 1 0 \"094d126e_7f40_4ffb_9e7c8e9df3ccc571\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Calibration_Values\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Probe_Data\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Probe_Data\" \"InitLocals\"\r\no_strReplacementDate = 0;\r\no_intMeasurementCounter_Probe_1 = 0;\r\no_intMeasurementCounter_Probe_2 = 0;\r\no_intMeasurementCounter_Probe_3 = 0;\r\no_intMeasurementCounter_Probe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 85 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A2F80039318F4807A9355EEE8F65F09D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 86 1 0 \"39f96463_bf0a_478e_99d106ede0c66ca8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 87 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A2F80039318F4807A9355EEE8F65F09D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 88 1 0 \"c289098d_bcc1_49b8_acdb3d5a56078d64\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 89 1 0 \"a792a4ba_ffaa_496e_a9e84924e8d48769\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Probe_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Technical_Data\" \"Begin\"\r\nfunction pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Technical_Data\" \"InitLocals\"\r\no_intPartNumber = 0;\r\no_intRevision = 0;\r\no_intSerialNumber = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 91 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_903977FAFD2C4e8bB89D056988CC3EF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 92 1 0 \"7b65b46f_5b72_4640_9861bacd4ace5643\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::RequestTechnicalData(i_intModuleID, i_intHardwareNumber, o_intPartNumber, o_intRevision, o_intSerialNumber);\r\n// }} \"\"\r\n// {{ 93 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_903977FAFD2C4e8bB89D056988CC3EF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 94 1 0 \"0381375a_eba4_4614_93c926558c2d7558\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 95 1 0 \"ef7e5b04_2a8d_43c7_a579daaa255b35fc\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Technical_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Voltage_Data\" \"Begin\"\r\nfunction pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Request_Voltage_Data\" \"InitLocals\"\r\no_varVoltageData = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 97 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_44952D3849BE4a219EFD38455D886E56 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 98 1 0 \"4a76ad62_352e_40ca_81088288e34cdeee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Module::RequestVoltageData(i_intModuleID, i_intSelector, o_varVoltageData);\r\n// }} \"\"\r\n// {{ 99 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_44952D3849BE4a219EFD38455D886E56 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 100 1 0 \"043b5397_9bb9_4522_978d64f42943ee9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 101 1 0 \"4db83f8d_771a_4c91_979c072c89b28ed1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Request_Voltage_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Battery_Replacement_Date\" \"Begin\"\r\nfunction pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Battery_Replacement_Date\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 103 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C13705D0B70B4e8eAA80912053CAC1F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 104 1 0 \"b9ab604b_ca72_4ee2_b99c1a7872da4624\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetBatteryReplacementDate(i_intModuleID, i_intDay, i_intMonth, i_intYear);\r\n// }} \"\"\r\n// {{ 105 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C13705D0B70B4e8eAA80912053CAC1F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 106 1 0 \"bbb0d55f_6f61_4bd2_9477cf3936b9472e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 107 1 0 \"28fa18e0_d7a7_4d5b_bce1e78a6bfdac57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Battery_Replacement_Date\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Charge_Parameters\" \"Begin\"\r\nfunction pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Charge_Parameters\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 109 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4A84194D248D4b0088B93676813BEE2D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 110 1 0 \"c35f1bf8_8cea_4986_96ba8ef0097524c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetChargeParameters(i_intModuleID, i_blnCharge, i_blnAutoCharge, i_intChargeLevel);\r\n// }} \"\"\r\n// {{ 111 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4A84194D248D4b0088B93676813BEE2D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 112 1 0 \"ed302be8_6fd1_4215_80f039adbe780f7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 113 1 0 \"046ad941_806a_4ac7_b2f4ca60ae77c950\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Charge_Parameters\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Probe_Replacement_Date\" \"Begin\"\r\nfunction pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Probe_Replacement_Date\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 115 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_244E236DDAAF4536B249F6D8792A60A2 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 116 1 0 \"d9b9ef0e_6c6d_4272_97b55d209307f7e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetProbeReplacementDate(i_intModuleID, i_intProbe, i_intYear, i_intMonth, i_intDay);\r\n// }} \"\"\r\n// {{ 117 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_244E236DDAAF4536B249F6D8792A60A2 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 118 1 0 \"4ebc6879_cd2b_448a_b753ab26b9645392\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 119 1 0 \"048020e2_7cb7_4b0e_9d7951ebced9d9ca\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Probe_Replacement_Date\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Shutdown\" \"Begin\"\r\nfunction pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Shutdown\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 121 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 122 1 0 \"3b63fd46_6389_405c_8940455e9f127468\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetShutdown(i_intModuleID, i_intMode);\r\n// }} \"\"\r\n// {{ 123 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7907B9BE9B2647d09FEC0DD2979D5B14 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"804cd242_3933_4e99_a96c4367bbe3f9ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 125 1 0 \"9a1900c4_4658_4aa6_8f04356997560654\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Shutdown\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Technical_Data\" \"Begin\"\r\nfunction pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Technical_Data\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 127 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_007BB8AFAE534922B6C5EA899698EA91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 128 1 0 \"8dd87239_734f_4123_90ead0ba65f0bbbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetTechnicalData(i_intModuleID, i_intHardwareNumber, i_intPartNumber, i_intRevision, i_intSerialNumber);\r\n// }} \"\"\r\n// {{ 129 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_007BB8AFAE534922B6C5EA899698EA91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ebf84842_e475_488c_9862aa5015f5fec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 131 1 0 \"c02ce5b6_c9e6_47bf_95caba6446142317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Technical_Data\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Trace_Level\" \"Begin\"\r\nfunction pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Set_Trace_Level\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 133 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E054D9949EA7480786FBA86809E1466A ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 134 1 0 \"6047012d_fb0a_4b7e_8aaf873bfe7845f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 135 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E054D9949EA7480786FBA86809E1466A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 136 1 0 \"555d191a_8248_46cf_8ea20adfafc8467f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 137 1 0 \"de8cbad8_49c8_46e7_a0700ca21c045a6c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Set_Trace_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Sleep\" \"Begin\"\r\nfunction pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Sleep\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 139 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_76094A1A6DE5412d86AB364ECCABC11C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 140 1 0 \"2a282561_49e7_4e38_9a879c795b444f19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Sleep(i_intModuleID);\r\n// }} \"\"\r\n// {{ 141 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_76094A1A6DE5412d86AB364ECCABC11C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 142 1 0 \"e0169354_be6f_4f1f_8bdafe388a9c4771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 143 1 0 \"a89f0ae6_b4cb_4656_a2ccf7c867144e25\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Sleep\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Terminate\" \"Begin\"\r\nfunction pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 150 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2159C97E67DC41d2931B29ED5B108588 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 151 1 0 \"5eafa92d_a6f8_43b4_85d53439a46b7150\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Terminate(i_intModuleID);\r\n// }} \"\"\r\n// {{ 152 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2159C97E67DC41d2931B29ED5B108588 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"c747eb9a_16b7_4375_a0b8c1fa3905f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 154 1 0 \"668de1be_76f5_4b4b_9bdce72e242c1da9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Wakeup\" \"Begin\"\r\nfunction pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Wakeup\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 156 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_AC33764C04E24aa192975F20CE5661F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 157 1 0 \"b874aa08_e28d_448b_bcb942611cb0081e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::WakeUp(i_intModuleID);\r\n// }} \"\"\r\n// {{ 158 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_AC33764C04E24aa192975F20CE5661F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"0bb81b5c_7196_46bd_a008386d79a49a7b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 160 1 0 \"a07b04fa_c851_41e7_b5a0a2399e165b7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Wakeup\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Initialize\" \"Begin\"\r\nfunction pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 162 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7FD13D87F8D74230A78B98C5B83581AE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 163 1 0 \"73832845_cea9_4136_b893d93437a02f00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::Initialize(ML_STAR, i_intComport, i_strModuleName, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 164 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7FD13D87F8D74230A78B98C5B83581AE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 165 1 0 \"dba61f0e_40e0_4580_a0521efc45217200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 166 1 0 \"10f9829c_87f4_46c5_9b033ca5b5c71300\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Set_Trace\" \"Begin\"\r\nfunction pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Set_Trace\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 168 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 169 1 0 \"878952e6_2860_4a96_a9c8d7f2ae67c7a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 170 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B6EDA3032F05464e9D3AC6C60F6B38DD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 171 1 0 \"0f963a42_c256_489a_aaa94e1febe27518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 172 1 0 \"96553ed4_7e70_4640_9f84ae4898d745b6\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Set_Trace\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Terminate\" \"Begin\"\r\nfunction pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 174 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3C057778551F44998B365E9253A02217 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 175 1 0 \"d4227020_99a1_4aa0_9d6e084149e70033\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::Terminate(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 176 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3C057778551F44998B365E9253A02217 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"66061ca5_5cc5_4d0f_9202635c03ec1307\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 178 1 0 \"d9a253c1_0910_4e9f_a187149052ec3a76\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Wash\" \"Begin\"\r\nfunction pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Washer_Wash\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 180 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_78E848113B364c5bA57553087E6B301D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 181 1 0 \"f05733be_cfcc_4ec8_b953e718e1850a9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Washer_Module::Wash(ML_STAR, i_intModuleID, i_intCycleNumber);\r\n// }} \"\"\r\n// {{ 182 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_78E848113B364c5bA57553087E6B301D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 183 1 0 \"c9e18e37_6611_4c12_8283218c23b61e2f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 184 1 0 \"f80ebec7_e999_4849_ba9dd4ea56ea0f57\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Washer_Wash\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Initialize\" \"Begin\"\r\nfunction pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Initialize\" \"InitLocals\"\r\no_intModuleID = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 13 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_5DF85C91FEE34492A487BBB5FD9647BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 14 1 0 \"05f15313_9f49_451a_95bbeb4c53196bc2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::Initialize(ML_STAR, i_strModuleName, i_blnSimulationMode, o_intModuleID);\r\n// }} \"\"\r\n// {{ 15 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_5DF85C91FEE34492A487BBB5FD9647BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 16 1 0 \"ab7a6bde_3380_4c1c_9e57ee94fd815540\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 17 1 0 \"607202ca_06ee_4a0f_866a0d2c76d5cb28\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Set_Trace\" \"Begin\"\r\nfunction pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Set_Trace\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 19 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C2938C2495A74c4cA632332F553DD428 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 20 1 0 \"3cc57734_cda6_468c_a2c90189391dadd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel);\r\n// }} \"\"\r\n// {{ 21 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C2938C2495A74c4cA632332F553DD428 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 22 1 0 \"b9209d93_3ded_4c38_96bc13f91674c01c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 23 1 0 \"294bac48_145a_4d48_a51b4612dd3440c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Set_Trace\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StartDrying\" \"Begin\"\r\nfunction pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_StartDrying\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 25 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_04151AE1B5D4492089F91C4D24DFB4D1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 26 1 0 \"689c20eb_6a9d_4a74_88f159552e3027f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::StartDrying(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 27 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_04151AE1B5D4492089F91C4D24DFB4D1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 28 1 0 \"adeee0f8_b525_41bd_a62b5edf9d117c6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 29 1 0 \"a3b51a95_0ff1_47ef_b688fd99b4c881ec\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StartDrying\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StopDrying\" \"Begin\"\r\nfunction pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_StopDrying\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 31 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A4169CBA98C24da39C38331F531BB852 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 32 1 0 \"db4fe054_872e_4452_8835e28b39a4ad1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 33 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A4169CBA98C24da39C38331F531BB852 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"47b1bc71_479a_474d_a5b3c1fe4e31d5e7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 35 1 0 \"29d5863e_4160_4760_b56b41dc758bdcd9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_StopDrying\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Terminate\" \"Begin\"\r\nfunction pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"pH_Dryer_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 37 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_976FC1B840694cb598ACF66A1DAAA974 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 38 1 0 \"59fd889e_96a4_4c23_a1f9d3304535be72\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, i_intModuleID);\r\n// }} \"\"\r\n// {{ 39 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_976FC1B840694cb598ACF66A1DAAA974 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"6d67118e_7746_4fb9_aa5ef1f641c11cb5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 41 1 0 \"75b21d84_d009_4e72_8a0184c15d4eb585\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Dryer_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-10-28 20:30$$checksum=f397232e$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxE052.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxE82B.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_centrifuge.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_MPE.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module Controller.hs_\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"Hamilton MPE2\\\\HSLMPELib.hsl\" } \r\n namespace _Method { #include \"Hamilton Centrifuge\\\\Hamilton Centrifuge.hsl\" } \r\n namespace _Method { #include \"HSL_LiquidClassLib.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\nvariable NodeName;\r\nvariable Label;\r\nvariable AlwaysInitialize;\r\nvariable intPresentPosition;\r\nvariable Direction;\r\nvariable CloseCoverAtEnd;\r\nvariable ArrSpeed;\r\nvariable ArrAcceleration;\r\nvariable ArrDuration;\r\nvariable i_ArrDuration[];\r\nvariable i_ArrAcceleration[];\r\nvariable i_ArrSpeed[];\r\nvariable Decelleration;\r\nvariable Speed;\r\nvariable Acceleration;\r\nvariable MaxRunTime;\r\nvariable SpeedSensorTrip;\r\nvariable TimeLeft;\r\nvariable GravitySensorTrip;\r\nvariable CurrentSpeed;\r\nvariable TemperatureSensorTrip;\r\nvariable ProfileStatus;\r\nvariable RotorDriveRunning;\r\nvariable Deceleration;\r\nvariable DeviceName;\r\nvariable AdapterDeviceID;\r\nvariable InstrumentName;\r\nvariable PortNumber;\r\nvariable MPEOptions;\r\nvariable ComPort;\r\nvariable BaudRate;\r\nvariable CollectionPlateHeight;\r\nvariable OffsetFromNozzles;\r\nvariable NeedleOffset;\r\nvariable WellVolume;\r\nvariable FlowRate;\r\nvariable SourceID;\r\nvariable Needleoffset;\r\nvariable PlateHeight;\r\nvariable WellDepth;\r\nvariable EvaporateTime;\r\nvariable FollowRate;\r\nvariable EvaporateTravelDistance;\r\nvariable NozzleHeight;\r\nvariable FilterHeight;\r\nvariable WasteContainerID;\r\nvariable FullReading;\r\nvariable CapacityVolume;\r\nvariable CalibrationDate;\r\nvariable EmptyReading;\r\nvariable blnReset;\r\nvariable CurrentGasTemperature;\r\nvariable Heating;\r\nvariable CurrentEvaporatorTemperature;\r\nvariable MinimumGasTemperature;\r\nvariable MinimumEvaporatorTemperature;\r\nvariable MaximumEvaporatorTemperature;\r\nvariable MaximumGasTemperature;\r\nvariable ManifoldPressureSensor;\r\nvariable HighPressureSensor;\r\nvariable InputPressureSensor;\r\nvariable LowPressureSensor;\r\nvariable MaximumTemperature;\r\nvariable MinimumTemperature;\r\nvariable VacuumActive;\r\nvariable VacuumRunTime;\r\nvariable DisableVacuumCheck;\r\nvariable Smart;\r\nvariable SensorReading;\r\nvariable ControlPoints;\r\nvariable ReturnPlate;\r\nvariable Volume;\r\nvariable Seconds;\r\nvariable DefaultTemperature;\r\nvariable MeasureTime;\r\nvariable MeasureHeight;\r\nvariable CalibrationValue1;\r\nvariable TempSoln1;\r\nvariable TempSoln2;\r\nvariable CalibrationValue2;\r\nvariable blnCalibrateDynamically;\r\nvariable CalibrationValueRef;\r\nvariable TempSolnRef;\r\nvariable Module;\r\nvariable Reference;\r\nvariable Calibration1;\r\nvariable Calibration2;\r\nsequence seqModule;\r\nsequence seqCalibration1;\r\nsequence seqCalibration2;\r\nsequence seqReference;\r\nvariable CalibrationTime;\r\nvariable arrCalibrationSlopeRatios[];\r\nvariable arrpHValuesReferenceSolution[];\r\nvariable CalibrationSlopeRatios;\r\nvariable pHValuesReferenceSolution;\r\nvariable BluetoothPort;\r\nvariable NumDryCycles;\r\nvariable NumWashCycles;\r\nvariable DryTime;\r\nvariable Gripper;\r\nsequence seqGripper;\r\nvariable WashPosition;\r\nsequence seqWashPosition;\r\nvariable DryPosition;\r\nsequence seqDryPosition;\r\nvariable DryCycles;\r\nvariable TransportChannel;\r\nvariable WashCycles;\r\nvariable arrpHValues[];\r\nvariable flt_pHValues;\r\nvariable seqMeasure;\r\nvariable ProbePattern;\r\nvariable seqMeasurement;\r\nvariable MeasurePositions;\r\nvariable hssErrCode;\r\nvariable LiqClassParameterName;\r\nvariable LiqClassParameterValue;\r\nvariable LiquidClassName;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_InitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"04505c20_428c_4440_8169ddcbaade8bbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 0);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 29 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 30 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 31 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 34 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 35 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 38 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 39 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 40 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 41 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 42 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 43 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 44 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 45 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 47 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 48 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 49 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 51 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 52 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 53 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 62 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 64 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 66 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 76 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 77 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 78 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 79 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 80 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 81 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 82 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 83 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 84 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 85 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 86 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 88 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 89 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 95 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 96 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 99 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 100 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 101 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 122 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 123 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 124 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 125 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 126 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 127 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 128 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 129 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 130 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 131 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 132 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 134 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 135 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 141 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 142 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 143 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 145 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 146 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 150 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 151 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 152 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 153 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 154 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 155 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 156 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 157 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 158 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 159 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 160 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 161 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 163 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 164 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 165 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 169 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 170 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 174 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 175 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 176 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 177 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 178 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 179 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 180 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 182 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 183 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 184 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 186 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 187 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 188 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 201 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 202 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 203 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 204 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 206 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 207 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 208 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 209 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 216 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 217 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 218 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 220 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 221 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 222 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 238 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 239 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 240 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 241 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 242 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 243 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 244 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 245 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 252 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 253 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 254 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 256 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 257 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 260 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 261 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 262 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 263 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 264 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 265 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 266 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 267 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 268 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 269 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 270 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 271 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 274 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 275 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 276 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 279 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 280 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 285 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 286 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 287 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 289 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 290 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 293 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 294 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 295 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 298 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 299 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 300 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 312 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 313 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 314 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 315 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 316 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 317 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 318 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 319 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 320 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 321 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 322 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 323 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 324 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 325 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 326 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 327 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 328 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 329 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 330 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 331 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 334 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 335 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 336 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 338 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 339 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 340 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 341 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 342 1 0 \"32f0a8f9_3af2_42a3_90f246cc874e0e8f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 343 1 0 \"791b6e1a_07b8_49cb_8122670d0871189f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 344 1 0 \"036d0d84_e161_4b03_8b828dcb6b44e437\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{ 345 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 346 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 347 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 348 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 349 1 0 \"6bd2d2a1_1051_4443_a1af9b68df2876b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 350 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 352 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 353 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 354 1 0 \"064a5c1b_f450_44d6_a2042ebde115527d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 356 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 357 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 358 1 0 \"ca4b75ee_26d9_4a3b_8e3366d575348125\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 359 1 0 \"ea0afc75_5bc7_4c06_ac73c2f4d5f887a0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 360 1 0 \"1965d128_c7f1_4206_87e4ca1ce70c1dff\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 361 1 0 \"615cbdd3_e5f2_4bc0_bb3661a2482eb770\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 362 1 0 \"86fc0696_8c53_4c05_a9c0eaa58f279054\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 363 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 366 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 367 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 368 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 369 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 370 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 371 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 372 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 373 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 374 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 375 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 376 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 377 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 378 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 379 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 380 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 381 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 382 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 383 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 384 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 385 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 386 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 387 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 388 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 389 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 390 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 391 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 392 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 393 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 394 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 395 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 396 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 397 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 398 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 399 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 400 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 401 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 402 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 403 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 404 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 405 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 406 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 407 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 408 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 409 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 410 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 418 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 419 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 420 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 421 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 422 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 423 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 424 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 425 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 426 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 427 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 428 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 429 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 430 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 431 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 432 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 433 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 434 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 435 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 436 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 437 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 438 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 439 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 440 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 441 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 442 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 443 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 444 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 446 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 447 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 448 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 449 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 450 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 451 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 452 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 453 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 454 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 455 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 456 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 457 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 458 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 459 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 460 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 461 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 462 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 463 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 464 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 466 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 467 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 468 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 469 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 470 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 471 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 472 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 473 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 474 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 475 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 476 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 477 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 478 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 479 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 480 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 481 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 482 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 483 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 484 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 485 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 486 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 487 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 488 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 489 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 490 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 491 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 492 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 493 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 494 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 495 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 496 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 497 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 498 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 499 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 500 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 502 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 503 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 504 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 506 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 507 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 508 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 509 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 510 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 511 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 512 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 513 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 514 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 516 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 518 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 519 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 520 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 521 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 522 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 523 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 524 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 525 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 526 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 527 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 528 1 0 \"5f5e5c89_0c1a_497b_80c550dbc4676208\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 529 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 530 1 0 \"2c2e9953_5968_4384_8b2dad24b0960278\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 531 1 0 \"7f4d5cda_c10f_4317_ba7613cd10d2e90d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 532 1 0 \"cf155262_dfb4_46b4_aff762c7b4c18d8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 533 1 0 \"471df283_02f5_4daf_9c83999e3b1fd8e1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 534 1 0 \"0b8e6d49_655f_42a7_bcfdeac76a40c6e0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 535 1 0 \"f49f31b3_d742_44ae_a6a076108c3f9ab4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 536 1 0 \"ff83dd4c_3534_4986_94892407e3535fc9\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 537 1 0 \"cc6fc2b8_d157_4b37_bc7521b8a6fd04a3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 538 1 0 \"2b1aa4c9_4f3c_4d90_adb26b947b024496\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 539 1 0 \"d022cf45_e823_4e11_931bf77272b92501\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 540 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 541 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setAspirateParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 542 1 0 \"d741f062_6b73_4365_ad9c8646a016138d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 543 1 0 \"86836193_1dcb_460e_8db2dda6b775abd9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"d94798d1_53c6_40de_b72c239404c94352\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 545 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 546 1 0 \"3f31be32_d184_4c20_a5127e5057f15149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"b75ad951_95b1_4114_864093345ffb2cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 548 1 0 \"a39ebf7f_8e12_47a6_aad54fd2890ba779\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 549 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E1EAD148F3254941A251DC272F774AB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 550 1 0 \"a14cc465_549a_4722_b3fb08ce2532a405\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 551 1 0 \"cca3a5d2_6d84_4105_a976a70a83585972\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 552 1 0 \"ec08039a_3b70_4854_894d57c13ffdc877\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 553 1 0 \"5861a5ed_1f9d_48fc_9f3d976bc1a13751\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 554 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"setDispenseParam\")\r\n{\r\n// }} \"\"\r\n// {{{ 555 1 0 \"4aa7b9ce_fd73_4a55_9a3c704bfb4c443d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"LiquidClass\"), LiquidClassName);\r\n// }} \"\"\r\n// {{{ 556 1 0 \"27e93e41_ad5f_4b74_a1844bb15c0dfdfc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Parameter\"), LiqClassParameterName);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"10da81a6_cef8_4c18_9416f561b557ad45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Value\"), LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 558 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 559 1 0 \"b471ff31_4fdd_4a9f_87431e5741a9b969\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(LiquidClassName);\r\n// }} \"\"\r\n// {{{ 560 1 0 \"8f401b71_156d_43b5_892982e8478456f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue);\r\n// }} \"\"\r\n// {{ 561 1 0 \"28e95405_685a_4032_b361461ff897189f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 562 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3A18CA152B674dd3A42B81C4D45F719E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 563 1 0 \"c7174915_16fd_40d8_b94eac8999f4eab7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 564 1 0 \"cee50056_b4b0_473b_8d775dd178dab21d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 565 1 0 \"d805e811_a796_44e9_93839b02b6d05f1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Liquid Class Set Parameter:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"da31069e_a165_4c2e_b95619cb57c4ae8a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 567 1 0 \"833dd647_9b77_4420_bcf4ca4df1d1919a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 568 1 0 \"193ad70f_ec03_47e5_b1f5ef9ff75805c0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 569 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 570 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 571 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectIP\")\r\n{\r\n// }} \"\"\r\n// {{{ 572 1 0 \"b450ee5c_4bce_435e_b562523f18ce0142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"InstrumentName\"), InstrumentName);\r\n// }} \"\"\r\n// {{{ 573 1 0 \"13c30b43_9a94_4cd1_a907aa21f01057cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"68ec12ae_0e01_4827_9460e39fddef7f4d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"7c482f87_e50a_44d8_88516cf7d087dbde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 576 1 0 \"8d4e01b7_ef9e_4570_a2e08f31ecacc259\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 577 1 0 \"005f0b12_4fb1_48ba_bcfeb961b9419149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDeviceID = StrIStr(DeviceID);\r\n// }} \"\"\r\n// {{{ 578 1 0 \"51077fef_f212_48a6_8f6c43d7d5f5df97\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 579 1 0 \"97ff097f_9089_4ac0_82438cbd6f0a9c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 580 1 0 \"c397d56d_00f8_4e32_bf71c20e91dcac17\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 581 1 0 \"2777cb67_3095_437b_9b54d34ead8fcab2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 582 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 583 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ConnectCOM\")\r\n{\r\n// }} \"\"\r\n// {{{ 584 1 0 \"e8776203_e1ed_4373_8a427cb0d8b8d29f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ComPort\"), ComPort);\r\n// }} \"\"\r\n// {{{ 585 1 0 \"4c600ed2_a490_4f3e_bdadfe3b174db193\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BaudRate\"), BaudRate);\r\n// }} \"\"\r\n// {{{ 586 1 0 \"e77abf5c_e94e_469b_82ea0f774615a671\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"aaebc2c7_eafc_456e_83386035ed203694\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MPEOptions\"), MPEOptions);\r\n// }} \"\"\r\n// {{{ 588 1 0 \"3b2a8a1c_5b74_4668_b7a5ca974a7658b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 589 1 0 \"1a9f7ef9_8c04_4517_8d26efaa81d3eff7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 590 1 0 \"104f0498_cc9f_4508_8f28e3b53675ef53\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 591 1 0 \"0098c030_fe6b_49bb_92b77ef5a5c7372d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 592 1 0 \"62a26733_db4f_440f_9fb51db5fef61711\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 593 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 594 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ClampFilterPlate\")\r\n{\r\n// }} \"\"\r\n// {{{ 595 1 0 \"bdc39916_5944_49a4_846784d94f27267f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"cf252c80_073f_4e8b_85e84a546e80666b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"16a9c218_a7c3_403c_a7c005e96566f8d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 598 1 0 \"de8afcf3_ec32_4067_895aceb7a7a650eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 599 1 0 \"1abd6ad0_87b9_4459_b74e20f9717ebd2b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 600 1 0 \"94f49f46_ad96_4874_9148653f8fa3302e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 602 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 603 1 0 \"ae857f70_e319_4ada_a8b086f120e84247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"a173d887_781c_4262_9fa6c81e253bd32c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CollectionPlateHeight\"), CollectionPlateHeight);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"7e167a7c_dfb2_4798_814039b7430ccbae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"OffsetFromNozzles\"), OffsetFromNozzles);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"aa2d8e6c_c878_40f1_a1325cb8fe399514\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"6ad949b9_e02e_4686_be660950f5282aee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 609 1 0 \"421097a4_a57a_4dec_8b9257b5d77233e4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 610 1 0 \"d19e0aae_3b5d_4b88_9b9fa6cd22d67f22\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 611 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 612 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_CollectionPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 613 1 0 \"fc436f5c_aaba_4906_a4074c83d00f028c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 614 1 0 \"65ba4a03_7064_45c5_8ae9ffb86a3234b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 615 1 0 \"39ef177a_96d2_411f_97c648ff2ed91ea8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 616 1 0 \"cbdb85be_569e_40cb_93e3582de4fd718f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 617 1 0 \"b7625009_1717_4db6_8d24209ff3b8dbb8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 618 1 0 \"21b7e081_f229_400f_9a51a8b8a5412447\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 619 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 620 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 621 1 0 \"acfb16ed_a9d1_4a63_a9c0106aff00758d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 622 1 0 \"f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"b23baddd_cdbc_45fd_8c093ab349a937f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"1695a8ad_2f0f_48a1_a9d8534daaa45c88\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 625 1 0 \"ee3d4b03_3d8c_4718_9f927c1855c7346e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 626 1 0 \"38689ea3_dc56_4d7c_88d585797b9d957e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 627 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 628 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Dispense\")\r\n{\r\n// }} \"\"\r\n// {{{ 629 1 0 \"d9eb3796_7e12_47f9_b6636e222cb5d878\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"e9efebdb_3e29_4a1f_9a03447005f6b247\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"6812297a_3eee_4055_8de5373a96f6eb0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 633 1 0 \"b6c33a7b_d31f_4f02_8921532db5005869\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), NeedleOffset);\r\n// }} \"\"\r\n// {{{ 634 1 0 \"f78d0de5_185c_4061_ad416fe94f5dba58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 635 1 0 \"01ebd08b_bf22_4edc_b4101325c0ed5d7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 636 1 0 \"46be0614_7064_45bf_962fe4fdb2d26ad3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 637 1 0 \"3d8efec9_ac55_4f4d_90f0259610f7394d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 638 1 0 \"45f798d0_f63a_4141_9f0512725c85b742\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 639 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 640 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Evaporate\")\r\n{\r\n// }} \"\"\r\n// {{{ 641 1 0 \"eff0d502_cbda_4d56_a060ee98b8acfa1b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"358b8e75_dcca_4656_8f480e051d9768ac\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"11f40dee_5289_4a85_b3065e4b85d93416\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"e660629d_9388_44fa_9749984b17a66bc9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"3a86a09d_a4ea_4a34_8573e644beb7c6a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"6cc724c7_a4bf_4c46_948af3e23aaa8758\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 647 1 0 \"6bba2cf9_561d_4a3f_87ee7949c7ce3fbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 648 1 0 \"d305f425_1c51_43f7_9c5bd6ec76d64b05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 649 1 0 \"e0397cd6_5fd2_4820_953df1804d2989f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 650 1 0 \"c0d12f62_bf0c_4968_8cf8102df9290745\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 651 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 652 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporatePrepare\")\r\n{\r\n// }} \"\"\r\n// {{{ 653 1 0 \"04b183eb_df7f_4775_a8db9b61d0822126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"7ae5dae4_f3fe_42d9_b07c545e18248898\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"67e84057_0c19_4600_b6bb1cda5b345f8d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"31ab1ccb_49b6_45ab_886cb04421f727d1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellDepth\"), WellDepth);\r\n// }} \"\"\r\n// {{{ 657 1 0 \"f9f854b4_d03f_44fa_866ecad432e5ee59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"0e37d7ed_b49b_42c3_b9306b90a8fbecba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 659 1 0 \"bdc5441b_5578_4bb1_9a5511f8d6cb37a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 660 1 0 \"82509201_581c_4a09_8c1fba65491074b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 661 1 0 \"ea8576f1_52df_4787_b62e82c44a5b6131\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 662 1 0 \"54c61117_4dde_492d_91df73eafbdbdf0a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 663 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 664 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateEnd\")\r\n{\r\n// }} \"\"\r\n// {{{ 665 1 0 \"661eb571_7a3f_452f_8cd8e71af5633aa2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 666 1 0 \"ce6d86eb_0d5e_4931_9b8ae8ab7b99d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 667 1 0 \"407cb55f_f828_4adb_b9a1dcfb39934436\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 668 1 0 \"3281176b_4d2d_43ea_b218e196deacc5a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 669 1 0 \"dc7eb698_c6ab_4bce_b2eae2a106e79c26\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 670 1 0 \"be0cdb40_9439_44c4_9349319653177825\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 671 1 0 \"f877f93d_359e_486f_aabbf156b38c0fd4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 672 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 673 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_EvaporateWithRate\")\r\n{\r\n// }} \"\"\r\n// {{{ 674 1 0 \"f74fcc26_c2be_481c_9b4822ade43b6399\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 675 1 0 \"d104e730_2dfe_46de_9499ec6975f6d3ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"PlateHeight\"), PlateHeight);\r\n// }} \"\"\r\n// {{{ 676 1 0 \"ef36faf4_19fc_4253_92c3ba78e66fa81b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NeedleOffset\"), Needleoffset);\r\n// }} \"\"\r\n// {{{ 677 1 0 \"4e02e5d8_e2c2_421e_9e232b4b54ffc755\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"EvaporateTravelDistance\"), EvaporateTravelDistance);\r\n// }} \"\"\r\n// {{{ 678 1 0 \"d5f4fc63_608e_48f5_be8989e9f0ed73d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"EvaporateTime\"), EvaporateTime);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"ce2ba2cc_4f8f_4960_a2120a80bdee1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FollowRate\"), FollowRate);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"72651c9a_a411_472d_9fbc4d5cf13dbe7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"6d1ded15_26bd_4832_a66e0a7ed7ae5de8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"24da9a05_6ec1_4a5d_aa357161406c5b4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 683 1 0 \"1d9fee0e_9129_4e05_9387d48ad64ce5b6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 684 1 0 \"77175285_9bc0_458e_bdb99486afa263f6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 685 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 686 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlatePlaced\")\r\n{\r\n// }} \"\"\r\n// {{{ 687 1 0 \"6ad26884_293d_471f_87d63211dbb2130a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 688 1 0 \"f712b14e_2361_4388_aaa3d1b6bdd76274\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FilterHeight\"), FilterHeight);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"046c36b4_609e_41ad_802334b853237e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"NozzleHeight\"), NozzleHeight);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"9cd1e28f_9f73_4580_933330d72a187021\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"77cbd1e2_38c4_46cf_8a36d8bf2fd59668\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"e9b09e36_5025_44eb_8a0241793ecb2130\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 693 1 0 \"5517c3d2_626c_49ed_9f300f5eb7cad266\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 694 1 0 \"18d62f91_3389_4a05_81dcd2b1f9f35eb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 695 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 696 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_FilterPlateRemoved\")\r\n{\r\n// }} \"\"\r\n// {{{ 697 1 0 \"c8d80340_50aa_42c3_99a4c45d2c5a2e55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"7ca7dac8_386f_4d72_a80c56436e8d337a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"7815e103_9108_40ec_8c501ab868674b02\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"7fab13f9_e6cb_4d15_9c7359f69f1452eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 701 1 0 \"ba1982ca_d913_4372_a876d2c629a3da01\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 702 1 0 \"a8bdabef_328d_4914_85c9d5a5e206e280\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 703 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 704 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Flush\")\r\n{\r\n// }} \"\"\r\n// {{{ 705 1 0 \"ebd897c5_30b8_4f3b_9955cc2c076a2cec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 706 1 0 \"8a5b6ab5_73a5_448f_97d7f2f80f295781\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 707 1 0 \"7618744c_4ba2_44a3_af152e17b8f23a82\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 708 1 0 \"0b45dbd2_d2ac_4bbc_b063c7256c9e2f37\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"7ebe8a95_b1cb_40d0_9bbf0caa753020ff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"f4745c1d_3edb_4f49_9389682fd5db4746\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"84a474ac_82c0_447e_853e8a0e803cdc9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 712 1 0 \"df5f2b51_da1c_47c3_83076cfc5952018e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 713 1 0 \"d93f150d_eae1_437f_a22a3b0c4c9072e4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 714 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 715 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 716 1 0 \"8399e7aa_cf6e_40a4_94cbfd345e14133a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 717 1 0 \"1b0cf945_ddeb_4f68_ad8567b71c28ba9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 718 1 0 \"49eec349_8ea2_4006_8740931d862a8cc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 719 1 0 \"c87d301f_8a12_4619_b911ef3098a17d58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"7e693f5e_19bf_4fe8_93ae99fb04f02aa3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCapacityVolume = StrFStr(CapacityVolume);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"8d684024_7a1e_41a0_aff0fbb060f288c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nEmptyReading = StrIStr(EmptyReading);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"e403fc76_66e2_4138_a91ad409fba41579\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nFullReading = StrIStr(FullReading);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"a338088c_aba6_4925_9499261419f3fd32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 724 1 0 \"467d4218_0310_4b7c_a0b5c6ba53779408\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 725 1 0 \"117f1e32_da28_4bc8_ad90f5a4f2bef282\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 726 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 727 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 728 1 0 \"c3c00992_49fa_4e7a_930d860185676008\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"a566cb57_a308_4f8d_ab4f730e5a7dcad6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"4e871da2_7414_4d04_af1133edc74f8ceb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 732 1 0 \"17cbeaea_77c3_429f_852469beae65bff2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 733 1 0 \"99e68adc_1ab2_44c2_99bb0d0791bb4b03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCurrentGasTemperature = StrFStr(CurrentGasTemperature);\r\n// }} \"\"\r\n// {{{ 734 1 0 \"19ba4b88_434c_4874_adfb9c3ce28707c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 735 1 0 \"8bfee3ed_2dfd_4096_95a3693ae02cb98b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 736 1 0 \"883d189a_5580_49b9_92fa9f7ea0b841bc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 737 1 0 \"28cc7be8_7ef9_43fd_a8b86cc9f0a88a77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 738 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 739 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetHeaterRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 740 1 0 \"ff106776_2ea1_4be4_bf299c1e9f4d6812\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"d35c7d7b_4e20_4729_898cf76f032dbd77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Reset\"), blnReset);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"eac04ccb_1d2f_4e47_a38e27549db3d0f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"7e058389_5584_400d_af8f7683d9c64549\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 744 1 0 \"cef6dc8b_b0ab_4b67_80965a20bad984a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 745 1 0 \"e95a4014_66ab_4bd9_9396f43fb303387c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature);\r\n// }} \"\"\r\n// {{{ 746 1 0 \"82d2e7b9_6b0f_4659_b3c4af2260f72b93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumGasTemperature = StrFStr(MinimumGasTemperature);\r\n// }} \"\"\r\n// {{{ 747 1 0 \"9d086c63_6438_4455_839b70d859d33023\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumGasTemperature = StrFStr(MaximumGasTemperature);\r\n// }} \"\"\r\n// {{{ 748 1 0 \"1c25f8f9_a087_4d7d_b537d06915cf733a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTargetTemperature = StrFStr(TargetTemperature);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"e0990ab5_662a_4046_a221118108390ad1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHeating = StrIStr(Heating);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"f32ac914_9488_4849_9b505cfae76c21a4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 751 1 0 \"9f1343e7_8811_4e80_a8d30414ee14e3c2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 752 1 0 \"6161ab17_f584_4948_917386b1caf60999\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 753 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 754 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetPressureReadings\")\r\n{\r\n// }} \"\"\r\n// {{{ 755 1 0 \"d6ee9000_e96e_43ee_be294bac2de3cebd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"62c2838f_1e9c_4f50_a8986bd6ab2e5735\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 757 1 0 \"9202b3b4_73ed_457a_8a0eb740d92668eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 758 1 0 \"49fdda2e_2786_49cf_bbf53a56bb6cf951\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nInputPressureSensor = StrFStr(InputPressureSensor);\r\n// }} \"\"\r\n// {{{ 759 1 0 \"5b345de1_5fff_4ef5_b48fac2958608067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nManifoldPressureSensor = StrFStr(ManifoldPressureSensor);\r\n// }} \"\"\r\n// {{{ 760 1 0 \"5083be24_6502_40dc_94e99eb7e72397de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHighPressureSensor = StrFStr(HighPressureSensor);\r\n// }} \"\"\r\n// {{{ 761 1 0 \"c5d4f5bc_5388_4cac_a5c92cce84c5358c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLowPressureSensor = StrFStr(LowPressureSensor);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"93af4507_f837_4e4d_bd0cfa9d8f20db45\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 763 1 0 \"3be8b4d4_175f_4ea5_8a5c403023c23804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 764 1 0 \"cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 765 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 766 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetTemperatureRange\")\r\n{\r\n// }} \"\"\r\n// {{{ 767 1 0 \"04868a2f_2244_4262_b16ed3464405a2c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 768 1 0 \"ac4b978a_8b0e_48c8_bfcc2cb81ada8852\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 769 1 0 \"878c4de8_f440_43d6_aa9a22d5f30c96bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 770 1 0 \"9643b7dd_1445_4981_82306a0204482dcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMinimumTemperature = StrFStr(MinimumTemperature);\r\n// }} \"\"\r\n// {{{ 771 1 0 \"5fb79249_c2be_45bc_a99aecb05a4cef34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMaximumTemperature = StrFStr(MaximumTemperature);\r\n// }} \"\"\r\n// {{{ 772 1 0 \"57512d47_ace9_4c17_a0287a31498292bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 773 1 0 \"fb5f809e_bea3_4152_8c23efc086a3f4c7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 774 1 0 \"8eb4fcd2_8586_4fdc_9eaa231938c2491c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 775 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 776 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetVacuumStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 777 1 0 \"4db40245_36cd_40c8_b0602871bedce402\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 778 1 0 \"cdd4bed1_2257_47d3_bb32dfb51dd99311\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 779 1 0 \"434c4447_ccaa_4ae8_b5332ea4a5247979\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 780 1 0 \"2758aebe_4437_4436_9ecd66602ecc20ea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nVacuumActive = StrIStr(VacuumActive);\r\n// }} \"\"\r\n// {{{ 781 1 0 \"1a22fa96_1f2a_4efb_8d4d1070f05128b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 782 1 0 \"6be26021_e618_492e_8a3a5f94a52da0f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 783 1 0 \"3f6b43d7_b3e1_4516_9a607047551e5f6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 784 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 785 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 786 1 0 \"18e9c18e_3415_4f68_b3216e3a2bb3a082\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"5335daba_8a63_418b_8286e19dbc73285e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 788 1 0 \"e9ab19e3_4828_4ead_93cb698560e3faff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 789 1 0 \"67b12292_2128_495d_af7839b207477794\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 790 1 0 \"18c78d3a_83f1_4e2a_9721dc575c326856\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 791 1 0 \"1fae7e92_6b1f_4f2a_8504e8aba7fe0846\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 792 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 793 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_InitializeWithParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 794 1 0 \"1c9e6c43_c0a4_4fa5_96eff1d2638b4426\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"a9676aeb_9a8e_4f87_866088fd8da32782\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Smart\"), Smart);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"b0f5b856_a01f_4937_bce0d90f8e48a0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"3d105105_b5a2_42bf_9008c50dfb529abf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"VacuumRunTime\"), VacuumRunTime);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"1b067bb0_12d6_47c9_b86eb44ca7ac70a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"abffb784_24c3_4278_9404e88b2a184ec3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 800 1 0 \"7f31c229_eea4_4ebc_918ad520b4e80270\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 801 1 0 \"0addb922_82a5_48e4_bf52eeb97ac93f2a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 802 1 0 \"d96ac0b7_1237_4603_ad86dfe4672ef89a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 803 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 804 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 805 1 0 \"77c0d7cc_1c53_47b5_af15f1eb5743701e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"1150d6cb_b379_4fab_8bf98a17ac6ed92c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"2ba32cb4_0177_497e_9a7f398e17134a01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"a2b6bb52_3165_4bb9_986611d0b8594d1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 809 1 0 \"5875c2d2_c94b_4860_9be1bc9f16bd64b9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 810 1 0 \"9e52a7cb_3167_4057_8d24d034c837de21\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 811 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 812 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_GetSourceConfiguration\")\r\n{\r\n// }} \"\"\r\n// {{{ 813 1 0 \"24cc9f9b_b984_4405_80b21f8bbad2c171\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"105846b6_bda2_49d7_bb68c38e99c676ce\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"8fd730db_f3ad_4187_819383f962b15dec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"d5402a0c_e7d8_4021_98f2bc49164541bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 817 1 0 \"125ed949_ace4_48a0_a45208b5a26a9545\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 818 1 0 \"cf140f83_9405_4c31_aac2bda7e3c3644d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 819 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 820 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureEmptyContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 821 1 0 \"23e6b66b_51c5_44d2_8107b570ab035bb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 822 1 0 \"c791ded2_4daa_4097_811ad01cd9dbd85e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 823 1 0 \"d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 824 1 0 \"6766bf7d_aaa7_44dd_beb7bd1925733781\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 825 1 0 \"f566d5c3_5839_4a53_aaa0e7e76d6a96d6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"ca746d4d_adf9_4d6d_b0172f1cb9e3cefe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 827 1 0 \"656f66da_3ff6_4ceb_b3958dda3e826289\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 828 1 0 \"f0e280e8_46c7_4f0f_bce33a9d98578e01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 829 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 830 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_MeasureFullContainer\")\r\n{\r\n// }} \"\"\r\n// {{{ 831 1 0 \"7ad49fa3_f8ed_4826_8c29ea54aff99447\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 832 1 0 \"636296bf_cd25_4c6e_a97120b96714e0a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 833 1 0 \"1025d7d1_0cb5_4c03_93a47206d7a73279\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 834 1 0 \"14a2a705_9362_44f9_aacee14e4189bc2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSensorReading = StrIStr(SensorReading);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"64c67d08_dac7_49dc_8a3082c4658649d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"08dbfd92_e2cd_4c53_8d8b8afb8f41b76a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 837 1 0 \"ce68b054_3aea_4f0f_9742872cca60f368\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 838 1 0 \"5be53554_4034_4654_a74514eb0d84e4a0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 839 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Prime\")\r\n{\r\n// }} \"\"\r\n// {{{ 841 1 0 \"d59e0e58_e6a4_49dc_b79c3b224f9250f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 842 1 0 \"81800d57_5b2e_4f60_80fb02f54c6d898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"6f11abee_b07f_4e3a_a91a2bb6132b9346\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"WellVolume\"), WellVolume);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"65f68e8f_a3f8_4c0e_b02af46ef0830a94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"FlowRate\"), FlowRate);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"92c62640_1748_47f5_a5b2d63033fab0fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 846 1 0 \"bce1d424_198d_4a66_bb5cfcef4223a4c1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 847 1 0 \"1d0fc35a_1e8f_492f_8115484ef5e4094c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 848 1 0 \"7b33278e_8337_43df_80fb1df2dc8d7e27\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 849 1 0 \"52fa4642_56e3_46b8_a5170d58a3d45e6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 850 1 0 \"9e79226f_dd2d_49f1_9ab8ca9ddc07f66d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 851 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 852 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToCollection\")\r\n{\r\n// }} \"\"\r\n// {{{ 853 1 0 \"327328cb_2c07_4cff_b99aff475bf220b0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 854 1 0 \"c67ca153_084e_49de_aa07c55210f0743c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 855 1 0 \"3ccb3a1f_4958_435b_b896ebc512029a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 856 1 0 \"d9d5add8_e82e_4761_b5b96d5f19ec1723\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 857 1 0 \"952f2d23_1b1e_4ff3_b0306759a52e52a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 858 1 0 \"8d9318f1_ab21_410d_a9bfb449f75064ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 859 1 0 \"5d03c560_13d7_4f4a_97c5fcb059f5d281\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 860 1 0 \"90d403df_555f_4782_bc0e9655c9dda244\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 861 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 862 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_ProcessFilterToWaste\")\r\n{\r\n// }} \"\"\r\n// {{{ 863 1 0 \"45a60cc8_74a9_4d7c_9eae47c478baa5c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"1549fe1a_4e94_418f_bb409f1556ef9241\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ControlPoints\"), ControlPoints);\r\n// }} \"\"\r\n// {{{ 865 1 0 \"6a1fdb1f_ef59_4c6d_998478bb54397381\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"ReturnPlate\"), ReturnPlate);\r\n// }} \"\"\r\n// {{{ 866 1 0 \"74579c6b_27e5_47a2_9358294506ae9b62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 867 1 0 \"fbfbbfb6_9858_4eee_aecb1e386ef2ee6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 868 1 0 \"e8ddd588_e12c_4e6a_9318d0626a183210\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 869 1 0 \"104d821e_df7b_4d35_9358fdbad381b0c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 870 1 0 \"930b1fd7_1382_4dd3_bec3f722282383d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 871 1 0 \"8d5a05ba_1847_47e1_9c2f5a7b692a6bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 872 1 0 \"8e0266d7_a3cc_479c_b67864f9bf0a850e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 873 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 874 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_Disconnect\")\r\n{\r\n// }} \"\"\r\n// {{{ 875 1 0 \"469fd42b_7a31_4d98_91efb31d12064e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 876 1 0 \"a37b4aa9_5d2f_4e3a_8134f806b1cc7204\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 877 1 0 \"86edebb2_72b8_49f4_84f46c72b1cacaaa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 878 1 0 \"d8835a8b_64ef_433a_8ca5a0a1a7302e05\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 879 1 0 \"88ca5064_cc0c_42e8_8cf1b70855183b72\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 880 1 0 \"12fe0846_bf72_4286_8bd87488438262ba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 881 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 882 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_SaveContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 883 1 0 \"37f47b7e_5737_474b_907e35429bd3b21d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 884 1 0 \"03cb3efd_4e78_47b4_8c863f235820287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 885 1 0 \"b4a3f09e_102f_45d2_a582493e7a8a228f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 886 1 0 \"dce24d9b_3180_4f67_ab31767613c972ed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 887 1 0 \"a4cfb4d0_9450_4bea_a67986a410d3d0ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 888 1 0 \"0f50bc52_c930_4613_a737fe8df81950f0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 889 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 890 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 891 1 0 \"1a03095a_5902_4617_8f24e5d961eb85be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 892 1 0 \"51b0d6df_b187_4cef_88ea5af60e98888f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SourceID\"), SourceID);\r\n// }} \"\"\r\n// {{{ 893 1 0 \"c754fc8f_8a46_4c44_9ac4283328bd7a51\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Volume\"), Volume);\r\n// }} \"\"\r\n// {{{ 894 1 0 \"25291ac1_062d_4046_bf617e60aa36b67c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 895 1 0 \"bfce4774_8c8b_4403_8e0b05cc4d59500b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"bc1476ec_35b7_4ec9_989c3db696569d39\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 897 1 0 \"49d34248_b422_4716_b7759002c58bacb2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 898 1 0 \"1c67aaeb_23b3_4adc_8b6d8285f92b9619\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 899 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 900 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StartContainerCalibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 901 1 0 \"6443322c_5eae_4730_a5933771d05f74fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 902 1 0 \"0adc10ee_e236_40cc_851240df83158a48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WasteContainerID\"), WasteContainerID);\r\n// }} \"\"\r\n// {{{ 903 1 0 \"661975a0_0aef_4017_bdd063beab2d6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Seconds\"), Seconds);\r\n// }} \"\"\r\n// {{{ 904 1 0 \"0e7caea8_5fcb_4b6c_954eb1ae00f391a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"DisableVacuumCheck\"), DisableVacuumCheck);\r\n// }} \"\"\r\n// {{{ 905 1 0 \"b681e1eb_fcbe_49e6_9116e45dfa6449ea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 906 1 0 \"82d37b5c_3c66_495e_9db5a04e780cef4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"182c0a15_8dbc_4c35_add3bac6dba81098\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 908 1 0 \"d748a994_8826_4dce_8d07e63e712b8463\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 909 1 0 \"dbd9907a_199c_4651_90fe7cbb03cace83\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 910 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 911 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"MPE2_StopVacuum\")\r\n{\r\n// }} \"\"\r\n// {{{ 912 1 0 \"54fa31f5_5b7c_4668_927dc6f87a39b99e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 913 1 0 \"0bf5dd1e_2e18_477b_adee0722aee70510\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 914 1 0 \"71f9a311_dfa0_4d62_8963c5c0ad21b5f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 915 1 0 \"fe23d082_725d_444c_83290693ee1daf6a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 916 1 0 \"1d06fa20_af8b_41f5_b3f3daa03a904ebd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 917 1 0 \"4dfdb03a_1a13_4215_be00ca55de734fb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 918 1 0 \"3723b59f_b515_44db_a24de469acf8d8aa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 919 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 920 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 921 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 922 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 923 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 924 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 925 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 926 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 927 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 928 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 929 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 930 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 931 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 935 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 936 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 938 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 939 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 940 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 943 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 944 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 945 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 946 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 947 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 948 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 949 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 950 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 951 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 952 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 953 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 954 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 956 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 957 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 958 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 959 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 960 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 961 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 962 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 963 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 964 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 965 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 966 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 967 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 968 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 969 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 970 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 971 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 972 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 973 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 974 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 975 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 976 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 977 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 978 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 979 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 980 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 981 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 982 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 983 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 984 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 985 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 986 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 987 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 988 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 989 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 990 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 992 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 993 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 994 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 995 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 996 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 997 1 0 \"a37851fe_b9d0_42fa_9ccca7dd7b352a9c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{{ 998 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 999 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 1000 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 1001 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1002 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1003 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1004 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1005 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1006 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 1007 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1009 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1010 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1012 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1013 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1014 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1016 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1017 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1018 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1019 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"a8ca8abd_aa7a_412c_be527eb4e81efcb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1021 1 0 \"a8647b92_b569_4a75_99a5333c438b3a23\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1022 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1023 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1024 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1025 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 1026 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1028 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1029 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1030 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1031 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1033 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1034 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"13218e03_9ac9_44ed_8af864397e865cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1036 1 0 \"6257eb41_ce75_45b1_bea89bce20631222\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1037 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1038 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1039 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1040 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1041 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1042 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 1043 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1045 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 1046 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1048 1 0 \"c1db8c11_4c25_4c9c_b424e06999583f09\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1049 1 0 \"29e43762_b009_40ad_b93a5ac2372cca00\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1050 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1051 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1052 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1053 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 1054 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1055 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1057 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1058 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1059 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1060 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1061 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 1062 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1064 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1065 1 0 \"76df37d9_5928_4269_937630b417ad9a11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1066 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1067 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1068 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1069 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1070 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1072 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1073 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1074 1 0 \"69f13066_cc39_48aa_85b093e1bc056907\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrIStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"3a9d7ad8_b8d0_45ee_9004e77ed5fbe471\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1076 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1077 1 0 \"66935de2_85a3_4ed0_95cddf772b15fb48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1078 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1079 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1080 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1081 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 1082 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 1084 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1085 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1086 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 1088 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1089 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1090 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1091 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 1095 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 1096 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"6286c2d7_a138_4844_bc77fd8a40a6a486\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1098 1 0 \"39fd3518_8a14_43a1_8d41240f577c94eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1099 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1100 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1101 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1102 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 1103 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1104 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1105 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 1108 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 1109 1 0 \"279c0c8e_1d53_437f_ac5e74b0ccffc7a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"92db84c4_89c2_4902_819012506538681c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), Translate(\"0\"), id);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1112 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1113 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1114 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 1115 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1116 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 1117 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1118 1 0 \"aa859c68_b2ab_4304_9501a2d752587df6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 1122 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 1123 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 1125 1 0 \"a273e170_1488_4e16_884ae09c3a26d828\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 1126 1 0 \"4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1127 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"5aca9095_546e_4df5_b24364da04e44fe5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 1129 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1130 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1131 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1132 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1134 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1135 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 1137 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 1138 1 0 \"5476cf0c_49cc_4602_aec72872116d2e6f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 1139 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"fefec950_2bfa_429e_bdf791dc40dd0495\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1141 1 0 \"0f6be956_31e3_4d1e_b232c4dc908ea6f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1142 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1143 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1144 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1145 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1149 1 0 \"1634fedb_a7e1_4130_ac1fb8d55f47b9e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1150 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 1152 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 1153 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1154 1 0 \"79aaa9cb_2db1_4f5d_8385023783e5cc82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 1156 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1157 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1158 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1159 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1161 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 1162 1 0 \"ee48a65d_794b_411d_bb1668a267206d8b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1164 1 0 \"ab32fbfb_2be2_4f6d_9c49def79adcfe31\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1165 1 0 \"eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1166 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1167 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1168 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1169 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1170 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1171 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1173 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1174 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1176 1 0 \"12b0cc6a_4826_48ce_82c690ddf98441a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1177 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1178 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1179 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1180 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1181 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1182 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1183 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 1186 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1187 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"ade249f5_6aa1_4939_90a22e6af0864e5e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1189 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1190 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1191 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1192 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1193 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1194 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1195 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 1196 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1199 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1200 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"4e986dcc_ee8e_4cc0_bb83628d0a0ec284\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1202 1 0 \"d46fb139_6c48_4f2a_b09293a8a3509a12\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1203 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1204 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1205 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1206 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 1207 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1208 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 1209 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"d76b0e51_c107_49cd_b6bcd25c44e4d066\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1214 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1215 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1216 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 1217 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1218 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 1220 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 1221 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 1222 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1223 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1225 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1226 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1227 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1228 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1230 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1231 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1232 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1233 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1234 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1235 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1236 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1237 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 1238 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1239 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1241 1 0 \"636ca48b_8789_40cc_8fb4dc35e8cbab54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1242 1 0 \"5fb5b228_5342_414d_a548ac8dd5add837\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1243 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1244 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1245 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1246 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1247 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1248 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1250 1 0 \"81b91833_cb16_43c5_a8935f9701536560\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1251 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1252 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1253 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1254 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1255 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1257 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1258 1 0 \"0d420182_40e4_43a8_872c5c81f7efa6d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1259 1 0 \"f7bb0b0b_d222_43a7_b1b1236ab60e2847\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1260 1 0 \"12251a91_a4ec_4a01_b041b503e2eef836\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1261 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1262 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1263 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1264 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1265 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1266 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1267 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"509760aa_ef16_454d_89cc23c0745d3c6d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1269 1 0 \"19e515a1_705c_45eb_b80e75767541c91a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1270 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1271 1 0 \"f5fd2c44_2160_43fa_be88382bc9e0ff0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1272 1 0 \"f2c8bfd1_3d33_4a00_84852ffbabef7b28\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1273 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1274 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1275 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1276 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1277 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1278 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1280 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1281 1 0 \"53206fbc_1492_4583_a2789c8083e49b46\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1282 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1283 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1284 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1285 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1286 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 1288 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1289 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1290 1 0 \"49cdc51c_08eb_424b_920d3dcb647b2559\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"2624b5a6_7428_4e88_a9b7fee8a8001e65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1293 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1294 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1296 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1297 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1298 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"32e4b0bc_48e5_4770_81a0113fdff8118a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1300 1 0 \"c81e886b_51ec_42be_b2c989057781a5b0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1301 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1302 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1303 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1304 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1305 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 1306 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1307 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 1308 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1309 1 0 \"d95cbdf3_6278_437b_91525392a70e5356\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"e1deec6e_fc66_45bd_93821e20a78853fb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1312 1 0 \"01bdb50d_0f38_40e2_8993f814ea652b66\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1313 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1314 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1315 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1316 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1317 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1318 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 1319 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1320 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1321 1 0 \"f61751e3_57be_4b1d_b8a1d370a4c1773c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1322 1 0 \"d216caef_1c5d_4f05_8252d1a77df45535\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1323 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1324 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1325 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1326 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1327 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1329 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1330 1 0 \"e7173a44_d349_4ba2_8993647fbcd2eb1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1331 1 0 \"17e3434b_dfff_457b_9aba0c22e9206cc7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1332 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1333 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1334 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1335 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 1336 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1337 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1338 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"2ba59e68_8358_4b86_a9108519bff6d200\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1340 1 0 \"cbfcb2cb_00c9_445f_a28af2b6553efc31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1341 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1342 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1343 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1344 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1345 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1346 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1348 1 0 \"a28255b3_86ff_4928_abf87a7c3f930142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1349 1 0 \"7e539911_cdda_4242_a337d58eba44508c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1350 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1351 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1352 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1353 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1354 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1355 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1356 1 0 \"32d149fa_c238_4e8c_9c9bfe8ca03b39ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PortNumber\"), PortNumber);\r\n// }} \"\"\r\n// {{ 1357 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1358 1 0 \"05f6e40b_f62a_4382_9b25ca234839aeb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID);\r\n// }} \"\"\r\n// {{ 1359 1 0 \"b8eff0c4_8a87_4d69_8b1fc22443527e58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1360 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_43ECC15F92874e8a8FCA2A90F3412255 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1361 1 0 \"a6315690_dcdc_4faf_9764f4edcccee401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1362 1 0 \"190f354d_c7dd_4c62_926305b468fad16e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1363 1 0 \"b152d230_641d_44fd_82876d10beb25ffd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 1364 1 0 \"2178bb5d_1389_4bb3_92e038bed00ad7d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1365 1 0 \"0e8fa514_886c_42d7_a0fec5c2e0a40820\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1366 1 0 \"d6d5265b_416c_468f_a8f0a8225e294804\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1367 1 0 \"2dde624a_2df2_4014_8df18f6d92ed93b1\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1368 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1369 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_MeasureCycle\")\r\n{\r\n// }} \"\"\r\n// {{{ 1370 1 0 \"e78c25fc_f856_4c7d_bb7f6056d2ae0e9d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1371 1 0 \"4c0064bb_0c23_4648_b57e5599878d63f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqMeasurement\"), seqMeasurement);\r\n// }} \"\"\r\n// {{ 1372 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (seqMeasurement == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 1373 1 0 \"a11073f7_18e2_4097_baf006ed44e74081\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"MeasurePositions\"), MeasurePositions);\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"47d49bd0_0457_440d_b1d654c85ac3c5db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(MeasurePositions, seq);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 1376 1 0 \"bbddeeab_2dc4_4931_900a5ec07aafe0be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, seqMeasure, seq);\r\n// }} \"\"\r\n// {{ 1377 1 0 \"e6bd9163_be3a_4336_8fb02fd88e325c60\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"6b06d7c5_bf98_48d9_906ae705e4ce149b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1379 1 0 \"25fe4c02_a4e2_40cd_91289dc1c5c638b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ProbePattern\"), ProbePattern);\r\n// }} \"\"\r\n// {{{ 1380 1 0 \"02a9e02a_0596_4158_ac021180b0b5985c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"f8080019_d032_4f0c_9ef8429bde9ee7df\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 1382 1 0 \"83142ee1_d831_4ff1_a6734844fe789421\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues);\r\n// }} \"\"\r\n// {{{ 1383 1 0 \"d4d4974a_23a2_43a2_851b478f0e7d24be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValues, flt_pHValues);\r\n// }} \"\"\r\n// {{{ 1384 1 0 \"bde9c162_a4cf_40fa_a663c6b78e029610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1385 1 0 \"0a5c18e9_775d_4644_bdfcc536000642cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Measure Cycle\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1386 1 0 \"c1502c7b_2bd0_480c_a0ce6887e02484bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1387 1 0 \"2a26b412_4bc5_49d9_b1cdc64938a3cf0b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1388 1 0 \"a96843cd_6adb_45f6_86b4971bd2682521\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1389 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1390 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1391 1 0 \"d9d7f7cb_394b_40ea_a037e16efc8e063c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1392 1 0 \"0e65e09c_0178_403b_9eca768c440a479f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1393 1 0 \"fedae8c3_0c9d_426f_a30e8fdfa1d2b056\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1394 1 0 \"ad8456a9_07be_4852_b2bab182e7e17dae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration1\"), Calibration1);\r\n// }} \"\"\r\n// {{{ 1395 1 0 \"8b591ca2_adf8_4248_b5ac1fb2a84c21aa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1);\r\n// }} \"\"\r\n// {{{ 1396 1 0 \"0f28a5e9_278c_4290_aa9ee416f829755a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqCalibration2\"), Calibration2);\r\n// }} \"\"\r\n// {{{ 1397 1 0 \"b57e28d3_0011_4657_bbceba83ca97b89a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2);\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"101798f0_c18a_411a_b29295d972cc9a6e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqReference\"), Reference);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"1c415c8d_660d_41fe_a81fcfd6d8836038\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Reference, seqReference);\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"20510ceb_5840_48de_842a1b657fa7706d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationTime\"), CalibrationTime);\r\n// }} \"\"\r\n// {{{ 1401 1 0 \"ecd67637_3e8e_4d22_89b67b39e05342fe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MeasureTime\"), MeasureTime);\r\n// }} \"\"\r\n// {{{ 1402 1 0 \"148b5d07_b84d_4786_b1d0f9d5e5837491\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"MeasureHeight\"), MeasureHeight);\r\n// }} \"\"\r\n// {{{ 1403 1 0 \"938c1584_a353_4f03_ba14c9f33cc2c6a7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue1\"), CalibrationValue1);\r\n// }} \"\"\r\n// {{{ 1404 1 0 \"cda9048b_fe59_4db2_a1d08550795038f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue2\"), CalibrationValue2);\r\n// }} \"\"\r\n// {{{ 1405 1 0 \"5d669238_eb69_4080_8b789139b291be94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValueRef\"), CalibrationValueRef);\r\n// }} \"\"\r\n// {{{ 1406 1 0 \"4c7c9992_c2e0_445a_bee9cd7dd086e585\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln1\"), TempSoln1);\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"9574a12d_456e_4fd6_9b51714dd88b4a1e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSoln2\"), TempSoln2);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"211f81c7_5561_45ce_8cf247e76fb0f65e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"TempSolnRef\"), TempSolnRef);\r\n// }} \"\"\r\n// {{{ 1409 1 0 \"f812ea75_ed49_4a04_b4ab3dd67f1206ad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrateDynamically\"), blnCalibrateDynamically);\r\n// }} \"\"\r\n// {{{ 1410 1 0 \"178d95b8_13db_4493_a08cdaec1348c0e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 1411 1 0 \"d4d33c2d_2aee_4a51_ad36cb953d687c83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{ 1412 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F882CD31309846e3BD30959B418AB982 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_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);\r\n// }} \"\"\r\n// {{ 1414 1 0 \"18724129_2443_4271_a6316a42ef334c73\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1415 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F882CD31309846e3BD30959B418AB982 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1416 1 0 \"d6c65e91_f6e8_47d9_aaf1810ffab1ffac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1417 1 0 \"0dd73971_4fb7_47a4_ab5a5bc3f06a1c95\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1418 1 0 \"7375b9e4_01c3_49a1_810fb42149ed0eea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios);\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"31ba6e89_258d_4deb_97352544c3b5c45c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution);\r\n// }} \"\"\r\n// {{{ 1420 1 0 \"924064ec_85ac_4b42_a5ff3eb8a6a5342f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"65bd0fe0_0efb_4335_b118b89e61b948ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1422 1 0 \"5185a83c_8ff6_42f8_b1dc5fc006d041ff\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1423 1 0 \"e66a9dff_c0b5_4864_ad32fce97f16a3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1424 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1425 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Dry\")\r\n{\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"0f0bf03e_4950_40e7_b2899f9cabb79cb3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1427 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"1885a8d9_8082_44ab_bfd7a217170187db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1429 1 0 \"33dddcad_4489_4f31_8b4fea145ebbe77b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1430 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D19CA5AD1071407b84599779A41B51EA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1431 1 0 \"d8f5d052_f205_4e22_8998e2d0d12790ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1432 1 0 \"9f4b188d_6ef9_4a74_941003eb82df7787\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"5521c0c7_c64b_4b49_9036f9bf6a7a83d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"9e7864cd_a0bd_4ec6_8f733a2e7ab773bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1435 1 0 \"190d0e3a_2978_407c_a8482f5f7e239261\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1436 1 0 \"b6af2262_3e2f_4d3a_8efaa95d707f7c9b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1437 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1438 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"39b0590c_dc8d_4eb3_b8bfcab65235f494\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{ 1440 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"beaffdda_e52a_4f79_95659f907946752f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{ 1442 1 0 \"58aab21a_307b_403b_980186d201a7c6ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1443 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1444 1 0 \"4cd2a753_2761_4d3c_9cd93c15fa19a47b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1445 1 0 \"d4418b25_1d3f_4c35_903178fb8cb29b63\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"0af219f8_e5bc_4b14_a95fd7e3f2ccb712\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"7b44ca9e_e6d7_4793_8f937fc518ecc41c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1448 1 0 \"370e55f1_98b7_4dfb_9640d7a634f44a8f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1449 1 0 \"98f952c5_628a_415d_a46b3e75e0c33d60\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1450 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1451 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SetParameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"7e5e111c_21f5_4c0b_9dd06d15aee64431\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqGripper\"), Gripper);\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"8417ab78_f4b8_40aa_890f3b14e4204667\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Gripper, seqGripper);\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"f43d4896_c19a_4cc9_ad3c75f925788b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqWashPosition\"), WashPosition);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"ffcc2479_6c91_4038_bab179b027d4b03b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"b731d1c6_30bc_4003_ba19e062e82293db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqDryPosition\"), DryPosition);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"a68ddb6b_780a_46ed_bcaa350f92f649fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition);\r\n// }} \"\"\r\n// {{{ 1458 1 0 \"020f31e6_e3ef_48f4_af0e175e60e00159\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TransportChannel\"), TransportChannel);\r\n// }} \"\"\r\n// {{{ 1459 1 0 \"1561e8c8_acaa_438f_9c7c57a5c196556f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"WashCycles\"), WashCycles);\r\n// }} \"\"\r\n// {{{ 1460 1 0 \"7e0a9629_dce6_4ed9_81b854f636408ff0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryCycles\"), DryCycles);\r\n// }} \"\"\r\n// {{{ 1461 1 0 \"dacc3c17_6358_44f0_8ac4ad1fa0ae08b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{{ 1462 1 0 \"f86b35ff_9db7_4845_a3cfb7d04c520c3d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime);\r\n// }} \"\"\r\n// {{{ 1463 1 0 \"ce0a2f35_ae58_4695_85513126a4acb791\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1464 1 0 \"da69f49c_299d_435d_9d95dc10f7303ce9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1465 1 0 \"bd10bc62_2ace_436a_a68acec8c1f9287b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1466 1 0 \"f70b31d7_c863_488a_90c4df10a4677c68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1467 1 0 \"3246255f_383b_4742_b7eb17cad21acec0\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1468 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1469 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Park\")\r\n{\r\n// }} \"\"\r\n// {{{ 1470 1 0 \"90471824_8967_4383_a722d29bfaf60113\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"f6bbc2b1_c86d_4f64_abc12d3b740b1d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1472 1 0 \"9341ffae_9e0c_43f9_b3ccedcfbadb07cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1473 1 0 \"9e0a230a_fdb5_4eec_9cf3127779adb1d2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1474 1 0 \"8aacb0d9_a918_426b_9717bd2febc1f74a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1475 1 0 \"15592ad5_5751_4636_8a513ee3f27c7f11\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1476 1 0 \"6222366b_a5bf_4c73_8685a3cdebb4ff4f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1477 1 0 \"1aad8d75_d37e_4c4a_9b83799194c716fc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1478 1 0 \"f19bf36e_3e74_4647_bd1c33a627d4634a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1479 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1480 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Pickup\")\r\n{\r\n// }} \"\"\r\n// {{{ 1481 1 0 \"347e06d8_9db7_4279_bf224e9ecf4299e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"2b0761dc_e201_46b3_a590b52421cd8ee9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"seqModule\"), Module);\r\n// }} \"\"\r\n// {{{ 1483 1 0 \"76631bc5_230e_4e20_87bf493887cddd0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, Module, seqModule);\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"2d3aba8b_cc4b_4be1_a83c30695fcf6dbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule);\r\n// }} \"\"\r\n// {{{ 1485 1 0 \"7879f9b5_2eea_4059_8e4bef3213e8decd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1486 1 0 \"cb1582a1_3f8c_44fd_910a5f08dbe32b05\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1487 1 0 \"a15fc9df_322f_4ce1_83228c63669e6b16\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1488 1 0 \"a3bcbf9b_35d6_4291_9c4f146afb2924be\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1489 1 0 \"602611db_9ad3_4dbb_aae8e288d8e1c21f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1490 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1491 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_ExtendedLog\")\r\n{\r\n// }} \"\"\r\n// {{{ 1492 1 0 \"d101eee8_9402_428a_aa576d531ed959c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog();\r\n// }} \"\"\r\n// {{{ 1493 1 0 \"bc849548_9009_43ec_bb1b6c81c32132f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1494 1 0 \"0a496202_0f55_4f40_8b391260caa236ba\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1495 1 0 \"dac7c2f7_1665_4a9c_82959eadd12ab417\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1496 1 0 \"3bc97044_ccb0_46b1_9516921492be9a5f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1497 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1498 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_LoadLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{ 1499 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B416552A06404ef48774D74059C2B182 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1500 1 0 \"154ec087_ea2e_4381_bb2e261ffad534f1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1501 1 0 \"79340e9d_69d5_4911_b4601ae4754a16c4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1502 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B416552A06404ef48774D74059C2B182 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1503 1 0 \"46420553_d90f_4dfa_b42c9d86856c288a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1504 1 0 \"d56902b6_a617_4215_bbf52293253d05b0\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1505 1 0 \"54b468e0_3ea0_4e83_9ffae95722c5cb9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBluetoothPort = StrIStr(BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1506 1 0 \"7bde202f_1c1b_4911_9f600ac6e1a5b57c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumWashCycles = StrIStr(NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1507 1 0 \"c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nNumDryCycles = StrIStr(NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1508 1 0 \"027378a7_4549_4d3f_b8d33aa4980be4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDryTime = StrIStr(DryTime);\r\n// }} \"\"\r\n// {{{ 1509 1 0 \"fbda7cdb_3ed9_4a5c_907ce60556e0129b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), 1);\r\n// }} \"\"\r\n// {{{ 1510 1 0 \"e454face_7eee_4c6e_a61e221c0e5d7fb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(\"\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1511 1 0 \"bffc8683_40d3_4277_ac66bc7d43d675f2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1512 1 0 \"e397a319_e6cb_4188_b45c6ef45c974fba\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1513 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1514 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_SaveLastConfig\")\r\n{\r\n// }} \"\"\r\n// {{{ 1515 1 0 \"aca4c717_812e_46f9_8eb5989a720adb24\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"BluetoothPort\"), BluetoothPort);\r\n// }} \"\"\r\n// {{{ 1516 1 0 \"1198edc8_1ec9_479d_a4e7fd71ed50cf8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumWashCycles\"), NumWashCycles);\r\n// }} \"\"\r\n// {{{ 1517 1 0 \"be958699_818e_43db_a757a67b7b54572a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"NumDryCycles\"), NumDryCycles);\r\n// }} \"\"\r\n// {{{ 1518 1 0 \"8751a2c3_e6ee_43bf_b21f5458aebf179a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DryTime\"), DryTime);\r\n// }} \"\"\r\n// {{ 1519 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_4973F03471994119A9F699CE6459CBFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1520 1 0 \"1480ff51_54ea_4c38_befa457e23966aca\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nHAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime);\r\n// }} \"\"\r\n// {{ 1521 1 0 \"0e101f68_bc36_42fe_882a3951ef193f80\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 1522 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_4973F03471994119A9F699CE6459CBFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1523 1 0 \"2e180d98_e746_4b84_b623b4d0e8e198fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 1524 1 0 \"d4ca1b7b_8367_4a0c_992893897f05925c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1525 1 0 \"cb24f9db_18c1_41af_b6f16900826be7be\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1526 1 0 \"87c5e5f6_77ee_4519_879fdceaf21c1d7f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1527 1 0 \"2bd801dc_3ffb_4b97_9f8af54ebda4fdae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1528 1 0 \"dbcfe074_1fad_446d_addaa6c1b41a3a01\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1529 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1530 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 1531 1 0 \"bdbbc648_a9fa_468f_b5d4d390115575eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1532 1 0 \"1a74d7ad_0c35_454c_b161ede32468b2af\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 1533 1 0 \"c67afa78_dd60_451b_b2e31a2e6540f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 1534 1 0 \"2424dca1_971a_40f8_97b763c253560a2e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 1535 1 0 \"8def2ba5_b51c_4e0c_b6ebfdd346a5beec\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1536 1 0 \"684d328d_214e_4955_bfe9ff0627b7f8cf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1537 1 0 \"e6ec0fc8_d42c_4413_b2c2719c3cd18dc7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1538 1 0 \"6f2273c4_1e1e_46f3_9ea6544d76383266\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1539 1 0 \"25171dbf_33de_42a2_ad9b9d9639b5112a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1540 1 0 \"d30f6a39_499f_4b79_b2bfbdb6bb128b96\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1541 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1542 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Controller_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1543 1 0 \"b43cf782_b210_48c8_933f4cdfae78d050\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 1544 1 0 \"efbfd98d_c15d_4ac9_b94250ab4361a8b9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID);\r\n// }} \"\"\r\n// {{{ 1545 1 0 \"c918ad91_e33e_4f2f_9c6577fd8c93aaf4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1546 1 0 \"2021a914_67dd_495e_9a9e4cf4438df298\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1547 1 0 \"8d8842cd_e3b4_4397_92ad69593e9f7796\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1548 1 0 \"d75fbb16_6016_4c73_aecf79ca07dae29d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1549 1 0 \"427cf00a_8c98_4fb4_8db6842164909152\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1550 1 0 \"2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1551 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1552 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1553 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1554 1 0 \"2f9ae938_94b1_43c8_ade094614ef090a4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"DeviceName\"), DeviceName);\r\n// }} \"\"\r\n// {{{ 1555 1 0 \"6cf1bcde_fb2a_4296_97b01233bdd9aa87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"AdapterDeviceID\"), AdapterDeviceID);\r\n// }} \"\"\r\n// {{{ 1556 1 0 \"58031a2b_13b4_4278_8e347d343a3bd1d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"NodeName\"), NodeName);\r\n// }} \"\"\r\n// {{{ 1557 1 0 \"20c35752_843f_4adb_904d5d26323821a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 1558 1 0 \"0b3f2efc_0773_4a25_84493465094ac5e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AlwaysInitialize\"), AlwaysInitialize);\r\n// }} \"\"\r\n// {{{ 1559 1 0 \"6ad8399f_eed7_4e65_98fe7d1432f0736b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1560 1 0 \"3a426d02_40f4_4c1f_b9061d37e5a4cd35\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1561 1 0 \"01608cb1_fac5_42cd_bcfdf5fc7359c26d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1562 1 0 \"0e3b4229_d57f_445f_a7c9d9140939367f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1563 1 0 \"e9d4ea17_6e30_44ae_88b03485525c4f92\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1564 1 0 \"5edd27c8_de57_4980_b51d920a4d49d519\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1565 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1566 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Centrifuge\")\r\n{\r\n// }} \"\"\r\n// {{{ 1567 1 0 \"efe031a0_7aa0_4846_bf8969fbd7906970\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1568 1 0 \"5965cb4a_0190_415d_862b773944074e57\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"CloseCoverAtEnd\"), CloseCoverAtEnd);\r\n// }} \"\"\r\n// {{{ 1569 1 0 \"1f94f31f_0ef0_403b_bda3b50c2fd9c38b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PresentPosition\"), intPresentPosition);\r\n// }} \"\"\r\n// {{{ 1570 1 0 \"dde8e447_4774_45bf_a244c5fab4041838\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1571 1 0 \"cf0fab96_e65f_4e8a_85a809800b192075\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArraySpeed\"), ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1572 1 0 \"0ca69f46_9c96_402e_9b1587ced7bff5c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayAcceleration\"), ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1573 1 0 \"d37afa07_2508_484d_81b6f153e1aa28ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ArrayDuration\"), ArrDuration);\r\n// }} \"\"\r\n// {{{ 1574 1 0 \"6f8e9cca_35cb_4393_9f845b2135e8c2d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Deceleration\"), Deceleration);\r\n// }} \"\"\r\n// {{{ 1575 1 0 \"42d02aa8_5a1f_4144_b475d634885c1d4a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrDuration, Translate(\",\"), i_ArrDuration, 0);\r\n// }} \"\"\r\n// {{{ 1576 1 0 \"252eacff_1b04_4607_9403f7ebc9935d0a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrSpeed, Translate(\",\"), i_ArrSpeed, 0);\r\n// }} \"\"\r\n// {{{ 1577 1 0 \"e1de1f59_a4b3_4220_a987c7e8e67e82c3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(ArrAcceleration, Translate(\",\"), i_ArrAcceleration, 0);\r\n// }} \"\"\r\n// {{{ 1578 1 0 \"085cc0ce_663a_4e79_8bf732421e2f56a9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrAcceleration, i_ArrAcceleration);\r\n// }} \"\"\r\n// {{{ 1579 1 0 \"5f942567_121a_417c_be3e2449c5473b40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrSpeed, i_ArrSpeed);\r\n// }} \"\"\r\n// {{{ 1580 1 0 \"f88bd247_c7e5_4823_bd5e37605974f825\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrArrayToInts(i_ArrDuration, i_ArrDuration);\r\n// }} \"\"\r\n// {{{ 1581 1 0 \"82e32803_a688_4f29_8a1c94dead53e48e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1582 1 0 \"6541fb1d_df0a_4f0c_8474d211e4e4721a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = StrIStr(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1583 1 0 \"ca37a7ce_edb5_4864_90dffb84cbb93071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1584 1 0 \"54bf0b61_3ff3_4e00_8d35d876bfec98bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1585 1 0 \"cc879722_4e99_410c_a8454d136f6aae6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1586 1 0 \"48cb330b_8197_439e_974791118048b53e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1587 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1588 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_GetStatus\")\r\n{\r\n// }} \"\"\r\n// {{{ 1589 1 0 \"1be02a3f_6880_42b3_b612e480fcd7e403\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1590 1 0 \"5dcbef58_09da_4530_afb23e072fe81806\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1591 1 0 \"07344966_2aca_47d5_94006574d009ab21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1592 1 0 \"47572e7c_3ab2_48e3_be4d5f024ede7c41\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1593 1 0 \"5d8f135c_f0e2_4460_861984fe9a7fa710\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1594 1 0 \"ad0b08d4_17f2_49d0_a67860ea51423835\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1595 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1596 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Open\")\r\n{\r\n// }} \"\"\r\n// {{{ 1597 1 0 \"6a9181eb_a95e_4e7b_a8df77f39d3519e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1598 1 0 \"6f785fb2_5cc2_4924_b9e514e193d96143\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1599 1 0 \"d7ac8b69_b503_4f26_81756b6dc894d246\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1600 1 0 \"d707b09f_2dc6_4b2f_9fdb84c07c07f2b2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1601 1 0 \"2acb9ae8_850a_4120_a212cb2a4a6200bd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1602 1 0 \"cd7ca6de_07b8_4d48_875925ee71386e46\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1603 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1604 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Close\")\r\n{\r\n// }} \"\"\r\n// {{{ 1605 1 0 \"dbed33cf_5e9c_4102_b254b161284b15e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1606 1 0 \"f7647d6b_38bb_4d38_895246f5ac76fe59\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1607 1 0 \"77bb0b57_a308_455c_baabf680266f4336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1608 1 0 \"0c3dee9e_33f9_4f79_99400f9368f6da14\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1609 1 0 \"10b7afeb_e804_457e_88b935a2b48a71c9\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1610 1 0 \"0d7255ee_b967_4693_8d7375d684b4747f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1611 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1612 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Start\")\r\n{\r\n// }} \"\"\r\n// {{{ 1613 1 0 \"44af1318_1d60_4a35_a5714accdc0c242a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1614 1 0 \"25c1c841_9dea_4404_afbc9b3efc307343\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Direction\"), Direction);\r\n// }} \"\"\r\n// {{{ 1615 1 0 \"d5af29b3_1f52_48d0_be771ca87547a6c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Speed\"), Speed);\r\n// }} \"\"\r\n// {{{ 1616 1 0 \"0615f300_6c08_4978_beb5ebd0c96a686e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Acceleration\"), Acceleration);\r\n// }} \"\"\r\n// {{{ 1617 1 0 \"8f4f8eba_1777_4696_b1185b776105f4e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"MaxRunTime\"), MaxRunTime);\r\n// }} \"\"\r\n// {{{ 1618 1 0 \"6d0a342b_4d08_47ec_81979a6bcb184434\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1619 1 0 \"562e3df1_ee9e_4ef5_a70c4247d08e453f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1620 1 0 \"d3624dd6_4de0_4827_b501bde2ca9e3d5a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1621 1 0 \"81386c58_3b5a_4743_9453eb6a117234ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1622 1 0 \"4dcf2947_ad5a_47e8_8c8214244ffcb3c7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1623 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1624 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Stop\")\r\n{\r\n// }} \"\"\r\n// {{{ 1625 1 0 \"e5891eba_60d8_49f6_af7be2af0aef66a7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1626 1 0 \"4008af1e_863b_4a5a_9b4b33d547b6fd7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Decelleration\"), Decelleration);\r\n// }} \"\"\r\n// {{{ 1627 1 0 \"667c83ad_57d3_4ce9_a2dca9287fb97d7e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1628 1 0 \"43ffc328_4600_41cb_a084d56b006fee8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1629 1 0 \"263c82c5_d2f1_463f_b2f102d150ca0a0f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1630 1 0 \"225ad45c_32fa_4f7d_af063f5ce1ab907c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1631 1 0 \"e9168cf2_c9e7_40a5_a52e0b9ad08f1fed\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1632 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1633 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"Centrifuge_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 1634 1 0 \"1e54be13_32c5_43bd_bcea8da753eedd90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"Label\"), Label);\r\n// }} \"\"\r\n// {{{ 1635 1 0 \"c884c5b1_cb4e_4d38_907361a00b32d3f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1636 1 0 \"fa01d6ec_8920_4fd7_adbc2f6f4f106df5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Centrifuge Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1637 1 0 \"1664cc0f_d416_47d5_aa13970ade2397b3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1638 1 0 \"bd20d1b8_d440_4b6f_9041a5b536904a0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1639 1 0 \"551d8e94_670b_4472_b73600d28f237682\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1640 1 0 \"6aa13f85_d8b8_4a2a_93232eeb15e0a01d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1641 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1642 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 1643 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 1644 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1645 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1646 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1647 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1648 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 1649 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 1650 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 1651 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1652 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1653 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1654 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1655 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1656 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1657 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1658 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 1659 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 1660 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 1661 1 0 \"98795c5d_e3e5_4d8c_bba032968c530136\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1662 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1663 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 1664 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1665 1 0 \"435e7414_9170_4bf9_bd0ac83f0ab51fad\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1666 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1667 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1668 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1669 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1670 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1671 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1672 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1673 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1674 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1675 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 1676 1 0 \"f17e82ff_88ef_4685_bf6f75a8ca0e32f6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1677 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1678 1 0 \"c0256452_8d47_4f97_9e9c2250a44934d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1679 1 0 \"8c3ce9eb_f542_40c0_b36905f7712d0954\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1680 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1681 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1682 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1683 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1684 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1685 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1686 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 1687 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 1688 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1689 1 0 \"6957e247_4f64_4971_8d90658c99adbb87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{{ 1690 1 0 \"34cc8f4a_c310_4eb7_b936c63f8401c523\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1691 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1692 1 0 \"058f8bb4_5fe3_4a6b_a36e899c2a89656f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1693 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1694 1 0 \"a9b4c19d_dcc0_42d7_9a51e3241ef647f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1695 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1696 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1697 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1698 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1699 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1700 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 1701 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1702 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1703 1 0 \"dd7d7b00_1e95_4e45_97a425f03a18ab04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{{ 1704 1 0 \"0021495f_472e_4321_9d1e81e8fbd43f0c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1705 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1706 1 0 \"aabeb82e_70d9_42f7_901f3fe114094e0a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1707 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1708 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1709 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1710 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1711 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1712 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1713 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1714 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1715 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1716 1 0 \"f6b3cc8e_f852_4a96_9567a4fa67e846e8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1717 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1718 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1719 1 0 \"96886e69_ba07_45e3_96353112dc429afc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1720 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1721 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1722 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1723 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1724 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1725 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1726 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1727 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1728 1 0 \"08061228_63f2_47d2_a601ba16d6a1a142\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1729 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1730 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_2434A44DB44B48ff82A9F66DE34C5041 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1731 1 0 \"4cf5e7f7_9567_4e6b_a206bf6f8962c785\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1732 1 0 \"7a2cb450_4c76_4d77_894cce4fe6c671a3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1733 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1734 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1735 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1736 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1737 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1738 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1739 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1740 1 0 \"693cec94_9d14_4bff_8e4868a3b27f0245\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1741 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1742 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1743 1 0 \"bd4bffe6_9161_4f42_b0b53307549f4286\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1744 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1745 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1746 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1747 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1748 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1749 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1750 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1751 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1752 1 0 \"c0166b97_c0ae_417b_85c90c5ef42e5fc6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1753 1 0 \"73777071_2fd2_42b0_a7545c6a6a372194\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1754 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1755 1 0 \"fb8e630b_9519_4b3d_94eabf1311546383\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1756 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1757 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1758 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1759 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1760 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1761 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1762 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1763 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1764 1 0 \"7e342beb_ebbe_4873_bf53c50f29cbaa0e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1765 1 0 \"c8f45788_ef99_414d_a41d29a20583a067\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1766 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1767 1 0 \"b845f534_5a22_4076_b36069f70af90742\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1768 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1769 1 0 \"4793211e_93d2_43e6_b4d25d7e0ae3e104\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 1770 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1771 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1772 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1773 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1774 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1775 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1776 1 0 \"ecd6d069_96d7_4a72_9ffc0df77e7a1512\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1777 1 0 \"b05c868f_c25f_47a9_b533b13ab05fc962\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1778 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1779 1 0 \"cabbe1ee_c5d4_49dd_90875673900d6120\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1780 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1781 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1782 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1783 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1784 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1785 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1786 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1787 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1788 1 0 \"c99aa2b7_d8a6_4cee_a1fa1d731ef77d25\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 1789 1 0 \"f2861b4d_28d2_4ee3_8b7c7763312067ab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1790 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1791 1 0 \"f56ee559_1221_4f5a_ad332d0e44502aff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1792 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1793 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1794 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1795 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1796 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1797 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1798 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1799 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1800 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1801 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1802 1 0 \"a650efc1_423b_4f75_9f0da083ee44ae9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{{ 1803 1 0 \"e1ef0806_8a47_46c1_972c9ed9e299eaad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1804 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1805 1 0 \"c9bd9645_5a05_4cc6_95997f787c8772d6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1806 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1807 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1808 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1809 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1810 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1811 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1812 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1813 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1814 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1815 1 0 \"b417b8ce_5117_450e_93a9a6243c6011d8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{{ 1816 1 0 \"ed43cecb_7012_4fb9_a89d129de09bdadb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1817 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1818 1 0 \"4eb95522_37fd_4802_af85a620dc874526\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1819 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1820 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1821 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1822 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1823 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1824 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1825 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1826 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1827 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1828 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1829 1 0 \"32b90a07_0607_448d_9767de1d96e31862\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1830 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1831 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1832 1 0 \"5593fd2a_c1e7_4565_bcae82458768dd51\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1833 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1834 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1835 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1836 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1837 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1838 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1839 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1840 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1841 1 0 \"f56567fc_04c1_4645_aee22aa5f22a9f8c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1842 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1843 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1844 1 0 \"35803a11_c620_485a_8196cc2822dddb3f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1845 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1846 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1847 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1848 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1849 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1850 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1851 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1852 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1853 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1854 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1855 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1856 1 0 \"a2342046_552f_4003_a1cc262161964a6e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1857 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1858 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1859 1 0 \"94c928dd_6dcb_4540_a6cbfdf48e37430c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1860 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1861 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1862 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1863 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1864 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1865 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1866 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1867 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1868 1 0 \"aeed4685_8812_4dce_89e2c35429d4c401\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1869 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1870 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1871 1 0 \"32d09876_dcdb_4d67_b5e72a63e14fec19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1872 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1873 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1874 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1875 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1876 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1877 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1878 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1879 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1880 1 0 \"73be1c30_4bfe_4a0f_aa560c8df5b091fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1881 1 0 \"39ac643d_0305_4ec6_87fc196efe3d76f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1882 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1883 1 0 \"c35cdd37_7a73_4008_b9d0ac550c926428\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1884 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1885 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1886 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1887 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1888 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1889 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1890 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1891 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1892 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1893 1 0 \"272104de_2e64_4a32_a88407b030437361\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1894 1 0 \"1362f66b_0efd_4eb5_935e84586a427637\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1895 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1896 1 0 \"ef7c31f9_e307_450a_851111f26afd2e91\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1897 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1898 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1899 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1900 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1901 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1902 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1903 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1904 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1905 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1906 1 0 \"cf1b40c4_5e9a_48bf_9390f6eab212315f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1907 1 0 \"2e7a5304_5ce9_4afb_93a4a8276dc86d74\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1908 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1909 1 0 \"9b93a06b_e4df_4eca_84467ca6c7f0c0ce\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1910 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1911 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1912 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1913 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1914 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1915 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1916 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1917 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1918 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1919 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1920 1 0 \"4b29337f_c67c_4ecf_a205f4b70e60271a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{{ 1921 1 0 \"40aad8b7_f42e_4ad1_b0f0c033ec666548\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1922 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1923 1 0 \"f383d799_1d15_4348_8a2dc84422f46ff2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1924 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1925 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1926 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1927 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1928 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1929 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1930 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1931 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1932 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1933 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1934 1 0 \"dfb61f9c_103b_4c42_83e0779ea05cb180\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{{ 1935 1 0 \"e4829da3_d8b6_453f_a2be82213303e9f3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1936 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1937 1 0 \"21dd8d34_e764_4a0f_b34ccecf089437dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1938 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1939 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1940 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1941 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1942 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1943 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1944 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1945 1 0 \"ee3103a2_d7f3_488f_b7a95e2f2b56770a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{{ 1946 1 0 \"a782313c_e15b_4340_bdda314f926e24cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1947 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1948 1 0 \"45d1f212_46b9_4976_83503edf5606c88e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1949 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1950 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1951 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1952 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1953 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1954 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1955 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1956 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1957 1 0 \"b5ecca33_fef4_4c14_9cf702c924839607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1958 1 0 \"49e72e72_8e49_49fd_8d212a6ccff1d2fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1959 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1960 1 0 \"1fe83710_037b_4157_82a99e6aaf08edcb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1961 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1962 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1963 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1964 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1965 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1966 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1967 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1968 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1969 1 0 \"d186dde8_c684_4550_a023d9023ff021d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1970 1 0 \"af12e4a9_cc0f_4a82_b9593d2b489756a8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1971 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1972 1 0 \"28b1d8d1_83cc_4627_9146c7398c601938\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1973 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1974 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1975 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1976 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1977 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1978 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1979 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1980 1 0 \"b1da178c_1267_4c8c_b1cd24bfa10a11fb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 1981 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1982 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1983 1 0 \"697e84e2_525e_4045_83bb3825b36f6b2f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1984 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1985 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1986 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1987 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1988 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1989 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1990 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1991 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 1992 1 0 \"3b2abeec_38f4_46a6_a30b0d0126280ebc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{{ 1993 1 0 \"c4e94e42_8405_438b_921cfe4ba73e9976\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 1994 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1995 1 0 \"c08ab14c_3879_4f65_ad7085e45f74a6df\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1996 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1997 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1998 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1999 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2000 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2001 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 2002 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 2003 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2004 1 0 \"5aa60a5a_db92_42e0_b3277a41cacb5336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nhssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{{ 2005 1 0 \"49cd8e9e_91bd_468c_aec57e3af40280fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\no_stepReturn = ConvertHSSErrCode(hssErrCode);\r\n// }} \"\"\r\n// {{ 2006 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2007 1 0 \"de7dad67_0b6c_47eb_af5a68302431ff1e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2008 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 2009 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2010 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2011 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2012 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2013 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2014 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2015 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 2016 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 2017 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 2018 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 2019 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 2020 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 2021 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 2022 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 2023 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 2024 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 2025 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 2026 1 0 \"d3d07dad_de12_4d0c_bd96c7caa06ff3ee\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{{ 2027 1 0 \"84732f19_85e4_4b22_8e617b5e1c91f73c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Washer Return: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 2028 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 2029 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2030 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2031 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 2032 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 2033 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2034 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 2035 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 2036 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2037 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2038 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 2039 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2040 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_MPE::_ExitLibrary();\r\nHAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=Hamilton$$valid=0$$time=2024-07-10 14:32$$checksum=71158b10$$length=085$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxE82B.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate 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 ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2205 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2165 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2166 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 2167 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 2168 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 2169 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 2170 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2186 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 2187 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 2188 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2189 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2190 1 0 \"73659ac2_f808_47cc_89196cc3adc8efbf\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\ntimer1.SetTimerViewName(\"\");\r\nif( 0 == timer1.SetTimer(0.05) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2191 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 2192 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 2193 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 2194 1 0 \"9be29cc7_ad35_4b87_9e95d31796325e12\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2195 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2196 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 2197 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2198 1 0 \"2a039f02_4c13_4f72_9ba40a3121b31262\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 2199 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2200 1 0 \"d221d799_ee85_4f6d_a40a06cc0a69a3de\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\ntimer1.SetTimerViewName(\"\");\r\nif( 0 == timer1.SetTimer(0.05) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2201 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 2202 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2203 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2136 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2137 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2138 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2139 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2140 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2141 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2142 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2143 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2144 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2145 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2146 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 2078 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2079 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 2080 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 2081 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 2082 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2083 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 2084 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2085 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 2086 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 2087 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 2088 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 2089 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2090 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2180 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 2181 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 2182 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 2183 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2052 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 2053 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 2054 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 2055 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 2056 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2057 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 2058 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 2059 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 2061 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2062 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 2063 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2064 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 2065 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2066 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2067 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 2068 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 2069 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 2070 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 2071 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 2072 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 2073 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2074 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 2075 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 2076 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 2042 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2043 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 2044 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2045 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2046 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 2047 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 2048 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 2049 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2050 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 2098 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 2099 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 2101 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 2102 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 2104 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 2106 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 2107 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2108 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2110 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2111 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 2112 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 2113 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 2114 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 2115 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 2116 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 2117 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 2118 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 2119 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 2120 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2121 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 2122 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2123 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2124 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 2125 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2126 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2127 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 2128 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 2129 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 2130 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 2131 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2132 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2133 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2134 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate 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 {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 2148 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2149 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 2150 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 2151 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 2152 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 2153 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 2154 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 2155 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 2156 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 2157 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 2158 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 2159 1 0 \"711dbc6f_e5c4_40a0_bef5785dc99707ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return9\"), stepReturn9);\r\n// }} \"\"\r\n// {{{ 2160 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 2161 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 2162 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 2163 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"Begin\"\r\nprivate function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\nprivate variable val;\r\nprivate variable o_arrayOfInts[];\r\n// {{ 5 \"StrArrayToInts\" \"InitLocals\"\r\no_intarray.SetSize( 0);\r\n// }} \"\"\r\n// {{ 2172 1 0 \"d68ba554_ea5e_486c_90e45e6f46e051a7\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 2173 1 0 \"2ceaf7fd_f918_493e_a519f9ccc1a58114\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfInts.SetSize(0);\r\n// }} \"\"\r\n// {{ 2174 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 2175 1 0 \"832d04b5_dd9e_47f6_86628701b9ba44ef\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nval=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 2176 1 0 \"a10f8b45_b69d_4a85_be5a713ea78ccd01\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nval = APPSLIB::StrConvertToNumber(val);\r\n// }} \"\"\r\n// {{ 2177 1 0 \"70dffb74_d5e0_4795_bc74a43dbf1c7d9b\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_intarray.AddAsLast(val);\r\n// }} \"\"\r\n// {{ 2178 1 0 \"f1b90762_2d83_476f_b1cd6ef39b938b13\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrArrayToInts\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"Begin\"\r\nprivate function ConvertHSSErrCode( variable hssErrCode ) variable {\r\n// }} \"\"\r\n// {{ 5 \"ConvertHSSErrCode\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2092 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (hssErrCode == 0)\r\n{\r\n// }} \"\"\r\n// {{{ 2093 1 0 \"9f0ce7fc_13c6_4496_9d762a07174e50f1\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (1);\r\n// }} \"\"\r\n// {{ 2094 1 0 \"0390e8b9_f753_48cc_ba9811c6326b8cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 2095 1 0 \"4c347e8c_4bce_4fd2_9771e3402c6f946d\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (0);\r\n// }} \"\"\r\n// {{{ 5 \"ConvertHSSErrCode\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=Hamilton$$valid=0$$time=2024-07-10 14:32$$checksum=3e086e59$$length=087$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxE82B.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxEF83.hsl",
    "content": " namespace _Method { #include \"HSLHttp\\\\HSLHttp.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"HSLStrLib.hsl\" } \r\n namespace _Method { #include \"HSLTrcLib.hsl\" } \r\n namespace _Method { #include \"HSLSeqLib.hsl\" } \r\n namespace _Method { #include \"HSLDevLib.hsl\" } \r\n namespace _Method { #include \"ASWStandard\\\\TraceLevel\\\\TraceLevel.hsl\" } \r\n namespace _Method { #include \"HslHamHeaterShakerLib.hsl\" } \r\n namespace _Method { #include \"HSLJson\\\\HSLJson.hsl\" } \r\n#include \"STAR_OEM_Test.res\"\r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit.hs_\" } \r\n namespace _Method { #include \"SchedulingDev\\\\HSLAppsLib.hsl\" } \r\n namespace _Method { #include \"STAR_OEM_toolkit_pH.hs_\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\" } \r\n namespace _Method { #include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\" } \r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\nvariable loopCounterMain;\r\nvariable msg;\r\nobject objJSONFromServer;\r\nvariable commandFromServer;\r\nvariable initializeAlways;\r\nvariable o_stepReturn;\r\nobject objJSONToServer;\r\nsequence seq;\r\nvariable tipSequence;\r\nvariable sequenceCounting;\r\nvariable channelVariable;\r\nvariable channelUse;\r\nvariable labwarePositions;\r\nvariable aspirateSequence;\r\nvariable v;\r\nvariable arrayOfVolumes[];\r\nvariable liquidClass;\r\nvariable aspirateMode;\r\nvariable capacitiveLLD;\r\nvariable pressureLLD;\r\nvariable liquidFollowing;\r\nvariable submergeDepth;\r\nvariable liquidHeight;\r\nvariable maxLLdDifference;\r\nvariable mixCycles;\r\nvariable mixPosition;\r\nvariable mixVolume;\r\nvariable airTransportRetractDist;\r\nvariable touchOff;\r\nvariable aspPosAboveTouch;\r\nvariable o_liquidLevels_mm[];\r\nvariable o_liquidLevels_mL[];\r\nvariable o_stepReturn2;\r\nvariable o_stepReturn3;\r\nvariable dispenseMode;\r\nvariable dispenseSequence;\r\nvariable dispPositionAboveTouch;\r\nvariable zMoveAfterStep;\r\nvariable sideTouch;\r\nvariable wasteSequence;\r\nvariable useDefaultWaste;\r\nvariable reducedPatternMode;\r\nvariable aspirateVolume;\r\nvariable o_stepReturn4;\r\nvariable dispenseVolume;\r\nvariable tipEjectToKnownPosition;\r\nvariable carrierName;\r\nvariable barcodeFileName;\r\nvariable barcodeReadPositions;\r\nvariable o_carrierBC;\r\nvariable o_carrierPositionsBCs[];\r\nvariable lidSequence;\r\nvariable plateSequence;\r\nvariable toolSequence;\r\nvariable transportMode;\r\nvariable widthBefore;\r\nvariable gripHeight;\r\nvariable gripWidth;\r\nvariable gripSpeed;\r\nvariable gripperToolChannel;\r\nvariable checkPlate;\r\nvariable zSpeed;\r\nvariable gripForce;\r\nsequence lidSeq;\r\nsequence toolSeq;\r\nvariable xAcceleration;\r\nvariable platePressOnDistance;\r\nvariable ejectToolWhenFinish;\r\nobject objHttp;\r\nvariable blnReturn;\r\nvariable blnSuccess;\r\nvariable usedNode;\r\nvariable deviceNumber;\r\nvariable action;\r\nvariable sampleInterval;\r\nvariable shakingToleranceRange;\r\nvariable id;\r\nvariable monitorResult;\r\nvariable firmwareVersion;\r\nvariable serialNumber;\r\nvariable command;\r\nvariable parameter;\r\nvariable plateLock;\r\nvariable shakingAccRamp;\r\nvariable shakingDirection;\r\nvariable simulate;\r\nvariable startTimeout;\r\nvariable toleranceRange;\r\nvariable securityRange;\r\nvariable intTrace;\r\nvariable shakingSpeed;\r\nvariable shakingTime;\r\nvariable temperature;\r\nvariable waitForTempReached;\r\nvariable inverseGrip;\r\nvariable liftUpHeight;\r\nvariable retractDistance;\r\nvariable tolerance;\r\nvariable labwareOrientation;\r\nvariable movementType;\r\nvariable collisionControl;\r\nvariable gripMode;\r\nvariable showCollisionCheckDialog;\r\n//global device HxFan (\"STAR_OEM_Test.lay\", \"HxFan\", hslTrue);\r\nvariable refillAfterEmpty;\r\nvariable chamber1LiquidChange;\r\nvariable chamber2WashLiquid;\r\nvariable chamber1WashLiquid;\r\nvariable chamber2LiquidChange;\r\nvariable FirmwareCommand;\r\nvariable FirmwareParameter;\r\nvariable CommandListElement;\r\nvariable CommandListLength;\r\nobject FirmwareCmdDict;\r\nvariable yDisplacement;\r\nvariable zDisplacement;\r\nvariable xDisplacement;\r\nvariable yOrigin;\r\nvariable xOrigin;\r\nvariable zOrigin;\r\nvariable ControllerID;\r\nvariable SimulationMode;\r\nvariable ErrorCode;\r\nvariable DeviceID;\r\nvariable TargetTemperature;\r\nvariable StopAllDevices;\r\nvariable TraceLevel;\r\nvariable Comport;\r\nvariable Simulate;\r\nvariable ModuleName;\r\nvariable Angle;\r\nvariable inputSequence;\r\nvariable barcode;\r\nvariable seqFirstPosition;\r\nvariable seqSecondPosition;\r\nglobal device ML_STAR (\"STAR_OEM_Test.lay\", \"ML_STAR\", hslTrue);\r\nvariable ModuleID;\r\nvariable probePattern;\r\nvariable pH_probe_1;\r\nvariable pH_probe_2;\r\nvariable pH_probe_3;\r\nvariable pH_probe_4;\r\nvariable Variance;\r\nvariable Timeout;\r\nvariable CalibrationLevel;\r\nvariable CalibrationValue;\r\nvariable CalibrationTemperature;\r\nvariable Precision;\r\nvariable Temperature;\r\nvariable ChargeCounter;\r\nvariable ReplacementDate;\r\nvariable BatteryCondition;\r\nvariable ActualCharge;\r\nvariable MeasurementCounter_Probe_1;\r\nvariable MeasurementCounter_Probe_2;\r\nvariable MeasurementCounter_Probe_3;\r\nvariable MeasurementCounter_Probe_4;\r\nvariable HardwareNumber;\r\nvariable Revision;\r\nvariable SerialNumber;\r\nvariable PartNumber;\r\nvariable Selector;\r\nvariable VoltageData;\r\nvariable Day;\r\nvariable Year;\r\nvariable Month;\r\nvariable Charge;\r\nvariable AutoCharge;\r\nvariable AutoChargeLevel;\r\nvariable Probe;\r\nvariable Mode;\r\nvariable ProbeNumber;\r\nvariable pHHighValue;\r\nvariable pHHighVoltage;\r\nvariable pHLowValue;\r\nvariable pHLowVoltage;\r\nvariable CalibrationSlopeRatio;\r\nvariable CalibrationOffset;\r\nvariable CalibrationSlope;\r\nvariable CycleNumber;\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n namespace _Method { #include \"HSLMETEDLib.hs_\" } \r\n namespace _Method { #include \"HSLMECCLib.hs_\" } \r\n namespace _Method { #include \"HSLSTCCLib.hs_\" } \r\n// }} \"\"\r\n// {{{ 2 \"LocalSubmethodInclude\" \"\"\r\n namespace _Method {  #include __filename__ \".sub\"  } \r\n// }} \"\"\r\n/* {{ 2 \"ProcessInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 5 \"main\" \"Begin\"\r\nnamespace _Method { method main(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"main\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_InitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_InitLibrary();\r\n::RegisterAbortHandler( \"OnAbort\");\r\n// }} \"\"\r\n// {{{ 1 1 0 \"e7768ad9_4016_4422_bd83f5785d03ceda\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nblnReturn = HSLHttp::Initialize(objHttp);\r\n// }} \"\"\r\n// {{ 2 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (blnReturn != blnSuccess)\r\n{\r\n// }} \"\"\r\n// {{{ 3 1 0 \"62c131b4_44b9_4249_8e0a3205a25b21b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate(\"HTTP Test Method\"), Translate(\" - \"), Translate(\"Error Initializing HTTP Library\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 4 1 0 \"fb18125e_b294_4554_912c3d447526996e\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn;\r\n// }} \"\"\r\n// {{ 5 1 0 \"345d4eb5_743c_4127_a4aaba41ad470490\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 6 1 0 \"ee92e29b_e94c_46cf_a67851f3be61c805\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Hi, Im a VENUS method.\"));\r\n// }} \"\"\r\n// {{ 7 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounterMain = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounterMain = loopCounterMain + 1;\r\n// }} \"\"\r\n// {{ 8 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 9 1 0 \"de417132_351a_4ad8_80c71b1863d4a870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\ncommandFromServer = Translate(\"\");\r\n// }} \"\"\r\n// {{ 10 1 0 \"d9c97239_3c9d_4992_8fb5820ae5721d90\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"\");\r\n// }} \"\"\r\n// {{ 11 1 0 \"57da7835_7495_4b16_8b82897289efbd11\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn2 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 12 1 0 \"cf024fcc_3594_4355_b33f4bd8c8bdfb4e\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn3 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 13 1 0 \"9ed0b80d_8518_474f_a94d8f843a6158fe\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn4 = Translate(\"\");\r\n// }} \"\"\r\n// {{ 14 1 0 \"bbc3799d_5235_430a_83ee2b85c19b34e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 15 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 16 1 0 \"0257e5d3_7b99_47be_a062950a2b200664\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nmsg = waitForGUItoContinue();\r\n// }} \"\"\r\nTrace(\"JSON received from Server:\", msg);\r\n// {{{ 18 1 0 \"36be63f7_a79c_44a4_b1dc636a536612bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONFromServer);\r\n// }} \"\"\r\n// {{{ 19 1 0 \"5c2b861d_97f9_4e18_a5fce25e78026299\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::ParseJson(objJSONFromServer, msg);\r\n// }} \"\"\r\n// {{{ 20 1 0 \"562abca5_8891_402a_b8a7c5ba56301a86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), commandFromServer);\r\n// }} \"\"\r\n// {{{ 21 1 0 \"cb002e33_cc71_4a25_890fa8f9f5d982a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"id\"), id);\r\n// }} \"\"\r\n// {{ 22 1 0 \"2a480605_c08c_4124_aa6144a4f82d7f70\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 23 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 24 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 25 1 0 \"773dbb38_0414_403d_b2ff24100c7cf1fc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"initializeAlways\"), initializeAlways);\r\n// }} \"\"\r\n// {{{ 26 1 0 \"97af1c08_2914_4f72_b27c685f11b30bb6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 27 1 0 \"b3ab11e2_0297_446f_9cf37ca7c0c9d19f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Init step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 28 1 0 \"57d4e0cd_327e_4cac_8e83a7da6222dda0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 29 1 0 \"91420bb1_8e2d_4390_9f117f7abf75ff6f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 30 1 0 \"9c121b53_70ea_404b_a727359c0f018549\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 31 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 32 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 33 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 34 1 0 \"53e1cfb5_1fde_491f_bfd878eceda16ba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 35 1 0 \"f0e9e31f_d871_4632_bd466e43fc38c771\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 36 1 0 \"e6311b13_2132_40e0_aff0b5556205c32a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 37 1 0 \"cb659ed1_5f0c_41e8_8a060ec0b650c589\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{ 38 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 39 1 0 \"6699226b_6c7b_4b79_95b8017162b433b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 40 1 0 \"bd13798f_62e7_4dd2_8e91769d48d10fc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 41 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 42 1 0 \"ce13caa6_634b_4dec_8a6c3ea74b144e95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 43 1 0 \"d6e8b66f_1148_4022_aebfb3fb0506ed05\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 44 1 0 \"29f69958_d99b_455a_93c7b0480bfd1658\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 45 1 0 \"732425fd_a199_4354_8479d821ee834e82\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 46 1 0 \"22f00193_1056_456e_a515d156eee56e2f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 47 1 0 \"d5302912_74bf_437e_8ecf0393df936981\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 48 1 0 \"096d118a_5201_42a2_8920afb479569ecb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 49 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 50 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelAspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 51 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 52 1 0 \"55ee3109_036b_4acb_8a15175f3316656f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 53 1 0 \"a5b3e5ac_4910_4a4a_8e20bdb7f61836e5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 54 1 0 \"ce04189a_96e4_4bdc_aedc8a68bf64647b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 55 1 0 \"882daff3_cc25_4778_aec6a937fc87347c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 56 1 0 \"7f7b9f83_5611_4a3b_b5c120689696addb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 57 1 0 \"39e464b7_0def_403b_a02f5dd2a358dbd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 58 1 0 \"2e2739aa_8eb6_44e0_b887ea00b04acac0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 59 1 0 \"9408edd8_3cee_43e0_976b4a6fabf5f4ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 60 1 0 \"a2848877_3518_4d1d_95f77c1f313003e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"pressureLLD\"), pressureLLD);\r\n// }} \"\"\r\n// {{{ 61 1 0 \"4b5ce3d0_91f4_4c14_aaf1cad34e0caf60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\nTrace(\"Bookstart\");\r\n// {{{ 63 1 0 \"12892ce3_3bc6_4165_b3b6ae0eacad20e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\nTrace(\"Bookend\");\r\n// {{{ 65 1 0 \"15bd5af3_2da1_420b_beb398dc2347a0ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 66 1 0 \"4fe61fb4_bb39_4728_96b8c6959f4943ee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"maxLLdDifference\"), maxLLdDifference);\r\n// }} \"\"\r\n// {{{ 67 1 0 \"ba68c240_2397_4872_949ee1ee984595c2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 68 1 0 \"baac19fc_9f21_4e8c_b833f2a1ba2433f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 69 1 0 \"253130f8_f599_4ef4_9d5a15e2cb89d1eb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 70 1 0 \"51233931_483f_4deb_a8627b909d6c9116\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 71 1 0 \"bf0c65ba_7847_4768_92ebbe8adc6568c4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 72 1 0 \"30a6715c_b6c6_4d86_b5c02f3da440e309\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 73 1 0 \"6eb82b6e_8093_461e_afc712cab07398dd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 74 1 0 \"3f8b6af1_7872_4a20_92bf2c4507ea9f31\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspPosAboveTouch\"), aspPosAboveTouch);\r\n// }} \"\"\r\n// {{{ 75 1 0 \"7dd1b818_5a89_4b03_82734e6f4d7b5fad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{ 76 1 0 \"eec79792_12c9_497a_a627d6dfe294549f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 77 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 78 1 0 \"cb2b67f0_7384_4a41_831de652f92d4c85\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 79 1 0 \"29a868b4_7800_4747_b14eaf0f2c10ba40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 80 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 81 1 0 \"08f63789_65f1_4e7d_996dc22e8f33d416\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 82 1 0 \"2f25fa85_6514_4692_80ebf9634fc9cbc8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 83 1 0 \"8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 84 1 0 \"7cb70e6b_15bb_4380_b62150df065d208f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 85 1 0 \"4714958b_0632_4de2_983c7fe9de68df6c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 86 1 0 \"bd40f564_16d7_4037_aef8eebfe28a4362\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 87 1 0 \"18bf536c_98f4_4345_86a103db4a9b68a1\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 88 1 0 \"d60cd9aa_083b_4487_8d6218cee02fa4cd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 89 1 0 \"e86187c0_0d19_453e_be1c5a401d0d5d93\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 90 1 0 \"d66c2dae_4cc3_4a31_bafe46d1dd63e790\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 91 1 0 \"d23f143d_290d_4d0f_b368241a6a9adaed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 92 1 0 \"0428e844_3191_4cde_b7f3544f34c833f0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 93 1 0 \"a7ca006f_941c_4b31_9749313ad9b4e079\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 94 1 0 \"8c97ba72_f880_4504_baee8b8db3d13310\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 95 1 0 \"6412fdfb_fc05_440a_8222497478941440\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 96 1 0 \"7242d57d_5d51_4c4a_b6581549c4689bf3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 97 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 98 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelDispense\")\r\n{\r\n// }} \"\"\r\n// {{ 99 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 100 1 0 \"909bc255_6ca1_4700_bc102ccb34ae5be4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 101 1 0 \"fd48dd93_9f42_4df0_9f659e27a5552543\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 102 1 0 \"3ff3f492_86a5_40af_a3deabccbab3898d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 103 1 0 \"3cbb883f_48ae_40fe_afe67da944df94b3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 104 1 0 \"ab1033bc_1216_450a_9fb60655a1f1a21a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes);\r\n// }} \"\"\r\n// {{{ 105 1 0 \"0bc1541f_26d5_44d6_8db6ae336fec17bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 106 1 0 \"8c10cc29_c05e_4cea_9ed559249651e805\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 107 1 0 \"3e0373da_7c7c_46ab_9b77fba19915662e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 108 1 0 \"b98fdc49_cdcb_4f3c_81df0b76eafa1411\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 109 1 0 \"7458d32a_402a_4215_b52378c78468ec80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 110 1 0 \"5e14f2ce_c932_474b_be03f3c043c700e2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 111 1 0 \"c2010d1d_5a78_4871_a835a6613a1237bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 112 1 0 \"d4a6e6a3_0158_45f1_9c359d8e48e01bed\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 113 1 0 \"011e9828_5413_40c1_80d0c3bdde1c6591\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 114 1 0 \"2d7a4942_b2ce_43a2_8decf49fa0c9576c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 115 1 0 \"ad9f0bbf_e495_41c5_898a3be32bb16f2b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 116 1 0 \"5c734886_aa50_424c_b89f6894bc37dd8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 117 1 0 \"d1bc00cc_4286_4409_b1c49b6350e7e6ae\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 118 1 0 \"b178ce99_db9e_4453_bed28d4ce0457bc0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispPositionAboveTouch\"), dispPositionAboveTouch);\r\n// }} \"\"\r\n// {{{ 119 1 0 \"1b38ad88_3c65_4e58_812f9ed32ce32485\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"touchOff\"), touchOff);\r\n// }} \"\"\r\n// {{{ 120 1 0 \"f34066f1_63f9_474f_8a9c41e56962dc74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 121 1 0 \"6b94916e_355b_4ee9_8eb4f1b49c95fea4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 122 1 0 \"7254ee91_46a0_477b_bf608b7218bb74d7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 123 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 124 1 0 \"e962dd26_3672_4418_bd3c40e9929929eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 125 1 0 \"6257966a_6b39_41c8_a057a79b8e39cd4b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 126 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 127 1 0 \"3f230e40_8bd9_4235_b88cd0ca80799661\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 128 1 0 \"9fa78e48_8e5f_4515_a8de06407bd9635a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 129 1 0 \"8d82ff40_d831_430b_97d97c01d2a4474e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{{ 130 1 0 \"ac0ad5a7_d00b_46fe_a18f94f8dab3863c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{ 131 1 0 \"b7f86b6c_03a4_4e12_a05e5e8bdc958b75\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nxOrigin = xDisplacement * -1;\r\n// }} \"\"\r\n// {{ 132 1 0 \"9bfa8704_2ae0_4a63_83d09fddbacfd336\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nyOrigin = yDisplacement * -1;\r\n// }} \"\"\r\n// {{ 133 1 0 \"860b660a_6947_4c88_a2a039bf65040bf5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nzOrigin = zDisplacement * -1;\r\n// }} \"\"\r\n// {{{ 134 1 0 \"797f0eef_5bb2_4a2e_a178af74f4892bd7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin);\r\n// }} \"\"\r\n// {{{ 135 1 0 \"2753c24e_c4dc_402d_866b6bc8691ecc1f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mm, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 136 1 0 \"1ac127fd_b830_496f_b4d4b9671137ebff\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nArrayToString(o_liquidLevels_mL, o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 137 1 0 \"3ee5d751_d3a5_468a_b539c4f0ff22023e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 138 1 0 \"b86d492c_446f_4921_97140cfd462ace87\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 139 1 0 \"e049946d_6322_4b39_9c46a2d0eb345528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 140 1 0 \"531432f5_ef8a_416e_8be28a07ae9b0d25\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 141 1 0 \"6229057f_63cb_4849_ad532aee44485f79\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 142 1 0 \"f1958a25_05f4_463c_9c0c607079faa67e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 143 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 144 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"channelTipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 145 1 0 \"69be671e_7cdd_48d3_af136435754c1d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 146 1 0 \"f3444c0f_4863_4fdd_94a025b682d8a6d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 147 1 0 \"12ad2f39_c160_4afc_9f6ffce7e3ddb433\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 148 1 0 \"2883bb64_2fe3_47ca_996e11434afc57cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"channelUse\"), channelUse);\r\n// }} \"\"\r\n// {{{ 149 1 0 \"10c3b13e_7129_4cfd_b88b29d0bbc31a28\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"useDefaultWaste\"), useDefaultWaste);\r\n// }} \"\"\r\n// {{ 150 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (useDefaultWaste == 0)\r\n{\r\n// }} \"\"\r\n// {{ 151 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 152 1 0 \"655bc92f_08a8_4c16_a0276997aec081ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 153 1 0 \"a3a0b5ef_85c0_4552_a28b3356d7886eb4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 154 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 155 1 0 \"efadb8c3_c431_4ed4_a739a951c05ee518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 156 1 0 \"e958d88e_7b2c_418d_95311a91095c1ca4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 157 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"2dda50b6_7f82_4e8a_a1d203715119213a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 159 1 0 \"faa78f81_31ef_4bc1_8795b129be12dc47\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 160 1 0 \"7fa61e34_a1f2_4b99_8f6bed13c6ce120f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 161 1 0 \"a7db5128_f8e4_4afe_81f46b2cc86e608d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 162 1 0 \"683607f4_928f_4cea_b901fe3502404424\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 163 1 0 \"8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 164 1 0 \"96efe990_9aaf_4901_b5fac690e3318f55\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 165 1 0 \"c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 166 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 167 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 168 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipPickUp\")\r\n{\r\n// }} \"\"\r\n// {{{ 169 1 0 \"1f82c33f_a085_47cc_85dbbde3e42a53c6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"tipSequence\"), tipSequence);\r\n// }} \"\"\r\n// {{{ 170 1 0 \"9f9fe665_47a2_4a12_961460021d1f09f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 171 1 0 \"743960d2_9d0f_4ccf_848662247e3211c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 172 1 0 \"b737602c_63e8_4c4c_b47f40cb815914ce\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"reducedPatternMode\"), reducedPatternMode);\r\n// }} \"\"\r\n// {{ 173 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 174 1 0 \"00bd1831_c335_40f5_b706f0ffadbe2890\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 175 1 0 \"1f16418c_8fa7_44a5_a6db75dd9a79ee84\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 176 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 177 1 0 \"b66db4eb_9e79_4c19_909fd8d14d37cba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, tipSequence, seq);\r\n// }} \"\"\r\n// {{ 178 1 0 \"45b9cf20_6414_49ae_94c6372fa78d0427\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 179 1 0 \"f3e7cbf6_0242_4463_8d4ed0db4667f7db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 180 1 0 \"b080a5c6_324c_4aae_b5899dede6d863f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip pick up step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 181 1 0 \"aa5a9c4b_0377_46ce_9b46883db15cbd7b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 182 1 0 \"49c290d6_ea29_4a7d_94788c8549af379e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 183 1 0 \"c6402ee1_55b3_41b1_a0a13229219b872a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 184 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 185 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Aspirate\")\r\n{\r\n// }} \"\"\r\n// {{ 186 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 187 1 0 \"373f30c8_ec07_4298_94d6ac75358ab1ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"aspirateSequence\"), aspirateSequence);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ef3ae377_e985_4ef6_93b005aa91c9b2b1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 189 1 0 \"d8eea65a_6e59_4c32_a47bae09779f9528\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 190 1 0 \"8eb02312_a070_491c_9758b3cdbdee0cfc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"aspirateVolume\"), aspirateVolume);\r\n// }} \"\"\r\n// {{{ 191 1 0 \"6eaf8bee_b53f_4f01_87c1380bc345e386\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 192 1 0 \"d9923a2f_e7cf_4f3e_81746e378a20baab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"aspirateMode\"), aspirateMode);\r\n// }} \"\"\r\n// {{{ 193 1 0 \"2c411993_e3fc_4753_9a90308b226078a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 194 1 0 \"5d900896_b2b9_442b_b24294b9bbfbdaad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 195 1 0 \"21149e9e_21c9_4ddd_93e07b693e3ab3fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 196 1 0 \"bcefef03_102b_4887_adad59c2fb7ad551\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 197 1 0 \"9665b0a3_35e8_47e9_b14ac1a4818cfa6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 198 1 0 \"ff93d28b_afe9_47e7_9b6eb50d6845384f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 199 1 0 \"ef43b824_fd38_42d4_9e932904dbf14813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 200 1 0 \"b0378457_e370_448b_bfd6955c05e57bcb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{ 201 1 0 \"cd612207_e95c_47d2_a5e81e6bd2ef1cfb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 202 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (aspirateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 203 1 0 \"615bcff6_e9d5_4303_a5d5826b2e2548dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 204 1 0 \"cf4ad428_945e_4921_9441ee34cf9c96bd\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 205 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 206 1 0 \"86397ec2_2ee5_4ec1_8bec47d8e87584b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, aspirateSequence, seq);\r\n// }} \"\"\r\n// {{ 207 1 0 \"97c53bd8_baf9_4411_8c670fcfe9e79e0c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 208 1 0 \"48f88263_72c1_4df2_865181cffed9feee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 209 1 0 \"f1b764e8_e556_4d08_bb83bdc12dc64a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"164c104a_cf5f_46de_b23a098a18b3fdde\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 211 1 0 \"ee779f77_51a9_46d7_b58b7bcaf13519f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 212 1 0 \"e874eb6d_1e97_4590_95d9b10cb059c935\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 213 1 0 \"0ca1df86_a344_45fd_b384e13ba44c5ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 214 1 0 \"2497228e_672e_4c95_9f31679fe87bbe1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 215 1 0 \"e4930eee_c625_4acb_a81c05e149a1a218\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 216 1 0 \"179cb35e_ab75_466d_973199efad73086f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 217 1 0 \"0da0a8c9_7e13_4608_88b4d1641d697c87\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 219 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96Dispense\")\r\n{\r\n// }} \"\"\r\n// {{ 220 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 221 1 0 \"78cba921_2a37_4b4a_91ef7fbe81fcddd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"dispenseSequence\"), dispenseSequence);\r\n// }} \"\"\r\n// {{{ 222 1 0 \"b58b4cbd_16e9_4444_9037061e29bc5614\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 223 1 0 \"0ab910ec_826d_4c84_bac7ed9564f3bdab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 224 1 0 \"84d664b7_70d0_4136_bdfd4de2aa760ad8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"dispenseVolume\"), dispenseVolume);\r\n// }} \"\"\r\n// {{{ 225 1 0 \"18becc6a_2df4_4281_8b16ade9038979f4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"liquidClass\"), liquidClass);\r\n// }} \"\"\r\n// {{{ 226 1 0 \"68c565db_e5ed_44e8_b3846a1d98034e76\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"dispenseMode\"), dispenseMode);\r\n// }} \"\"\r\n// {{{ 227 1 0 \"6a4221a8_9488_48f9_8381b1bc0f0c960d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"capacitiveLLD\"), capacitiveLLD);\r\n// }} \"\"\r\n// {{{ 228 1 0 \"45dcb271_e326_42fc_b8684816d3ffdc93\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"liquidFollowing\"), liquidFollowing);\r\n// }} \"\"\r\n// {{{ 229 1 0 \"14552b13_e77b_4fb7_9020445ecc5ade21\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"submergeDepth\"), submergeDepth);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"91783f87_af6f_446e_a74fb1725f17d282\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liquidHeight\"), liquidHeight);\r\n// }} \"\"\r\n// {{{ 231 1 0 \"e2e7f702_1710_49eb_9b1046dbf4f143e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"mixCycles\"), mixCycles);\r\n// }} \"\"\r\n// {{{ 232 1 0 \"1817aa70_86fa_4318_a8e46569701623e6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixPosition\"), mixPosition);\r\n// }} \"\"\r\n// {{{ 233 1 0 \"50bd6734_10d5_4291_b40eb708539514fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"mixVolume\"), mixVolume);\r\n// }} \"\"\r\n// {{{ 234 1 0 \"ad5fbb01_d809_4b7d_b858ed597709f28f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"airTransportRetractDist\"), airTransportRetractDist);\r\n// }} \"\"\r\n// {{{ 235 1 0 \"09566247_6b2d_4c73_b43fe303a30f89c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"zMoveAfterStep\"), zMoveAfterStep);\r\n// }} \"\"\r\n// {{{ 236 1 0 \"3ead74f7_3b5c_4b21_84d2488c2eceab73\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sideTouch\"), sideTouch);\r\n// }} \"\"\r\n// {{ 237 1 0 \"038b2c58_b167_42b1_976c6a24b1f1e093\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 238 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (dispenseSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 239 1 0 \"835f8470_7e8c_40ff_a48abcc85d6b778b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 240 1 0 \"059394fc_e924_4d57_b1b85f79f9947fa7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 241 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 242 1 0 \"6c4be3a7_a450_459c_90545a208f9f459f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, dispenseSequence, seq);\r\n// }} \"\"\r\n// {{ 243 1 0 \"19850b87_d25c_4e7e_beac9698ba1913e6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 244 1 0 \"c164a94e_2926_462e_9487870d403fe8b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"86c0fb85_8aaf_4bec_9f6f1f642206487f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 1:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 246 1 0 \"77047add_8050_4522_ad477b97455a8327\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 247 1 0 \"5b2c6f23_9a69_489d_b52179c78c03e48f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 3:\"), o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 248 1 0 \"a9a9244b_829f_4c5b_9a64f1018b029453\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Aspirate step return 4:\"), o_stepReturn4);\r\n// }} \"\"\r\n// {{{ 249 1 0 \"781580a9_199e_4373_b48bb55a97f8a463\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 250 1 0 \"1867ae44_25f8_4926_ae081e490fd5aa0c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn3 = StrFStr(o_stepReturn3);\r\n// }} \"\"\r\n// {{{ 251 1 0 \"dbb3b30c_b4a1_4cf6_a24b62b63f155369\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 252 1 0 \"84933473_b9c8_45e6_93c2e1fe9fdd6fe2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 253 1 0 \"3d010469_c0ec_4aaf_8dbb9db77d07e879\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 254 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 255 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"mph96TipEject\")\r\n{\r\n// }} \"\"\r\n// {{{ 256 1 0 \"7cf9db16_d78c_4aa0_825cc3c2c22f287c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"wasteSequence\"), wasteSequence);\r\n// }} \"\"\r\n// {{{ 257 1 0 \"ccca7a97_c22a_4f20_b2d9a60d67850eee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"channelVariable\"), channelVariable);\r\n// }} \"\"\r\n// {{{ 258 1 0 \"a319f75e_77eb_4845_856516ce060213f8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 259 1 0 \"d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"tipEjectToKnownPosition\"), tipEjectToKnownPosition);\r\n// }} \"\"\r\n// {{ 260 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (tipEjectToKnownPosition == 0)\r\n{\r\n// }} \"\"\r\n// {{ 261 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (wasteSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 262 1 0 \"24eeb6dd_1e20_422c_a1a8199cbca73b33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"labwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{{ 263 1 0 \"5197334f_cde5_4d52_9c528a0c4f7401b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 264 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 265 1 0 \"110b82e1_8a5b_48e4_a3adbab701cffc8b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, wasteSequence, seq);\r\n// }} \"\"\r\n// {{ 266 1 0 \"c104fdc8_7bec_4568_8805c3939de4583c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 267 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 268 1 0 \"fa32bbf8_8345_4897_aaf09d112d374893\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqCopySequence(seq, ML_STAR.Waste);\r\n// }} \"\"\r\n// {{ 269 1 0 \"abbc4bc2_9485_481b_bbe94a0588ac7361\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 270 1 0 \"ef087a4e_684e_4d98_87109abf154fbc85\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 271 1 0 \"328216cf_22dd_47a1_9f1ba089b1ac7702\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 272 1 0 \"53265943_7975_4275_ad98df313054f97f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tip eject MPH96 step return2:\"), o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 273 1 0 \"c13d9773_7daf_4c3c_9064fdd4f7c7008f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 274 1 0 \"6dc6adab_13b6_43f2_861811043b29125f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 275 1 0 \"85d02bd4_2577_4d20_a421637363ce8cb7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 276 1 0 \"dae3c075_aa35_42e2_9e6e1a8e8f268b77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 277 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 278 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"loadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"76d739d0_ff4a_490b_9c47f411d29ef7a2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 280 1 0 \"ca623aa7_ed48_45fa_9f4055fb8e08c3d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeFileName\"), barcodeFileName);\r\n// }} \"\"\r\n// {{{ 281 1 0 \"64a8e193_7e7e_412e_8a0657f0e832eaef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"barcodeReadPositions\"), barcodeReadPositions);\r\n// }} \"\"\r\n// {{{ 282 1 0 \"39e6aaef_5cce_4915_b5b6ede214c7371e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs);\r\n// }} \"\"\r\n// {{{ 283 1 0 \"1d4d284f_fd1e_4f8a_a2158846ad6a67f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Load carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 284 1 0 \"358b7fc3_40a2_418b_9d61d94eef1556f6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id);\r\n// }} \"\"\r\n// {{ 285 1 0 \"626eacf3_276f_4407_bc6162f83f5031ab\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 286 1 0 \"f05b5d9a_143f_4d6e_aaafc812b79adfb2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 287 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 288 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"unloadCarrier\")\r\n{\r\n// }} \"\"\r\n// {{{ 289 1 0 \"797d23a7_c62a_471a_a52b10fea8bcc154\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"carrierName\"), carrierName);\r\n// }} \"\"\r\n// {{{ 290 1 0 \"f1c35790_adb7_49eb_a96864d8b1d66cea\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 291 1 0 \"6e6ded71_3f99_46c5_9362117beb502a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Unload Carrier step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 292 1 0 \"8713fee4_6b93_4296_a5396254fd404d52\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 293 1 0 \"ef4919d8_6fef_4080_8e2c3515dbc22835\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 294 1 0 \"180932c0_846d_469d_96a51f5ffc6ff485\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 295 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 296 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 297 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripGet\")\r\n{\r\n// }} \"\"\r\n// {{ 298 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 299 1 0 \"c4847ae5_e161_4f23_aa432eda22de28bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 300 1 0 \"022a5cdd_3f4f_4e18_927c174fc57a68a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 301 1 0 \"3e462067_5eb3_49c3_b7bf6a27de9ce3bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 302 1 0 \"f7004881_3f0d_4621_a88d55dec8fc0d30\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 303 1 0 \"262b36ba_6d86_4009_bdc9a3881db7074e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 304 1 0 \"be44b37f_7cec_4f69_81c223f2c30b120b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 305 1 0 \"3dea3158_65f8_44bc_8d06a31ce3458dab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripperToolChannel\"), gripperToolChannel);\r\n// }} \"\"\r\n// {{{ 306 1 0 \"308b2aa2_5970_4692_858049c6559d6ad0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 307 1 0 \"756d0f81_3645_4a49_a0c2259581e11498\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 308 1 0 \"cdbf11ba_b1f8_4016_811240a02705f1fa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{{ 309 1 0 \"625df597_c6c8_4e4a_b956e9580bfbc568\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripSpeed\"), gripSpeed);\r\n// }} \"\"\r\n// {{{ 310 1 0 \"3576d134_8507_4e47_9c2bcc3dce8c026d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 311 1 0 \"5b9c06ad_9081_4b6b_97e50cc87623b888\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 312 1 0 \"55c3c39d_d1ed_4f1f_a76b945023618062\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 313 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 314 1 0 \"d1f3c2ac_9c68_4200_a3506bbbed8e42a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 315 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 316 1 0 \"f1d1c43b_a9dd_4573_a69dd7c0e79eea40\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 317 1 0 \"0909e26c_081f_44a0_bf14e041faa2459e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 318 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 319 1 0 \"4d304110_107e_412e_909bb84008a244de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 320 1 0 \"8f8b1ba1_af12_4cdd_acf2096420ede259\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{ 321 1 0 \"cb15ae17_1bbf_4644_821251ae94116a81\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 322 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 323 1 0 \"72e31f7d_c091_4525_a5cf7001754b199d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 324 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 325 1 0 \"47dfcbb5_d784_48bb_b36b97509434a3a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 326 1 0 \"c6b60302_7344_4277_bc6d10eb019a6479\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 327 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 328 1 0 \"e6c53925_446e_468e_b0e0654b4b9d9a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 329 1 0 \"350fc067_6d00_4e0f_a132715cbad106c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 330 1 0 \"c0cbb194_1b8b_4fe0_a0f706e03eaa0748\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 331 1 0 \"46703217_a28e_42ce_b13c11d73ba34bfa\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 332 1 0 \"189164cc_2681_492f_83f072fb537648b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 333 1 0 \"c8d6960a_f416_47b1_a29e2752973c0ec9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 334 1 0 \"7897ae6f_f5af_4658_95d51c905771319e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 335 1 0 \"4f803217_364c_4e04_b8944d3fd0a599e5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 336 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 337 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripMove\")\r\n{\r\n// }} \"\"\r\n// {{ 338 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 339 1 0 \"5755c338_faa3_4f0a_9acd4cd01a912862\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 340 1 0 \"2849c819_a3dc_4328_8484ccc4785993d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{ 341 1 0 \"2e67154a_8526_49ce_8728c4931f6b56e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 342 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 343 1 0 \"e038f780_938f_4867_98f769488ca44b04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 344 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 345 1 0 \"27439ab7_df5a_4e1b_99b64e6c9fd0d9f2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{{ 346 1 0 \"3d8767e5_5f31_4ce5_91a11e28045ec87a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 347 1 0 \"e9e0b38e_13aa_40f9_8e470eb1de09eb19\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"wrong\"), Translate(\"nowwrongere\"));\r\n// }} \"\"\r\n// {{ 348 1 0 \"6441828f_4768_4f66_8cacb3df9b86922f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 349 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 350 1 0 \"e2da0756_7cea_44e7_963442343f3c0732\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{{ 351 1 0 \"ee8b8050_164a_4de8_b6ce02120236efbf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTraceSequence(seq);\r\n// }} \"\"\r\n// {{{ 352 1 0 \"be0898fe_cdb8_4ac3_a9e991e26bdb6658\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here\"), Translate(\"now here\"));\r\n// }} \"\"\r\n// {{ 353 1 0 \"ee510e06_fba0_4e8a_9f33b4143a9a84cd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 354 1 0 \"90f602a1_fdc5_48fd_801269ecd2c3f9bc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 355 1 0 \"dc418b75_2d70_4034_84a767fba752b262\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Move - step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 356 1 0 \"ae4414d3_a939_4fdb_a0ed06f1be1506e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"here here\"), Translate(\"nohhere\"));\r\n// }} \"\"\r\n// {{{ 357 1 0 \"6379549c_caf9_409f_b293abf77f1dcfbf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 358 1 0 \"eca3d9ac_a862_4026_b936daef38503cca\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 359 1 0 \"73dd7b12_a89b_4afc_a96ba4204d003f3b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 360 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 361 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"gripPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 362 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 363 1 0 \"6f38d60b_6dc5_4159_ba30360f264222da\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 364 1 0 \"b6ef73cf_c89c_41cc_a3b72dc5aaf70f90\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 365 1 0 \"c7e5f5bd_edcc_4000_9be3db81af0c79fa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 366 1 0 \"91ff4c39_6a86_4eda_998a5461ef6c3cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 367 1 0 \"341a6f8e_b4c8_4966_b9520322d1bc2e83\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 368 1 0 \"32792c80_3b36_4a25_8fff6b99bfcf1919\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ejectToolWhenFinish\"), ejectToolWhenFinish);\r\n// }} \"\"\r\n// {{{ 369 1 0 \"b1e5d86e_c659_4d33_9e0f83fdb20b2cb5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zSpeed\"), zSpeed);\r\n// }} \"\"\r\n// {{{ 370 1 0 \"76b26748_4e74_45f7_85a7dc102b5fd7b1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"platePressOnDistance\"), platePressOnDistance);\r\n// }} \"\"\r\n// {{{ 371 1 0 \"ee221e8a_a662_49d8_be2ef0ed631d9527\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"xAcceleration\"), xAcceleration);\r\n// }} \"\"\r\n// {{{ 372 1 0 \"cbefd54c_5f0a_4a16_a0199198529b71fd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"checkPlate\"), checkPlate);\r\n// }} \"\"\r\n// {{ 373 1 0 \"18f27b88_be8e_4c49_92566fd5f1ce0c37\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 374 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 375 1 0 \"ac4e7090_c3c7_4707_8d98dc55262c294b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 376 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 377 1 0 \"eb5776ad_c858_4ee8_ba31f47af19e76af\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 378 1 0 \"82ff652c_8b42_4282_b5277b20dfb2fea2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 379 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 380 1 0 \"1f3eb006_1b10_427e_99d0b530f1afc2ff\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 381 1 0 \"eca3c210_49ca_4c0d_88ac688abf58032a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 382 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 383 1 0 \"a04c5993_bf3e_46c7_92f24c8236636b00\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 384 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 385 1 0 \"2455f68c_be4e_4a21_9e9e78f78f6e8e3c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 386 1 0 \"c4165ca5_f7f8_4246_a768df51ac472dc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 387 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 388 1 0 \"ad5d98b0_9e3d_4275_90ceef06ceca045d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 389 1 0 \"b7e69052_d1e4_43ad_b3403f2eefd3a18b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 390 1 0 \"3321537f_63fb_48a4_90e40a2fee1cc432\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, toolSequence, toolSeq);\r\n// }} \"\"\r\n// {{{ 391 1 0 \"8c7e60df_f040_45c6_a939d99bcd0ac23c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 392 1 0 \"24e589a9_98d7_429d_90c8afe203e96ac4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Channel 1mL -  CO-RE Gripper Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 393 1 0 \"9d94d038_d071_4339_aaace5a2e455b240\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 394 1 0 \"1d4becec_06d8_4ebb_9124b50181bee9c4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 395 1 0 \"3b30a782_e898_424b_8d4e0c4cad1d3f3c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 396 1 0 \"86a30d98_3025_4cc4_9383dc6fa7ffa2a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 397 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 398 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 399 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGet\")\r\n{\r\n// }} \"\"\r\n// {{ 400 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 401 1 0 \"4a585a30_3a23_44cc_a0948963de716cba\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 402 1 0 \"da3a318b_1208_4329_be1faae95ecc2e03\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 403 1 0 \"1f51589f_347c_497b_a7338461d92076d9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 404 1 0 \"622e6765_4ee3_4df5_917ca140f8b7981b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 405 1 0 \"9826612b_e564_4231_8f83fdfcbd374bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 406 1 0 \"fdb52557_ae6c_42b3_925073ab7ae7a5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 407 1 0 \"171639e0_98ad_4857_a5ac346039499a33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 408 1 0 \"0d4077af_b1dc_4dea_a23a163c57d96248\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripForce\"), gripForce);\r\n// }} \"\"\r\n// {{{ 409 1 0 \"60732b74_8870_48e2_be03564159cf35b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"inverseGrip\"), inverseGrip);\r\n// }} \"\"\r\n// {{{ 410 1 0 \"ffa21840_da03_4682_b62a6910caf63f45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 411 1 0 \"0af9b15f_4e1b_4353_a6261def96fea256\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{{ 412 1 0 \"c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 413 1 0 \"74d93b97_5d7f_4593_9aeb9d83d5466e6f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{{ 414 1 0 \"28d636c0_47c0_4fac_8a7b67124fd8b9f5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripWidth\"), gripWidth);\r\n// }} \"\"\r\n// {{{ 415 1 0 \"6f62025f_9dde_4ae6_a6b6b69efed6e381\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"tolerance\"), tolerance);\r\n// }} \"\"\r\n// {{{ 416 1 0 \"f3d51abd_651e_4b15_93eb0cea0c0384be\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"gripHeight\"), gripHeight);\r\n// }} \"\"\r\n// {{{ 417 1 0 \"1b72eb1e_c220_42e0_9a34675ddc971fe7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"widthBefore\"), widthBefore);\r\n// }} \"\"\r\n// {{ 418 1 0 \"dc90fc21_1aee_41f7_ade46ae87d42937d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 419 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 420 1 0 \"fd3fbb06_b08e_4790_8e3b785ca1f8ed4e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 421 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 422 1 0 \"87331d5f_01ff_43a8_a0a06487f28bb2b6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 423 1 0 \"68ccf7f3_f98e_475d_a46e854f3ad77337\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 424 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 425 1 0 \"5f12c00c_48c1_4e2f_a24b4ba435343a8c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 426 1 0 \"a792522b_2807_4c12_9dca4201f7880cd3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 427 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 428 1 0 \"d3e5718a_eb78_4c1f_a6467f61ccbe82df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 429 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 430 1 0 \"8ebcf09f_a943_4769_b3c659e368019a32\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, lidSeq);\r\n// }} \"\"\r\n// {{ 431 1 0 \"7b4d37fc_01d4_4f65_977e4789e922635d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 432 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 433 1 0 \"8ce5efe3_4525_4c77_bb64f9d8dcfb6a62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 434 1 0 \"ce5d3682_d13d_4382_a679a78143661e7f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 435 1 0 \"8ac111e1_df50_4fcb_b465e737713459d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 436 1 0 \"d9104246_d843_4a6d_85a64aa07d019020\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Get - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 437 1 0 \"7831c2d8_4b59_455a_a0dc5cae20f325a1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 438 1 0 \"7338481d_2bbc_4d42_ad476a05a6c8c487\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 439 1 0 \"c641708e_c54f_4eb3_809e32c386d2f0d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 440 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 441 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapMove\")\r\n{\r\n// }} \"\"\r\n// {{ 442 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 443 1 0 \"3c315cea_4ff8_4efa_8e4a5cc86a9d84d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 444 1 0 \"4e2cf15d_267b_47e0_895c36b714787e13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 445 1 0 \"24d68fc9_cd59_471b_9c663c4121d1a931\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"gripMode\"), gripMode);\r\n// }} \"\"\r\n// {{ 446 1 0 \"e4e7211e_5459_4473_82e501854e6de3f8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 447 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 448 1 0 \"d372f898_6d32_4d80_ab4d58340d18681d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 449 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 450 1 0 \"9e573132_bd29_4d08_a1784d0e26c48700\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 451 1 0 \"b6a44c85_34c2_4eeb_a9fe5b2edc00c447\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 452 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 453 1 0 \"48db1de6_2a87_4224_b1f13fa2a75b490a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 454 1 0 \"c209c263_c70d_4cb3_b49835591aa9e2ee\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 455 1 0 \"1e8e9562_41c0_4df5_9de945c44d1e8d61\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 456 1 0 \"a5de7c97_d49c_4f04_b1414f1aaace7f84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Move - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 457 1 0 \"6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 458 1 0 \"7146d72d_c7e0_4728_86f6ba95f9ae2ce2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 459 1 0 \"ab94b9f5_5b49_425f_8fb45b9c6b18f3b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 460 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 461 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPlace\")\r\n{\r\n// }} \"\"\r\n// {{ 462 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 463 1 0 \"18e9697d_0efb_4840_94a65e2a82b4ca69\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateSequence\"), plateSequence);\r\n// }} \"\"\r\n// {{{ 464 1 0 \"b0c35970_122b_4119_92c3801f4b8e980b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidSequence\"), lidSequence);\r\n// }} \"\"\r\n// {{{ 465 1 0 \"6ed697af_a110_4104_941633e154ff0071\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"toolSequence\"), toolSequence);\r\n// }} \"\"\r\n// {{{ 466 1 0 \"fec1982e_3636_412d_af2eda243438f7ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sequenceCounting\"), sequenceCounting);\r\n// }} \"\"\r\n// {{{ 467 1 0 \"21de27ac_9dc3_415b_b1d1e49e80c53591\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"movementType\"), movementType);\r\n// }} \"\"\r\n// {{{ 468 1 0 \"652aeaa7_9a2f_4c11_8bc1fc58a97ffed7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"transportMode\"), transportMode);\r\n// }} \"\"\r\n// {{{ 469 1 0 \"e88a5df4_d9ad_4231_89a5a03f88d0ce77\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"labwareOrientation\"), labwareOrientation);\r\n// }} \"\"\r\n// {{{ 470 1 0 \"8c5aee51_3156_4fcc_b1b167552b73476f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"collisionControl\"), collisionControl);\r\n// }} \"\"\r\n// {{{ 471 1 0 \"8c257b39_8c0b_410d_a4a4e38df904008c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"retractDistance\"), retractDistance);\r\n// }} \"\"\r\n// {{{ 472 1 0 \"91e9f4c6_b7fe_4b15_83c830df3385398a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"liftUpHeight\"), liftUpHeight);\r\n// }} \"\"\r\n// {{ 473 1 0 \"c21cc6f5_cbc8_4535_ba2466301365c788\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 474 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (plateSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 475 1 0 \"226bb6d1_37a1_4076_9d96fb9df69c6068\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"plateLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 476 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 477 1 0 \"ec2fd48b_eab9_491e_867c0fc335eea81c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 478 1 0 \"47af65c4_2f11_4cef_b2f07e3757e09bfd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 479 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 480 1 0 \"e590d9b6_f690_48db_b0109a10c228d5ac\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, plateSequence, seq);\r\n// }} \"\"\r\n// {{ 481 1 0 \"08338782_e8e1_41fe_9249968c2b3d9baa\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 482 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (lidSequence == \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 483 1 0 \"82559320_1e13_40c9_b283fdfa804df6a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"lidLabwarePositions\"), labwarePositions);\r\n// }} \"\"\r\n// {{ 484 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwarePositions != \"\")\r\n{\r\n// }} \"\"\r\n// {{{ 485 1 0 \"420daa28_bf45_407a_bd576559af75c5d0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nBuildTempSequenceFromPositions(labwarePositions, seq);\r\n// }} \"\"\r\n// {{ 486 1 0 \"302a96c5_c504_4aa8_9f1ebec523e15f57\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 487 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{{ 488 1 0 \"3ed6b704_3649_4c7d_8e7d30bdb038feab\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, lidSequence, lidSeq);\r\n// }} \"\"\r\n// {{ 489 1 0 \"40d9e6da_cdd8_4bce_9c5c75a95ee95929\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 490 1 0 \"41a130e8_a745_4a20_b124272093bf38e7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 491 1 0 \"b4bdf08c_e218_4bec_98c0f41e6ec3a218\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Place - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 492 1 0 \"346b983b_d261_4447_a7cebf782db4b4d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 493 1 0 \"e26c8147_c65e_4e2b_b6d7e56137b96999\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 494 1 0 \"bea999fe_58e8_4853_b2c6944b52b849a7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 495 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 496 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapPark\")\r\n{\r\n// }} \"\"\r\n// {{ 497 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 498 1 0 \"73602d5e_7f8d_45dc_9c1f21d41c39d0bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"showCollisionCheckDialog\"), showCollisionCheckDialog);\r\n// }} \"\"\r\n// {{ 499 1 0 \"4e17c800_0efd_4b92_8b02b184974cfdbb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 500 1 0 \"acf5767a_7e39_4072_8e062928938984cf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 501 1 0 \"96b1bdf6_a3f3_4530_844fc77cbf7fb944\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 502 1 0 \"d03fdac4_224f_4174_924fb518a623bf65\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 503 1 0 \"1d24b56f_d974_4391_9b5b211c63922f6c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 504 1 0 \"2ad56a31_f410_4e94_923a158f40a1cc6c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 505 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 506 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"iSwapGetFirst\")\r\n{\r\n// }} \"\"\r\n// {{ 507 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 508 1 0 \"b6ac0465_feea_4ea0_87c359fa78ca933a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 509 1 0 \"5f9f4b8d_3b3a_48ee_89ef334a70dcb72e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn);\r\n// }} \"\"\r\n// {{ 510 1 0 \"65648900_32b3_4035_9eb5916a3314f7e9\" \"ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40(\"65648900_32b3_4035_9eb5916a3314f7e9\"); // GetFirstPlatePosition\r\n}\r\n// }} \"\"\r\n// {{{ 511 1 0 \"63380bb7_5afe_4d65_9dc5cdf334590b4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"iSWAP Park - step return :\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 512 1 0 \"cdb18c48_14d5_430d_9f7202f782e069da\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 513 1 0 \"b31142bd_9077_4f29_823af7408e6eb17c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 514 1 0 \"d1ca88b3_6376_4577_9baea391a956a83c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 515 1 0 \"ce4e3ea7_9e56_4524_9ea26ae388275d0d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 516 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 517 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"FirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{ 518 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 519 1 0 \"e1385a03_1302_4ae1_9faaea69422d67f3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate(\"FirmwareCommandList\"));\r\n// }} \"\"\r\n// {{ 520 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(CommandListElement = 0; CommandListElement < CommandListLength;)\r\n{\r\nCommandListElement = CommandListElement + 1;\r\n// }} \"\"\r\n// {{{ 521 1 0 \"5af0317c_390a_4121_92fc6695bd45edd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate(\"FirmwareCommandList\"), CommandListElement, FirmwareCmdDict);\r\n// }} \"\"\r\n// {{{ 522 1 0 \"8c9a281c_debc_4f33_9bd2cef6eedde57e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareCommand\"), FirmwareCommand);\r\n// }} \"\"\r\n// {{{ 523 1 0 \"3d50574c_65df_46db_976821037648878c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate(\"FirmwareParameter\"), FirmwareParameter);\r\n// }} \"\"\r\n// {{{ 524 1 0 \"642f5973_af08_450b_878d55fa1dc15b1c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 525 1 0 \"c1b028b1_70dd_4627_a467661067398a2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Firmware Command Step Return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 526 1 0 \"f0c6a22f_59e2_41c2_954cb5b06a43aa42\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 527 1 0 \"6fa9115c_4e6b_4fcf_82fc2509f332fbca\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 528 1 0 \"4d6ccadc_66fe_48ca_913a7e0defd3a766\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 529 1 0 \"f85c89d5_d370_4d24_b13fe2cee71ee262\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 530 1 0 \"bd4869b9_868e_4752_b0442af8ce334f90\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 531 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 532 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 533 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 534 1 0 \"efe73491_e5b4_499e_9b3f298c8b7a6398\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 535 1 0 \"5c0fe710_4afe_4b11_bf186cfe8dc87978\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{ 536 1 0 \"bed453d0_3466_4ba5_9a4e53e2895f1d75\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 537 1 0 \"110af9db_52cf_4a40_94724a7476c48d86\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 538 1 0 \"af9bf513_7c00_47bf_aee50c7cdb333b5f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Initialize: \"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 539 1 0 \"cf0a8758_8a16_429a_97f320a142945224\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 540 1 0 \"0b0ad63e_8299_4014_917f2b8750b8941f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 541 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StartTempControl\")\r\n{\r\n// }} \"\"\r\n// {{ 542 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 543 1 0 \"de87c5cd_92f6_45a8_9ebd6fe71ac65dbc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 544 1 0 \"26949b4a_2c44_4548_8de048c4f48bd98d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 545 1 0 \"8ae03ef4_8584_4957_a32601dc8599dadf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 546 1 0 \"934ba752_5ec3_489b_ae5a40dd1ea20440\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Start Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 547 1 0 \"a3528747_6990_4387_8839b01b71c3b754\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 548 1 0 \"901b96a6_3308_4b2d_a8b7d96627a66221\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 549 1 0 \"71778a2d_58d8_4ed9_ac1f1726624f7738\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 550 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_SetTarget\")\r\n{\r\n// }} \"\"\r\n// {{ 551 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 552 1 0 \"55e81697_10a3_42fb_8777236a132ff0b4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 553 1 0 \"0177c1a2_7380_4683_94ff93e2ed1299b2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{{ 554 1 0 \"15559e31_3f7a_4336_9cabca6758b7c253\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"TargetTemperature\"), TargetTemperature);\r\n// }} \"\"\r\n// {{ 555 1 0 \"a5609825_7bdd_4e23_883516fb80a47c44\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 556 1 0 \"0dcffa9d_ea82_418b_be95240c1bfd0d77\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 557 1 0 \"e9b0b663_7dd3_4e55_b206572d2c8a92c3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Set Target:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 558 1 0 \"08ecb91c_e9c8_4c61_aca2c1f89fd97bab\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 559 1 0 \"8223bbe5_8a1c_4c9b_849702c13fca1ba4\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 560 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_StopTemperatureControl\")\r\n{\r\n// }} \"\"\r\n// {{ 561 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 562 1 0 \"b67518d4_e443_4a8f_947e8c457680c63e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ControllerID\"), ControllerID);\r\n// }} \"\"\r\n// {{{ 563 1 0 \"045fda52_2303_4244_833066fb0005c21b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"DeviceID\"), DeviceID);\r\n// }} \"\"\r\n// {{ 564 1 0 \"4453b445_3d25_4921_aca15780e6129b82\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 565 1 0 \"1c8947fe_b7a1_455a_94e7672ad3593b08\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 566 1 0 \"285287f8_a3f9_43f0_9799c3ad98e59b9b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco Stop Temperature Control:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 567 1 0 \"88d1a80e_0aa9_4314_ba83bc772f71a589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 568 1 0 \"b5562588_f0cd_415d_a5696d39edbbc8dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 569 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TEC_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 570 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 571 1 0 \"c963c353_41bc_4f4a_b74a666b28831950\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"StopAllDevices\"), StopAllDevices);\r\n// }} \"\"\r\n// {{ 572 1 0 \"9f746a1d_5919_42e4_927c226aa2701ba8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 573 1 0 \"ea2ceb94_04fa_4204_96db2caf6871231f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 574 1 0 \"cd495cf5_43ff_4b30_b0baa1f2cd96cf0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Inheco TEC Terminate:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 575 1 0 \"bcce43cd_2b64_4caf_89bef8978a011dc5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 576 1 0 \"9aae2f45_674c_408d_8ff5383926346d65\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 577 1 0 \"63871974_83d2_4fa8_b138c454f68179fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 578 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 579 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{ 580 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 581 1 0 \"d824843f_bf44_4e8b_bb434b50a8b65716\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 582 1 0 \"45b9f513_7eaf_4e63_ae92391c28cf15b8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 583 1 0 \"7f058eec_3092_45ce_862c43a3e0853c7a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 584 1 0 \"56a4490f_902b_4043_8172466a64e332bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Simulate\"), Simulate);\r\n// }} \"\"\r\n// {{ 585 1 0 \"acb3a86e_2724_4f07_9a2c00f07f9427c2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 586 1 0 \"c44a492c_8123_465b_acd4ff374583777d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 587 1 0 \"a62df2e9_44bb_4099_a4d0597fbf0705de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 588 1 0 \"de7bfb5a_b1fa_42ee_b461782a3c381af4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 589 1 0 \"4c3bccec_72ff_4ab3_9ad13426338ff1dd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 590 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"TiltModule_MoveToPosition\")\r\n{\r\n// }} \"\"\r\n// {{ 591 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 592 1 0 \"3092ee64_df80_4e56_b3cdffc0827e3c2c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 593 1 0 \"4284a9cf_3ea6_42f5_ae1f62d82cd11ebe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Angle\"), Angle);\r\n// }} \"\"\r\n// {{ 594 1 0 \"52dd01e3_73eb_4727_9e063b4742a8bfaa\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 595 1 0 \"5b44092b_0faa_47ae_8005717c87a0f334\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 596 1 0 \"4d912417_89ed_44f2_941bfb44efed0e2b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Tilt Module Move to Position:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 597 1 0 \"0540bb67_399d_468d_853dd6ca4bb1c285\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 598 1 0 \"eb7cab18_6854_427e_adfb432c3659a4c3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 599 1 0 \"94445445_838f_4aea_861e1c7c5b8dc562\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 600 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 601 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"moveSequence\")\r\n{\r\n// }} \"\"\r\n// {{{ 602 1 0 \"6e83eea3_8863_4ca0_9ff603380f0dc4d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"inputSequence\"), inputSequence);\r\n// }} \"\"\r\n// {{{ 603 1 0 \"6b8903c6_6977_458a_8409f93724089454\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"xDisplacement\"), xDisplacement);\r\n// }} \"\"\r\n// {{{ 604 1 0 \"77d9a84d_5987_4b3c_a76757ce15a19302\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"yDisplacement\"), yDisplacement);\r\n// }} \"\"\r\n// {{{ 605 1 0 \"13c73535_4a98_49e2_ba1a02c30f02035b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"zDisplacement\"), zDisplacement);\r\n// }} \"\"\r\n// {{{ 606 1 0 \"a33ebddb_88d8_4440_9a78132ed62d97f2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetSequenceRef(ML_STAR, inputSequence, seq);\r\n// }} \"\"\r\n// {{{ 607 1 0 \"1dcc4914_aa2f_439e_8a2f431687c33852\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqFirstPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 608 1 0 \"01f7bf35_3538_441d_98904fa827b05e68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nAPPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement);\r\n// }} \"\"\r\n// {{ 609 1 0 \"da3c8baf_9c08_4b10_ae4bfca19c718fb7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{{ 610 1 0 \"fe9d84b8_86ec_4552_b187147351886cb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nseqSecondPosition = SeqGetPositionId(seq);\r\n// }} \"\"\r\n// {{{ 611 1 0 \"5fa8b88a_cf88_49e1_8cb574503dc60e56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(seqFirstPosition, seqSecondPosition);\r\n// }} \"\"\r\n// {{{ 612 1 0 \"e590c4e1_91dd_41c0_82a254d4134fb734\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"First check\"), Translate(\"Second check\"));\r\n// }} \"\"\r\n// {{{ 613 1 0 \"2127d6de_e8bd_455a_88ad20e73b767061\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 614 1 0 \"e1b9b9c0_e31f_433d_8367631c3a960206\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 615 1 0 \"4a636381_c32f_4fc7_aaa773d003e012b3\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 616 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 617 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 618 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_measure\")\r\n{\r\n// }} \"\"\r\n// {{{ 619 1 0 \"7c314622_d15c_42aa_a88b3d71caa33d0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 620 1 0 \"9f15b042_95cd_4241_9b6262d3a4979ca7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 621 1 0 \"34064a8d_5567_4fe5_b4349d0d061b9a1a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 622 1 0 \"0e34e118_df68_49fa_b3b9228d63deb6d9\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 623 1 0 \"025eece8_72cd_4190_a092d806fbab65a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 624 1 0 \"269c134a_bc59_4578_8da8bb7559f234a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 625 1 0 \"36ec28c1_360b_46e9_9243c01dbd3874e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 626 1 0 \"58445956_3204_41a3_a7acb03aaf25ccd5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 627 1 0 \"465c2002_18cb_4ff2_9df9e423dbc6837c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 628 1 0 \"40682224_6d73_4a7c_a2e33641f1768d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 629 1 0 \"e43a57a6_d83b_41d1_adf33f8f77ca7bc9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 630 1 0 \"12a6bd74_f75b_44d1_b6f7c26d279d9610\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 631 1 0 \"71b8f8bc_65c1_4e97_ab6eae03040f51dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 632 1 0 \"14b52404_fede_461d_aca1373dce5499bb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, id);\r\n// }} \"\"\r\n// {{ 633 1 0 \"eae1e60d_3c88_47ed_960af8513dfae699\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 634 1 0 \"58c1844a_90f1_4d91_910db6d09b506a5d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 635 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 636 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate_Dyn\")\r\n{\r\n// }} \"\"\r\n// {{{ 637 1 0 \"de6a4eb0_04e1_47fc_86e27009d71152cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 638 1 0 \"5f551457_7af9_4567_bceacdf0018c9c38\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 639 1 0 \"60ee9fa5_c549_43a9_bbccdb0b14819583\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 640 1 0 \"2211f515_9e69_4a1c_9603becd6fd866cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 641 1 0 \"8449e1f4_6561_4b51_b91aa14423565eb2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 642 1 0 \"4429d4bb_e2fb_451f_8558de74111dbe3d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Variance\"), Variance);\r\n// }} \"\"\r\n// {{{ 643 1 0 \"a918fadc_db95_4e4b_9c445a903a59f17a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 644 1 0 \"7611bb65_5e77_408e_98384f0fec68e958\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 645 1 0 \"74418f44_640a_4b4b_88234a74841f1dbd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate Dynamically\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 646 1 0 \"3eeade94_ed13_40da_8e5da59febd67068\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 647 1 0 \"17da3d1a_533e_47b2_b3207a70ab40d996\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 648 1 0 \"670c6912_2f0d_4aec_bd7831bd28d53fc2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 649 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 650 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Calibrate\")\r\n{\r\n// }} \"\"\r\n// {{{ 651 1 0 \"c7a809a1_1dc8_47c2_a8006c785355c50e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationTemperature\"), CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 652 1 0 \"27f7a889_0250_42a5_87699d0b0d52d36b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"CalibrationValue\"), CalibrationValue);\r\n// }} \"\"\r\n// {{{ 653 1 0 \"b624fe53_a0c2_44e7_92eb12cc744fa799\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 654 1 0 \"9f642188_0286_4e80_81cb485423a155c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 655 1 0 \"c7530a85_7f29_4069_9a8e94318ffec0d5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CalibrationLevel\"), CalibrationLevel);\r\n// }} \"\"\r\n// {{{ 656 1 0 \"849206a3_ea5c_4440_a08cdbcb81354e94\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 657 1 0 \"9f9ab695_0d32_4bf4_bf5a4b0207a2c780\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Calibrate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 658 1 0 \"84efa5b5_d72d_4cd9_9851f31ca8d9d88e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 659 1 0 \"81ca00fc_188a_4f7a_bd50d7e39e2e3ff3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 660 1 0 \"e800ef4c_ee59_43e1_9ba7a4a1501ccdb8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 661 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 662 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Enable_Extended_Log\")\r\n{\r\n// }} \"\"\r\n// {{{ 663 1 0 \"1791ad6e_39b2_4442_8b4470d0fc5497fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn);\r\n// }} \"\"\r\n// {{{ 664 1 0 \"b22a7836_ed52_4e9d_9e5df5babf8fa142\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 665 1 0 \"8d68d8f1_5b56_488b_a0676b4b50a35221\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 666 1 0 \"35a1b0bf_abf3_4b53_9c3a64bda9084065\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 667 1 0 \"fc225ca7_cfea_46ee_b51038a9f1935949\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 668 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 669 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Get_Last_Error\")\r\n{\r\n// }} \"\"\r\n// {{{ 670 1 0 \"11bf85a6_3df2_4245_839282a900f3db71\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 671 1 0 \"2c0b2633_5d81_41a1_aa90c51eb8d9d23d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 672 1 0 \"4d60f4e2_175b_4a4b_9b0bfb0f63211da0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Get Last Error\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 673 1 0 \"a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 674 1 0 \"9e1a5890_b439_454a_9baf81479e6b600d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 675 1 0 \"19f81a9f_9672_410e_b5b315bb8ac3134a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 676 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 677 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 678 1 0 \"a37d4042_a872_4da0_bf60a51312d5cc22\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 679 1 0 \"77530965_cb1f_4563_a1d848bb4faa3bb8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 680 1 0 \"295c3bab_f7f4_47d0_8075cf658ee0436f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 681 1 0 \"5ccf6713_621f_45ec_9520383da6a8fafd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn2 = StrFStr(o_stepReturn2);\r\n// }} \"\"\r\n// {{{ 682 1 0 \"178d10c9_fe18_479a_b3e7922f87282612\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 683 1 0 \"316d7012_97a3_4f96_8d21cc026931e7ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 684 1 0 \"43c59be0_c1ca_49f2_a393bcd25a0a8448\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 685 1 0 \"fe8e9103_8051_4aff_b4b44132379859e2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 686 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 687 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Measure_Dynamically\")\r\n{\r\n// }} \"\"\r\n// {{{ 688 1 0 \"69eede79_0b96_4634_a4ed7995201d9b7d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Temperature\"), Temperature);\r\n// }} \"\"\r\n// {{{ 689 1 0 \"6a018697_b8f4_4088_b8c650a2f028d197\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(Translate(\"Precision\"), Precision);\r\n// }} \"\"\r\n// {{{ 690 1 0 \"dfbe88b8_1dda_42ac_8175799123584051\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"probePattern\"), probePattern);\r\n// }} \"\"\r\n// {{{ 691 1 0 \"3ef27a25_aec7_4d5b_beb743b713c7526e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 692 1 0 \"74a87116_8260_466d_a78e98fe0544a891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Timeout\"), Timeout);\r\n// }} \"\"\r\n// {{{ 693 1 0 \"425d37a5_2d55_4b09_a607303c754935db\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_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);\r\n// }} \"\"\r\n// {{{ 694 1 0 \"0df3fc00_0550_45fa_b224d60b9bcd06c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_1 = StrFStr(pH_probe_1);\r\n// }} \"\"\r\n// {{{ 695 1 0 \"26992ae0_59eb_4678_ae304b460a7034db\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_2 = StrFStr(pH_probe_2);\r\n// }} \"\"\r\n// {{{ 696 1 0 \"3beda7c9_5769_4578_b31431d2bab6d131\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_3 = StrFStr(pH_probe_3);\r\n// }} \"\"\r\n// {{{ 697 1 0 \"141952da_a201_4e85_9e446006849a95bc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npH_probe_4 = StrFStr(pH_probe_4);\r\n// }} \"\"\r\n// {{{ 698 1 0 \"f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Measure\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 699 1 0 \"5487a4f7_a9f8_448e_98b2cb671cb9c069\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 1\"), pH_probe_1);\r\n// }} \"\"\r\n// {{{ 700 1 0 \"c8e7c221_d1e4_4818_b3e077f9aeb6a0a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 2\"), pH_probe_2);\r\n// }} \"\"\r\n// {{{ 701 1 0 \"611376c4_8c68_46f2_8947cec12bb313f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 3\"), pH_probe_3);\r\n// }} \"\"\r\n// {{{ 702 1 0 \"e113c0e5_7ab9_4244_86b73e7f24d2bfc8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe 4\"), pH_probe_4);\r\n// }} \"\"\r\n// {{{ 703 1 0 \"bedcab57_6a72_4e21_a8115e7ec01a9df0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, id);\r\n// }} \"\"\r\n// {{ 704 1 0 \"3b08bf09_1f0b_428f_af653b8849cb04bb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 705 1 0 \"d834bbd0_a9a2_463b_858c5709b4371224\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 706 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 707 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Battery\")\r\n{\r\n// }} \"\"\r\n// {{{ 708 1 0 \"c83f58ac_8db7_4477_bed8e57c9c784b8a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 709 1 0 \"4b343bdb_fe40_4daa_8382b1265575e03a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 710 1 0 \"98f43381_9679_4d9f_b3d1238ed4c1d0c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Battery Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 711 1 0 \"b95371f0_7532_4426_b980d9824bf1d2b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nChargeCounter = StrIStr(ChargeCounter);\r\n// }} \"\"\r\n// {{{ 712 1 0 \"15324eca_50a4_4530_be7f08cdef0e6514\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nBatteryCondition = StrIStr(BatteryCondition);\r\n// }} \"\"\r\n// {{{ 713 1 0 \"e694349e_13ad_46c1_b18f5eb4688f510e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nActualCharge = StrIStr(ActualCharge);\r\n// }} \"\"\r\n// {{{ 714 1 0 \"cfc277c3_f282_4547_a247af47bcdff866\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, id);\r\n// }} \"\"\r\n// {{ 715 1 0 \"b2b725f1_a37b_43ba_98bf6b2f04c4a054\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 716 1 0 \"85f0c632_9d76_4845_bb5f92adb00524ca\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 717 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 718 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Calibration\")\r\n{\r\n// }} \"\"\r\n// {{{ 719 1 0 \"250cbb57_43e2_4ca3_8ac97a4f8a848ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 720 1 0 \"e2f361b4_fb8d_4bf8_b53c05720323632b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ProbeNumber\"), ProbeNumber);\r\n// }} \"\"\r\n// {{{ 721 1 0 \"6e7357dd_030a_4f9d_b5cda736b409bbee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 722 1 0 \"07a16a85_b9f0_4bb3_9dd6a0a173520841\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowValue = StrFStr(pHLowValue);\r\n// }} \"\"\r\n// {{{ 723 1 0 \"7331e4fa_3e06_499a_84eed922b712aca5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHLowVoltage = StrFStr(pHLowVoltage);\r\n// }} \"\"\r\n// {{{ 724 1 0 \"3c2e720a_1c6e_4f09_afe077215aa438e9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighValue = StrFStr(pHHighValue);\r\n// }} \"\"\r\n// {{{ 725 1 0 \"a9363a15_98fa_4a49_8451b25c27edea3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npHHighVoltage = StrFStr(pHHighVoltage);\r\n// }} \"\"\r\n// {{{ 726 1 0 \"73007841_7490_489f_9c595a8e085e3a59\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationTemperature = StrFStr(CalibrationTemperature);\r\n// }} \"\"\r\n// {{{ 727 1 0 \"49c841c4_b5cf_4ac7_9c2e87a2dc939210\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationOffset = StrFStr(CalibrationOffset);\r\n// }} \"\"\r\n// {{{ 728 1 0 \"d3535c95_47a6_46a6_80f73d15c4582508\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlope = StrFStr(CalibrationSlope);\r\n// }} \"\"\r\n// {{{ 729 1 0 \"e72f9070_8ad1_4595_90dd12ff353c8844\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nCalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio);\r\n// }} \"\"\r\n// {{{ 730 1 0 \"9ae40f13_d6cb_4a4e_9dc995de1da2d637\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Request Calibration Values\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 731 1 0 \"755fd068_89d1_41be_8a861b77bf48bee7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id);\r\n// }} \"\"\r\n// {{ 732 1 0 \"5ca31581_4fcb_4012_8c05b4c8538c8bbd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 733 1 0 \"e830a647_de43_4aa7_a65ff6b5ebcdfd62\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 734 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 735 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Probe_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 736 1 0 \"04b155be_097f_4f2d_add1392fbf78b5f1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 737 1 0 \"c40a59cd_e266_4cc3_aa3dd3d526502930\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 738 1 0 \"306c68bb_ffd7_4233_b7f0c2c67678dfdf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1);\r\n// }} \"\"\r\n// {{{ 739 1 0 \"bbd1faef_5b8f_41ba_bf74a019b05da039\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2);\r\n// }} \"\"\r\n// {{{ 740 1 0 \"cb244d85_a14b_4bcb_ab81c5cdc38c6552\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3);\r\n// }} \"\"\r\n// {{{ 741 1 0 \"fc396f90_794c_409c_b3cef94fbe3b4b58\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nMeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4);\r\n// }} \"\"\r\n// {{{ 742 1 0 \"6883841a_44f5_417f_8574566ed15ae444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Probe Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 743 1 0 \"5a8f2425_ea73_4af6_af3bcc0704a09580\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer_EightOutputs(commandFromServer, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 744 1 0 \"987ef8bf_2011_4aa2_8bbdbadc434b3598\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 745 1 0 \"38690707_1914_4264_b4619121e73d9ed9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 746 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 747 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 748 1 0 \"3c80e1e2_a904_42ac_a3ddd5df5ca3a196\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 749 1 0 \"8b2b24be_b84b_41b8_bd0f088f32554cb7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 750 1 0 \"552e7bb6_cbdf_49ec_86ac28b54cae7f58\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 751 1 0 \"108648ea_3fbc_41e4_ac121ce685b5ac84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHardwareNumber = StrIStr(HardwareNumber);\r\n// }} \"\"\r\n// {{{ 752 1 0 \"2cfb8725_b283_48b0_906a9741fe336744\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nPartNumber = StrIStr(PartNumber);\r\n// }} \"\"\r\n// {{{ 753 1 0 \"7b9a6dfa_9df8_40a8_9c0c39981dcf97e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nRevision = StrIStr(Revision);\r\n// }} \"\"\r\n// {{{ 754 1 0 \"771c0483_6ea2_4299_81c7598839a5027b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSerialNumber = StrIStr(SerialNumber);\r\n// }} \"\"\r\n// {{{ 755 1 0 \"790984ff_e065_4212_a5c420f04d9f7e4a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 756 1 0 \"371d6452_cf9d_4abe_9463f54ab7831231\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id);\r\n// }} \"\"\r\n// {{ 757 1 0 \"75d3b801_397e_4df1_99e2b2ebc259f87f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 758 1 0 \"b5263b3c_bf4c_485b_a5fb4024a109b16f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 759 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 760 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Request_Voltage_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 761 1 0 \"b6c0eb00_003a_45ed_9899c407d864455c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 762 1 0 \"e4801131_30dc_4e2d_8ac9e80c0c13972c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Selector\"), Selector);\r\n// }} \"\"\r\n// {{{ 763 1 0 \"63763df0_9e9f_43dc_93b0d75fab310dc3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 764 1 0 \"bf78a104_f3d4_45b6_a573a7219dcf05e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Voltage Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 765 1 0 \"cd76b96c_754c_4ce9_a9cc69a29e595e49\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 766 1 0 \"324ea976_ea76_49f5_94e20447f734b7f7\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 767 1 0 \"57b92ad0_d43b_423e_836e548b5b24f0a6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 768 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 769 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Battery_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 770 1 0 \"51fd11a2_c173_4d8a_be50512a820eb424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 771 1 0 \"b1268215_064b_40bc_8b9e75cfc0edeac8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 772 1 0 \"7665963b_aa9b_4a3c_ba522887f3b15ab2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 773 1 0 \"8327c869_96c0_4394_9bf4c5b5c19f30d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 774 1 0 \"5a5455ae_5598_4a29_8c5f621b0586ba79\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 775 1 0 \"f534cbac_4de3_4425_85299c07c6ff73cb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Set Battery Replacement\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 776 1 0 \"aee63add_2789_4971_b4867510d938caf6\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 777 1 0 \"e60be2b2_9ff4_4178_bb82b71e58f12b9a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 778 1 0 \"5db1f3e5_03f4_4407_b1c4c1e6f6eddd50\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 779 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 780 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Charge_Parameters\")\r\n{\r\n// }} \"\"\r\n// {{{ 781 1 0 \"5e24703a_30cb_4538_aec7ba85b7c0d2a3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 782 1 0 \"31630603_a72b_4d8b_a21a501f5336c619\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"Charge\"), Charge);\r\n// }} \"\"\r\n// {{{ 783 1 0 \"41b8aa8b_7d8e_4351_ad9664e334fa00f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"AutoCharge\"), AutoCharge);\r\n// }} \"\"\r\n// {{{ 784 1 0 \"504d0d26_95ad_4181_a7c38162018496cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"AutoChargeLevel\"), AutoChargeLevel);\r\n// }} \"\"\r\n// {{{ 785 1 0 \"576ecb10_c479_461f_9249f554f27e398b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 786 1 0 \"80503782_9e9a_4986_9e4bcdeac598c749\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Charge Parameters\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 787 1 0 \"4fb997db_4cdf_4b51_85bbb23941f19edb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 788 1 0 \"0eb4c00c_42d8_47e4_aa5ecaf7ece0404e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 789 1 0 \"612f450a_0371_4712_ae85bc006b35baa6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 790 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 791 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Probe_Replacement_Date\")\r\n{\r\n// }} \"\"\r\n// {{{ 792 1 0 \"eb0a7cc0_c83a_45a8_8bd6adbf05cadabe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 793 1 0 \"c762429d_3619_4e70_9765fe207dab3d54\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Probe\"), Probe);\r\n// }} \"\"\r\n// {{{ 794 1 0 \"18bf75b8_9aa3_46d2_a3ad3bbab8c1e126\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Year\"), Year);\r\n// }} \"\"\r\n// {{{ 795 1 0 \"2b2bbaed_84c1_46d2_bd024b425aefa336\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Month\"), Month);\r\n// }} \"\"\r\n// {{{ 796 1 0 \"380453f0_b3e8_47ac_a06eb91552b3a11f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Day\"), Day);\r\n// }} \"\"\r\n// {{{ 797 1 0 \"a8fcf799_ec41_4160_910a9c78e5395ae2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 798 1 0 \"c95c2987_8098_48ed_9ad284801d556587\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Probe Replacement Date\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 799 1 0 \"8c682be5_9caa_4673_bfc0eb9fe0eb3593\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 800 1 0 \"7e423c4d_f9e0_456b_8883c312232f8389\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 801 1 0 \"c39ad8a8_2b54_4b62_a0bb3858ad77ff2d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 802 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 803 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Shutdown\")\r\n{\r\n// }} \"\"\r\n// {{{ 804 1 0 \"aec40299_6cef_4e16_ad88bccbdcae3b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 805 1 0 \"c7715d80_e089_40ea_86fe6a446a2c9378\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Mode\"), Mode);\r\n// }} \"\"\r\n// {{{ 806 1 0 \"212772c6_0ff7_41ef_9c35fb5828034d90\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 807 1 0 \"82055c44_b706_4c16_99b47c2a4ae600e3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Shutdown\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 808 1 0 \"fbbaa73a_fa45_446d_8052e6e618fd2fad\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 809 1 0 \"b3253620_4a86_4ce7_90a9425b4d6b565b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 810 1 0 \"abc3a145_61f3_4040_837dc8608468c13b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 811 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 812 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Technical_Data\")\r\n{\r\n// }} \"\"\r\n// {{{ 813 1 0 \"d6a005e1_4502_49d8_9a510afa4a2e833e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 814 1 0 \"5ad112b0_da19_4b1b_a4649033defa7fef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"HardwareNumber\"), HardwareNumber);\r\n// }} \"\"\r\n// {{{ 815 1 0 \"f4094e68_7940_4706_bae95f6277784476\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"PartNumber\"), PartNumber);\r\n// }} \"\"\r\n// {{{ 816 1 0 \"2b53f199_42d1_4808_a128c8ef4354e216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Revision\"), Revision);\r\n// }} \"\"\r\n// {{{ 817 1 0 \"b5bf6715_e2e6_4e19_ad453dbb18396d65\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"SerialNumber\"), SerialNumber);\r\n// }} \"\"\r\n// {{{ 818 1 0 \"8cd5ff7f_9cb8_4f34_8afeb35175b47032\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 819 1 0 \"b60d9996_aa66_483d_b61518ffca638e0d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Technical Data\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 820 1 0 \"164f5289_e710_44eb_a1ea51e1622a7813\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 821 1 0 \"f2dfe0ed_43e8_4dfb_a497aa2975395a6a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 822 1 0 \"094d3c29_a178_4503_a2e3819bdb767559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 823 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 824 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Set_Trace_Level\")\r\n{\r\n// }} \"\"\r\n// {{{ 825 1 0 \"dd6ba7d4_f5cc_4725_9776848c6e8343cc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 826 1 0 \"5a2c7ac9_8800_4926_96f26337aee59504\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 827 1 0 \"88c51a62_4453_4cf5_ba0682a2cb1da767\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 828 1 0 \"159aeb3e_3ed4_4ddc_a11cdfd939a7db7d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 829 1 0 \"c3a5cc94_f346_4d04_a4be1fd04efbccc1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 830 1 0 \"5d1e9104_6cae_49de_8169dcdfaddc35d5\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 831 1 0 \"026f5895_715e_446d_b85eff2d75c1d1d9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 832 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 833 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Sleep\")\r\n{\r\n// }} \"\"\r\n// {{{ 834 1 0 \"153dc01b_be4b_403a_a40226aa4778c709\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 835 1 0 \"a6f7384c_4c2e_4b3b_9682c00fb7a2f978\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 836 1 0 \"e82cf943_58b3_463e_a86afb9882353228\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Sleep\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 837 1 0 \"bd1fe536_3228_4133_88a586b0ebeb97b4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 838 1 0 \"d34705cb_52a3_44b9_97b73c36e1798909\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 839 1 0 \"1795e7f3_c1b2_422a_97ea430547f966fd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 840 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 841 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 842 1 0 \"b53cd271_035b_4870_961c552983b39351\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 843 1 0 \"e133d234_4ccd_44cb_810d29742ee9f40e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 844 1 0 \"eb5a9614_5d18_44cd_83190a1d8eec2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 845 1 0 \"add7dd5e_87e4_4ec1_a7b552234adc5d9d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 846 1 0 \"43988ad9_4aed_40cd_83be173b9a4d911c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 847 1 0 \"ee043fa7_5b7d_4393_8978fe9275bf117e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 848 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 849 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Wakeup\")\r\n{\r\n// }} \"\"\r\n// {{{ 850 1 0 \"6b1d97c0_debd_402e_8c064a5c1fe48aca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 851 1 0 \"09ffa3b4_530e_444f_943e5302e37f3fe0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 852 1 0 \"271fe899_154a_49a3_9f697b7c6ecf1607\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 853 1 0 \"04450a29_1e44_43cd_8e66a98ecb19c114\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 854 1 0 \"031ee370_3133_458a_a8ca31452418cfc6\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 855 1 0 \"9b3d71b1_3701_48f5_86c977993ded81dd\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 856 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 857 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 858 1 0 \"10713a72_dce4_482a_ad1d6d8db7bd210a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 859 1 0 \"21f38719_99e7_4de4_bc16b312b6f57977\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 860 1 0 \"75ac7c86_e474_45bc_8551fc9e302de4bf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 861 1 0 \"04e9eb0f_3060_49dd_b7fc371a1cac07cc\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 862 1 0 \"2cd42ac0_35a7_4810_b97f172b80b5b376\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 863 1 0 \"a042f65b_875f_4b52_999c836815c84a6b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 864 1 0 \"a5b3f17c_5d6a_4171_809dfbebc6cc6bdf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 865 1 0 \"ca26b664_f9b4_4eb1_ad7cfd41b34371f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 866 1 0 \"821742df_6807_4a08_a429815f5a89a1a4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 867 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 868 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 869 1 0 \"0029313d_525e_46ea_916912b33902e1eb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 870 1 0 \"ed79bcac_71ff_48ee_b968407f0dbdf4ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 871 1 0 \"80f14967_56f1_4b78_9a3c9965460a9589\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 872 1 0 \"b3fdfb36_4bb4_4086_a19b5402f53fdd94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Wakeup\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 873 1 0 \"85e3b008_ec25_4841_b8dc50757dea3859\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 874 1 0 \"5486467d_2b05_4f37_bd81f2218cbab1f3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 875 1 0 \"8b41cfa2_7993_4959_ac14654191b926ce\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 876 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 877 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Wash\")\r\n{\r\n// }} \"\"\r\n// {{{ 878 1 0 \"32bfd9a6_1ebc_4ca0_81e034f81d1af760\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 879 1 0 \"a9208608_0099_4d5f_800d72adf563b9e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"CycleNumber\"), CycleNumber);\r\n// }} \"\"\r\n// {{{ 880 1 0 \"738f88ca_6ad7_4598_b1e4a3e1ccefcace\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 881 1 0 \"d009e19d_0560_4f89_b0f58bafa778b71b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Wash\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 882 1 0 \"cfdcbcac_ded9_4df9_81cb52d64cf9948f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 883 1 0 \"26cf049a_3aed_43a1_a93e413e42188a4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 884 1 0 \"7c4b4cec_8463_4be8_a73746d931b61266\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 885 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 886 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Washer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 887 1 0 \"e8e2fec9_d562_4524_b5d29880876bd109\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 888 1 0 \"ad418c06_88fd_4649_9745bc00694fa53a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 889 1 0 \"e8437e3c_0153_4bc0_86236a2e9849e22a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Washer Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 890 1 0 \"93997110_b2fd_4307_beefb0793aafd07d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 891 1 0 \"bebb5824_0c7a_4109_bc806cbb5fbf5bfc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 892 1 0 \"6db3e9e8_a7ed_461a_a204d926a543f5a2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 893 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 894 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 895 1 0 \"b41d8294_bc5c_4346_999860e0f4cc913e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"Comport\"), Comport);\r\n// }} \"\"\r\n// {{{ 896 1 0 \"102abd73_15bb_472b_a1008b4eda35637e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate(\"SimulationMode\"), SimulationMode);\r\n// }} \"\"\r\n// {{{ 897 1 0 \"58389380_f098_4c71_b61c0954f797753b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ModuleName\"), ModuleName);\r\n// }} \"\"\r\n// {{{ 898 1 0 \"2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 899 1 0 \"1ea3ff21_cc55_4ffe_a63d63f51d6c682a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nModuleID = StrIStr(ModuleID);\r\n// }} \"\"\r\n// {{{ 900 1 0 \"d35fefc8_f758_41da_a6073532f75cf092\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Initialize\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 901 1 0 \"4e3aa360_b8a0_4554_895d08f5c1bad940\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), ModuleID, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 902 1 0 \"0d0b0913_b04d_428b_b15dfb745b30a322\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 903 1 0 \"c063d960_3653_4247_810183ed8a13f472\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 904 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 905 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Set_Trace\")\r\n{\r\n// }} \"\"\r\n// {{{ 906 1 0 \"f7fc7449_63b2_4e8b_8d0eaf3f931e834d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 907 1 0 \"ef77cea9_ef26_4525_bea967ec7f086b88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"TraceLevel\"), TraceLevel);\r\n// }} \"\"\r\n// {{{ 908 1 0 \"24784b11_b6f4_461e_b526cbbb677864ef\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 909 1 0 \"d5ebe375_f7dd_45c2_b3e242a8edf4f175\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Set Dryer Trace Level\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 910 1 0 \"07352f99_d436_47e1_b5be6eb50ad91849\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 911 1 0 \"ec7af7a9_8cb3_485b_b8486e1747551ec2\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 912 1 0 \"9af0434f_23cc_431c_beef0e1ec4a766d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 913 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 914 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Start_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 915 1 0 \"45561f8e_cd7f_49d8_a8720b2ff7d0d932\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 916 1 0 \"ecdddf7a_3c99_4f99_97b658f94a62554c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 917 1 0 \"5a6daec0_a404_4a0a_ad9d88de43ac46c9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Start Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 918 1 0 \"8d32125d_836b_4511_bd5cc18e32c9c93a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 919 1 0 \"0e84676b_44e3_4b57_82dd0286c82d19a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 920 1 0 \"3ad03172_fb69_4831_895f5299aca066bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 921 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 922 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Stop_Drying\")\r\n{\r\n// }} \"\"\r\n// {{{ 923 1 0 \"f3eac478_54bb_4350_8c1811bf2ede8424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 924 1 0 \"37262733_33d0_4723_94687e68249d1300\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 925 1 0 \"6feb871c_61be_4812_a421af32d75f9871\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Dryer Stop Drying\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 926 1 0 \"8a572b45_5f79_44aa_8e7b2cf52c55c499\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 927 1 0 \"75fddb42_4b6d_43d8_9c2f662a8cf29862\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 928 1 0 \"14268f6f_5d0b_49d3_8572d86203c234d4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 929 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 930 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"pH_Dryer_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{{ 931 1 0 \"66453f41_07b7_4fd4_b2177e4994606836\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"ModuleID\"), ModuleID);\r\n// }} \"\"\r\n// {{{ 932 1 0 \"a5808bbd_63b3_4fc2_894ab4d4eb00b93d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID);\r\n// }} \"\"\r\n// {{{ 933 1 0 \"f844d13f_ecdb_465a_b0300a4976c0d809\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"pH Terminate\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 934 1 0 \"abbeea15_02e5_4ceb_905c389a634e03bf\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, Translate(\"0\"), Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 935 1 0 \"31524ce9_d3fb_4604_a683133caaba0d7c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 936 1 0 \"fad6b2cc_8b9f_4b73_bc778d159fd19ec6\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 937 1 0 \"524dd93d_f87d_4fd2_91344399608c4559\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 938 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 939 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Initialize\")\r\n{\r\n// }} \"\"\r\n// {{{ 940 1 0 \"5efffd73_f295_4d3c_aacd37c74d2bc015\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"ComPort\"), Comport);\r\n// }} \"\"\r\n// {{{ 941 1 0 \"cc8f22a1_0ae7_40ee_82d2e071b7344cf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 942 1 0 \"b6f33534_c173_4c6c_820d96a48fa50a07\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Barcode initialize:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 943 1 0 \"138ad752_fbd8_457e_948dd436ddb65822\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 944 1 0 \"9b5123c4_a6e5_408e_a7d127f367e218ce\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 945 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"BarcodeReader_Read\")\r\n{\r\n// }} \"\"\r\n// {{{ 946 1 0 \"0b3c261e_a906_4464_b0e5caa3ec640056\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSTAR_OEM_TOOLKIT::BarcodeReader_Read(barcode);\r\n// }} \"\"\r\n// {{{ 947 1 0 \"98aadc47_a5a2_433d_84530ad050155ccd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"BarcodeReader_Read\"), barcode);\r\n// }} \"\"\r\n// {{{ 948 1 0 \"e3fc85ee_a6d7_4d98_a3f9076b947565cb\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendStepReturnToServer(commandFromServer, barcode, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 949 1 0 \"bb7f6e24_9bcd_4593_9566cff49e8bc7ae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 950 1 0 \"3db8e8be_9720_4794_b91a66ca2ea9bf7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 951 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 952 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 953 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_BeginMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 954 1 0 \"7dd862dc_f7f1_4600_94ca9b83762673dc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 955 1 0 \"d37d14e5_261f_418c_81f754eb75bf4920\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingToleranceRange\"), shakingToleranceRange);\r\n// }} \"\"\r\n// {{{ 956 1 0 \"0919ceb3_189a_4885_93c8faeab9f9538b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"sampleInterval\"), sampleInterval);\r\n// }} \"\"\r\n// {{{ 957 1 0 \"bc3a749e_e1bb_4c4a_9aac06834d85080f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"action\"), action);\r\n// }} \"\"\r\n// {{ 958 1 0 \"4e026721_fd49_4127_87fda5791fa13eff\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 959 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 960 1 0 \"a2a0a3bb_c0cf_4123_afe36d1d51ae233c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action);\r\n// }} \"\"\r\n// {{ 961 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_3202FD4CC34D478f892F31C7684340BE : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 962 1 0 \"7066bb37_8c48_474d_8f467cf1f1e06a8d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 963 1 0 \"9509457d_d171_4aef_8968c2b38f9d0eef\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 964 1 0 \"c00b8635_652d_48ca_8d345ed070306b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 965 1 0 \"85ac1487_5644_4bae_b032f5c191aa47c2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 966 1 0 \"bf082505_42e2_4501_8cb3e4eef7b03c49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 967 1 0 \"a8295265_7186_479b_a2032dcade92f115\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 968 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 969 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateStarDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 970 1 0 \"4c3dfdd2_2dd6_4c5f_831f92590c13e82e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 971 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 972 1 0 \"cc3d4234_12d6_486a_a110c8ede0e3059b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 973 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_18D9C44C12554d56B5C39C21EA142EC8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 974 1 0 \"7f473860_0be7_4dc2_87423136869dd829\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 975 1 0 \"6d794af9_c71b_4000_987347c08337ec7d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 976 1 0 \"7699b24c_5ec6_4cca_b1cb9aed9ce60247\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 977 1 0 \"85155966_9554_40cb_9693f9b0a11b25a0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create STAR device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 978 1 0 \"d049e779_0761_471d_9f7b8af0967d1633\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 979 1 0 \"84178c1e_aa39_4557_a453ae2d0c1a979e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 980 1 0 \"a058f116_f211_4812_a9f6e2458c13a7f7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 981 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 982 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_CreateUSBDevice\")\r\n{\r\n// }} \"\"\r\n// {{{ 983 1 0 \"72f0a762_2550_45ad_bea063f4f72a9fe9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"usedNode\"), usedNode);\r\n// }} \"\"\r\n// {{ 984 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 985 1 0 \"0cd1cef0_3091_48c3_b63490d3e80a5b45\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber);\r\n// }} \"\"\r\n// {{ 986 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_98100824AA704d26AB40A6BADEF39F48 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 987 1 0 \"53df6909_1d0e_4001_ac674452fec957bc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 988 1 0 \"d73b7db7_a16b_4297_bd217c5483596b0e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 989 1 0 \"85d76321_871e_4d0e_bb460b7513742e62\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 990 1 0 \"d303212f_1f38_442d_a24eee709cf4cdc0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS create USB device step return2 (device number):\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 991 1 0 \"7356ec1e_8437_4679_94613ac2bea4fe0d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 992 1 0 \"c39e7de4_b2ca_4f54_8af83cbb9627fd7e\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 993 1 0 \"adc0e629_8b57_4538_98abc4b767f9495f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 994 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 995 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_EndMonitoring\")\r\n{\r\n// }} \"\"\r\n// {{{ 996 1 0 \"4293ef15_cfcd_4e29_b9b02afae2d471f7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 997 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 998 1 0 \"96f15f32_4117_4a09_85dceac0fa769b43\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult);\r\n// }} \"\"\r\n// {{ 999 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1000 1 0 \"6ba4b834_521a_46da_9ceb8ced08da95f5\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1001 1 0 \"fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1002 1 0 \"ce89bf49_b865_4c3f_a97eba220b5a7d33\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"HHS End Monitoring step return:\"), o_stepReturn);\r\n// }} \"\"\r\n// {{{ 1003 1 0 \"05229af2_f20a_42ce_908ec8445f3f9dd2\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1004 1 0 \"f1e7de45_4e9c_4e01_866b3a077f89e458\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1005 1 0 \"b51b52b7_51e1_4a4c_b3d46f807849d30f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1006 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1007 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetFirmwareVersion\")\r\n{\r\n// }} \"\"\r\n// {{{ 1008 1 0 \"942a1cc2_d956_47fa_9a9ffed1e856a632\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1009 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1010 1 0 \"20e2b3e5_8664_4809_9bcf626c89196333\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1011 1 0 \"c70f5e07_0eeb_45e5_af26714895e2df88\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion);\r\n// }} \"\"\r\n// {{ 1012 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8E6D8176362E4b22B89EBFFEECC84662 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1013 1 0 \"38e3e61d_a654_46f5_87f53cf7dfc09446\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1014 1 0 \"98efd759_0948_43f3_be4d09e40ee42a64\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1015 1 0 \"7de3b86c_c16d_4932_beedfb948b5d85f8\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1016 1 0 \"c77a8e7c_e497_43a1_81269d0166044d49\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1017 1 0 \"9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1018 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1019 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetSerialNumber\")\r\n{\r\n// }} \"\"\r\n// {{{ 1020 1 0 \"38b7d0d7_7cce_4157_8abc70dfb62eefa5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1021 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1022 1 0 \"d92781d1_27c2_48fb_acfd9cb32428e910\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1023 1 0 \"0bbfb488_9723_4a08_9b90171dbec6117a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber);\r\n// }} \"\"\r\n// {{ 1024 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1025 1 0 \"19daab0c_59b0_4af8_a070bee39acf20c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1026 1 0 \"36eff987_ca22_4543_b44d6850f61b8582\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1027 1 0 \"311e5a04_1ac3_443c_bdc51c5cdc4c44f0\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1028 1 0 \"76095f27_e37d_48e3_9954449dd9f74461\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1029 1 0 \"fc3d5010_5690_4586_93800b219bef7c38\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1030 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1031 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1032 1 0 \"f3888a0b_86ea_4c4a_891e1755a6e78556\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1033 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1034 1 0 \"df61bf49_7625_493f_ad06bbdbb36b494a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1035 1 0 \"e993ed67_92ed_4c85_bd33f90aac53dfb0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3);\r\n// }} \"\"\r\n// {{ 1036 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1037 1 0 \"accda6cd_138b_411c_bf3af9b152e986c8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1038 1 0 \"58168eb3_74dc_4679_84d0f3f858d8eb55\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1039 1 0 \"6efd49bf_48c7_437b_8fee57487345eaee\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1040 1 0 \"b8259158_e5b5_4316_b62d2ceec557fb5d\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1041 1 0 \"cc296349_cba3_41d9_b3e6b0855f734e4f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1042 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1043 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetShakerSpeed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1044 1 0 \"e1c29a26_0656_46e3_b0a412143047bd26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1045 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1046 1 0 \"8d513473_33ad_47dc_a8c3ed9799195b58\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1047 1 0 \"d7148e56_7fcc_471d_8c3a7abc2847db7e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1048 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C342F6DC97064debAC7DC78E54AD4F78 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1049 1 0 \"ee004b75_f488_428e_99b02212bd478984\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1050 1 0 \"3be88632_8bc5_4dba_86df24bdde6a39e8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1051 1 0 \"41ba2513_e3c2_485c_821198419c3fe286\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1052 1 0 \"a7c9c998_2bfe_4739_88c85d0ae9b0bd68\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1053 1 0 \"65c40b78_e5c6_4378_a63c025ed0a43492\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1054 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1055 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1056 1 0 \"09fb30ea_33e9_486d_96945af4798859ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1057 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1058 1 0 \"4f9610c2_a783_4586_b1725e8904e476cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1059 1 0 \"eea3f2ce_93c1_4efd_be90b89d775a6867\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4);\r\n// }} \"\"\r\n// {{ 1060 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C16E1CF8298042f0A01D1040DC911015 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1061 1 0 \"ad6b8668_d455_40f9_9e64eac973c2db0c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1062 1 0 \"db6f5f33_dff3_46f7_aa479144fecfba9c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1063 1 0 \"81e3038e_a3ea_4252_a09b14cd3de477a3\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1064 1 0 \"3f503a0a_a8db_4b7a_b0690a720a1d0493\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1065 1 0 \"ee84f447_8fdd_4199_ba63432775dcf70e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1066 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1067 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperature\")\r\n{\r\n// }} \"\"\r\n// {{{ 1068 1 0 \"01d1add6_c167_4137_8f0c285cd6ad9bed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1069 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1070 1 0 \"a54c8c75_1172_46d3_a61e71fe7fea812d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1071 1 0 \"4187d732_0d13_4590_99fa08572e32e2f9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1072 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_14A2AAD200434d69970AC483BD08B64F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1073 1 0 \"e9f473e4_b341_4e28_8c5c444235409181\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1074 1 0 \"f124fc79_0893_4e43_a35ce5c0273e16ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1075 1 0 \"234847f1_2f0a_4e64_856b9edefcebb425\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1076 1 0 \"75eb26cd_647c_4b8b_9de07d504cb88023\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1077 1 0 \"5b7c0a1f_be57_41ac_b1765918d4e7708f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1078 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1079 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_GetTemperatureState\")\r\n{\r\n// }} \"\"\r\n// {{{ 1080 1 0 \"82a233ab_0392_4ebb_9a809d80aae38e44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1081 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1082 1 0 \"19a32be3_7476_425d_a82433aead4637cf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1083 1 0 \"7f7e0bd7_bea9_474d_92bce5d21da9a2a6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2);\r\n// }} \"\"\r\n// {{ 1084 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_50485390A50647818ED2D3934FBC87E3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1085 1 0 \"81e1a27f_16e2_44ed_b7cd3b11ac866a97\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1086 1 0 \"e53c9d52_7503_45f4_a5bcb3a1cb80bf77\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1087 1 0 \"31a69f44_1a59_49ce_a78763f3aa936042\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1088 1 0 \"32f266c7_dd2b_45a2_92eb3a1e48157837\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1089 1 0 \"d72c6202_9240_4144_80f50ee79d52d259\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1090 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1091 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SendFirmwareCommand\")\r\n{\r\n// }} \"\"\r\n// {{{ 1092 1 0 \"11546c32_6ddd_4250_9b8750c9679e5b79\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1093 1 0 \"06688598_f10e_41e9_8a2c6d3dff7b7aae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"command\"), command);\r\n// }} \"\"\r\n// {{{ 1094 1 0 \"15a58509_ec93_4677_b1858cadeac42d10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetStringProperty(objJSONFromServer, Translate(\"parameter\"), parameter);\r\n// }} \"\"\r\n// {{ 1095 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1096 1 0 \"84b0a5f3_5e82_4770_81998131d1071a7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1097 1 0 \"b63ba349_9a52_43ca_aec17e40c17d231b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter);\r\n// }} \"\"\r\n// {{ 1098 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_84EE5E4228B140f599748D1271CBB0F3 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1099 1 0 \"f46c286b_9141_4717_ac23994f8defc186\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1100 1 0 \"17f0f127_1d1a_4a85_a301da7690437397\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1101 1 0 \"8b5634c2_e1da_41d3_83c57142f4cae999\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1102 1 0 \"0420109d_c869_4657_864ca128c325426b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1103 1 0 \"f547e301_0505_4366_8b2d3514ee3a7602\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1104 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1105 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetPlateLock\")\r\n{\r\n// }} \"\"\r\n// {{{ 1106 1 0 \"927ddf67_5dbd_432b_b8cf6117a3109b06\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1107 1 0 \"a3eee1ac_7024_473b_a6eb8a2e9b461a66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"plateLock\"), plateLock);\r\n// }} \"\"\r\n// {{ 1108 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1109 1 0 \"a9029174_cbad_4f9c_9ca65c3b9497d605\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1110 1 0 \"27d47e3b_913b_4a0e_bdb50007a0e39d84\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock);\r\n// }} \"\"\r\n// {{ 1111 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1112 1 0 \"bb948751_9e18_4aa8_b86a3dd67208967f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1113 1 0 \"b56b5fdf_2865_42da_a53e7fa445218646\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1114 1 0 \"945560ed_40bf_44a9_851fead4c1943f9f\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1115 1 0 \"3284ab29_5b6c_485d_883700cbef53cd22\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1116 1 0 \"f954c8d6_c617_4f39_8c4d4108b70983c9\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1117 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1118 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetShakerParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1119 1 0 \"8a0e14c1_f6c6_4fb8_94094498cccd7991\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1120 1 0 \"1810a83f_3fc2_4c49_9d5502fbdfc743e6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingDirection\"), shakingDirection);\r\n// }} \"\"\r\n// {{{ 1121 1 0 \"c3053579_8645_474f_8c05459eed975362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingAccRamp\"), shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1122 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1123 1 0 \"d7ecab6c_533b_4d98_97e3fd144551f6d2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1124 1 0 \"77463ac5_e629_4772_98004edef4016a6a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp);\r\n// }} \"\"\r\n// {{ 1125 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_451FDB1A50FF4e028560DB4C34C125F1 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1126 1 0 \"96075a25_a9b4_48ec_b53a90612b9d42a8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1127 1 0 \"becef32e_bdce_4400_816bdb42c51ffae8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1128 1 0 \"5ed72ec4_1b60_4258_969b44c995450ec1\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1129 1 0 \"9df0d7f9_6261_48d0_835bb8d96605780a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1130 1 0 \"eb29db49_9fc1_4756_b3925dca07e4ed77\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1131 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1132 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetSimulation\")\r\n{\r\n// }} \"\"\r\n// {{{ 1133 1 0 \"941f9e19_ca94_4ede_9719205aeb876593\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"simulate\"), simulate);\r\n// }} \"\"\r\n// {{ 1134 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1135 1 0 \"c8de89fe_7a53_4c03_bbe8ba85302b57ea\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1136 1 0 \"41b0c1a2_60aa_4f16_8901c300e9a3dc14\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetSimulation(simulate);\r\n// }} \"\"\r\n// {{ 1137 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B1644184A5B84b0aBDBB58353FF442D0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1138 1 0 \"b9ad26f0_da3e_44e9_a29e1fa4b10f92f4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1139 1 0 \"af12d4c1_56d9_42d5_a4d2ee120cbe9c7b\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1140 1 0 \"2e7a9d5f_51df_4c49_bb1986da7e14cd48\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1141 1 0 \"e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1142 1 0 \"cce7b3b3_ed98_45ba_8d1d8258ccbfe92d\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1143 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1144 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetTempParameter\")\r\n{\r\n// }} \"\"\r\n// {{{ 1145 1 0 \"99447b6e_9293_483d_bbd7ddee96870904\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1146 1 0 \"f55d7581_a005_45e4_9b3d7f7473323e6d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"startTimeout\"), startTimeout);\r\n// }} \"\"\r\n// {{{ 1147 1 0 \"7192db12_8543_4c8b_81b98b57ce21118d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"toleranceRange\"), toleranceRange);\r\n// }} \"\"\r\n// {{{ 1148 1 0 \"8f6d922f_f2ae_43c6_8682df15e6b7c07c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatProperty(objJSONFromServer, Translate(\"securityRange\"), securityRange);\r\n// }} \"\"\r\n// {{ 1149 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1150 1 0 \"aecc8a3f_302a_4fd4_85780994769765dc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1151 1 0 \"57eb738a_6eb2_4f04_b25bd7f7f64a8179\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange);\r\n// }} \"\"\r\n// {{ 1152 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9BC45EC7569E460fB8410F0E23AB29AF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1153 1 0 \"8a17da2c_6b74_4513_a05e482acef68552\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1154 1 0 \"56ff8462_120d_4d1f_94aebdd697b832ba\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1155 1 0 \"90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1156 1 0 \"3acf3ca1_7e3a_4543_ba155feae68056de\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1157 1 0 \"af7d40bc_03c3_449c_a850d0f10caafcf4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1158 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1159 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_SetUSBTrace\")\r\n{\r\n// }} \"\"\r\n// {{{ 1160 1 0 \"0691ecbd_49b4_4590_91d60e614290ec34\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"trace\"), intTrace);\r\n// }} \"\"\r\n// {{ 1161 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1162 1 0 \"96a3924c_7b8c_441f_b05115a7adf0396f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1163 1 0 \"24723a79_741b_46be_830fe654c08d6d1f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::SetUSBTrace(intTrace);\r\n// }} \"\"\r\n// {{ 1164 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_FE6D15E135D24fd7A06908E89474B650 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1165 1 0 \"29acd4b5_13fb_40fe_bc6d971aa6f115a7\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1166 1 0 \"dee61c46_d8ae_4b5c_b86f3aefb401636c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1167 1 0 \"cda0d06f_dce0_47ad_bbb419c58aba260e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1168 1 0 \"e4c2a97d_21e3_4f37_8f443a35526b6a85\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1169 1 0 \"1afb44d6_cfba_4f17_ba9aa93102410e48\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1170 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1171 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1172 1 0 \"503e1c47_5f15_42bd_8eaad1057de68ef6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1173 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1174 1 0 \"18981818_de5f_4fd3_b704a074fd37c9d8\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1175 1 0 \"7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed);\r\n// }} \"\"\r\n// {{ 1176 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1177 1 0 \"6fa8ea83_c7bd_4b3e_81768063f8126364\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1178 1 0 \"2d39afd4_04dd_4243_b88cc3d1eb981212\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1179 1 0 \"ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1180 1 0 \"c0e8b81a_bb36_427c_8c38b82b1945b14b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1181 1 0 \"523cbe66_22fd_4ddd_adf56a7e46dd92b8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1182 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1183 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartAllShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1184 1 0 \"db6b6c2e_da48_4c64_bdddc80ba5a28921\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1185 1 0 \"f6f42906_5ded_4a05_8f9a11fac18f7f10\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1186 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1187 1 0 \"84efe41c_f9b0_4304_896c8b308bb07e76\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1188 1 0 \"428d423d_1825_472f_a3aa303d028d0659\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1189 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90F21CFF24BE45c09A6A7000C5D99043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1190 1 0 \"367927ae_ba00_4d5a_b9d8f5f9b3d208c3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1191 1 0 \"b5262842_c6b4_4edc_9a59816098368c71\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1192 1 0 \"d73f1476_bf95_4d48_89849f295a9e4d0e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1193 1 0 \"c92c0e53_ca7f_47e9_8ee67fafbbd6ec75\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1194 1 0 \"e8c18774_db44_4a3c_9a1df80629a36d2b\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1195 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1196 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1197 1 0 \"f958f5a5_d1c5_4e9e_9262e708f24940c8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1198 1 0 \"2ce1189b_e54a_48c0_aafc2932409c0b9c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{ 1199 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1200 1 0 \"7e6d8299_fab6_4435_8adf36d59ca04c7a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1201 1 0 \"5fe75151_d308_441e_a049e85f45ca3966\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed);\r\n// }} \"\"\r\n// {{ 1202 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1203 1 0 \"64e95a28_a6b6_4e1b_825867f05118aebc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1204 1 0 \"25553bc8_2d53_47af_af9e6ada77cb8dfe\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1205 1 0 \"4b0b48f9_3855_4eab_8f22b0902846d750\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1206 1 0 \"6f15d11b_2e0f_48bb_b6c0d4cfdc666828\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1207 1 0 \"bf0ceeb0_1897_4363_895c76a5b7ea3ca5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1208 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1209 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartShakerTimed\")\r\n{\r\n// }} \"\"\r\n// {{{ 1210 1 0 \"858c7861_9fb0_490e_9646b9eb190706d2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1211 1 0 \"327bd0c6_60a8_4fd1_9ef81e2a21d904a5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingSpeed\"), shakingSpeed);\r\n// }} \"\"\r\n// {{{ 1212 1 0 \"83a6d58d_c761_484f_871c9c2229a6d3d7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"shakingTime\"), shakingTime);\r\n// }} \"\"\r\n// {{ 1213 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_29447729262E4e0f8B347F6640716D96 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1214 1 0 \"08abdac2_e330_47c9_9b80d99dd0338c3d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1215 1 0 \"22e55b69_c018_47f9_8e3ac169c190d2de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime);\r\n// }} \"\"\r\n// {{ 1216 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_29447729262E4e0f8B347F6640716D96 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1217 1 0 \"a26bca7d_b38c_4413_b61d3da3fdfb077b\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1218 1 0 \"987a961a_097c_4b2b_a1f6ce2a63df6759\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1219 1 0 \"f539df09_de1d_4fd8_9ac041897fab0333\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1220 1 0 \"5939de60_ca1b_4c79_ad7eb228b0d60b48\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1221 1 0 \"b017da92_d20f_43bf_b5e0430ee567c9b5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1222 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1223 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StartTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1224 1 0 \"dc338e01_6b43_4fe3_bda98d2b0a1a65e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{{ 1225 1 0 \"04239a09_93a5_4f75_80f95d178bdf9cea\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"temperature\"), temperature);\r\n// }} \"\"\r\n// {{{ 1226 1 0 \"0387745b_87be_4ec6_912b0b4decaa257b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"waitForTempReached\"), waitForTempReached);\r\n// }} \"\"\r\n// {{ 1227 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1228 1 0 \"0e03f515_b847_4dfd_8aa52f8b5f1135cd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1229 1 0 \"4ba75dd5_935f_4f2c_a15605eafa47b808\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached);\r\n// }} \"\"\r\n// {{ 1230 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_764F491C76DA445383E5490AB126ADB4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1231 1 0 \"e7b29c37_b63e_40fe_a3663d4eb8c7dc93\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1232 1 0 \"0f035a64_bd7b_4737_80275be46bdab48c\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1233 1 0 \"bfde731d_b581_4488_b4cb7f4873675d7c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1234 1 0 \"16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1235 1 0 \"e1026c7e_66b7_46eb_bf947e19313456ef\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1236 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1237 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopAllShaker\")\r\n{\r\n// }} \"\"\r\n// {{ 1238 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1239 1 0 \"7ca275a0_4aed_4b67_9535646b2074ebaf\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1240 1 0 \"d112da95_7f27_47a3_9e24bc801bcc9afc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1241 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1242 1 0 \"e87b7e6f_2610_44dd_b7d0262ac681e308\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1243 1 0 \"089afd30_5056_443f_ba9176d0f19dc0ce\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1244 1 0 \"5706daca_363f_417f_9103f7ddd16c1444\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1245 1 0 \"779d2d0c_e2ec_46d6_a73cdbff8083d49c\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1246 1 0 \"0420ee37_aa3a_4c0c_ad3b8304acc417fb\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1247 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1248 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1249 1 0 \"1cdead0d_9944_446b_bd59d491b15242b5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1250 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1251 1 0 \"d02dc65a_05f9_4938_90df6cee1381d4dd\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1252 1 0 \"75688e3b_5ed1_45d1_a4d8344ca19c3fd3\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopAllShaker();\r\n// }} \"\"\r\n// {{ 1253 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_72372634E1DD46ff8400C9F993FCEFB9 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1254 1 0 \"b5ede424_b7f1_4369_8610d54e626df620\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1255 1 0 \"e30a5e2a_77e4_4fee_8d3eb484d6b9ea74\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1256 1 0 \"6ffd1f39_ec63_4f9c_a7687447aff79f80\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1257 1 0 \"f235ec09_59d8_464c_91b83dfa6335c346\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1258 1 0 \"37106583_e900_42f4_b2eee826b4977e39\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1259 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1260 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_StopTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1261 1 0 \"b16ab946_2ba9_4900_bd6f9ede31edf6ef\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1262 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_B5957B02990845739642D8C604B0B582 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1263 1 0 \"e22c8ca0_6e3f_454b_8628dd4417a6fd78\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1264 1 0 \"3a29dc5b_78cc_4ed1_ab9cd631701715e4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1265 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_B5957B02990845739642D8C604B0B582 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1266 1 0 \"c8c0c20e_b866_451e_9ecd69fdb0b0ed14\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1267 1 0 \"c879beb6_9c82_4bf7_a1f57c52bba92317\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1268 1 0 \"11f3231a_40df_4c14_92585ab8016165e5\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1269 1 0 \"d13e1002_1069_4028_add2d80114e0b28b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1270 1 0 \"6b3601b1_b43d_48e4_bd5a7395c2120796\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1271 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1272 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_Terminate\")\r\n{\r\n// }} \"\"\r\n// {{ 1273 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1274 1 0 \"e2f732a1_e433_4ab6_b3bdac9a4ca5bd19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1275 1 0 \"910932e3_2b76_41cf_9dccecb799f2d649\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHamHeaterShaker::Terminate();\r\n// }} \"\"\r\n// {{ 1276 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_919FCF7F89804c398972DAFE2605D286 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1277 1 0 \"44edbcbd_1012_457f_848d11750abdfeb2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1278 1 0 \"bd2ed37a_28c3_43fb_a579c2e4f85c9d19\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1279 1 0 \"4edde3c1_4f65_4403_a54985d84f6d80f7\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1280 1 0 \"10834573_65bc_44bd_8d898126f97d2ae0\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1281 1 0 \"c3db13b0_01f9_4e6c_9258eef29b3e9a4e\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1282 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1283 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForShaker\")\r\n{\r\n// }} \"\"\r\n// {{{ 1284 1 0 \"87872be5_4e84_4b7b_98a3e7147a66f6a1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1285 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1286 1 0 \"d5b14e5b_7d51_414e_af4dfb664c89e0c1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1287 1 0 \"2eff956e_28cc_4094_8285d5ed00125a55\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber);\r\n// }} \"\"\r\n// {{ 1288 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1289 1 0 \"d60c31db_3b59_4498_8c47e4d2612443a4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1290 1 0 \"a4b77c48_e39f_4f25_a624252a538e8407\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1291 1 0 \"96b99051_5c80_421c_a02e0bd238da1847\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1292 1 0 \"8aeec4cd_2275_4ee8_b72f23d021255efe\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1293 1 0 \"cf921823_86d6_4065_85c67f7d9986cbbc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1294 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1295 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"HHS_WaitForTempCtrl\")\r\n{\r\n// }} \"\"\r\n// {{{ 1296 1 0 \"881e7d69_50e3_4e42_89eafece562ac009\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"deviceNumber\"), deviceNumber);\r\n// }} \"\"\r\n// {{ 1297 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_088C7630997A4749A400740DA66CBA0C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1298 1 0 \"ffa29d3e_8248_4266_80661c264964da5f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{{ 1299 1 0 \"421a52eb_128a_4b6b_8baafb6548b66bd8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber);\r\n// }} \"\"\r\n// {{ 1300 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_088C7630997A4749A400740DA66CBA0C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1301 1 0 \"8a92c1f7_b614_4c09_b5ada70145cb0a7c\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1302 1 0 \"45dc6d65_61ca_4b9a_ab05d7df9bec2b13\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1303 1 0 \"aeb529e0_2eaf_4686_9528342b58318a5d\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1304 1 0 \"73b4c109_8b20_4c11_853d009d28548a83\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1305 1 0 \"8316a1bf_d774_47f2_a3b870c92be1c138\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1306 1 0 \"19cfb02b_845f_4bc4_83fd05266ea128b4\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1307 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1308 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1309 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"CORE96WashEmpty\")\r\n{\r\n// }} \"\"\r\n// {{{ 1310 1 0 \"88f95bdd_c2c5_4856_91e5f47f7431bdaf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"refillAfterEmpty\"), refillAfterEmpty);\r\n// }} \"\"\r\n// {{{ 1311 1 0 \"d7a05a26_0b59_478a_a85f308173caf693\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1WashLiquid\"), chamber1WashLiquid);\r\n// }} \"\"\r\n// {{{ 1312 1 0 \"8b1bd108_2b5a_4a2d_ace7b87920eae1b9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber1LiquidChange\"), chamber1LiquidChange);\r\n// }} \"\"\r\n// {{{ 1313 1 0 \"d651fbf5_a4b8_490b_b869269338ccfcfa\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2WashLiquid\"), chamber2WashLiquid);\r\n// }} \"\"\r\n// {{{ 1314 1 0 \"79b1a205_d988_4171_9e1fb28ba362329b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate(\"chamber2LiquidChange\"), chamber2LiquidChange);\r\n// }} \"\"\r\n// {{ 1315 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 1316 1 0 \"3fc645b3_f504_4b5e_93481425adf459b4\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1317 1 0 \"123d7b87_745f_4511_a797d08711d13361\" \"ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3(\"123d7b87_745f_4511_a797d08711d13361\"); // Head96EmptyWasher\r\n}\r\n// }} \"\"\r\n// {{ 1318 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EE8804FCDC214a06935DD0F4830020DB : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 1319 1 0 \"ab84bcc8_3da0_446b_84689087cc7a392f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = 1;\r\n// }} \"\"\r\n// {{ 1320 1 0 \"3f9d8157_5931_4cda_afa101739a3a0f82\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 1321 1 0 \"dde0a413_b493_4b17_94990d1d5f2e2b2e\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(\"\"), Translate(\"\"), Translate(\"\"), id);\r\n// }} \"\"\r\n// {{ 1322 1 0 \"0210f13c_1bdb_445c_ab80996c9de11cae\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1323 1 0 \"b4f2b9ce_c69a_459e_ac20bf03c1ff08cf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1324 1 0 \"1e8b0bba_85dd_48f7_a69e247338f695c8\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 1325 1 0 \"1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONFromServer);\r\n// }} \"\"\r\n// {{ 1326 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1327 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (commandFromServer == \"end\")\r\n{\r\n// }} \"\"\r\n// {{{ 1328 1 0 \"6db67a5a_6aa2_4087_875823acfff0fac4\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Good Bye!\"));\r\n// }} \"\"\r\n// {{ 1329 1 0 \"4c7e40d6_02a6_451d_b28230ec71e40ce1\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1330 1 0 \"05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1331 1 0 \"17c082ea_8224_4d43_86dc6db5af649261\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 1332 1 0 \"b573bcbb_6bb4_4b28_b1ca14b0d3cad22e\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1333 1 0 \"6fb90145_24c3_46ba_88b839e0215d0bf2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\nSTAR_OEM_TOOLKIT::_ExitLibrary();\r\nSTAR_OEM_TOOLKIT_PH::_ExitLibrary();\r\n// }} \"\"\r\n// {{{ 5 \"main\" \"End\"\r\n} }\r\n// }} \"\"\r\n\r\n\r\n// $$author=stefa$$valid=0$$time=2022-10-23 19:48$$checksum=a76ce958$$length=082$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxEF83.sub",
    "content": "// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void ;\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ;\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ;\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ;\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ;\r\nprivate function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepId ) void ;\r\nfunction SendTextMessageToServer( variable str ) void ;\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ;\r\nprivate function waitForGUItoContinue(  ) variable ;\r\nfunction OnAbort(  ) void ;\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"Begin\"\r\nfunction OnAbort(  ) void {\r\n// }} \"\"\r\n// {{ 5 \"OnAbort\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1484 1 0 \"c8aa765a_4840_468a_9e928b44fa79d891\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::Release(objHttp);\r\n// }} \"\"\r\n// {{{ 5 \"OnAbort\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"Begin\"\r\nfunction SendTextMessageToServer( variable str ) void {\r\n// }} \"\"\r\nprivate object objJSONObject;\r\nprivate variable strJSON;\r\n// {{ 5 \"SendTextMessageToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1452 1 0 \"9d5f9d4a_c104_4b47_964b6d97f981a71e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1453 1 0 \"d0a04705_1adc_4919_b95168834c89f4de\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"command\"), Translate(\"message\"));\r\n// }} \"\"\r\n// {{{ 1454 1 0 \"7b9a6cd1_3eee_4085_b3f9548e43fc3424\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONObject, Translate(\"text\"), str);\r\n// }} \"\"\r\n// {{{ 1455 1 0 \"6a1c53cf_65ea_4f53_aa2e9111890fecf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONObject, strJSON);\r\n// }} \"\"\r\n// {{{ 1456 1 0 \"bee8c148_b3ea_490b_8d93d8ed5f24939f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONObject);\r\n// }} \"\"\r\n// {{{ 1457 1 0 \"b965a2fd_f821_4400_b4c777f558ed0772\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendTextMessageToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"Begin\"\r\nprivate function waitForGUItoContinue(  ) variable {\r\n// }} \"\"\r\nprivate variable loopCounter1;\r\nprivate variable serverResponse;\r\nprivate timer timer1;\r\n// {{ 5 \"waitForGUItoContinue\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1465 1 0 \"73328607_d06a_4d7d_8a5df64da06a1bde\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nserverResponse = Translate(\"\");\r\n// }} \"\"\r\n// {{{ 1466 1 0 \"2342f8b3_4765_4edc_9fb9f46cbb1fd20b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nSendTextMessageToServer(Translate(\"Waiting for server instructions...\"));\r\n// }} \"\"\r\n// {{{ 1467 1 0 \"216e1039_788e_4830_8588933e6c542ba1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Waiting for server instructions....\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1468 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nloopCounter1 = 0;\r\nwhile (1 == 1)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1469 1 0 \"5f15547c_3178_4f78_b5fea96f6a1c563b\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.1) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1470 1 0 \"cd67277b_4386_4862_8429008a00601693\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{{ 1471 1 0 \"6ec592d0_fe02_41a9_8503db5ccf0e5544\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nserverResponse = HSLHttp::HttpGET(objHttp, Translate(\"http://localhost:3221\"), Translate(\"\"));\r\n// }} \"\"\r\n// {{ 1472 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (serverResponse != \"\")\r\n{\r\n// }} \"\"\r\n// {{ 1473 1 0 \"b1e2e308_ee78_46d0_8a6832649536045e\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1474 1 0 \"c503da39_3ef9_42d6_884bb194cc028ecb\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1475 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 == 300)\r\n{\r\n// }} \"\"\r\n// {{ 1476 1 0 \"19e5c8f7_a1a9_4348_aa41a572942db630\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1477 1 0 \"6be46368_bb3e_4ad8_82647d6f52af8c9b\" \"{B31F3533-5D80-11d4-A5EB-0050DA737D89}\"\r\nbreak;\r\n// }} \"\"\r\n// {{ 1478 1 0 \"22cefea8_c8d5_41fb_be266dca75060474\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1479 1 0 \"8951a436_faf4_45df_a268dbb7ddb58c29\" \"{B31F353E-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.SetTimer(0.9) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1480 1 0 \"52bb524e_27b1_4bbe_afcf26453d9eb66f\" \"{B31F353F-5D80-11d4-A5EB-0050DA737D89}\"\r\nif( 0 == timer1.WaitTimer(hslFalse, hslFalse) )\r\n{\r\n    MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, \"\", \"HxMetEdCompCmd\");\r\n}\r\n// }} \"\"\r\n// {{ 1481 1 0 \"29dd5a3e_097e_4463_9c0cf08cd71770a2\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1482 1 0 \"809789b0_bd70_4c1f_b0d808ce120b1d99\" \"{9EC997CD-FD3B-4280-811B-49E99DCF062C}\"\r\nreturn (serverResponse);\r\n// }} \"\"\r\n// {{{ 5 \"waitForGUItoContinue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"Begin\"\r\nprivate function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1424 1 0 \"2520bd9f_739d_4111_a27d89f8f73ec39e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1425 1 0 \"aa6010ec_0628_49d5_a87e016b4a4fc7f6\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1426 1 0 \"a97c5efa_0ce4_4358_9c51c1893f526b9e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1427 1 0 \"deceb871_e830_4b14_86e626f745ef083a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1428 1 0 \"00afb5c2_b5db_4458_866a13b6cb332b68\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1429 1 0 \"e52bbd02_b31d_4278_a0f45991eab77d3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1430 1 0 \"19f99698_3777_4dcf_9fc765c3f221df4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1431 1 0 \"329f8b9b_0798_44f8_9ee6b65ec58b0c44\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1432 1 0 \"7728ac0d_8630_4f61_94af076392758ae1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1433 1 0 \"70d261f2_edc4_49a0_a5a074cd5ab92b74\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1434 1 0 \"ee0dd62d_582f_4171_b08e37f6106d9b38\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"Begin\"\r\nprivate function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void {\r\n// }} \"\"\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable strSinglePosition;\r\nprivate variable arrayOfPositions[];\r\nprivate variable arraySinglePosition[];\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\n// {{ 5 \"BuildTempSequenceFromPositions\" \"InitLocals\"\r\n{ sequence __temp; o_seq = __temp; }\r\n// }} \"\"\r\n// {{ 1371 1 0 \"d9022e13_e502_4969_a8ee79484e990801\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narrayOfPositions.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1372 1 0 \"3e178082_8579_435f_a5db4481bb789d9b\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strPositions, Translate(\";\"), arrayOfPositions, 0);\r\n// }} \"\"\r\n// {{ 1373 1 0 \"5d735f26_db1b_4bea_9ee405f4167bb99f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nn=arrayOfPositions.GetSize();\r\n// }} \"\"\r\n// {{{ 1374 1 0 \"f497f24b_fd39_417d_8703c0d54662309f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqRemoveAll(o_seq);\r\n// }} \"\"\r\n// {{ 1375 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1376 1 0 \"fd645546_0433_46a0_8619026e338529fd\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\narraySinglePosition.SetSize(0);\r\n// }} \"\"\r\n// {{ 1377 1 0 \"91aeb0c4_3176_4356_a19a1027bcdb0af3\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nstrSinglePosition=arrayOfPositions.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1378 1 0 \"c2b42369_7829_4c62_b58880fce7867995\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nStrTokenize(strSinglePosition, Translate(\",\"), arraySinglePosition, 0);\r\n// }} \"\"\r\n// {{ 1379 1 0 \"016f61c5_fd76_4c74_903df10a03070f7b\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nlabwareID=arraySinglePosition.GetAt(1-1);\r\n// }} \"\"\r\n// {{ 1380 1 0 \"886fc872_7c3a_4366_959db6d5f265ed7c\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\npositionID=arraySinglePosition.GetAt(2-1);\r\n// }} \"\"\r\n// {{{ 1381 1 0 \"766a54b4_4c5b_4991_9d8ceea62d26b216\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nSeqAdd(o_seq, labwareID, positionID);\r\n// }} \"\"\r\n// {{ 1382 1 0 \"b3c5b47a_24b4_41cc_91d3efba82df56d3\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1383 1 0 \"0003c6e9_5b43_438d_bc93be342c3c6b55\" \"{B31F353A-5D80-11d4-A5EB-0050DA737D89}\"\r\no_seq.SetCurrentPosition(1);\r\n// }} \"\"\r\n// {{{ 5 \"BuildTempSequenceFromPositions\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"StrTokenize\" \"Begin\"\r\nprivate function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void {\r\n// }} \"\"\r\nprivate variable strEdit;\r\nprivate variable posLast;\r\nprivate variable strToAdd;\r\nprivate variable posCurrent;\r\n// {{ 5 \"StrTokenize\" \"InitLocals\"\r\n// }} \"\"\r\n// {{ 1459 1 0 \"500afe4c_98a8_4117_8c279b9994d0b626\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposCurrent = -1;\r\n// }} \"\"\r\n// {{ 1460 1 0 \"6a0bd918_2fda_4e4c_a680454ce2576168\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nposLast = -1;\r\n// }} \"\"\r\n// {{ 1461 1 0 \"f65ed315_68ed_4ec0_ba0b3c217e692b25\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrToAdd = \"\";\r\n// }} \"\"\r\n// {{ 1462 1 0 \"9476acee_e5bb_43d1_bbec232ed01bae08\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrEdit = strIn;\r\n// }} \"\"\r\nif( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 )\r\n   return;\r\n\r\nposLast = StrGetLength(strEdit);\r\nposCurrent = StrFind(strEdit, strDelimiter);\r\n\r\nwhile (-1 != posCurrent && posLast > 0)\r\n{\r\n   //get tokens before next delimiter char\r\n   strToAdd = StrLeft(strEdit, posCurrent);\r\n   StrTrimRight(strToAdd, \"\");\r\n   StrTrimLeft (strToAdd, \"\");\r\n\r\n   //add token to our output list\r\n   if( StrGetLength(strToAdd) > 0 )\r\n   {\r\n      arrTokens.AddAsLast(strToAdd);\r\n     // Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n   }\r\n   else\r\n   {\r\n      if( bAttendEmptyTokens )// empty string should also be added\r\n      {\r\n         arrTokens.AddAsLast(strToAdd);\r\n         //Trace(GetFunctionName(), \" adding string to output list: $\", strToAdd, \"$\", \"\" );\r\n      }\r\n   }\r\n\r\n   //prepare next loop by removing obsolete characters\r\n   strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) );\r\n   //Trace(GetFunctionName(), \" next string = \", strEdit );\r\n\r\n   //find next \"non-delimiter\"\r\n   posCurrent = StrFind(strEdit, strDelimiter);\r\n   posLast = StrGetLength(strEdit);\r\n   //Trace(GetFunctionName(), \" next pos = \", posCurrent );\r\n\r\n}//end while\r\n\r\n//no delimiter left\r\n//add the last part of the string to our output list\r\nif (-1 == posCurrent)// && posLast > 0\r\n{\r\n   if( posLast == 0 && !bAttendEmptyTokens )\r\n      return;\r\n\r\n   StrTrimRight(strEdit, \"\");\r\n   StrTrimLeft (strEdit, \"\");\r\n\r\n   //Trace(GetFunctionName(), \" no delimiter left - adding string to output list: $\", strEdit, \"$\", \"\" );\r\n\r\n   arrTokens.AddAsLast(strEdit);\r\n}\r\n\r\n// {{{ 5 \"StrTokenize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"Begin\"\r\nprivate function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void {\r\n// }} \"\"\r\nprivate variable numOfVolumes;\r\nprivate variable numOfChannelsInVariable;\r\nprivate variable n;\r\nprivate variable loopCounter1;\r\nprivate variable arrSize;\r\nprivate variable loopCounter3;\r\nprivate variable strKeyName;\r\n// {{ 5 \"BuildArrayOfVolumesForChannels\" \"InitLocals\"\r\no_arrayOfVolumes.SetSize( 0);\r\n// }} \"\"\r\n// {{ 1345 1 0 \"69288f91_eabd_4d15_af5361636ffacbf6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstrKeyName = Translate(\"volumes\");\r\n// }} \"\"\r\n// {{ 1346 1 0 \"bf4c1108_6751_41ee_8d3d3b1a9418548f\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_arrayOfVolumes.SetSize(0);\r\n// }} \"\"\r\n// {{{ 1347 1 0 \"a9cfa743_a769_46a3_b8d7e45a67b3d297\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\narrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName);\r\n// }} \"\"\r\n// {{ 1348 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (arrSize > 0)\r\n{\r\n// }} \"\"\r\n// {{ 1349 1 0 \"594bebbb_0d54_4893_b20d783de743dd44\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1350 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter3 = 0; loopCounter3 < arrSize;)\r\n{\r\nloopCounter3 = loopCounter3 + 1;\r\n// }} \"\"\r\n// {{{ 1351 1 0 \"3bfc9004_2595_4917_b4edcdceed06f518\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v);\r\n// }} \"\"\r\n// {{ 1352 1 0 \"6be31b23_f55d_4d15_be6abc9ee4bef664\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\nTrace(\"Volume received=\", v);\r\n// {{ 1354 1 0 \"00de6afc_bb0d_462a_9dc2b92f146c65b5\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1355 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\nelse\r\n{\r\n// }} \"\"\r\n// {{ 1356 1 0 \"4a4891b3_f877_4b14_85196b7e820554b2\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1357 1 0 \"22c7c768_33c4_4975_909e9586375bfe8c\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nJSON_GetFloatValue(strKeyName, v);\r\n// }} \"\"\r\n// {{ 1358 1 0 \"4e01e62a_13a2_408e_9fbfb2300d5996ed\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1359 1 0 \"b87c9973_c0d7_4ea7_a2c09b87b361f56a\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1360 1 0 \"cc565f65_a92a_43ef_9c052b7f5632aca5\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\nnumOfVolumes=o_arrayOfVolumes.GetSize();\r\n// }} \"\"\r\n// {{{ 1361 1 0 \"e49355fb_3fe6_4c8d_930870416e36b708\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumOfChannelsInVariable = StrGetLength(strChannels);\r\n// }} \"\"\r\n// {{ 1362 1 0 \"804bc477_e950_4a14_af5f667c73cf5176\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{ 1363 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (numOfVolumes < numOfChannelsInVariable)\r\n{\r\n// }} \"\"\r\n// {{ 1364 1 0 \"2e73355c_8b11_4423_b345807cae9d5db8\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nn = numOfChannelsInVariable - numOfVolumes;\r\n// }} \"\"\r\n// {{ 1365 1 0 \"53a650d8_2fc1_4c5b_bd19eda433c2a81a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nv = o_arrayOfVolumes.ElementAt( numOfVolumes -1);\r\n// }} \"\"\r\n// {{ 1366 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < n;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1367 1 0 \"cd047b15_6a02_40f1_adfb116f6bf5d763\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_arrayOfVolumes.AddAsLast(v);\r\n// }} \"\"\r\n// {{ 1368 1 0 \"7b61dafe_a658_4913_a69fbb4439fcf8d7\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 1369 1 0 \"b237e1a1_c3e7_4ccb_95cf7fe85cb613a8\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BuildArrayOfVolumesForChannels\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"Begin\"\r\nprivate function ArrayToString( variable & i_array[], variable & o_str ) void {\r\n// }} \"\"\r\nprivate variable arraySize;\r\nprivate variable loopCounter1;\r\n// {{ 5 \"ArrayToString\" \"InitLocals\"\r\no_str = 0;\r\n// }} \"\"\r\n// {{ 1335 1 0 \"1a220255_6ba4_40fb_be39a6a2f4e0065f\" \"{72EACF88-8D49-43e3-92C8-2F90E81E3260}\"\r\narraySize=i_array.GetSize();\r\n// }} \"\"\r\n// {{ 1336 1 0 \"f821c4ff_f1a2_4ad7_9bd77dd8652567cb\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_str = Translate(\"\");\r\n// }} \"\"\r\n// {{ 1337 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < arraySize;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 1338 1 0 \"afd84a84_8330_46e7_8308e16b5caa05e9\" \"{67A8F1C9-6546-41e9-AD2F-3C54F7818853}\"\r\nv=i_array.GetAt(loopCounter1-1);\r\n// }} \"\"\r\n// {{{ 1339 1 0 \"77436fd3_3c87_4f09_9a89259b15ef5bf5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, v);\r\n// }} \"\"\r\n// {{ 1340 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (loopCounter1 < arraySize)\r\n{\r\n// }} \"\"\r\n// {{{ 1341 1 0 \"d14fd31e_5de8_46f9_bb359f38de9a08ae\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_str = StrConcat2(o_str, Translate(\";\"));\r\n// }} \"\"\r\n// {{ 1342 1 0 \"2f7dae2d_a8aa_4be3_93de2d7d4468ce4b\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1343 1 0 \"18e1e887_ea65_4668_a65d392e862d3c46\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"ArrayToString\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"Begin\"\r\nprivate function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void {\r\n// }} \"\"\r\nprivate variable retVal;\r\n// {{ 5 \"JSON_GetFloatValue\" \"InitLocals\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\nTrace(\"getfloatvalue\");\r\n// {{{ 1386 1 0 \"8f2f8625_6c9e_4c47_b4698d29df60004a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\n// {{ 1387 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"error getting float value, try with integer\");\r\n// {{ 1389 1 0 \"5a74df81_6685_4703_8b055144f8d74d45\" \"{F07B0071-8EFC-11d4-A3BA-002035848439}\"\r\n\r\n// }} \"\"\r\n// {{{ 1390 1 0 \"47bb8c98_9624_40ad_b765abfc6b0d0b49\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nretVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue);\r\n// }} \"\"\r\nTrace(\"error getting float value, tried with integer\");\r\n// {{ 1392 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (retVal > 0)\r\n{\r\n// }} \"\"\r\nTrace(\"wtf ok i guess its zero\");\r\n// {{ 1394 1 0 \"5b8a3ec6_8ee4_4887_ab7df29fa494cdc1\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_KeyFloatValue = 0;\r\n// }} \"\"\r\n// {{ 1395 1 0 \"b8a567ad_3f02_43a5_bb2c0456385ec507\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1396 1 0 \"9237a268_49c1_4f25_b740f416c52643dc\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"JSON_GetFloatValue\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"Begin\"\r\nprivate function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\nprivate variable t_arrayStepReturns[];\r\nprivate variable loopCounter1;\r\nprivate variable keyName;\r\nprivate variable varType;\r\n// {{ 5 \"SendHHSReturnToServer\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1398 1 0 \"6db3f932_ba70_4cf6_9c2a8636580fc754\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1399 1 0 \"3cf8a985_83cc_418e_99293de9d9945d5b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"HHS-return\"));\r\n// }} \"\"\r\n// {{{ 1400 1 0 \"705c25bc_6db4_4eb9_b05b33999e110198\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{ 1401 1 0 \"5a9efc02_a11a_4c0c_b166e3b28800cc6c\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\nt_arrayStepReturns.SetSize(0);\r\n// }} \"\"\r\n// {{ 1402 1 0 \"5aa4f3a8_774f_4f35_ae7fa197ef920048\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn1);\r\n// }} \"\"\r\n// {{ 1403 1 0 \"00ac351d_bc51_41e5_b300af93d6893fa5\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn2);\r\n// }} \"\"\r\n// {{ 1404 1 0 \"2aaf8702_2d08_48ee_be96815ca77463c9\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn3);\r\n// }} \"\"\r\n// {{ 1405 1 0 \"67fcb56e_9f42_4739_a5ee322f12443a17\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\nt_arrayStepReturns.AddAsLast(stepReturn4);\r\n// }} \"\"\r\n// {{ 1406 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < 4;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 1407 1 0 \"a23ae2ed_5b02_41a0_a69215d0b80fde4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nkeyName = StrConcat2(Translate(\"step-return\"), loopCounter1);\r\n// }} \"\"\r\n// {{{ 1408 1 0 \"9b92ac94_8c71_4b77_95ac0c691427c4bd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nvarType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1409 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"s\")\r\n{\r\n// }} \"\"\r\n// {{{ 1410 1 0 \"1497ea6a_46ab_4ee8_b7951f24b533e644\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1411 1 0 \"631dea2d_475b_45bc_8eff2c0337b818df\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1412 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"f\")\r\n{\r\n// }} \"\"\r\n// {{{ 1413 1 0 \"61772f9e_fea3_4011_bba06b7fe66e8b0e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1414 1 0 \"3b024f35_15c2_49e7_9c67ebddd99f5c96\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1415 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (varType == \"i\")\r\n{\r\n// }} \"\"\r\n// {{{ 1416 1 0 \"28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1));\r\n// }} \"\"\r\n// {{ 1417 1 0 \"d870ac1d_eb68_4248_815e1b841ded2481\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 1418 1 0 \"093841d2_b750_4301_a39f2e2e1b1ac592\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 1419 1 0 \"0a0447b8_96fb_495a_90dfa8f1e2c488ad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1420 1 0 \"b2a13d10_b443_4fc0_aa0baa2a23cddafe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1421 1 0 \"0adf40b4_5c73_46d8_8e6042c6dfd32d86\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1422 1 0 \"5a5dabeb_e3ed_4730_ab86839e00f75077\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendHHSReturnToServer\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"Begin\"\r\nprivate function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepId ) void {\r\n// }} \"\"\r\nprivate variable strJSON;\r\n// {{ 5 \"SendStepReturnToServer_EightOutputs\" \"InitLocals\"\r\n// }} \"\"\r\n// {{{ 1436 1 0 \"a5a7b215_f4cb_4951_82e1faf532cd7222\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Create(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1437 1 0 \"9480693e_99ec_4cfd_aa9c8f48e76ee42f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"command\"), Translate(\"STAR-return\"));\r\n// }} \"\"\r\n// {{{ 1438 1 0 \"3f068696_35bd_4060_8b291470a817f628\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-name\"), stepName);\r\n// }} \"\"\r\n// {{{ 1439 1 0 \"b68a52fb_e141_4e4c_b5e7bbcbf0c9817f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return1\"), stepReturn1);\r\n// }} \"\"\r\n// {{{ 1440 1 0 \"8ab4a139_9629_43b7_98f13d1058881e4b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return2\"), stepReturn2);\r\n// }} \"\"\r\n// {{{ 1441 1 0 \"1417a4bd_aea8_4b36_8a7a05739a789ecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return3\"), stepReturn3);\r\n// }} \"\"\r\n// {{{ 1442 1 0 \"24b6213e_470e_468a_86dc55b44ff96b95\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return4\"), stepReturn4);\r\n// }} \"\"\r\n// {{{ 1443 1 0 \"42403d87_ddb6_4bee_8fc6ad09efb7573a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return5\"), stepReturn5);\r\n// }} \"\"\r\n// {{{ 1444 1 0 \"8493044a_674d_4139_90fa1c7a00050abc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return6\"), stepReturn6);\r\n// }} \"\"\r\n// {{{ 1445 1 0 \"b43cf915_ef0d_4d62_985deae88bcd6c18\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return7\"), stepReturn7);\r\n// }} \"\"\r\n// {{{ 1446 1 0 \"584d78fd_87d0_4502_a6d089cfaf888318\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"step-return8\"), stepReturn8);\r\n// }} \"\"\r\n// {{{ 1447 1 0 \"47856892_8af4_409f_88723a44ebe61362\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::SetStringProperty(objJSONToServer, Translate(\"id\"), stepId);\r\n// }} \"\"\r\n// {{{ 1448 1 0 \"e5054174_6f3f_4356_8dc30683be948abe\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::GetJson(objJSONToServer, strJSON);\r\n// }} \"\"\r\n// {{{ 1449 1 0 \"e21196c3_6b8f_47e5_a2888114650b2ec8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLJsonLib::Release(objJSONToServer);\r\n// }} \"\"\r\n// {{{ 1450 1 0 \"3fec97a3_9f33_4fef_afe5355188bf56d4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLHttp::HttpPOST(objHttp, Translate(\"http://localhost:3221\"), strJSON, HSLHttp::ContentType_JSON, Translate(\"\"));\r\n// }} \"\"\r\n// {{{ 5 \"SendStepReturnToServer_EightOutputs\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-10-23 19:48$$checksum=17917cde$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxEF83.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxFA7A.hsi",
    "content": "// {{{ 2 \"IncludeGuard\" \"PragmaOnce\"\r\n#pragma once\r\n// }} \"\"\r\n#include \"HSLErrLib.hsl\"\r\n#include \"HSLMlStarStepReturnLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLDevLib.hsl\"\r\n#include \"HSLSeqLib.hsl\"\r\n#include \"HSLStrLib.hsl\"\r\n#include \"HSLTrcLib.hsl\"\r\n#include \"HSL_LiquidClassLib.hsl\"\r\n#include \"HSLInhecoTEC\\\\HSLInhecoTECLib.hsl\"\r\n#include \"HSLDaisyChainedTiltModule.hsl\"\r\n#include \"HSLBarcodeReader.hsl\"\r\n#include \"HslHamHeaterShakerLib.hsl\"\r\n#include \"HSLDaisyChainedMediaLine.hsl\"\r\n#include \"HSLDaisyChainCommunication.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Dryer Module.hsl\"\r\n#include \"Hamilton pH Module\\\\Hamilton pH Station Washer Module.hsl\"\r\n/* {{ 2 \"LibraryInsertLine\" \"\" */ // }} \"\"\r\n// {{ 2 \"TemplateIncludeBlock\" \"\"\r\n#include \"HSLMETEDLib.hs_\"\r\n#include \"HSLMECCLib.hs_\"\r\n// }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"Begin\"\r\nnamespace STAR_OEM_TOOLKIT {\r\n// }} \"\"\r\n/* {{ 2 \"VariableInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"SubmethodForwardDeclaration\" \"\"\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void ;\r\nfunction BarcodeReader_Read( variable & barcode ) void ;\r\nfunction 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 ;\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ;\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void ;\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void ;\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ;\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ;\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ;\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void ;\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ;\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ;\r\nfunction 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 ;\r\nfunction 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 ;\r\n// }} \"\"\r\nfunction _InitLibrary() {\r\n// {{ 2 \"AutoInitBlock\" \"\"\r\n// }} \"\"\r\n}\r\nfunction _ExitLibrary() {\r\n// {{ 2 \"AutoExitBlock\" \"\"\r\n// }} \"\"\r\n}\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable positionID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable height;\r\nprivate variable calculatedVolume;\r\n// {{ 5 \"Channels_1ml_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 107 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 108 1 0 \"8fa2cdd5_d117_4559_be8f242119801835\" \"ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2(\"8fa2cdd5_d117_4559_be8f242119801835\"); // Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 109 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BE09000023754133A7DFF78508E9EC3D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 110 1 0 \"3dd2c518_6d0a_4d7b_a227743c1263caad\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 111 1 0 \"2df7cf67_eefd_4634_a6c81ca2eae358a9\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 112 1 0 \"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"a8ab29ff_eb70_45dc_a90f0ce07c2514bd\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 113 1 0 \"a37ce602_144b_4a72_98dbfe0c85169266\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 114 1 0 \"36e6f2a2_6d83_40ba_a0c6ff5caefcef66\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 115 1 0 \"ce4eba9f_c8e1_4c33_a9c369da4ce7c312\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 116 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 117 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 118 1 0 \"81636f39_7511_441a_8ab707955e5f2035\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 119 1 0 \"6b53ca04_1112_466f_89a23ed352e36004\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 120 1 0 \"c20a15a2_4a40_4214_9e2588af18355e98\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 121 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 122 1 0 \"9c1dd6a5_9b06_43fd_9fd194129c2f2a0b\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 123 1 0 \"e6930a03_b2a0_4569_bb51b2088cac413c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 124 1 0 \"06eeeac2_52c3_47cb_b78dde137d763a9a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 125 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 126 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 127 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 128 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 130 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_15E4EC7C03B0458dA8B196D2861D63BC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 131 1 0 \"9af2cbf6_5306_4a14_827b32cae1054343\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 132 1 0 \"83df5041_4b3c_406f_95690782a3a21861\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 133 1 0 \"450b7dae_efb3_416b_a62ef5c611c84cdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 134 1 0 \"ca4e0527_c377_4a7f_99b7deddb85bdfaf\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 135 1 0 \"a83a594a_307e_45dd_8a2583323efe8f45\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 136 1 0 \"53b884ef_873a_4201_882d0cc9f9d77d20\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 137 1 0 \"00f031c0_8454_45d1_9b17554c5e6df7bc\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 138 1 0 \"3fcceb5e_fea5_4776_94261cf223fe007f\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1ml_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"Begin\"\r\nfunction Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 101 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 102 1 0 \"72075d54_9924_47c4_a0154d7e90bb1065\" \"ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2(\"72075d54_9924_47c4_a0154d7e90bb1065\"); // TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 103 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_55CAD51E8CEB46d5827DF7367C49B35D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 104 1 0 \"7acd54b9_9bda_465f_9b10e23e8987fa26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 105 1 0 \"bcca3c8a_7fce_4767_98fb4ac5db164ddd\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable getLiquidLevels_return;\r\nprivate variable labwareID;\r\nprivate variable calculatedVolume;\r\nprivate variable height;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\nprivate variable loopCounter1;\r\nprivate variable numberOfPositions;\r\n// {{ 5 \"Channels_1mL_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevels_mm.SetSize( 0);\r\no_liquidLevels_mL.SetSize( 0);\r\n// }} \"\"\r\n// {{ 62 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 63 1 0 \"ce9beee3_e67e_43c3_bfc64805ab990e08\" \"ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2(\"ce9beee3_e67e_43c3_bfc64805ab990e08\"); // Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 64 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 65 1 0 \"493334e8_4548_4149_82f058a4b51df641\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 66 1 0 \"c6b9c3da_70bc_4aa8_841a67bf3e6c7859\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 67 1 0 \"dd677141_96b6_4ccc_a1764ec36dc76b56\" \"ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C(\"dd677141_96b6_4ccc_a1764ec36dc76b56\"); // GetLastLiquidLevel\r\n\tgetLiquidLevels_return = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{{ 68 1 0 \"4fd5463f_c617_4e2b_aa27d0a820bfe2c5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn);\r\n// }} \"\"\r\n// {{ 69 1 0 \"6cafca26_5df8_46c0_98d5a4e2a957163a\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mm.SetSize(0);\r\n// }} \"\"\r\n// {{ 70 1 0 \"418d84ad_0fba_4ca8_8479b9c6dde94985\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_liquidLevels_mL.SetSize(0);\r\n// }} \"\"\r\n// {{ 71 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{ 72 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 73 1 0 \"c8304522_b160_47ca_9780bfcfd85cf56a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nheight = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return);\r\n// }} \"\"\r\n// {{ 74 1 0 \"5c09e3e1_cd42_4687_940231f4491e28e1\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mm.AddAsLast(height);\r\n// }} \"\"\r\n// {{ 75 1 0 \"1cbaa070_2e26_4301_9831c6bc56227fcf\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 76 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 77 1 0 \"11b5458b_6926_471d_8cb7dde489f8a444\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{{ 78 1 0 \"51ffe893_b0e5_4383_ac38b9be481a9bee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn);\r\n// }} \"\"\r\n// {{ 79 1 0 \"b02dd957_c3d3_445f_b0e36cc6cab274af\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 80 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (labwareID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 81 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\nif (positionID > \"\")\r\n{\r\n// }} \"\"\r\n// {{ 82 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 83 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\r\n      \r\n      object decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n      \r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 85 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 86 1 0 \"1b6d6482_1c62_4a3f_90dfdeaf8695fb92\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 87 1 0 \"086a404a_99f9_4215_81fcc4be65c886b2\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 88 1 0 \"36cc23a5_3886_4312_adc5faa6d481a26c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ncalculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 89 1 0 \"9f017e3d_a3f3_4f02_914d74e549a5f3be\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_liquidLevels_mL.AddAsLast(calculatedVolume);\r\n// }} \"\"\r\n// {{ 90 1 0 \"693f6d8c_e7fa_419d_b923bb796e5548fd\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 91 1 0 \"35647e0a_accb_4503_80bba06d7d2a3271\" \"{B31F3531-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n// }} \"\"\r\n// {{ 92 1 0 \"ed6c9c1d_db69_4c65_8a4324433bd43f03\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 93 1 0 \"abfcc803_7e38_4c9d_ad7c8412ada32e1d\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"Begin\"\r\nfunction Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 95 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 96 1 0 \"1a33c622_0a9b_473c_a857db709fcadb47\" \"ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2(\"1a33c622_0a9b_473c_a857db709fcadb47\"); // TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 97 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_D52469807F754a359D17B8D31042C6A6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 98 1 0 \"5284933d_2b98_4255_81ee24c4ca6624c1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 99 1 0 \"68086392_46e4_4533_88368c1cf77ceb2d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable numberOfPositions;\r\nprivate variable loopCounter1;\r\nprivate variable positionBC;\r\n// {{ 5 \"Carrier_Load\" \"InitLocals\"\r\no_stepReturn_CarrierBC = 0;\r\no_stepReturn_PositionsBCs = 0;\r\no_stepReturn_PositionsBCMasks = 0;\r\no_stepReturn_PositionsIDs = 0;\r\no_CarrierBC = 0;\r\no_PositionsBCs.SetSize( 0);\r\n// }} \"\"\r\n// {{ 18 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 19 1 0 \"b445eca9_c441_45d7_b53f08a23b7b4b80\" \"ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2(\"b445eca9_c441_45d7_b53f08a23b7b4b80\"); // LoadCarrier\r\n\to_stepReturn_CarrierBC = arrRetValues[2];\r\n\to_stepReturn_PositionsBCs = arrRetValues[3];\r\n\to_stepReturn_PositionsBCMasks = arrRetValues[4];\r\n\to_stepReturn_PositionsIDs = arrRetValues[5];\r\n}\r\n// }} \"\"\r\n// {{ 20 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 21 1 0 \"6919be45_bdb7_46b6_a2ad892454bef1c7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_CarrierBC = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 22 1 0 \"d814f66e_6beb_47a8_a390d3b5ea839ba9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{{ 23 1 0 \"018a7d4d_f55c_435f_bfce516fc40cd0bb\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsBCMasks = ErrGetDataAt(5);\r\n// }} \"\"\r\n// {{{ 24 1 0 \"28252b10_bd1a_480c_8d84ce9739ca69ec\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionsIDs = ErrGetDataAt(6);\r\n// }} \"\"\r\n// {{ 25 1 0 \"5c909756_0e7e_4404_9569fb2db3dd1158\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 26 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 27 1 0 \"91e50e7b_5626_4ab9_ad652563a737dba7\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC);\r\n// }} \"\"\r\n// {{ 28 1 0 \"f7c4b6e5_401a_41ab_b920370ccc277a17\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 29 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 30 1 0 \"6135f8c7_3486_4898_88c6e7154326c4df\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nnumberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 31 1 0 \"4cec9992_cb23_4182_894ee448e99b8d48\" \"{4900C1F7-0FB7-4033-8253-760BDB9354DC}\"\r\no_PositionsBCs.SetSize(0);\r\n// }} \"\"\r\n// {{ 32 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n{\r\nfor(loopCounter1 = 0; loopCounter1 < numberOfPositions;)\r\n{\r\nloopCounter1 = loopCounter1 + 1;\r\n// }} \"\"\r\n// {{{ 33 1 0 \"fe82471b_5e85_4598_90b8f672ef3cf690\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs);\r\n// }} \"\"\r\n// {{ 34 1 0 \"f0a92a30_0f95_4eb4_bdcf7e21db350ecb\" \"{F17B7626-27CB-47f1-8477-8C4158339A6D}\"\r\no_PositionsBCs.AddAsLast(positionBC);\r\n// }} \"\"\r\n// {{ 35 1 0 \"0249a50f_bae7_4b5c_86cdc25ab8f43639\" \"{B31F3532-5D80-11d4-A5EB-0050DA737D89}\"\r\n}\r\n}\r\n// }} \"\"\r\n// {{ 36 1 0 \"628b131a_a46c_40b8_b9a61700e818c0e7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Load\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"Begin\"\r\nfunction Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Carrier_Unload\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 38 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 39 1 0 \"38494363_9fef_41a3_8cb17f349c9fe693\" \"ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2(\"38494363_9fef_41a3_8cb17f349c9fe693\"); // UnloadCarrier\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 40 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 41 1 0 \"9aa00b86_389e_473d_bd928bce39259e60\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 42 1 0 \"c21e08df_939e_41ef_9843a250f42bf239\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Carrier_Unload\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 44 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 45 1 0 \"f1e43893_ada0_4b74_9035cad36fab5d4b\" \"ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F(\"f1e43893_ada0_4b74_9035cad36fab5d4b\"); // ZSwapGetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 46 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_90BF8C56374E469c817DB7B52FEE5D91 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 47 1 0 \"5300695f_5b47_4f16_8312711c7c77441e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 48 1 0 \"b30da27c_bef5_49a0_87d76c8049f31861\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 56 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8675588E513E44cd8097542899F1DE5C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 57 1 0 \"3460f3d9_9fdb_4437_9cfa36d33b14f837\" \"ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B(\"3460f3d9_9fdb_4437_9cfa36d33b14f837\"); // ZSwapPlacePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 58 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8675588E513E44cd8097542899F1DE5C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 59 1 0 \"1c1fcfa6_73ab_434d_965f40a7cb5827ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 60 1 0 \"b65dcae3_6ff9_4720_a4f35e99346d8975\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"Begin\"\r\nfunction Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Channels_1mL_COREGrippers_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 50 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 51 1 0 \"2ed0456d_387e_49b4_a5a8105447123f04\" \"ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E(\"2ed0456d_387e_49b4_a5a8105447123f04\"); // ZSwapMovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 52 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 53 1 0 \"b5f59ed6_6bf0_47b3_b8c295016cfa86e1\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 54 1 0 \"ced13f47_fded_4378_af08e9af8f325393\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Channels_1mL_COREGrippers_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Get\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 283 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 284 1 0 \"285b84de_748a_400d_a828988b60f4c175\" \"ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E(\"285b84de_748a_400d_a828988b60f4c175\"); // GetPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 285 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_ABA9DAA34A59470495CBB56841D2D81D : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 286 1 0 \"298cdb09_c92e_4bb7_a2ecabeafcf27813\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 287 1 0 \"53a14975_dd73_4964_8c8c9f0730a43a7a\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Get\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Place\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 301 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 302 1 0 \"bcedff0a_3cba_458a_bedb1a743e5dd0bd\" \"ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55(\"bcedff0a_3cba_458a_bedb1a743e5dd0bd\"); // PutPlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 303 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_22A12BE8BB2146fbB8824DF66137BF6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 304 1 0 \"8aeb393a_337d_4788_b25408ee6915eb1c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 305 1 0 \"c9f8030c_ef60_485e_9b279138f7f6da52\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Place\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"Begin\"\r\nfunction iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Move\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 289 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 290 1 0 \"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\" \"ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E(\"d98672e5_cec6_49ef_92dfdaa4ec2da4f2\"); // MovePlate\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 291 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E8A019BC968240cbB4C8B7397BB2F043 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 292 1 0 \"b69dc448_e2ef_4c62_b6dd3535487928f5\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 293 1 0 \"65ac7a80_b8fd_4f3c_a9e6290ec6a707a1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Move\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"Begin\"\r\nfunction iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"iSWAP_Park\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 295 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 296 1 0 \"ef5a4036_5d2f_4aae_86e669ef0581597f\" \"ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7(\"ef5a4036_5d2f_4aae_86e669ef0581597f\"); // ParkISwap\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 297 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_47ED933D92B34914984C5D98423B4C94 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 298 1 0 \"974d3165_8b4f_469b_99a59625d159b561\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 299 1 0 \"fae9e68f_ea34_4f4d_bb6f62c288b1e7b4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"iSWAP_Park\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"Begin\"\r\nfunction MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipPickUp\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 233 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 234 1 0 \"b3913cc3_f1bb_4e9f_b3100faec37b186d\" \"ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B(\"b3913cc3_f1bb_4e9f_b3100faec37b186d\"); // Head96TipPickUp\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 235 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_6640FC09A88C48daB6CB9FB2349BE364 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 236 1 0 \"1df2d158_801c_4c9f_a8014869fa07863d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 237 1 0 \"315f1e4b_8d32_430c_89413b8e4b5b135a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 238 1 0 \"e2468a9b_8b3f_4977_bbdfbeb62da8eff3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipPickUp\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Aspirate\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 182 1 0 \"0fc30c09_ddb7_4665_8739dbd8f0102fdc\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(aspirateSequence);\r\n// }} \"\"\r\n// {{{ 183 1 0 \"14c1eb4e_ced0_45f2_a343bc0f3c668407\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(aspirateSequence);\r\n// }} \"\"\r\n// {{ 184 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 185 1 0 \"8d6fdce5_327c_491b_aebee60a715b6c6e\" \"ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A(\"8d6fdce5_327c_491b_aebee60a715b6c6e\"); // Head96Aspirate\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 186 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_00A0A59BF99B42a686A202BE72502D6C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 187 1 0 \"6c23fd1d_be57_4011_8fea4ea6459aeecf\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 188 1 0 \"ee52ace2_98fe_454f_841ae740168bebcd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 189 1 0 \"7afd0547_a78c_4fb0_b040d35803532eb4\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 190 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 191 1 0 \"8bf3cb1f_0b71_493d_bf300c05413fc543\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 192 1 0 \"4efb91d8_0e10_400c_a4820b22b5ba22d5\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 193 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 194 1 0 \"091a5303_35ee_4d82_a0b32d9ede26439d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 195 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 196 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 198 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_06FF5C7D72E044ac924A0658E57AC92A : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 199 1 0 \"99cc0c51_635c_4f24_ac7aec94869f04a7\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 200 1 0 \"64d5c65b_9fa5_44de_a21e4ee08c78310f\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 201 1 0 \"0b5e4cdb_1c92_4d18_a0bed95d854a0d94\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 202 1 0 \"b82d3cc9_9e79_4547_800ffcbdb5ef0aa7\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Aspirate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"Begin\"\r\nprivate function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void {\r\n// }} \"\"\r\nprivate variable flt_X_Coord;\r\nprivate variable flt_Y_Coord;\r\nprivate variable flt_Z_Coord;\r\nprivate variable flt_SubmergeDepthCORE;\r\nprivate variable str_FW_Digits;\r\nprivate variable flt_TipLength;\r\nprivate variable int_LLDheight;\r\nprivate variable flt_TipLength_corrected;\r\nprivate variable int_FW_Digits;\r\nprivate variable flt_StepSize;\r\nprivate variable int_Steps_mm;\r\nprivate variable str_ReturnValueH0RH;\r\nprivate variable flt_angle;\r\nprivate variable tipType;\r\nprivate variable dummy;\r\n// {{ 5 \"MPH_GetLastLLD_Level\" \"InitLocals\"\r\no_flt_LastLiquidLevel = 0;\r\n// }} \"\"\r\n// {{ 240 1 0 \"f7c5b642_e642_4bd2_b342e8a2202f94b2\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_SubmergeDepthCORE = 8.0;\r\n// }} \"\"\r\n// {{ 241 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 242 1 0 \"de2e1cfc_3be8_4752_b20a1221fc802c26\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::Initialize(ML_STAR, 1);\r\n// }} \"\"\r\n// {{{ 243 1 0 \"bf16ce46_b00c_46c3_93046a4e730e9868\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::SelectLiquidClass(i_liquidClass);\r\n// }} \"\"\r\n// {{{ 244 1 0 \"7d094f81_a8b9_4eb1_90a841201d1a4cca\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\ntipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType);\r\n// }} \"\"\r\n// {{{ 245 1 0 \"05a5dc8c_726f_477e_97f2839edafa8bdd\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nLiquidClassLib::getTipTypeData(tipType, dummy, dummy, dummy, flt_TipLength);\r\n// }} \"\"\r\n// {{ 246 1 0 \"b15f54b8_160d_4d5a_9470d19afc4b0155\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 247 1 0 \"a97af8ec_9af3_46fa_a150d41888290f6f\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE;\r\n// }} \"\"\r\n// {{{ 248 1 0 \"8fc17eb7_3fbb_4a8e_b537d43144e8598c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nDevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle);\r\n// }} \"\"\r\n// {{ 249 1 0 \"31649b83_68f7_49a0_974f7efa6232c07d\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nstr_ReturnValueH0RH = Translate(\"\");\r\n// }} \"\"\r\n// {{ 250 1 0 \"72f92b7c_2537_40be_bc5fe85726a39b19\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nflt_StepSize = 0.005;\r\n// }} \"\"\r\n// {{ 251 1 0 \"b5a3458f_9eea_4501_a6aa86c0556ad194\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"b5a3458f_9eea_4501_a6aa86c0556ad194\"); // FirmwareCommand\r\n\tstr_ReturnValueH0RH = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 252 1 0 \"73c2ff19_ed4c_4c45_a9c5b56a6e84b044\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"str_ReturnValueH0RH: \"), str_ReturnValueH0RH);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 253 1 0 \"f6fe1f5f_39ae_4b71_83f733a5cf490b66\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nstr_FW_Digits = StrRight(str_ReturnValueH0RH, 6);\r\n// }} \"\"\r\n// {{{ 254 1 0 \"9883fcc4_3dcd_4199_816696b3668f733f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nint_FW_Digits = StrIVal(str_FW_Digits);\r\n// }} \"\"\r\n// {{ 255 1 0 \"b427e920_22bd_492e_8c900ff3a99a649c\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_Steps_mm = int_FW_Digits * flt_StepSize;\r\n// }} \"\"\r\n// {{ 256 1 0 \"bbe179b4_5c85_4ece_ba3738d8817cdfc5\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\nint_LLDheight = int_Steps_mm - flt_Z_Coord;\r\n// }} \"\"\r\n// {{ 257 1 0 \"502175ce_b71d_406e_b155fea6f39d0fd0\" \"{B31F3544-5D80-11d4-A5EB-0050DA737D89}\"\r\no_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected;\r\n// }} \"\"\r\n/* {{ 1 \"\" \"0\" */ if(0){  /* }} \"\" */\r\n// {{{ 258 1 0 \"3bcc328b_1906_4590_94e64b4e80f03d3a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"o_flt_LastLiquidLevel: \"), o_flt_LastLiquidLevel);\r\n// }} \"\"\r\n/* {{ 1 \"\" \"1\" */ } /* }} \"\" */\r\n// {{{ 5 \"MPH_GetLastLLD_Level\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\nprivate variable labwareID;\r\nprivate variable lbwContainersAreConnected;\r\nprivate variable positionID;\r\n// {{ 5 \"MPH96_Dispense\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_liquidLevel_mm = 0;\r\no_liquidLevel_mL = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{{ 204 1 0 \"031805d0_c2b0_4435_9b8f6fbb101dc62d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nlabwareID = SeqGetLabwareId(dispenseSequence);\r\n// }} \"\"\r\n// {{{ 205 1 0 \"c249d641_ef0f_4423_bc2d48f01c114665\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\npositionID = SeqGetPositionId(dispenseSequence);\r\n// }} \"\"\r\n// {{ 206 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 207 1 0 \"30023c25_d03e_4d52_86f122728a5fc04f\" \"ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB(\"30023c25_d03e_4d52_86f122728a5fc04f\"); // Head96Dispense\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 208 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 209 1 0 \"714a2035_eb8c_4e86_85aca8d69086952e\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 210 1 0 \"bc1347df_5f38_41ae_be3c240228e5944c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 211 1 0 \"f3fb329d_c76d_48c9_ac660dbbc90096f1\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 212 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 213 1 0 \"911c2699_0e84_425f_9e9384c7b6c75351\" \"{7C4EF7A7-39BE-406a-897F-71F3A35B4093}\"\r\nMPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm);\r\n// }} \"\"\r\n// {{ 214 1 0 \"a141b7db_3cc2_4626_998f5229ca08b364\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 215 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 216 1 0 \"17abaeba_05ec_4e18_a3843b54b3bdf6f3\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\nlbwContainersAreConnected = 0;\r\n// }} \"\"\r\n// {{ 217 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{ 218 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ;\r\nerr.Clear();\r\n// }} \"\"\r\n{\r\n\t\tobject decklayout;\r\n\t\tobject labware;\r\n\t\tobject rectRack;\r\n\r\n\t\tvariable tmpIsConnected (0);\r\n   // get the deck layout\r\n\t\tdecklayout = ML_STAR.GetDeckLayoutObject();\r\n\t\tif ( !decklayout.IsNull() )\r\n\t\t{\r\n\t\t\tlabware = decklayout.Labware(labwareID);\r\n\t\t\tif ( !labware.IsNull() )\r\n\t\t\t{\r\n\t\t\t\tlabware.GetObject(\"IRectRack2\", rectRack);\r\n\t\t\t\tif ( !rectRack.IsNull() )\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = rectRack.ConnectedCtr;  // 1= connected, 0=not connected\r\n\t\t\t\t\trectRack.ReleaseObject();\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlbwContainersAreConnected = 0;\r\n\t\t\t\t}\r\n\t\t\t\tlabware.ReleaseObject();\r\n            decklayout.ReleaseObject();\r\n            rectRack.ReleaseObject();\r\n\t\t\t}\r\n      }\r\n}\r\n// {{ 220 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{ 221 1 0 \"751de83b_d4e0_4859_8b3da1eeaf94bd85\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{ 222 1 0 \"1bdc4019_272b_4e0e_8f4935bcd3a782ec\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 223 1 0 \"c826eb96_3570_4883_a8298bc890043c3c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected);\r\n// }} \"\"\r\n// {{ 224 1 0 \"c4c1eadb_9d04_43d3_871c72d3479cad7a\" \"{586C3429-F931-405f-9938-928E22C90BFA}\"\r\n\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_Dispense\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"Begin\"\r\nfunction MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void {\r\n// }} \"\"\r\n// {{ 5 \"MPH96_TipEject\" \"InitLocals\"\r\no_stepReturn = 0;\r\no_stepReturn_PositionIDs = 0;\r\n// }} \"\"\r\n// {{ 226 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 227 1 0 \"a8f4b6bb_e103_433a_b1360393d37e32b3\" \"ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C(\"a8f4b6bb_e103_433a_b1360393d37e32b3\"); // Head96TipEject\r\n\to_stepReturn = arrRetValues[2];\r\n\to_stepReturn_PositionIDs = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 228 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_C33A74C211664afd9B08BCD3DD5339FC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 229 1 0 \"71d45982_a084_4aaa_a34c6558755061d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 230 1 0 \"9e9d44f5_b614_4fb4_b6d39860c83d879d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn_PositionIDs = ErrGetDataAt(4);\r\n// }} \"\"\r\n// {{ 231 1 0 \"96bd335e_14f8_47e2_bc54b638fde21919\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"MPH96_TipEject\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"Begin\"\r\nfunction Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 176 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_7F7620635658430dB82A7401CB5C158F ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 177 1 0 \"dc7838fc_172e_45b4_89099f664d6d452e\" \"ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2(\"dc7838fc_172e_45b4_89099f664d6d452e\"); // Initialize\r\n\to_stepReturn = arrRetValues[2];\r\n}\r\n// }} \"\"\r\n// {{ 178 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_7F7620635658430dB82A7401CB5C158F : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 179 1 0 \"6bd66132_cab8_473c_8437aa033b84ff48\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 180 1 0 \"5e221a44_df82_4a4a_b132efe3882170c8\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"Begin\"\r\nfunction SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"SendFirmwareCommand\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 260 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{ 261 1 0 \"c616f5ea_baed_4075_a75531e82e045e2b\" \"ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}\"\r\n{\r\n\tvariable arrRetValues[];\r\n\tarrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2(\"c616f5ea_baed_4075_a75531e82e045e2b\"); // FirmwareCommand\r\n\to_stepReturn = arrRetValues[3];\r\n}\r\n// }} \"\"\r\n// {{ 262 1 0 \"0f7ff03f_40eb_4e9b_a2ff42a6b9e6d59a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_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,\");\r\n// }} \"\"\r\n// {{ 263 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 264 1 0 \"305af0e7_7bac_4678_a0d1c7c3dd9900d0\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 265 1 0 \"641377bb_9666_411c_91a21acd4e345a9d\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"SendFirmwareCommand\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"Begin\"\r\nfunction TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 267 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 268 1 0 \"8f639116_952a_4b73_b3471e6a53e3906f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate);\r\n// }} \"\"\r\n// {{ 269 1 0 \"3393edd2_b35c_4d28_9a34abe9b5cba597\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 270 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F7A233121EBD413184BEE5D2CD3510CA : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 271 1 0 \"60a9b619_1ae2_496a_89ca468bc3f8e964\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 272 1 0 \"8e89b190_d2d8_4a7e_8d65313a1104b64f\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 273 1 0 \"bd83dcea_1e69_4096_ada97e91985fe887\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"Begin\"\r\nfunction TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"TiltModule_MoveToPosition\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 275 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_089FA9D7B12A47b0BAD415A10EC82051 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 276 1 0 \"2eb8fec9_f55f_4bdb_9e8f2458aae0ad13\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLDaisyChainedTiltModule::MoveToPosition(Module, Position);\r\n// }} \"\"\r\n// {{ 277 1 0 \"b1a780d0_ecf5_4978_85fb85d1c7090261\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"1\");\r\n// }} \"\"\r\n// {{ 278 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_089FA9D7B12A47b0BAD415A10EC82051 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 279 1 0 \"ce3475b4_ca3b_48ad_b9c7f3c1f1c2d5ed\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 280 1 0 \"a8c3cab3_9bde_404e_b7d673e4d7906771\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 281 1 0 \"082df277_2e00_442a_9db2108834994949\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"TiltModule_MoveToPosition\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"Begin\"\r\nfunction Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 140 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 141 1 0 \"e3c035a6_0376_4030_a0e519c3f0401e3f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode);\r\n// }} \"\"\r\n// {{ 142 1 0 \"1877832a_02f1_478e_b3d6295bbe57d3cc\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 143 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 144 1 0 \"ad00a616_20b6_4fd1_b1b82f15bd592d39\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 145 1 0 \"14151342_6460_4d8a_9e099b7fce1df805\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_StartTemperatureControl\" \"InitLocals\"\r\nErrorCode = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 154 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 155 1 0 \"dbb9a46a_b798_4546_8857499b498c024a\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 156 1 0 \"84dcce52_a982_433c_8313516e137669ac\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 157 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_EF764FBDA7474071A7B517987B9B2FC2 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 158 1 0 \"94a7bec1_57e9_49ab_a6d3e430f8e69316\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 159 1 0 \"e149ca88_5fb5_4a10_a704093dac2f46c2\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StartTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"Begin\"\r\nfunction Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_SetTarget\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 147 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 148 1 0 \"aef982a0_8382_45fd_aec06a11e9859c17\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, o_stepReturn);\r\n// }} \"\"\r\n// {{ 149 1 0 \"e44f86de_9ccd_4cdb_a446858f8b41bed6\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 150 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_56BA970A477C47bf90C6C3373DEB98B0 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 151 1 0 \"360d64cc_734f_4a97_8c61eb77bf58c2c4\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 152 1 0 \"2e50215a_6b40_4fa9_93fcfc303b6d44ac\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_SetTarget\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"Begin\"\r\nfunction Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void {\r\n// }} \"\"\r\nprivate variable ErrorCode;\r\n// {{ 5 \"Inheco_TEC_StopTemperatureControl\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 161 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 162 1 0 \"53a1b499_97d8_49ce_85f583fb81241149\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode);\r\n// }} \"\"\r\n// {{ 163 1 0 \"dd49b5d1_ca6e_4f0a_93641a54b773750a\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 164 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_E3152496BDA74f1681473505DC2B3A3E : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 165 1 0 \"bf506361_d06d_402a_bce18579529327a9\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 166 1 0 \"c29a0f01_2391_485c_a95211df9c9b7272\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_StopTemperatureControl\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"Begin\"\r\nfunction Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"Inheco_TEC_Terminate\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 168 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 169 1 0 \"3239a113_7650_4023_a9fad336d668211f\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = HSLInhecoTECLib::Terminate(StopAllDevices);\r\n// }} \"\"\r\n// {{ 170 1 0 \"a6af6ca2_ed30_416d_b8c9860b3c044870\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_stepReturn = Translate(\"0\");\r\n// }} \"\"\r\n// {{ 171 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 172 1 0 \"06500de7_b6f0_46c9_83aa39385bd390ee\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{{ 173 1 0 \"1d548ec4_592f_4c53_bd10fcebbc4e29a8\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"step return in toolkit\"), o_stepReturn);\r\n// }} \"\"\r\n// {{ 174 1 0 \"6f9054f4_5e87_4236_a046d345d0972e98\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"Inheco_TEC_Terminate\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Initialize\" \"Begin\"\r\nfunction BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void {\r\n// }} \"\"\r\n// {{ 5 \"BarcodeReader_Initialize\" \"InitLocals\"\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 1 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_A3B61CE3E767468e8D1B59076F3D78E4 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 2 1 0 \"e0cfef2c_84b3_468a_a20006a3728a8260\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"Trace\"), COMPORT);\r\n// }} \"\"\r\n// {{{ 3 1 0 \"e040e6e1_8d46_47ab_87603b90eec83a04\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLBarcodeReader::SetComPort(COMPORT);\r\n// }} \"\"\r\n// {{{ 4 1 0 \"97b56e2c_0824_4073_9e58f7230250d255\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nHSLBarcodeReader::DelComBuffer();\r\n// }} \"\"\r\n// {{ 5 1 0 \"d56061ff_1640_4b1a_88dc262e7863d251\" \"{B31F3543-5D80-11d4-A5EB-0050DA737D89}\"\r\no_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,\");\r\n// }} \"\"\r\n// {{ 6 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_A3B61CE3E767468e8D1B59076F3D78E4 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 7 1 0 \"02ecb8f2_684e_4ec1_a9840192e80e0f56\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 8 1 0 \"d8b801e6_901b_4026_bdc28d79de1a8bc3\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Initialize\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Read\" \"Begin\"\r\nfunction BarcodeReader_Read( variable & barcode ) void {\r\n// }} \"\"\r\n// {{ 5 \"BarcodeReader_Read\" \"InitLocals\"\r\nbarcode = 0;\r\n// }} \"\"\r\n// {{ 10 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 11 1 0 \"f3cc7ab5_8df1_49cb_aaf121c9e2cc2d4c\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(Translate(\"attempting to read barcode \"), Translate(\"attempting to read barcode\"));\r\n// }} \"\"\r\n// {{{ 12 1 0 \"7efa47d3_0206_455e_9c6a05f9f0aebc1d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbarcode = HSLBarcodeReader::Read();\r\n// }} \"\"\r\n// {{{ 13 1 0 \"dd9a5270_3e4b_4b95_898bbad8823e8ea2\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nTrcTrace(barcode, Translate(\"this is the barcode\"));\r\n// }} \"\"\r\n// {{ 14 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_F17E80F5B0F14da6AD3DC48FC7190CFC : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 15 1 0 \"1bcebdcc_4eed_4f44_b21a8924c1f94855\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\nbarcode = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 16 1 0 \"302bcc17_1365_443f_a46b0d164779f18e\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"BarcodeReader_Read\" \"End\"\r\n}\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"Begin\"\r\nfunction 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 {\r\n// }} \"\"\r\n// {{ 5 \"pH_Measure\" \"InitLocals\"\r\no_fltpHProbe_1 = 0;\r\no_fltpHProbe_2 = 0;\r\no_fltpHProbe_3 = 0;\r\no_fltpHProbe_4 = 0;\r\no_stepReturn = 0;\r\n// }} \"\"\r\n// {{ 307 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nonerror goto errLabel_485A52AE45C346adA048E7F329D0C390 ;\r\nerr.Clear();\r\n// }} \"\"\r\n// {{{ 308 1 0 \"70294f1d_735f_43b0_bfff139b2e168d5d\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4);\r\n// }} \"\"\r\n// {{ 309 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\nerrLabel_485A52AE45C346adA048E7F329D0C390 : {}\r\nonerror goto 0;\r\nif (err.GetId() != 0)   /* skip handler if no error */\r\n{\r\n// }} \"\"\r\n// {{{ 310 1 0 \"b81f548d_2601_402a_9a291d45b6b50706\" \"{C1F3C015-47B3-4514-9407-AC2E65043419}\"\r\no_stepReturn = ErrGetDataAt(3);\r\n// }} \"\"\r\n// {{ 311 1 0 \"ed7e1393_5f74_4f7a_9f24134bcc79cfea\" \"{3293659E-F71E-472f-AFB4-6A674E32B114}\"\r\n}   /* end if from skip handler if no error */\r\n// }} \"\"\r\n// {{{ 5 \"pH_Measure\" \"End\"\r\n}\r\n// }} \"\"\r\n/* {{ 2 \"SubmethodInsertLine\" \"\" */ // }} \"\"\r\n// {{{ 2 \"LibraryNamespace\" \"End\"\r\n} // library namespace\r\n// }} \"\"\r\n// $$author=stefa$$valid=0$$time=2022-12-05 21:23$$checksum=6cd21b6c$$length=084$$"
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~HxFA7A.tmp",
    "content": ""
  },
  {
    "path": "pyhamilton/star-oem/VENUS_Method/~ReAB0E.res",
    "content": "// $$author=user$$valid=0$$time=2017-11-07 13:27$$checksum=f97ec207$$length=081$$"
  },
  {
    "path": "pyhamilton/templates/ai_template/deck.res",
    "content": "// $$author=stefa$$valid=0$$time=2022-07-17 21:45$$checksum=d7233384$$length=082$$"
  },
  {
    "path": "pyhamilton/templates/ai_template/preprompt.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Mon Apr 17 11:07:50 2023\n\n@author: stefa\n\"\"\"\nimport openai\nimport IPython\n\npre_prompt = \"\"\"\nHere are some training examples. At the end I will give a prompt, and\nyou will supply the code based on the training.\n\"\"\"\n\nprompt_1 = \"\"\"\n# Aspirate 50 uL from the first column of plate_1 and \n# dispense to second column of plate_2\n\"\"\"\n\ncompletion_1 = \"\"\"\naspiration_poss = [(plate_1, idx) for idx in range(8)]\naspirate(ham_int, aspiration_poss, vols = [50]*8, liquidClass = liq_class)\n\ndispense_poss = [(plate_2, idx) for idx in range(8,16)]\ndispense(ham_int, dispense_poss, vols = [50]*8, liquidClass = liq_class)\n\"\"\"\n\nprompt_2 = \"\"\"\n# Aspirate 50 uL from the wells 5-8 of plate_1 and \n# dispense to wells 16-19 of plate_2\n\"\"\"\n\ncompletion_2 = \"\"\"\naspiration_poss = [(plate_1, idx) for idx in range(5,9)]\naspirate(ham_int, aspiration_poss, vols = [50]*8, liquidClass = liq_class)\n\ndispense_poss = [(plate_2, idx) for idx in range(16,20)]\ndispense(ham_int, dispense_poss, vols = [50]*8, liquidClass = liq_class)\n\"\"\"\n\n\nprompt_3 = \"\"\"\n#Aspirate 100 uL from the first column of plate_1 and dispense 20uL to each well in columns\n# 3, 5, and 7 of plate_2\n\"\"\"\n\ncompletion_3 = \"\"\"\naspiration_poss = [(plate_1, idx) for idx in range(8)]\nvols = [100]*8\naspirate(ham_int, aspiration_poss, vols = vols, liquidClass = liq_class)\ndispense_cols = [3,5,7]\nfor i in dispense_cols:\n    dispense_poss = [(plate_2, idx) for idx in range(8*i,8*i+8)]\n    dispense(ham_int, dispense_poss, vols = [20]*8, liquidClass = liq_class)\n\n\n\"\"\"\n\nprompt_4 = \"\"\"\n#Pick up tips from the first column of tips_0\n\"\"\"\n\ncompletion_4 = \"\"\"\ntips_poss = [(tips_0, idx) for idx in range(8)]\ntip_pick_up(ham_int, tips_poss)\n\"\"\"\n\nprompt_5 = \"\"\"\n# Aspirate 25 uL from the first column of plate_1 at liquid height 5 and with 2 mix cycles\n\"\"\"\n\ncompletion_5 = \"\"\"\naspiration_poss = [(plate_1, idx) for idx in range(8)]\nvols = [25]*8\naspirate(ham_int, aspiration_poss, vols = vols, liquidClass = liq_class, liquidHeight = 5.0, mixCycles = 2)\n\"\"\"\n\n\n\ndef complete(prompt):\n    res = openai.ChatCompletion.create(\n      model=\"gpt-3.5-turbo\",\n      messages=[\n            {\"role\": \"system\", \"content\": \"\"\"You are an assistant for generating code for \n             liquid-handling robots. I will give you examples. Please never return a response \n             that is not Python code. You may respond to queries with natural language\n             but make sure to preface it with a comment symbol \"\"\"},\n            {\"role\": \"system\", \"content\": \"\"\"\n             You will mostly be using aspirate and dispense functions. These have a number of optional parameters\n             that should not be used unless specifically requested. These are: capacitiveLLD (1 or 0), pressureLLD (1 or 0), \n             liquidFollowing (1 or 0), submergeDepth (flt), liquidHeight (flt), maxLLdDifference (flt), mixCycles (int), \n             mixPosition (flt), mixVolume (flt), xDisplacement (flt), yDisplacement (flt), zDisplacement (flt). \n             Please preserve that order because they are python kwargs. \n             \"\"\"},\n            {\"role\": \"user\", \"content\": prompt_1},\n            {\"role\": \"assistant\", \"content\": completion_1},\n            {\"role\": \"user\", \"content\": prompt_2},\n            {\"role\": \"assistant\", \"content\": completion_2},\n            {\"role\": \"user\", \"content\": prompt_3},\n            {\"role\": \"assistant\", \"content\": completion_3},\n            {\"role\": \"user\", \"content\": prompt_4},\n            {\"role\": \"assistant\", \"content\": completion_4},\n            {\"role\": \"user\", \"content\": prompt_5},\n            {\"role\": \"assistant\", \"content\": completion_5},\n            {\"role\": \"user\", \"content\": prompt}\n        ]\n    )\n    \n    response = res['choices'][0]['message']['content']\n    return response\n\n\n    \n    "
  },
  {
    "path": "pyhamilton/templates/ai_template/robot_method.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Sun Jul 17 21:12:47 2022\n\n@author: stefa\n\"\"\"\nimport os\nfrom pyhamilton import (HamiltonInterface,  LayoutManager, \n Plate96, Tip96, initialize, tip_pick_up, tip_eject, \n aspirate, dispense,  oemerr, resource_list_with_prefix, normal_logging,\n layout_item)\nimport IPython\nfrom preprompt import complete\nfrom voice import voice_to_text\n\nliq_class = 'StandardVolumeFilter_Water_DispenseJet_Empty'\n\ndef assist(prompt, safe = False):\n    response = complete(prompt)\n    lines = response.split('\\n')\n    d = dict(locals(), **globals())\n    for line in lines:\n        print(line)\n        if safe:\n            input(\"Proceed?\")\n        exec(line, d, d)\n\nlmgr = LayoutManager('deck.lay')\n#plates = resource_list_with_prefix(lmgr, 'plate_', Plate96, 5)\ntips_0 = layout_item(lmgr, Tip96, 'tips_0')\nplate_0 = layout_item(lmgr, Plate96, 'plate_0')\n\nliq_class = 'StandardVolumeFilter_Water_DispenseJet_Empty'\n\n\n\nprint(\"\"\"Be careful! The assist() function uses an AI coding assistant to interpret\n      natural language into PyHamilton code. Do not use this outside of simulation\n      mode until you are familiar with how it works.\"\"\")\n\n\nif __name__ == '__main__': \n    with HamiltonInterface(simulate=True) as ham_int:\n        normal_logging(ham_int, os.getcwd())\n        initialize(ham_int)\n        IPython.embed()\n        "
  },
  {
    "path": "pyhamilton/templates/ai_template/voice.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Mon Apr 17 15:11:27 2023\n\n@author: stefa\n\"\"\"\n\nimport speech_recognition as sr\nimport pyttsx3\n\ndef voice_to_text():\n    # Initialize the text-to-speech engine\n    engine = pyttsx3.init()\n\n    # Initialize the speech recognition engine\n    r = sr.Recognizer()\n\n    # Use the default microphone as the audio source\n    with sr.Microphone() as source:\n        print(\"Speak now!\")\n        audio = r.listen(source)\n\n    # Use Google Speech Recognition to transcribe the audio\n    try:\n        text = r.recognize_google(audio)\n        print(f\"You said: {text}\")\n\n        # Speak the transcribed text\n        engine.say(text)\n        engine.runAndWait()\n        return text\n    except sr.UnknownValueError:\n        print(\"Oops! Didn't catch that\")\n    except sr.RequestError as e:\n        print(f\"Uh oh! Couldn't request results from Google Speech Recognition service; {e}\")\n\n    return None\n"
  },
  {
    "path": "pyhamilton/templates/basic_template/deck.res",
    "content": "// $$author=stefa$$valid=0$$time=2022-07-17 21:45$$checksum=d7233384$$length=082$$"
  },
  {
    "path": "pyhamilton/templates/basic_template/robot_method.py",
    "content": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Sun Jul 17 21:12:47 2022\n\n@author: stefa\n\"\"\"\nimport os\nfrom pyhamilton import (HamiltonInterface,  LayoutManager, \n Plate96, Tip96, initialize, tip_pick_up, tip_eject, \n aspirate, dispense,  oemerr, resource_list_with_prefix, normal_logging,\n layout_item)\n\nliq_class = 'StandardVolumeFilter_Water_DispenseJet_Empty'\n\n\n\nlmgr = LayoutManager('deck.lay')\nplates = resource_list_with_prefix(lmgr, 'plate_', Plate96, 5)\ntips = layout_item(lmgr, Tip96, 'tips_0')\nliq_class = 'StandardVolumeFilter_Water_DispenseJet_Empty'\n\naspiration_poss = [(plates[0], x) for x in range(8)]\ndispense_poss = [(plates[0], x) for x in range(8,16)]\nvols_list = [100]*8\n\n\ntips_poss = [(tips, x) for x in range(8)]\n\n\nif __name__ == '__main__': \n    with HamiltonInterface(windowed=True) as ham_int:\n        normal_logging(ham_int, os.getcwd())\n        initialize(ham_int)\n        tip_pick_up(ham_int, tips_poss)\n        aspirate(ham_int, aspiration_poss, vols_list, liquidClass = liq_class)\n        dispense(ham_int, dispense_poss, vols_list, liquidClass = liq_class)\n        tip_eject(ham_int, tips_poss)\n"
  },
  {
    "path": "pyhamilton/transport/__init__.py",
    "content": "from .transport import GripperParams, transport_resource, GripDirection, GrippedResource"
  },
  {
    "path": "pyhamilton/transport/transport.py",
    "content": "from ..interface import HamiltonInterface\nfrom ..liquid_handling_wrappers import move_plate_using_gripper\nfrom ..resources import DeckResource, Lid\n\nfrom dataclasses import dataclass\nfrom enum import Enum, IntEnum\nfrom typing import Any, Dict, Literal, Optional, Tuple, Union\n\n# ---------------------------------------------------------------------------\n# Type helpers\n# ---------------------------------------------------------------------------\n\nclass GrippedResource(str, Enum):\n    \"\"\"Logical type of labware being transported.\"\"\"\n\n    MIDI = \"midi\"\n    LID = \"lid\"\n    PCR = \"pcr\"\n\n    # -------- convenience --------\n    def __str__(self) -> str:  # pragma: no‑cover – makes reprs nicer when debugging\n        return self.value\n\n    @classmethod\n    def parse(cls, s: Union[str, \"GrippedResource\"]) -> \"GrippedResource\":\n        \"\"\"Case‑insensitive co‑ercion helper.\"\"\"\n        if isinstance(s, cls):\n            return s\n        s_normalised = str(s).strip().lower()\n        for member in cls:\n            if member.value == s_normalised or member.name.lower() == s_normalised:\n                return member\n        raise ValueError(f\"Unknown GrippedResource: {s!r}\")\n\n\nclass GripDirection(IntEnum):\n    FRONT = 1\n    RIGHT = 2\n    BACK = 3\n    LEFT = 4\n\n# ---------------------------------------------------------------------------\n# Parameter container\n# ---------------------------------------------------------------------------\n\n@dataclass(slots=True)\nclass GripperParams:\n    \"\"\"All the user‑tunable parameters needed for either transport mode.\"\"\"\n\n    # ── parameters common to both iSWAP & CO‑RE gripper ────────────────────\n    grip_width: float\n    width_before: float\n    grip_height: float\n    #transport_mode: int  # 0 = plate only, 1 = lid only, 2 = plate + lid\n\n    # ── iSWAP‑specific ─────────────────────────────────────────────────────\n    grip_mode: int  # 0 = small side; 1 = large side (aka long side)\n    inverse_grip: bool\n    labware_orientation_get: int\n    labware_orientation_place: int\n\n    # ------------------------------------------------------------------\n    # Formatting helpers – keep the ugly mapping code in *one* place.\n    # ------------------------------------------------------------------\n\n    def _complex_dict(self, orientation: int) -> Dict[str, float]:\n        \"\"\"Return the minimal *Complex* movement dict for ``move_plate``.\"\"\"\n        return {\n            \"retractDist\": 0.0,\n            \"liftUpHeight\": 20.0,\n            \"labwareOrientation\": orientation,\n        }\n\n    # .................................................................\n\n    def as_iswap_call(self) -> Tuple[int, Dict[str, float], Dict[str, float], Dict[str, Any]]:\n        \"\"\"Translate to the four blocks expected by ``HamiltonInterface.move_plate``.\n\n        Returns\n        -------\n        inversion : int\n            0 | 1 – passed via the *dedicated* ``inversion`` arg.\n        cmplx_get : dict\n            Provided via ``CmplxGetDict``.\n        cmplx_place : dict\n            Provided via ``CmplxPlaceDict``.\n        more_opts : dict\n            Passed as ``**more_options`` – *must* only contain keys that map\n            one‑to‑one with the iSWAP command template.\n        \"\"\"\n        inversion = 1 if self.inverse_grip else 0\n\n        # Complex movement dictionaries – required if we want *any* custom\n        # labware orientation (otherwise we clash with the library defaults).\n        cmplx_get = self._complex_dict(self.labware_orientation_get)\n        cmplx_place = self._complex_dict(self.labware_orientation_place)\n\n        # Additional options that map directly to the ISWAP_GET/PLACE keyword\n        # template.  (Names must *exactly* match those templates.)\n        more_opts: Dict[str, Any] = {\n            \"gripMode\": self.grip_mode,\n            \"gripWidth\": self.grip_width,\n            \"widthBefore\": self.width_before,\n            \"gripHeight\": self.grip_height,\n            #\"transportMode\": self.transport_mode, Don't use this parameter for now\n        }\n        return inversion, cmplx_get, cmplx_place, more_opts\n\n\n# ---------------------------------------------------------------------------\n# Master configuration tables (iSWAP)\n# ---------------------------------------------------------------------------\n\n_GRIPPER_CONFIGS: Dict[tuple[str, GripDirection], GripperParams] = {\n    # MIDI plates\n    (\"midi\", GripDirection.FRONT): GripperParams(124.5, 130.0, 8.0,  1, False, 3, 3),\n    (\"midi\", GripDirection.RIGHT): GripperParams(80.0, 87.0, 8.0,  0, False, 4, 4),\n    (\"midi\", GripDirection.BACK): GripperParams(124.5, 130.0, 8.0,  1, True, 1, 1),\n    (\"midi\", GripDirection.LEFT): GripperParams(80.0, 87.0, 8.0,  0, True, 2, 2),\n\n    # Lids\n    (\"lid\", GripDirection.FRONT): GripperParams(126.0, 130.0, 5.0,  1, False, 3, 3),\n    (\"lid\", GripDirection.RIGHT): GripperParams(85.3, 88.0, 5.0,  0, False, 4, 4),\n    (\"lid\", GripDirection.BACK): GripperParams(126.0, 130.0, 5.0, 1,  True, 1, 1),\n    (\"lid\", GripDirection.LEFT): GripperParams(85.3, 88.0, 5.0, 0, True, 2, 2),\n\n    # PCR plates\n    (\"pcr\", GripDirection.FRONT): GripperParams(126.0, 130.0, 7.0,  1, False, 3, 3),\n    (\"pcr\", GripDirection.RIGHT): GripperParams(82.5, 85.5, 7.0,  0, False, 4, 4),\n    (\"pcr\", GripDirection.BACK): GripperParams(126.0, 130.0, 7.0,  1, True, 1, 1),\n    (\"pcr\", GripDirection.LEFT): GripperParams(82.5, 85.5, 7.0, 0, True, 2, 2),\n}\n\n# ---------------------------------------\n# CO‑RE gripper fall‑back dimensions only\n# ---------------------------------------\n\n_CORE_GRIPPER_DIMENSIONS = {\n    GrippedResource.MIDI: (79.0, 87.0),\n    GrippedResource.LID: (85.3, 91.0),\n    GrippedResource.PCR: (80.0, 86.0),\n}\n\n\n# ---------------------------------------------------------------------------\n# Public helpers\n# ---------------------------------------------------------------------------\n\ndef get_core_gripper_params(\n    *,\n    resource_type: Union[Literal[\"midi\", \"lid\", \"pcr\"], GrippedResource] = \"midi\",\n    stack: bool,\n) -> GripperParams:\n    \"\"\"Return minimal parameter‑set for a CO‑RE gripper operation.\"\"\"\n    rt = GrippedResource.parse(resource_type)\n    grip_width, width_before = _CORE_GRIPPER_DIMENSIONS[rt]\n\n    return GripperParams(\n        grip_width=grip_width,\n        width_before=width_before,\n        grip_height=8.0 if stack else 15.0,\n        #transport_mode=1 if rt is GrippedResource.LID else 0, Avoid using this parameter for now\n        grip_mode=0,  # not used by CO‑RE gripper but required by dataclass\n        inverse_grip=False,\n        labware_orientation_get=1,\n        labware_orientation_place=1,\n    )\n\n\n# ...........................................................................\n\ndef get_gripper_params(\n    *,\n    resource_type: Union[Literal[\"midi\", \"lid\", \"pcr\"], GrippedResource],\n    grip_direction: Optional[Union[int, GripDirection]] = None,\n    iswap: bool = True,\n    core_gripper: bool = False,\n    stack: bool = False,\n) -> GripperParams:\n    \"\"\"Resolve the correct parameter block for a given transport request.\"\"\"\n    rt = GrippedResource.parse(resource_type)\n\n    if core_gripper:\n        return get_core_gripper_params(resource_type=rt, stack=stack)\n\n    # --- iSWAP path -------------------------------------------------------\n    if not iswap:\n        raise ValueError(\"Only iSWAP or core gripper modes are supported.\")\n    if grip_direction is None:\n        raise ValueError(\"grip_direction must be supplied for iSWAP moves.\")\n\n    gd = GripDirection(int(grip_direction))\n    try:\n        return _GRIPPER_CONFIGS[(rt.value, gd)]\n    except KeyError as exc:  # pragma: no‑cover\n        raise ValueError(\n            f\"No configuration for resource_type={rt.value!r}, grip_direction={gd.name} ({int(gd)}).\"\n        ) from exc\n\n\n# ---------------------------------------------------------------------------\n# High‑level wrapper – the *one* public function you call.\n# ---------------------------------------------------------------------------\n\ndef transport_resource(\n    ham_int: HamiltonInterface,\n    source: Any,\n    destination: Any,\n    *,\n    grip_direction: Optional[Union[int, GripDirection]] = None,\n    resource_type: Union[Literal[\"midi\", \"lid\", \"pcr\"], GrippedResource] = \"midi\",\n    iswap: bool = False,\n    core_gripper: bool = False,\n    stack: bool = False,\n) -> Any:\n    \"\"\"Move a plate / lid from *source* ➜ *destination* using preconfigured parameters for different\n    labware types and grip directions. Exactly one of *iswap* or *core_gripper* **must** be ``True``.\n\n    Parameters\n    ----------\n    ham_int\n        Active ``HamiltonInterface`` instance.\n    source, destination\n        • *iSWAP*: ``DeckResource`` objects  \n        • CO‑RE gripper: **str** sequence names.\n    grip_direction\n        Required for iSWAP, ignored for CO‑RE gripper.\n    resource_type\n        ``\"midi\" | \"lid\" | \"pcr\"`` (case‑insensitive) or a :class:`GrippedResource`.\n    iswap, core_gripper\n        Exactly one of these flags **must** be ``True``.\n    stack\n        When ``core_gripper`` is ``True`` set a lower *gripHeight* if stacking\n        (i.e. loading onto an existing plate lid).\n    \"\"\"\n    params = get_gripper_params(\n        resource_type=resource_type,\n        grip_direction=grip_direction,\n        iswap=iswap,\n        core_gripper=core_gripper,\n        stack=stack,\n    )\n\n    # .....................................................................\n    if iswap:\n        if isinstance(source, Lid) and isinstance(destination, Lid):\n            source = source.layout_name()\n            destination = destination.layout_name()\n            inversion, cmplx_get, cmplx_place, more_opts = params.as_iswap_call()\n            return ham_int.move_by_seq(\n                source,\n                destination,\n                CmplxGetDict=cmplx_get,\n                CmplxPlaceDict=cmplx_place,\n                inversion=inversion,\n                **more_opts,\n            )\n\n        if isinstance(source, DeckResource) and isinstance(destination, DeckResource):\n            inversion, cmplx_get, cmplx_place, more_opts = params.as_iswap_call()\n            return ham_int.move_plate(\n                source,\n                destination,\n                CmplxGetDict=cmplx_get,\n                CmplxPlaceDict=cmplx_place,\n                inversion=inversion,\n                **more_opts,\n            )\n        \n        # Elif both are strings\n        elif isinstance(source, str) and isinstance(destination, str):\n            inversion, cmplx_get, cmplx_place, more_opts = params.as_iswap_call()\n            return ham_int.move_by_seq(source, \n                                       destination, \n                                       CmplxGetDict=cmplx_get,\n                                       CmplxPlaceDict=cmplx_place,\n                                       inversion=inversion,\n                                       **more_opts,\n                                       )\n        \n        else:\n            raise TypeError(\"source & destination must be DeckResource objects or strings for iSWAP moves.\")\n\n    # .....................................................................\n    if core_gripper:\n        if isinstance(source, DeckResource) and isinstance(destination, DeckResource):\n            # Check whether source and destination are both of the same type\n            if type(source) != type(destination):\n                raise Exception(\"Source is of type {} and destination is of type {}. \" \\\n                \"Both must be of the same type for CORE gripper movement\".format(type(source), type(destination)))\n\n            source = source.layout_name()\n            destination = destination.layout_name()\n        \n        if not isinstance(source, str) or not isinstance(destination, str):\n            raise Exception(\"Source and destination must be strings for CORE gripper movement\")\n\n        # ``lid`` operations are encoded by *transport_mode* == 1 in our params.\n        return move_plate_using_gripper(\n            ham_int,\n            source,\n            destination,\n            gripHeight=params.grip_height,\n            gripWidth=params.grip_width,\n            openWidth=params.width_before,\n            #lid=params.transport_mode == 1, Avoid using this for now\n        )\n\n    # Should never get here – both modes mutually exclusive\n    raise AssertionError(\"Either iSWAP or core_gripper must be selected.\")\n\n\n\nif __name__ == \"__main__\":\n    with HamiltonInterface(windowed=True, simulating=False) as ham_int:\n        ham_int.initialize()\n        # Example: core-gripper move with a lid, front grip\n        transport_resource(\n            ham_int,\n            \"HSP_Pipette2\",\n            \"HHS2_HSP\",\n            grip_direction=GripDirection.FRONT,\n            resource_type=GrippedResource.LID,\n            core_gripper=True\n        )\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "pytest.ini",
    "content": "[pytest]\ntestpaths = tests\npython_files = *_tests.py\n\n"
  },
  {
    "path": "requirements.txt",
    "content": "requests\nparse\npythonnet --pre\npyserial\nwaiter\nSQLalchemy\npandas\nsqlalchemy-access\nopencv-python\nnumpy\nPillow\nmatplotlib\n"
  },
  {
    "path": "setup.cfg",
    "content": "[egg_info]\ntag_build = \ntag_date = 0\n\n"
  },
  {
    "path": "setup.py",
    "content": "from setuptools import setup, find_packages\n\ntry:\n    print(\"here\")\n    import pypandoc\n    long_description = pypandoc.convert_file('README.md', 'rst')\n    print(long_description)\nexcept(IOError, ImportError):\n    long_description = open('README.md').read()\n\nsetup(\n    name='pyhamilton',\n    version='1.6',\n    packages=find_packages(exclude=['tests*', 'examples*']),\n    license='MIT',\n    description='Python for Hamilton liquid handling robots',\n    long_description='Forthcoming due to markdown incompatibility',\n    install_requires=[\n    'requests',\n    'parse',\n    'pythonnet',\n    'pyserial',\n    'waiter',\n    'SQLalchemy',\n    'pandas',\n    'sqlalchemy-access',\n    'opencv-python',\n    'numpy',\n    'Pillow',\n    'matplotlib'],\n    package_data={'pyhamilton': ['star-oem/*', 'star-oem/VENUS_Method/*', 'bin/*','library/*','project-template/*',\n                                 'library/HSLInhecoTEC/*','library/HSLAppsLib/*','library/ASWStandard/*',\n                                 'library/ASWStandard/ASWGlobal/*','library/ASWStandard/TraceLevel/*',\n                                 'library/DaisyChainedTiltModule/*','library/SchedulingDev/*',]},\n    url='https://github.com/dgretton/pyhamilton.git',\n    author='Dana Gretton',\n    author_email='dgretton@mit.edu',\n    entry_points={\n        'console_scripts': [\n            'pyhamilton-new-project = pyhamilton.__init__:create_project',\n            'pyhamilton-ai-project = pyhamilton.__init__:create_ai_project',\n            'pyhamilton-configure = pyhamilton.__init__:autoconfig',\n            'deck-annotator = pyhamilton.ngs.loading.deck_annotation:main',\n        ],\n    },\n)\n"
  },
  {
    "path": "tests/__init__.py",
    "content": ""
  },
  {
    "path": "tests/interface_tests.py",
    "content": "from collections import namedtuple\n\nimport pytest\n\nfrom pyhamilton.interface import (\n    HamiltonInterface,\n    HamiltonResponse,\n    HamiltonResponseStatus,\n    HamiltonStepError,\n    HamiltonReturnParseError,\n    HardwareError,\n    ImproperDispensationError,\n    InvalidErrCodeError,\n    HamiltonSyntaxError\n)\n\nTEST_DATA_TYPE = namedtuple(\n    \"TEST_DATA_TYPE\", \"id data fields return_data parsed_result expected_exception\"\n)\nTEST_DATA = [\n    # 0\n    TEST_DATA_TYPE(\n        \"Server response is empty\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"\", \"step-return2\": \"\", \"step-return3\": \"\", \"step-return4\": \"\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        HamiltonStepError,\n    ),\n    # 1\n    TEST_DATA_TYPE(\n        \"Server response contains spaces\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"    \", \"step-return2\": \"\", \"step-return3\": \"\", \"step-return4\": \"\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        HamiltonStepError,\n    ),\n    # 2\n    TEST_DATA_TYPE(\n        \"Server response with command failed str value\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"0\", \"step-return2\": \"\", \"step-return3\": \"\", \"step-return4\": \"\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        HamiltonStepError,\n    ),\n    # 3\n    TEST_DATA_TYPE(\n        \"Server response with command failed num value\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": 0, \"step-return2\": \"\", \"step-return3\": \"\", \"step-return4\": \"\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        HamiltonStepError,\n    ),\n    # 4\n    TEST_DATA_TYPE(\n        \"Server response with command succeeded with short return format\",\n        '{\"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\" }',\n        None,\n        None,\n        [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}],\n        HamiltonSyntaxError,\n    ),\n    # 5\n    TEST_DATA_TYPE(\n        \"Server response with command succeeded\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": 1, \"step-return2\": \"\", \"step-return3\": \"\", \"step-return4\": \"\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        None,\n    ),\n    # 6\n    TEST_DATA_TYPE(\n        \"Server response with command succeeded and extra data\",\n        '{\"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\" }',\n        None,\n        None,\n        [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4, 'stepData': ' '}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}],\n        HamiltonReturnParseError,\n    ),\n    # 7\n    TEST_DATA_TYPE(\n        \"one string field is requested\",\n        '{\"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\" }',\n        \"step-return1\",\n        [\"0[0,1,2,4,A[5,6,7\"],\n        [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4, 'stepData': 'A'}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}],\n        HamiltonReturnParseError,\n    ),\n    # 8\n    TEST_DATA_TYPE(\n        \"field not in server response is requested\",\n        '{\"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\" }',\n        \"step-return11\",\n        [],\n        [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}],\n        HamiltonReturnParseError,\n    ),\n    # 9\n    TEST_DATA_TYPE(\n        \"multiple available fields are requested\",\n        '{\"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\" }',\n        [\"step-return1\", \"step-return2\"],\n        [\"0[0,1,2,4[5,6,7\", 3],\n        [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}],\n        HamiltonReturnParseError,\n    ),\n    # 10\n    TEST_DATA_TYPE(\n        \"multiple (avail+not available) fields are requested\",\n        '{\"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\" }',\n        [\"step-return2\", \"step-return12\"],\n        [\"100\"],\n        [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}],\n        HamiltonReturnParseError,\n    ),\n    # 11\n    TEST_DATA_TYPE(\n        \"result is made of one block\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"0[01,00,00,0,,Cos_96_DW_1mL_0002,A1\", \"id\": \"1\" }',\n        None,\n        [],\n        [{'numField': 1, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Cos_96_DW_1mL_0002', 'labwarePos': 'A1'}],\n        None,\n    ),\n    # 12\n    TEST_DATA_TYPE(\n        \"result is made of multiple blocks\",\n        '{\"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\" }',\n        None,\n        None,\n        [\n            {'numField': 1, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': '0.0', 'labwareName': 'HT_L_0001', 'labwarePos': '1'},\n            {'numField': 2, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': '0.0', 'labwareName': 'HT_L_0001', 'labwarePos': '2'},\n            {'numField': 3, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': '0.0', 'labwareName': 'HT_L_0001', 'labwarePos': '3'},\n        ],\n        None,\n    ),\n    # 13\n    TEST_DATA_TYPE(\n        \"step-return1 == 2\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"2\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        HamiltonStepError,\n    ),\n    # 14\n    TEST_DATA_TYPE(\n        \"no global error while block report one\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"0[01,02,00,0,,Cos_96_DW_1mL_0002,A1\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        HardwareError,\n    ),\n    # 15\n    TEST_DATA_TYPE(\n        \"global error while blocks report no error\",\n        '{\"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\" }',\n        None,\n        None,\n        None,\n        HamiltonReturnParseError,\n    ),\n    # 16\n    TEST_DATA_TYPE(\n        \"block error field is not a number\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"1[01,AB,00,0,,Cos_96_DW_1mL_0002,A1\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        HamiltonReturnParseError,\n    ),\n    # 17\n    TEST_DATA_TYPE(\n        \"dispense error is reported\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"1[01,105,00,0,,Cos_96_DW_1mL_0002,A1\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        ImproperDispensationError,\n    ),\n    # 18\n    TEST_DATA_TYPE(\n        \"block error is invalid number\",\n        '{\"command\": \"STAR-return\", \"step-name\": \"command-1\", \"step-return1\": \"0[01,999,00,0,,Cos_96_DW_1mL_0002,A1\", \"id\": \"1\" }',\n        None,\n        None,\n        None,\n        InvalidErrCodeError,\n    ),\n    # 19\n    TEST_DATA_TYPE(\n        \"fix initialize() parse error\",\n        '{\"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\" }',\n        None,\n        None,\n        [\n            {'numField': 1, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '},\n            {'numField': 2, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '},\n            {'numField': 3, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '},\n            {'numField': 4, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '},\n            {'numField': 5, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '},\n            {'numField': 6, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '},\n            {'numField': 7, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '},\n            {'numField': 8, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '},\n        ],\n        None,\n    ),\n]\n\n\nclass Test_HamiltonInterface:\n    @pytest.mark.parametrize(\n        \"server_response,expected_response\",\n        [\n            pytest.param(\n                TEST_DATA[0].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.UNKNOWN, raw=TEST_DATA[0].data\n                ),\n                id=TEST_DATA[0].id,\n            ),\n            pytest.param(\n                TEST_DATA[1].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.UNKNOWN, raw=TEST_DATA[1].data\n                ),\n                id=TEST_DATA[1].id,\n            ),\n            pytest.param(\n                TEST_DATA[2].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.FAILED, raw=TEST_DATA[2].data\n                ),\n                id=TEST_DATA[2].id,\n            ),\n            pytest.param(\n                TEST_DATA[3].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.FAILED, raw=TEST_DATA[3].data\n                ),\n                id=TEST_DATA[3].id,\n            ),\n            pytest.param(\n                TEST_DATA[4].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.FAILED, raw=TEST_DATA[4].data,\n                    parsed_return=TEST_DATA[4].parsed_result\n                ),\n                id=TEST_DATA[4].id,\n            ),\n            pytest.param(\n                TEST_DATA[5].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS, raw=TEST_DATA[5].data\n                ),\n                id=TEST_DATA[5].id,\n            ),\n            pytest.param(\n                TEST_DATA[6].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS, raw=TEST_DATA[6].data,\n                    parsed_return=TEST_DATA[6].parsed_result\n                ),\n                id=TEST_DATA[6].id,\n            ),\n        ],\n    )\n    def test_parse_response_status_when_(\n        self, mocker, server_response, expected_response\n    ):\n        mocker.patch(\"pyhamilton.interface.HamiltonInterface.start\", return_value=None)\n        mocker.patch(\"pyhamilton.interface.HamiltonInterface.stop\", return_value=None)\n\n        hamiltonInterface = HamiltonInterface()\n        response = hamiltonInterface.parse_response(server_response=server_response)\n        assert response == expected_response\n\n    @pytest.mark.parametrize(\n        \"server_response,fields,expected_response\",\n        [\n            pytest.param(\n                TEST_DATA[7].data,\n                TEST_DATA[7].fields,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS,\n                    return_data=TEST_DATA[7].return_data,\n                    raw=TEST_DATA[7].data,\n                    parsed_return=TEST_DATA[7].parsed_result\n                ),\n                id=TEST_DATA[7].id,\n            ),\n            pytest.param(\n                TEST_DATA[8].data,\n                TEST_DATA[8].fields,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS,\n                    return_data=TEST_DATA[8].return_data,\n                    raw=TEST_DATA[8].data,\n                    parsed_return=TEST_DATA[8].parsed_result\n                ),\n                id=TEST_DATA[8].id,\n            ),\n            pytest.param(\n                TEST_DATA[9].data,\n                TEST_DATA[9].fields,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS,\n                    moduleID=\"3\",\n                    return_data=TEST_DATA[9].return_data,\n                    parsed_return=TEST_DATA[9].parsed_result,\n                    raw=TEST_DATA[9].data,\n                ),\n                id=TEST_DATA[9].id,\n            ),\n            pytest.param(\n                TEST_DATA[10].data,\n                TEST_DATA[10].fields,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS,\n                    moduleID=\"100\",\n                    return_data=TEST_DATA[10].return_data,\n                    parsed_return=TEST_DATA[10].parsed_result,\n                    raw=TEST_DATA[10].data,\n                ),\n                id=TEST_DATA[10].id,\n            ),\n            pytest.param(\n                TEST_DATA[11].data,\n                TEST_DATA[11].fields,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS,\n                    return_data=TEST_DATA[11].return_data,\n                    raw=TEST_DATA[11].data,\n                    parsed_return=TEST_DATA[11].parsed_result\n                ),\n                id=TEST_DATA[11].id,\n            ),\n        ],\n    )\n    def test_parse_response_return_data_when_(\n        self, mocker, server_response, fields, expected_response\n    ):\n        mocker.patch(\"pyhamilton.interface.HamiltonInterface.start\", return_value=None)\n        mocker.patch(\"pyhamilton.interface.HamiltonInterface.stop\", return_value=None)\n\n        hamiltonInterface = HamiltonInterface()\n        response = hamiltonInterface.parse_response(\n            server_response=server_response, return_data=fields\n        )\n        assert response == expected_response\n\n    @pytest.mark.parametrize(\n        \"server_response,expected_response\",\n        [\n            pytest.param(\n                TEST_DATA[12].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS,\n                    parsed_return=TEST_DATA[12].parsed_result,\n                    raw=TEST_DATA[12].data,\n                ),\n                id=TEST_DATA[12].id,\n            ),\n            pytest.param(\n                TEST_DATA[13].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.FAILED,\n                    parsed_return=TEST_DATA[13].parsed_result,\n                    raw=TEST_DATA[13].data,\n                ),\n                id=TEST_DATA[13].id,\n            ),\n            pytest.param(\n                TEST_DATA[19].data,\n                HamiltonResponse(\n                    status=HamiltonResponseStatus.SUCCESS,\n                    parsed_return=TEST_DATA[19].parsed_result,\n                    raw=TEST_DATA[19].data,\n                ),\n                id=TEST_DATA[19].id,\n            ),\n        ],\n    )\n    def test_parse_response_parsed_result_when_(\n        self, mocker, server_response, expected_response\n    ):\n        mocker.patch(\"pyhamilton.interface.HamiltonInterface.start\", return_value=None)\n        mocker.patch(\"pyhamilton.interface.HamiltonInterface.stop\", return_value=None)\n\n        hamiltonInterface = HamiltonInterface()\n        response = hamiltonInterface.parse_response(server_response=server_response)\n        assert response == expected_response\n\n    @pytest.mark.parametrize(\n        \"server_response,expected_exception\",\n        [\n            pytest.param(\n                TEST_DATA[2].data,\n                TEST_DATA[2].expected_exception,\n                id=TEST_DATA[2].id,\n            ),\n            pytest.param(\n                TEST_DATA[4].data,\n                TEST_DATA[4].expected_exception,\n                id=TEST_DATA[4].id,\n            ),\n            pytest.param(\n                TEST_DATA[14].data,\n                TEST_DATA[14].expected_exception,\n                id=TEST_DATA[14].id,\n            ),\n            pytest.param(\n                TEST_DATA[15].data,\n                TEST_DATA[15].expected_exception,\n                id=TEST_DATA[15].id,\n            ),\n            pytest.param(\n                TEST_DATA[16].data,\n                TEST_DATA[16].expected_exception,\n                id=TEST_DATA[16].id,\n            ),\n            pytest.param(\n                TEST_DATA[17].data,\n                TEST_DATA[17].expected_exception,\n                id=TEST_DATA[17].id,\n            ),\n            pytest.param(\n                TEST_DATA[18].data,\n                TEST_DATA[18].expected_exception,\n                id=TEST_DATA[18].id,\n            ),\n        ],\n    )\n    def test_parse_response_raise_exception_when_(\n        self, mocker, server_response, expected_exception\n    ):\n        mocker.patch(\"pyhamilton.interface.HamiltonInterface.start\", return_value=None)\n        mocker.patch(\"pyhamilton.interface.HamiltonInterface.stop\", return_value=None)\n\n        hamiltonInterface = HamiltonInterface()\n        with pytest.raises(expected_exception):\n            hamiltonInterface.parse_response(server_response=server_response, raise_first_exception=True)\n"
  }
]